video-subtitles
SKILL.md
Video Subtitles
Generate movie-style subtitles from video or audio files. Supports transcription, translation, and burning subtitles directly into video.
Features
- Hebrew: ivrit.ai fine-tuned model (best Hebrew transcription)
- English: OpenAI Whisper large-v3
- Auto-detect: Automatically detects language and selects best model
- Translation: Translate Hebrew → English
- Burn-in: Hardcode subtitles into video (visible everywhere, including WhatsApp)
- Movie-style: Natural subtitle breaks (42 chars/line, 1-7s duration)
Quick Start
# Plain transcript
./scripts/generate_srt.py video.mp4
# Generate SRT file
./scripts/generate_srt.py video.mp4 --srt
# Burn subtitles into video (always visible)
./scripts/generate_srt.py video.mp4 --srt --burn
# Translate to English + burn in
./scripts/generate_srt.py video.mp4 --srt --burn --translate en
# Force language
./scripts/generate_srt.py video.mp4 --lang he # Hebrew
./scripts/generate_srt.py video.mp4 --lang en # English
Options
| Flag | Description |
|---|---|
--srt |
Generate SRT subtitle file |
--burn |
Burn subtitles into video (hardcoded, always visible) |
--embed |
Embed soft subtitles (toggle in player) |
--translate en |
Translate to English |
--lang he/en |
Force input language |
-o FILE |
Custom output path |
Output
- Default: Plain text transcript to stdout
- With
--srt: Createsvideo.srtalongside input - With
--burn: Createsvideo_subtitled.mp4with hardcoded subs
Requirements
- uv: Python package manager (auto-installs dependencies)
- ffmpeg-full: For burning subtitles (
brew install ffmpeg-full) - Models: ~3GB each, auto-downloaded on first use
Subtitle Style
- Font size 12, white text with black outline
- Bottom-aligned, movie-style positioning
- Max 42 chars/line, 2 lines max
- Natural breaks at punctuation and pauses