translate-video

Translate video subtitles to any language with native-quality refinement. Full pipeline: transcribe → translate → refine → embed RTL-safe subtitles. Use for: translate video, תרגם סרטון, video translation, foreign subtitles, Hebrew subtitles, translated captions.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "translate-video" with this command: npx skills add aviz85/claude-skills-library/aviz85-claude-skills-library-translate-video

Translate Video

End-to-end video translation pipeline. Takes a video, transcribes it, translates to target language with native-speaker refinement, and burns subtitles onto the video.

Usage

/translate-video /path/to/video.mp4 he
/translate-video /path/to/video.mp4 ar
/translate-video /path/to/video.mp4 es

Arguments:

  • $1 - Path to video file (required)
  • $2 - Target language code (default: he). Codes: he, ar, es, fr, de, ru, zh, ja, etc.

Pipeline

Step 1: Transcribe (via /transcribe skill)

Extract audio if video is too large (>25MB audio), then transcribe:

# Extract audio if needed (reduces upload size)
ffmpeg -i "$VIDEO" -vn -acodec libmp3lame -ab 128k "$AUDIO_PATH" -y

# Transcribe using the transcribe skill's script
cd ~/.claude/skills/transcribe/scripts && [ -d node_modules ] || npm install --silent
npx ts-node transcribe.ts -i "$INPUT" -o "$SRT_PATH"

This generates:

  • {basename}.srt - Raw SRT file
  • {basename}.md - Readable text

Step 2: Translate

Read the .md file to understand full context, then translate the .srt file.

Translation rules:

  • Translate ALL subtitle text entries, preserving SRT index numbers and timestamps exactly
  • Do NOT translate proper nouns (product names, people's names, brand names)
  • Keep technical terms that are commonly used untranslated in the target language (API, CLI, SaaS, etc.)
  • Adapt idioms and expressions to natural equivalents in the target language
  • Match the speaker's register (casual/formal) in the translation

Step 3: Semantic Refinement

The raw transcription chunks by time, not meaning. Regroup for the target language:

  1. Read all translated text as continuous prose
  2. Identify natural sentence/clause boundaries in the target language
  3. Regroup words into semantically coherent subtitle entries (max 2 lines per entry, ~40 chars per line)
  4. Adjust timestamps: each entry starts at first word's original time, ends at last word's time
  5. Merge fragmented entries - aim for 150-250 entries for a ~15min video (vs 500-600 raw)
  6. Native speaker test - read each subtitle aloud. If it sounds awkward, rephrase

Quality checklist:

  • No sentence split mid-clause
  • No orphaned words (single word carrying over from previous thought)
  • Punctuation at natural break points
  • Reading pace is comfortable (not too much text per subtitle)
  • Sounds like a native speaker wrote it, not a translation

Step 4: Embed Subtitles (via /embed-subtitles skill)

RTL is handled automatically by the embed-subtitles skill - it detects RTL content and applies Unicode directional marks before embedding. No need to handle RTL here.

Burn the translated SRT onto the video:

cd ~/.claude/skills/embed-subtitles/scripts
npx ts-node embed-subtitles.ts \
  -i "$VIDEO" \
  -s "$TRANSLATED_SRT" \
  -o "$OUTPUT" \
  --font-size 24 --margin 30

Or directly with FFmpeg:

ffmpeg -i "$VIDEO" \
  -vf "subtitles='$TRANSLATED_SRT':force_style='FontName=Arial,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

Step 5: Open Result

open "$OUTPUT"  # macOS

Output Files

All files saved next to the original video:

FileDescription
{name}.srtOriginal language SRT
{name}.mdOriginal readable transcript
{name}_{lang}.srtTranslated + refined SRT (with RTL marks if applicable)
{name}_{lang}_subtitled.mp4Final video with burned-in subtitles

Language Codes

CodeLanguageRTL?
heHebrewYes
arArabicYes
faFarsiYes
enEnglishNo
esSpanishNo
frFrenchNo
deGermanNo
ruRussianNo
zhChineseNo
jaJapaneseNo
ptPortugueseNo
itItalianNo

Examples

Hebrew translation (most common use):

/translate-video ~/Desktop/tutorial.mp4 he

Produces: tutorial_he.srt + tutorial_he_subtitled.mp4

Spanish translation:

/translate-video ~/Desktop/talk.mp4 es

Default (Hebrew):

/translate-video ~/Desktop/video.mp4

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

html-to-pdf

No summary provided by upstream source.

Repository SourceNeeds Review
494-aviz85
General

presentation-architect

No summary provided by upstream source.

Repository SourceNeeds Review
186-aviz85
General

gh-pages-deploy

No summary provided by upstream source.

Repository SourceNeeds Review
146-aviz85
General

youtube-uploader

No summary provided by upstream source.

Repository SourceNeeds Review
106-aviz85