Overview
Requires ffmpeg and ffprobe on PATH. `burn.py` also needs Pillow (installed via `uv run`). Scripts are Python 3.11+.
Recipes
Copy-paste command sequences agents can run via uv run.
Convert SRT to WebVTT for HTML5 players
uv run scripts/convert.py --input captions.srt --format vtt --output captions.vttFix captions that start 1.5 seconds early
uv run scripts/shift.py --input captions.srt --offset-seconds 1.5Extract embedded subtitles from MKV/MP4
uv run scripts/extract.py --input movie.mkv --output extracted.srtHardcode captions for social delivery
uv run scripts/burn.py --input clip.mp4 --subtitle captions.srt --output clip_subbed.mp4Typical workflow after ASR
Operations
Each script returns structured JSON — see the script contract.
| Op ID | Script | Common flags |
|---|---|---|
subtitles.burn | burn.py | --input |
subtitles.convert | convert.py | --input |
subtitles.extract | extract.py | --input, --output |
subtitles.shift | shift.py | --input |
Do not use for
- Automatic speech recognition (use `speech-captions`)
- FCC/SCC compliance validation (use `captions-compliance`)
- On-screen text / graphics QC (use `vision-analysis`)