Video Transcript

Extract audio from video files and transcribe to markdown with speaker diarization using FFmpeg and whisperX.

Updated Jan 29, 2026
One-click install
npx skills add https://github.com/sparkst/sparkry-claude-skills --skill video-transcript-sparkst
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: Video Transcript
Source: https://github.com/sparkst/sparkry-claude-skills/tree/main/plugins/media-pipeline/skills/video-transcript
Command: npx skills add https://github.com/sparkst/sparkry-claude-skills --skill video-transcript-sparkst

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires whisperx, torch, torchaudio, pyannote.audio, rich, and includes scripts (resource) components.

What problem does it solve? Converting recorded meetings and video files into searchable, speaker-labeled text transcripts normally requires manual work or paid cloud services. This Skill automates the full pipeline locally: extracting audio from video files and transcribing it with speaker diarization into structured markdown. ## Core Features & Use Cases - Audio Extraction: Pull audio tracks from .mov, .mp4, and .mkv files into MP3 using FFmpeg with draft, standard, and archival quality presets. - AI Transcription with Diarization: Transcribe audio using whisperX large-v3 with pyannote speaker diarization, producing markdown with speaker labels and timestamps. - Multiple Output Formats: Export transcripts as markdown, SRT, VTT, plain text, or JSON. - Dependency Doctor: Verify FFmpeg, whisperX, pyannote, HuggingFace token, and system specs before running. - Use Case: Record a one-hour meeting in OBS, then run the QTRANSCRIPT workflow to get a markdown transcript with Speaker 1/Speaker 2 labels and timestamps in about three minutes. ## Quick Start Transcribe the video file at /path/to/meeting.mov into a markdown transcript with speaker labels using the video transcript skill.

Frequently Asked Questions about Video Transcript

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I transcribe a video file to text with speaker labels?▼

Extract the audio track from the video with FFmpeg, then transcribe it with whisperX using the --diarize flag and a HuggingFace token. The output is a markdown file with [Speaker N] labels and HH:MM:SS timestamps for each segment.

What video formats does FFmpeg audio extraction support?▼

The audio extractor accepts .mov, .mp4, and .mkv files and converts them to MP3. Quality presets are draft (128kbps), standard (192kbps), and archival (320kbps), selectable via the --quality flag.

Why is speaker diarization not working in whisperX?▼

Diarization requires a valid HuggingFace token with accepted pyannote terms, exported as the HF_TOKEN environment variable. If the token is missing or invalid, either set it correctly or run with --no-diarize to skip speaker labeling.

Can whisperX transcription run on Apple Silicon Macs?▼

Yes, whisperX runs on Apple Silicon M1/M2/M3 with Core ML support, achieving roughly 25-30x real-time speed with the large-v3 model. A one-hour audio file processes in about two to three minutes, with diarization adding around 20% overhead.

What should I do when transcription fails with out of memory errors?▼

Switch to a smaller whisper model such as small or base using the --model flag to reduce memory usage. On CUDA systems you can also force CPU execution by clearing CUDA_VISIBLE_DEVICES, though processing will be slower.