Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
aviz85 avatar

Translate Video

  • 41 installs
  • 44 repo stars
  • Updated July 8, 2026
  • aviz85/claude-skills-library

translate-video is a Claude skill that runs a full transcribe, translate, refine, and embed pipeline to add native-quality translated subtitles to a video.

About

translate-video is an end-to-end video translation pipeline that transcribes, translates, refines subtitles, and embeds RTL-safe captions into the video via ffmpeg. A developer uses it to produce foreign-language or Hebrew subtitles for shorts or regular videos, with per-mode line and character limits. It reuses the transcribe skill and bundles Python scripts for timestamps, post-processing, and RTL fixes.

  • End-to-end pipeline: transcribe, translate, refine subtitles, embed RTL-safe captions
  • Shorts and regular modes with different subtitle line and character limits
  • RTL fix step for Hebrew, Arabic, and Farsi

Translate Video by the numbers

  • 41 all-time installs (skills.sh)
  • Ranked #923 of 1,337 Generative Media skills by installs in the Skillselion catalog
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
At a glance

translate-video capabilities & compatibility

Requires ffmpeg and the transcribe skill's ElevenLabs API key; see DEPENDENCIES.md.

Capabilities
transcribe · speech generator · youtube downloader
Use cases
translation · transcription
Platforms
macOS
Pricing
Bring your own API key
From the docs

What translate-video says it does

End-to-end video translation pipeline: transcribe → translate → refine subtitles → embed.
SKILL.md
Enforces MAX 2 lines, MAX chars/line (38 for --shorts, 42 for --regular):
SKILL.md
Do NOT use Docker ffmpeg for long videos on ARM Mac — x86 emulation is ~100x slower.
SKILL.md
npx skills add https://github.com/aviz85/claude-skills-library --skill translate-video

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs41
repo stars44
Last updatedJuly 8, 2026
Repositoryaviz85/claude-skills-library

What it does

Translate a video's subtitles into another language and embed refined, RTL-safe captions into the final video.

Who is it for?

Producing translated or Hebrew subtitles for a video and embedding them, including RTL languages.

Skip if: Simple one-off transcription without translation or embedding, which the transcribe skill handles.

When should I use this skill?

User asks to translate a video, add foreign or Hebrew subtitles, or produce translated captions.

What you get

A final subtitled video plus original and translated SRT files and a readable transcript.

  • Original SRT
  • Translated refined SRT
  • Readable transcript md

By the numbers

  • 6-step pipeline (transcribe to embed)
  • Line limits 38 chars for shorts, 42 for regular

Files

SKILL.mdMarkdownGitHub ↗

Translate Video

End-to-end video translation pipeline: transcribe → translate → refine subtitles → embed.

Usage

/translate-video /path/to/video.mp4 he --regular
/translate-video /path/to/video.mp4 he --shorts
  • $1 — video file path (required)
  • $2 — target language code (default: he). See references/languages.md
  • $3--shorts (TikTok/Reels) or --regular (YouTube/tutorials). If omitted, ask the user.

---

Pipeline

Step 1: Transcribe

If audio > 25MB, extract first:

ffmpeg -i "$VIDEO" -vn -acodec libmp3lame -ab 128k "$AUDIO.mp3" -y

Transcribe with word-level JSON (always include --json):

cd ~/.claude/skills/transcribe/scripts && [ -d node_modules ] || npm install --silent
npx ts-node transcribe.ts -i "$INPUT" -o "$BASENAME.srt" --json

Produces: {basename}.srt, {basename}.md, {basename}_transcript.json

Step 2: Translate

Read .md for full context. Translate the .srt — preserve all timestamps and index numbers exactly. See translation rules in references/modes.md.

Step 3: Refine Subtitles

Read references/modes.md for full rules.

--shorts: Fix text only, preserve all timestamps. No merging.

--regular: Merge into full sentences using word-level timestamps. 1. Plan subtitle groups from .md (word counts per group) 2. Fill GROUP_SIZES in scripts/build-timestamps.py and run it 3. Replace English text in output SRT with translated text

Step 4: Post-process (both modes)

Enforces MAX 2 lines, MAX chars/line (38 for --shorts, 42 for --regular):

python3 ~/.claude/skills/translate-video/scripts/postprocess.py "$SRT" 42

Step 5: RTL Fix (Hebrew / Arabic / Farsi only)

python3 ~/.claude/skills/translate-video/scripts/rtl-fix.py "$SRT"

Step 6: Embed & Open

~/.local/bin/ffmpeg-ass -i "$VIDEO" \
  -vf "subtitles=$SRT:force_style='FontSize=24,PrimaryColour=&H00FFFFFF,OutlineColour=&H00000000,Outline=2,Shadow=1,Alignment=2,MarginV=30'" \
  -c:v libx264 -preset fast -crf 23 -c:a copy "$OUTPUT" -y
open "$OUTPUT"
⚠️ Do NOT use Docker ffmpeg for long videos on ARM Mac — x86 emulation is ~100x slower.

---

Output Files

FileDescription
{name}.srtOriginal language SRT
{name}.mdReadable transcript
{name}_transcript.jsonWord-level timestamps
{name}_{lang}.srtTranslated + refined SRT
{name}_{lang}_subtitled.mp4Final video

Supporting Files

FilePurpose
references/modes.mdDetailed --shorts and --regular rules
references/languages.mdLanguage codes + RTL flags
scripts/build-timestamps.pyWord-index cursor for --regular timestamps
scripts/postprocess.pyEnforce line limits on any SRT
scripts/rtl-fix.pyApply RTL Unicode markers

Related skills

FAQ

What is the difference between shorts and regular modes?

--shorts fixes text only and preserves timestamps with a 38 char/line limit, while --regular merges into full sentences with a 42 char/line limit.

How are Hebrew and Arabic handled?

A dedicated RTL fix step applies RTL Unicode markers for Hebrew, Arabic, and Farsi.

Generative Mediallmautomation

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.