home / skills / openclaw / skills / video-subtitles
This skill generates movie-style subtitles from video or audio, supports Hebrew and English transcription, translation, and optional burn-in into video.
npx playbooks add skill openclaw/skills --skill video-subtitlesReview the files below or copy the command above to add this skill to your agents.
---
name: video-subtitles
description: Generate SRT subtitles from video/audio with translation support. Transcribes Hebrew (ivrit.ai) and English (whisper), translates between languages, burns subtitles into video. Use for creating captions, transcripts, or hardcoded subtitles for WhatsApp/social media.
---
# 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`**: Creates `video.srt` alongside input
- **With `--burn`**: Creates `video_subtitled.mp4` with 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
This skill generates movie-style SRT subtitles from video or audio files, with strong Hebrew and English transcription support and optional translation. It can produce timestamped SRT files, plain transcripts, or hardcode (burn) subtitles into video for universal playback on platforms like WhatsApp. The tool auto-detects language and picks the best model, using ivrit.ai for Hebrew and Whisper for English.
The skill transcribes input audio using ivrit.ai for Hebrew and OpenAI Whisper large-v3 for English, or auto-selects the model based on detected language. It formats output into natural subtitle breaks (max 42 chars/line, 1–7s per cue), can translate Hebrew to English, and writes SRT files. Optionally it uses ffmpeg to burn subtitles into the video creating a hardcoded MP4 that displays across all players.
What languages are supported for transcription?
The skill supports Hebrew (ivrit.ai) and English (OpenAI Whisper). It can auto-detect language or you can force it with --lang.
How do I make subtitles appear on all devices?
Use the --burn option to hardcode subtitles into the video with ffmpeg; burned-in subtitles are always visible regardless of player.