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
bash
# 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