mcpField
T
translate-video

translate-video

github.com/aviz85クリエイティブ・メディア5044 回インストール16 週間前に更新
リポジトリ

translate-video について

translate-videoは、動画を文字起こしして字幕を翻訳・調整し、字幕を埋め込んだ動画を作るスキルです。ショート動画と通常の動画で異なる字幕処理ルールを使います。

主な機能

  1. 01単語単位のタイムスタンプ付き文字起こし
  2. 02タイミングを保った字幕翻訳
  3. 03ショート動画・通常動画向けの字幕調整
  4. 04行の長さ制限と右から左への文字処理
  5. 05字幕を出力動画に埋め込み

活用シーン

  1. 01TikTokやReels向けの翻訳字幕を作成
  2. 02YouTubeやチュートリアル動画に字幕を追加

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/aviz85/claude-skills-library --skill translate-video

インストール後、Claude Code で/translate-videoを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

DEPENDENCIES.md
references/
languages.md
modes.md
scripts/
build-timestamps.py
postprocess.py
rtl-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: 単語レベルのタイムスタンプを使って、字幕を完全な文にまとめます。

  1. .md をもとに字幕グループを計画します(各グループの単語数)
  2. scripts/build-timestamps.py の GROUP_SIZES を設定して実行します
  3. 出力された 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.pyRTL の Unicode マーカーを適用

コメント