youtube-transcribe-local
Transcribe a local audio or video file by composing ffmpeg normalization and the whisper-transcribe Rust binary.
Script
<skill-path>/scripts/local-transcribe <input-file> [options]
Options:
--format srt|txt|vtt|json Output format. Default: srt (file next to input).
--model NAME Model name. Default: large-v3-turbo.
--output-prefix PATH Write output to <PATH>.<ext>. Default: next to input.
--language CODE Language code (e.g. en, ja). Default: auto-detect.
--gpu Force GPU/Metal acceleration.
--no-gpu Force CPU mode.
-h, --help Show usage.
Workflow
- Verify
~/.local/bin/whisper-transcribeand the model exist; exit early with a setup hint if not. - ffmpeg: transcode input → 16 kHz mono PCM WAV (temp file, deleted on exit).
- Run
whisper-transcribeon the WAV. - For
--format srt|vtt|json: write<output-prefix>.<ext>and printwrote <path>. For--format txt: stream plain transcript to stdout.
When to use this skill
- The user has a local file and wants a transcript or subtitles.
- Prefer this over invoking
whisper-transcribedirectly: this skill handles the ffmpeg transcoding step and sets the correct output prefix relative to the original input.
Long content
Long transcripts can be tens of KB. This skill runs with context: fork so the transcript stays out of the calling session's prompt cache. Return the artifact path and a short summary to the parent session.
Examples
# SRT subtitles (default)
./scripts/local-transcribe ~/Downloads/lecture.m4a
# wrote /Users/you/Downloads/lecture.srt
# Plain text to stdout
./scripts/local-transcribe ~/Downloads/lecture.m4a --format txt > transcript.txt
# Japanese audio, JSON output
./scripts/local-transcribe interview.mp4 --language ja --format json
# wrote /path/to/interview.json