Video Processor
Convert video formats, extract audio tracks, and run Whisper transcription with one CLI — no more hand-assembling ffmpeg commands.
Local audio/video processing/transcription via FFmpeg + Whisper, dependencies must be self-installed, local file operations.
What does this skill do, and when should you use it?
Video Processor is an Agent Skill living at .claude/skills/video-processor/ in the disler/claude-code-hooks-multi-agent-observability repository, built around a single Python script (video_processor.py) that wraps common FFmpeg and OpenAI Whisper operations. It offers four subcommands: audio extraction, MP4 conversion, WebM conversion, and Whisper transcription with txt/srt/vtt/ output and language selection. Dependencies are declared via PEP 723 and run through uv, with input validation, dependency checks, and temp-file cleanup built in. Note that the parent repository is a multi-agent observability system; this skill is just one of the independent tools bundled alongside it.
Reads a user-supplied video or audio file and runs three kinds of operations via FFmpeg: (1) extract-audio: pulls the audio track to wav/mp3/aac/flac; (2) to-mp4 / to-webm: format conversion with selectable codecs (libx264/libx265, libvpx-vp9) and speed/quality presets; (3) transcribe: video inputs are first auto-extracted to a temporary WAV (at Whisper's optimal 16kHz sample rate), then sent to OpenAI Whisper, producing txt, srt (timestamped subtitles), vtt, or with word-level timestamps, followed by automatic temp-file cleanup. Model size (tiny through large), language code, and output format are all controlled via CLI flags.
- Content creators batch-converting AVI files exported from old cameras into universal MP4 without memorizing ffmpeg encoding flags
- Instructors or students who recorded lectures and need transcripts or SRT subtitles for publishing and review
- Putting a presentation on a website as web-optimized WebM with matching SRT/WebVTT subtitles
- Processing multilingual material (e.g., a Spanish interview) with a specified language and the medium model for publication-grade accuracy
- Working through a folder of training videos: converting each to WebM and transcribing each to text archives
What are this skill's strengths and limitations?
- One well-documented script covers three high-frequency tasks — conversion, audio extraction, transcription — with sensible defaults
- Complete transcription output range: txt, timestamped srt/vtt, and with word-level timestamps
- PEP 723 + uv removes manual Python dependency setup; includes input validation, dependency checks, and automatic temp cleanup
- Selectable model size and language, with documented RAM footprints and speed/accuracy trade-offs per tier
- Hard dependency on locally installed FFmpeg and Whisper — the script checks but does not install them, and fails clearly when missing
- Larger transcription models need significant RAM (medium ~5GB, large ~10GB); long-video transcription is slow, and WebM/VP9 encoding is also slow
- No license declared anywhere in the repo, so verify terms before commercial use
- Batch processing, progress display, and segmented transcription are textual tips only — the script offers none natively, and there is no bundled test suite
- Transcription quality depends on local OpenAI Whisper models; the source mentions no hosted API or pricing options
How do you install this skill?
The skill lives at .claude/skills/video-processor/ in the repository; per the repo README, copy the whole .claude directory to your project root: cp -R .claude /path/to/your/project/. Two external tools must already be installed: FFmpeg (macOS: brew install ffmpeg; Ubuntu: apt-get install ffmpeg) and OpenAI Whisper (pip install -U openai-whisper). The click and ffmpeg-python packages are declared via PEP 723 metadata inside the script and handled by uv. Note: the repo-wide setup (Bun server, Vue client, hook configuration) belongs to the observability system and is unrelated to using this skill.
How do you use this skill?
On clients that support Agent Skills, it triggers when the user mentions video conversion, audio extraction, transcription, mp4, webm, ffmpeg, or whisper transcription. All work happens through script commands, e.g.: uv run .claude/skills/video-processor/scripts/video_processor.py to-mp4 old_video.avi output.mp4; extract audio: ... extract-audio lecture.mp4 lecture.wav --format wav; transcribe to subtitles: ... transcribe lecture.mp4 lecture.srt --format srt --model small --language es. SKILL.md documents no interface beyond this; batch processing means looping the commands yourself.
How does this skill compare with similar options?
The skill's documentation positions FFmpeg and Whisper as complementary building blocks — FFmpeg prepares audio but cannot transcribe, Whisper only converts speech to text — and this skill chains them into one pipeline. The source names no competing packaged products, so no further comparison is offered.