一键导入
embed-subtitles
Burn subtitles onto videos using FFmpeg. Use for: hardcode subtitles, embed captions, video subtitling.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Burn subtitles onto videos using FFmpeg. Use for: hardcode subtitles, embed captions, video subtitling.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
WhatsApp automation (Green API primary, WAHA fallback). Use for: send/receive messages, send voice/images/files, retrieve incoming messages (text, voice, images), transcribe voice messages. WAME = 'WhatsApp ME' = send me by WhatsApp.
Spin up an instant browser voice session (OpenAI Realtime gpt-realtime-2) to close a topic in a short conversation instead of working through documents. Generic & white-label - works for any process. Supports live data work (read/update files, JSON, run commands), and distill mode (no tools, ends with a structured deliverable). Has a generic canvas that can display images, markdown, code, html, json, video, audio - perfect for "let's go over X" flows where the agent shows you items one by one and you react in real time. Use when user says "let's close this in a voice call", "run a quick voice session about X", "תפעיל שיחה קולית", "let's go over the [images/leads/PRs/files/notes]", or when a task is faster as a 3-minute conversation than as a document edit.
The 10x10 method — generate breadth, then converge with human judgment. Use whenever a single AI output won't nail it and quality matters (design, copy, naming, posters, messaging, strategy options, code approaches), OR when the user says '10x10', 'ten by ten', 'give me 10 options', 'show me variations', or asks to refine/tighten an output instead of round-after-round corrections.
Never teach a principle without an immediate rep. When designing ANY teaching content — a workshop, a lesson plan, a deck, a course module, a webinar, an explainer video, an educational post — pair every theoretical unit with an embodiment the learner does right now. Use whenever building or reviewing teaching material, lesson plans, workshop flows, course outlines, or training content, OR when the user says 'teach-by-doing', 'add an exercise', 'make it hands-on', 'don't leave it abstract', 'תרגיל לכל עיקרון', 'הטמעה מיידית'.
Inject creative absurdity to break AI pattern-thinking before creative tasks. Randomly samples surreal micro-stories to spark unconventional thinking. Use before brainstorming, naming, writing, or any task needing fresh perspective.
Deploy static or interactive frontend content to GitHub Pages using gh CLI. Use when the user wants to publish, share, or make accessible any HTML/CSS/JS content - including demos, prototypes, visualizations, landing pages, portfolios, documentation, interactive tools, games, or any browser-based project. Activate whenever content needs to be publicly viewable via URL, not just when "website" is explicitly mentioned.
基于 SOC 职业分类
| name | embed-subtitles |
| description | Burn subtitles onto videos using FFmpeg. Use for: hardcode subtitles, embed captions, video subtitling. |
Burn SRT subtitles into video files using FFmpeg.
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.
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
| Option | Short | Default | Description |
|---|---|---|---|
--input | -i | (required) | Input video file |
--subtitles | -s | (required) | SRT subtitle file |
--output | -o | (required) | Output video file |
--font-size | 20 | Font size in pixels | |
--font-name | Arial | Font family name | |
--position | bottom | Subtitle position: top, center, bottom | |
--margin | 25 | Margin from edge in pixels | |
--color | white | Text color | |
--outline | 2 | Outline thickness | |
--shadow | 1 | Shadow depth | |
--credit | Credit text to show at end | ||
--credit-position | top | Credit position: top, bottom | |
--credit-duration | 2.5 | Credit display duration in seconds | |
--extract-frame | Extract frame at specified second for verification |
top - Near top of video (good for credits, avoids bottom burned-in text)center - Middle of videobottom - Near bottom of video (traditional subtitle position)Before embedding ANY SRT file, Claude MUST check if the content is RTL.
Read the SRT file and check if the majority of text lines contain Hebrew/Arabic/Farsi characters:
\u0590-\u05FF\u0600-\u06FF\u0750-\u077FIf RTL content is detected, apply the fix BEFORE passing to FFmpeg.
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))
"
This fixes: English words at line start, periods/commas on wrong side, mixed bidi text.
Claude should analyze the SRT content intelligently:
--extract-frame to verify subtitle positioning before final render