translate-video について
translate-videoは、動画を文字起こしして字幕を翻訳・調整し、字幕を埋め込んだ動画を作るスキルです。ショート動画と通常の動画で異なる字幕処理ルールを使います。
主な機能
- 01単語単位のタイムスタンプ付き文字起こし
- 02タイミングを保った字幕翻訳
- 03ショート動画・通常動画向けの字幕調整
- 04行の長さ制限と右から左への文字処理
- 05字幕を出力動画に埋め込み
活用シーン
- 01TikTokやReels向けの翻訳字幕を作成
- 02YouTubeやチュートリアル動画に字幕を追加
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ aviz85/ claude-skills-library --skill translate-videoインストール後、Claude Code で/translate-videoを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
DEPENDENCIES.mdreferences/languages.mdmodes.mdscripts/build-timestamps.pypostprocess.pyrtl-fix.py詳細
動画を翻訳
動画のエンドツーエンド翻訳パイプライン:文字起こし → 翻訳 → 字幕の調整 → 埋め込み。
使用方法
/translate-video /path/to/video.mp4 he --regular
/translate-video /path/to/video.mp4 he --shorts
$1— 動画ファイルのパス(必須)$2— 翻訳先の言語コード(デフォルト:he)。references/languages.md を参照してください。$3—--shorts(TikTok/Reels)または--regular(YouTube/チュートリアル)。省略された場合は、ユーザーに確認してください。
パイプライン
ステップ 1:文字起こし
音声が 25MB を超える場合は、先に抽出します。
ffmpeg -i "$VIDEO" -vn -acodec libmp3lame -ab 128k "$AUDIO.mp3" -y
単語レベルの JSON 形式で文字起こしします(必ず --json を指定してください)。
cd ~/.claude/skills/transcribe/scripts && [ -d node_modules ] || npm install --silent
npx ts-node transcribe.ts -i "$INPUT" -o "$BASENAME.srt" --json
生成されるファイル:{basename}.srt、{basename}.md、{basename}_transcript.json
ステップ 2:翻訳
全体の文脈を把握するため、.md を読みます。.srt を翻訳し、すべてのタイムスタンプとインデックス番号を正確に保持してください。翻訳ルールについては、references/modes.md を参照してください。
ステップ 3:字幕の調整
詳細なルールについては、references/modes.md を参照してください。
--shorts: タイムスタンプをすべて保持し、テキストのみを修正します。結合はしません。
--regular: 単語レベルのタイムスタンプを使って、字幕を完全な文にまとめます。
.mdをもとに字幕グループを計画します(各グループの単語数)- scripts/build-timestamps.py の
GROUP_SIZESを設定して実行します - 出力された SRT の英語テキストを翻訳文に置き換えます
ステップ 4:後処理(両モード共通)
最大 2 行、1 行あたり最大文字数(--shorts は 38 文字、--regular は 42 文字)を適用します。
python3 ~/.claude/skills/translate-video/scripts/postprocess.py "$SRT" 42
ステップ 5:RTL の修正(ヘブライ語/アラビア語/ペルシア語のみ)
python3 ~/.claude/skills/translate-video/scripts/rtl-fix.py "$SRT"
ステップ 6:埋め込みと起動
~/.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"
⚠️ ARM Mac で長時間の動画に Docker の ffmpeg を使用しないでください。x86 エミュレーションは約 100 倍遅くなります。
出力ファイル
| ファイル | 説明 |
|---|---|
{name}.srt | 元の言語の SRT |
{name}.md | 読みやすい文字起こし |
{name}_transcript.json | 単語レベルのタイムスタンプ |
{name}_{lang}.srt | 翻訳・調整済み SRT |
{name}_{lang}_subtitled.mp4 | 最終動画 |
関連ファイル
| ファイル | 用途 |
|---|---|
| references/modes.md | --shorts と --regular の詳細ルール |
| references/languages.md | 言語コードと RTL フラグ |
| scripts/build-timestamps.py | --regular のタイムスタンプ用、単語インデックスのカーソル |
| scripts/postprocess.py | 任意の SRT に行数制限を適用 |
| scripts/rtl-fix.py | RTL の Unicode マーカーを適用 |