plugins/translate-video/skills/translate-video/SKILL.md
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.
npx skillsauth add aviz85/claude-skills-library translate-videoInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.
/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./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 textRead the .md file to understand full context, then translate the .srt file.
Translation rules:
The raw transcription chunks by time, not meaning. Regroup for the target language:
Quality checklist:
/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
open "$OUTPUT" # macOS
All files saved next to the original video:
| File | Description |
|------|-------------|
| {name}.srt | Original language SRT |
| {name}.md | Original readable transcript |
| {name}_{lang}.srt | Translated + refined SRT (with RTL marks if applicable) |
| {name}_{lang}_subtitled.mp4 | Final video with burned-in subtitles |
| Code | Language | RTL? |
|------|----------|------|
| he | Hebrew | Yes |
| ar | Arabic | Yes |
| fa | Farsi | Yes |
| en | English | No |
| es | Spanish | No |
| fr | French | No |
| de | German | No |
| ru | Russian | No |
| zh | Chinese | No |
| ja | Japanese | No |
| pt | Portuguese | No |
| it | Italian | No |
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
tools
Start real-time microphone transcription using ElevenLabs Scribe v2 Realtime. Use when user wants to start live transcription, dictation, or real-time speech capture. Triggers on: 'תתחיל תמלול', 'תמלל בזמן אמת', 'start transcribing', 'live transcribe', 'הקלט מה שאני אומר'. After starting, tell user they can say 'אוקי זה מספיק בוא נעצור את התמלול' to stop, or use /live-transcribe-stop.
tools
Stop a running real-time transcription. Use when user wants to stop/end live transcription. Triggers on: 'עצור תמלול', 'תעצור את התמלול', 'stop transcribing', 'end transcription', 'תפסיק להקליט'.
testing
Read the latest real-time transcription. Use when user asks to see, read, or show a transcription that was captured via live-transcribe. Triggers on: 'תקריא תמלול', 'מה תמללתי', 'התמלול האחרון', 'show transcription', 'what did I say', 'read the transcript', 'מה נכתב בתמלול', 'תראה לי את התמלול'. Also use when user references transcription content without being explicit — e.g. 'summarize what I said', 'translate the transcription'.
development
Fetch X (Twitter) bookmarks via the official X API v2. Downloads recent bookmarks with text, images, and videos into a local folder. Use whenever user asks to grab/download/export their X bookmarks, save bookmarked tweets, or pull recent saved posts from X/Twitter. Uses OAuth 2.0 user-context auth (one-time browser consent, then refresh-token forever).