Overview
Requires ffmpeg on PATH. Transcription scripts need Python 3.11+ with faster-whisper (installed automatically via `uv run`). CPU-friendly `tiny` model is the default.
Recipes
Copy-paste command sequences agents can run via uv run.
Transcribe a clip to SRT + JSON
uv run scripts/transcribe.py --input interview.mp4 --model tinyDetect language before choosing a model
uv run scripts/detect-language.py --input interview.mp4Build SRT from transcript text (no ASR)
uv run scripts/to-srt.py --text "Hello world. This is a test." --duration 6 --output captions.srtBuild VTT from transcribe JSON
uv run scripts/to-vtt.py --segments-json interview_transcript.json --output captions.vttEnd-to-end caption pipeline
Operations
Each script returns structured JSON — see the script contract.
| Op ID | Script | Common flags |
|---|---|---|
speech_captions.detect_language | detect-language.py | --input |
speech_captions.to_srt | to-srt.py | --input |
speech_captions.to_vtt | to-vtt.py | --input |
speech_captions.transcribe | transcribe.py | --input |
Do not use for
- Burning subtitles into video (use `subtitles/burn.py`)
- Broadcast SCC/SMPTE-TT export (use `captions-compliance`)
- Video or audio transforms (use `video-transformation` / `audio`)