examples/skills/video-processor/SKILL.md
Process video files with audio extraction, format conversion (mp4, webm), and Whisper transcription.
npx skillsauth add basher83/lunar-claude Video ProcessorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill provides video processing utilities including audio extraction, format conversion, and audio transcription using FFmpeg and OpenAI's Whisper model.
Required tools (must be installed in your environment):
FFmpeg: Multimedia framework for video/audio processing
# macOS
brew install ffmpeg
# Ubuntu/Debian
apt-get install ffmpeg
# Verify installation
ffmpeg -version
OpenAI Whisper: Speech-to-text transcription model
# Install via pip
pip install -U openai-whisper
# Verify installation
whisper --help
Python packages (included in script via PEP 723):
Use the scripts/video_processor.py script for all video processing tasks. The script provides a
simple CLI with the following commands:
Extract the audio track from a video file:
uv run .claude/skills/video-processor/scripts/video_processor.py extract-audio input.mp4 output.wav
Options:
--format: Output audio format (default: wav). Supports: wav, mp3, aac, flacConvert any video file to MP4 format:
uv run .claude/skills/video-processor/scripts/video_processor.py to-mp4 input.avi output.mp4
Options:
--codec: Video codec (default: libx264). Common options: libx264, libx265, h264--preset: Encoding speed/quality preset (default: medium). Options: ultrafast, fast, medium, slow, veryslowConvert any video file to WebM format (web-optimized):
uv run .claude/skills/video-processor/scripts/video_processor.py to-webm input.mp4 output.webm
Options:
--codec: Video codec (default: libvpx-vp9). Options: libvpx, libvpx-vp9Transcribe audio or video files to text using OpenAI's Whisper model:
# Transcribe video file (audio will be extracted automatically)
uv run .claude/skills/video-processor/scripts/video_processor.py transcribe input.mp4 transcript.txt
# Transcribe audio file directly
uv run .claude/skills/video-processor/scripts/video_processor.py transcribe audio.wav transcript.txt
Options:
--model: Whisper model size (default: base). Options:
tiny: Fastest, lowest accuracy (~1GB RAM)base: Fast, good accuracy (~1GB RAM) [DEFAULT]small: Balanced (~2GB RAM)medium: High accuracy (~5GB RAM)large: Best accuracy, slowest (~10GB RAM)--language: Language code (default: auto-detect). Examples: en, es, fr, de, zh--format: Output format (default: txt). Options: txt, srt, vtt, jsonTranscription workflow:
Process a video end-to-end:
# 1. Extract audio for analysis
uv run .claude/skills/video-processor/scripts/video_processor.py extract-audio lecture.mp4 lecture.wav
# 2. Transcribe to SRT subtitles
uv run .claude/skills/video-processor/scripts/video_processor.py transcribe lecture.mp4 lecture.srt --format srt --model small
# 3. Convert to web format
uv run .claude/skills/video-processor/scripts/video_processor.py to-webm lecture.mp4 lecture.webm
FFmpeg and Whisper Integration:
Audio Format for Transcription:
Output Formats:
The script includes comprehensive error handling:
tiny or base models for quick draftssmall or medium for production transcriptionslarge only when maximum accuracy is requiredUser request:
I have an AVI file from my old camera. Can you convert it to MP4?
You would:
Use the to-mp4 command with default settings:
uv run .claude/skills/video-processor/scripts/video_processor.py to-mp4 old_video.avi output.mp4
Confirm the conversion completed successfully
Inform the user about the output file location
User request:
I recorded a lecture video and need a transcript. Can you extract the audio and transcribe it?
You would:
First extract the audio:
uv run .claude/skills/video-processor/scripts/video_processor.py extract-audio lecture.mp4 lecture.wav
Then transcribe using the base model (good balance of speed/accuracy):
uv run .claude/skills/video-processor/scripts/video_processor.py transcribe lecture.mp4 transcript.txt --model base
Share the transcript.txt file with the user
User request:
I need to put this video on my website with subtitles. Can you help?
You would:
Convert to WebM for web optimization:
uv run .claude/skills/video-processor/scripts/video_processor.py to-webm presentation.mp4 presentation.webm
Generate SRT subtitle file:
uv run .claude/skills/video-processor/scripts/video_processor.py transcribe presentation.mp4 subtitles.srt --format srt --model small
Inform user they now have:
User request:
I have a Spanish interview video that needs an accurate transcript for publication.
You would:
Use a larger model with language specified for best accuracy:
uv run .claude/skills/video-processor/scripts/video_processor.py transcribe interview.mp4 transcript.txt --model medium --language es
Optionally create SRT for review:
uv run .claude/skills/video-processor/scripts/video_processor.py transcribe interview.mp4 transcript.srt --format srt --model medium --language es
Review the transcript with the user and make any necessary corrections
User request:
I have a folder of training videos that all need to be converted to WebM and transcribed.
You would:
List all video files in the directory:
ls training_videos/*.mp4
For each video file, run the conversion and transcription:
# For each video: video1.mp4, video2.mp4, etc.
uv run .claude/skills/video-processor/scripts/video_processor.py to-webm training_videos/video1.mp4 output/video1.webm
uv run .claude/skills/video-processor/scripts/video_processor.py transcribe training_videos/video1.mp4 output/video1.txt --model base
# Repeat for each file
Confirm all conversions and transcriptions completed
Provide summary of output files
The video-processor skill provides a unified interface for common video processing tasks:
All operations are handled through a single, well-documented script with sensible defaults and comprehensive error handling.
testing
Audit and improve CLAUDE.md files in repositories. Use when user asks to check, audit, update, improve, or fix CLAUDE.md files. Scans for all CLAUDE.md files, evaluates quality against templates, outputs quality report, then makes targeted updates. Also use when the user mentions "CLAUDE.md maintenance" or "project memory optimization".
tools
Operational tooling for Talos Linux Kubernetes clusters via Sidero Omni with Proxmox infrastructure provider, covering machine classes, CEL storage selectors, and provider lifecycle management.
tools
Best practices for git workflow automation including atomic commits, branch naming, conventional commit format, and changelog generation.
tools
Summarize the current state of the git repository