Subtitle Pipeline (Engine Scope)
This skill is now focused on subtitle processing only.
It handles:
- Listing subtitle streams
- Extracting subtitle tracks
- Transcribing audio/video to SRT (Whisper)
- Translating subtitle tracks (OpenAI-compatible APIs)
- Merging multilingual tracks into bilingual/multilingual SRT
Workflow Decision Tree
When processing a video file, choose the path based on available subtitles:
- Multiple subtitles available → merge selected tracks.
- Only one subtitle available → translate to target language if needed.
- No subtitles available → transcribe with Whisper, then optionally translate/merge.
Commands
1) List streams
python skills/subtitle-pipeline/scripts/pipeline.py list movie.mkv
2) Extract track
python skills/subtitle-pipeline/scripts/pipeline.py extract movie.mkv --to-srt
python skills/subtitle-pipeline/scripts/pipeline.py extract movie.mkv --language eng --to-srt
3) Transcribe (Whisper)
python skills/subtitle-pipeline/scripts/pipeline.py transcribe movie.mkv
python skills/subtitle-pipeline/scripts/pipeline.py transcribe movie.mkv --language en --model small
4) Translate
# Requires OPENAI_API_KEY (or --api-key)
python skills/subtitle-pipeline/scripts/pipeline.py translate movie.eng.srt --target-language "Chinese"
5) Merge
python skills/subtitle-pipeline/scripts/pipeline.py merge movie.mkv --indices 0 1 --output movie.bilingual.srt
python skills/subtitle-pipeline/scripts/pipeline.py --verbose merge movie.mkv --languages eng chi
Output Naming (Engine)
movie.eng.srt(source/reference)movie.zho.srt(translated output)movie.eng-chi.merged.srt(merged bilingual output)
Guardrails
- Prefer subtitle-only operations; avoid video re-encoding.
- Use
-c:s copywhere possible for lossless extraction. - Keep translation alignment stable with source timestamps.
- Treat long local ASR jobs as expensive; split/chunk if needed.
Reference
references/subtitle-notes.md