home / skills / openclaw / skills / video-subtitles

video-subtitles skill

/skills/ngutman/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-subtitles

Review the files below or copy the command above to add this skill to your agents.

Files (3)
SKILL.md
2.2 KB
---
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

Overview

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.

How this skill works

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.

When to use it

  • Create accurate Hebrew or English captions for uploaded videos
  • Produce SRT files for accessibility, SEO, or editing workflows
  • Hardcode subtitles for platforms that don’t support soft subtitles (e.g., WhatsApp, Instagram stories)
  • Translate Hebrew dialogue into English for multilingual audiences
  • Generate plain transcripts for indexing, notes, or content repurposing

Best practices

  • Preprocess audio quality where possible (reduce noise, normalize levels) to improve transcription accuracy
  • Force the input language when auto-detection fails using the --lang flag
  • Use --srt for editable subtitles and --burn when hardcoding is required for playback compatibility
  • Verify and lightly proofread critical translations or timestamps before publishing
  • Install ffmpeg-full for reliable burn-in rendering and allow model downloads (≈3GB) on first run

Example use cases

  • Add captions to marketing videos for social media and increase engagement
  • Create an English subtitle track for Hebrew interviews or talks
  • Hardcode subtitles into a video for WhatsApp shareability
  • Generate plain transcripts for episode show notes or search indexing
  • Produce SRT files to import into editors or subtitle platforms

FAQ

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.