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

Embed Subtitles

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

Embed Subtitles is a Claude skill that burns SRT subtitles onto video files using FFmpeg, with automatic right-to-left language detection.

About

Embed Subtitles burns SRT subtitle files onto video using FFmpeg. A developer runs its TypeScript script to hardcode captions into an MP4 with control over font size, position, color, and credits. It automatically detects right-to-left languages like Hebrew and Arabic and applies Unicode directional marks so the text renders correctly.

  • Burns SRT subtitles into video files using FFmpeg with configurable styling
  • Auto-detects Hebrew/Arabic/Farsi RTL text and wraps lines with directional marks before rendering
  • Options for font, position, color, outline, shadow, and end-credit overlays

Embed Subtitles by the numbers

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

embed-subtitles capabilities & compatibility

free (local FFmpeg)

Capabilities
video processing · subtitle burning · srt embedding
Use cases
video generation · transcription · translation
Pricing
Free
From the docs

What embed-subtitles says it does

Burn SRT subtitles into video files using FFmpeg.
SKILL.md
Before embedding ANY SRT file, Claude MUST check if the content is RTL.
SKILL.md
FFmpeg (must be installed and in PATH)
SKILL.md
npx skills add https://github.com/aviz85/claude-skills-library --skill embed-subtitles

Add your badge

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

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

What it does

Hardcoding SRT subtitles into a video with FFmpeg, including automatic RTL handling for Hebrew and Arabic captions.

Who is it for?

Burning SRT captions into a video, especially Hebrew or Arabic subtitles needing RTL correction.

Skip if: Generating the transcript itself (use the transcribe skill first) or soft/toggleable subtitle tracks.

When should I use this skill?

When the user wants to hardcode subtitles, embed captions, or burn an SRT into a video.

What you get

A video file with subtitles burned in, correctly styled and RTL-corrected.

  • output video with burned-in subtitles

By the numbers

  • exposes 14 command-line options
  • handles 3 RTL script ranges (Hebrew, Arabic, Farsi)

Files

SKILL.mdMarkdownGitHub ↗

Embed Subtitles

Burn SRT subtitles into video files using FFmpeg.

Prerequisites

No SRT file? Use the transcribe skill first to generate subtitles from audio/video.

Need translation? After transcribing, read the SRT, translate each entry preserving timestamps, write new SRT file. No API needed.

Quick Start

cd ~/.claude/skills/embed-subtitles/scripts

# Burn SRT into video
npx ts-node embed-subtitles.ts -i video.mp4 -s subtitles.srt -o output.mp4

# Custom styling
npx ts-node embed-subtitles.ts -i video.mp4 -s subtitles.srt -o output.mp4 \
  --font-size 24 --position bottom --margin 40

# Add credit text overlay at end
npx ts-node embed-subtitles.ts -i video.mp4 -s subtitles.srt -o output.mp4 \
  --credit "Your Name" --credit-position top

Options

OptionShortDefaultDescription
--input-i(required)Input video file
--subtitles-s(required)SRT subtitle file
--output-o(required)Output video file
--font-size20Font size in pixels
--font-nameArialFont family name
--positionbottomSubtitle position: top, center, bottom
--margin25Margin from edge in pixels
--colorwhiteText color
--outline2Outline thickness
--shadow1Shadow depth
--creditCredit text to show at end
--credit-positiontopCredit position: top, bottom
--credit-duration2.5Credit display duration in seconds
--extract-frameExtract frame at specified second for verification

Position Values

  • top - Near top of video (good for credits, avoids bottom burned-in text)
  • center - Middle of video
  • bottom - Near bottom of video (traditional subtitle position)

Dependencies

  • FFmpeg (must be installed and in PATH)

RTL Auto-Detection & Fix (CRITICAL)

Before embedding ANY SRT file, Claude MUST check if the content is RTL.

Detection

Read the SRT file and check if the majority of text lines contain Hebrew/Arabic/Farsi characters:

  • Hebrew range: \u0590-\u05FF
  • Arabic range: \u0600-\u06FF
  • Farsi additional: \u0750-\u077F

If RTL content is detected, apply the fix BEFORE passing to FFmpeg.

RTL Fix

Wrap each text line (not index numbers, not timestamps) with Unicode directional marks:

python3 -c "
import re

with open('SRT_FILE_PATH', 'r', encoding='utf-8') as f:
    content = f.read()

lines = content.split('\n')
result = []
for line in lines:
    stripped = line.strip()
    if stripped and not re.match(r'^\d+$', stripped) and not re.match(r'\d{2}:\d{2}:\d{2}', stripped):
        line = '\u202B' + line + '\u202C'
    result.append(line)

with open('SRT_FILE_PATH', 'w', encoding='utf-8') as f:
    f.write('\n'.join(result))
"
  • U+202B (RLE - Right-to-Left Embedding): forces RTL paragraph direction
  • U+202C (PDF - Pop Directional Formatting): closes the embedding

This fixes: English words at line start, periods/commas on wrong side, mixed bidi text.

When to apply

Claude should analyze the SRT content intelligently:

  • If most text is Hebrew/Arabic/Farsi → apply RTL fix
  • If mixed but predominantly RTL → apply RTL fix
  • If LTR (English, Spanish, etc.) → skip
  • No flag needed from the user - detect automatically

Notes

  • For Arabic credits, use English text due to FFmpeg drawtext RTL limitations
  • Use --extract-frame to verify subtitle positioning before final render

Related skills

Generative Mediaintegrations

This week in AI coding

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

unsubscribe anytime.