mcpField
W
wjs-localizing-video

wjs-localizing-video

github.com/jianshuoクリエイティブ・メディア137163 回インストール今日更新
リポジトリ

wjs-localizing-video について

wjs-localizing-video は、文字起こし、字幕翻訳、吹き替え、字幕処理を含む動画ローカライズをまとめて調整するスキルです。4 つの専用サブスキルに処理を委ね、依頼に応じて不要な工程を省きます。

主な機能

  1. 01文字起こし、翻訳、吹き替え、字幕処理の調整
  2. 02依頼内容に応じた工程の選択
  3. 03TaskCreate による進捗管理
  4. 04字幕のみや吹き替えのみの工程に対応
  5. 05各工程の入出力とファイル名を規定

活用シーン

  1. 01外国語動画に翻訳字幕と吹き替えを作成
  2. 02動画の文字起こしと字幕翻訳のみを実施
  3. 03既存の SRT からローカライズを続行
  4. 04複数工程の動画処理の進捗を確認

インストール

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

$npx skills add https://github.com/jianshuo/claude-skills --skill wjs-localizing-video

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

同梱ファイル

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

.gitignore
.publish-manifest.json
LICENSE
README.md

詳細

wjs-localizing-video(オーケストレーター)

このスキルは分割されました。 以前は1つの1300行の汎用スキルでしたが、現在は目的別の4つのサブスキルになっています。このオーケストレーターは、ユーザーが1回のリクエストで全パイプラインを依頼した場合にのみ使用してください。個々のステップについては、対応するサブスキルに直接振り分けてください。

4つのサブスキル

ステップスキル入力出力
1. ASR/wjs-transcribing-audio音声/動画 + ソース言語ソース言語のSRT
2. 翻訳/wjs-translating-subtitlesソースSRT + ターゲット言語ターゲットSRT(句読点で区切り)
3. 吹き替え(任意)/wjs-dubbing-video動画 + ターゲットSRT + 音声*_<lang>_dub.mp4(TTS音声に差し替え)
4. 字幕焼き込み/ミキシング(任意)/wjs-burning-subtitles動画 + SRT + (任意の吹き替え)最終MP4(エンコード1回)

ステップ3と4は任意で、互いに独立しています。「字幕のみ」の作業では、通常、ステップ2の後に /wjs-burning-subtitles でソフトマックスすれば完了です。「吹き替えのみ」の作業では、通常、ステップ3で完了です。

このオーケストレーターとサブスキルのどちらを呼び出すか

ユーザーが一連の作業をまとめて依頼した場合は、このスキル(wjs-localizing-video)を呼び出してください。

  • 「このスペイン語の動画を、中国語字幕と中国語の吹き替え付きにして」
  • 「このスペイン語の動画を、吹き替え付きで英語に翻訳して」
  • 「全部やって:文字起こし、翻訳、字幕焼き込み、吹き替え、ミキシング」

ユーザーが1つのステップを依頼した場合は、サブスキルを直接呼び出してください。

  • 「この音声を文字起こしして」 → /wjs-transcribing-audio
  • 「このSRTを中国語に翻訳して」 → /wjs-translating-subtitles
  • 「この動画に中国語の音声を付けて」 → /wjs-dubbing-video
  • 「字幕を動画に焼き込んで」 → /wjs-burning-subtitles

サブスキルはより目的が絞られており、入出力の仕様も明確です。依頼が1つのステップだけの場合は、このオーケストレーターを経由しないでください。不要なドキュメントを読むことになるだけです。

進捗チェックリスト(サブスキルを呼び出す前に最初に行う)

パイプラインには最大4つのステップがあり、完了まで数分かかります。ユーザーには、長い無反応の後に完成ファイルだけを見せるのではなく、進行状況をリアルタイムで確認できるようにしてください。最初のサブスキルを呼び出す前に、TaskCreateのチェックリストで予定しているステップを提示してください。各ステップを開始したらタスクを in_progress に更新し、完了したら completed にします。Claude Codeでは、進捗に応じてチェックが付くチェックリストがUIに表示されます。

作成するタスク

ユーザーの依頼に応じて、4つのステップのうち実行するものを選んでください。

ユーザーの依頼作成するタスク
ローカライズ一式(字幕 + 吹き替え + 最終ミックス)① 文字起こし ② 翻訳 ③ 吹き替え ④ 字幕焼き込み + ミキシング
字幕のみ(音声は変更しない)① 文字起こし ② 翻訳 ③ 字幕焼き込み(またはソフトマックス)
吹き替えのみ(焼き込みなし)① 文字起こし ② 翻訳 ③ 吹き替え
ユーザーがソースSRTをすでに持っている①をスキップし、残りのステップのみ作成
ユーザーがターゲットSRTをすでに持っている①と②をスキップし、残りのステップのみ作成

実行しないステップのタスクは作成しないでください。最後に未チェックの項目が残ると、「スキップした」ではなく「忘れた」と受け取られます。

タスクの件名の付け方

以下の「最終応答テンプレート」で使うラベルと同じものを使用してください。進行中のチェックリストと完了時の概要が同じ内容になります。

  • 文字起こし <source-lang>(例:文字起こし スペイン語)
  • 翻訳 → <target-lang>(例:翻訳 → 中国語)
  • 吹き替え <target-lang>(例:吹き替え 中国語 (高冷御姐 -8%))
  • 字幕焼き込み + 原音ベッド <bed>(例:字幕焼き込み + 原音ベッド 0.18)

activeForm には、進行中の形を使用してください(文字起こし中…、翻訳中…、吹き替え中…、合成中…)。

状態の管理
  • in_progress にするのは、現在実行中のタスクだけにしてください(同時に1つ)。
  • サブスキルが出力ファイルを返したら、すぐに completed にしてください。まとめて更新しないでください。
  • ステップで確認の質問が発生したり、失敗したりした場合は、パイプラインがどこで止まったかをユーザーが確認できるよう、そのステップは in_progress のままにしてください。途中までのステップを completed にしないでください。
  • パイプラインの途中でユーザーが指示を変更した場合(例:「吹き替えはスキップして」)、残りのタスクを更新してください。不要になったタスクは削除し、必要なタスクは残してください。黙ってタスクを削除しないでください。

標準のエンドツーエンドパイプライン(スペイン語 → 中国語、吹き替え + 原音ベッド + 字幕焼き込み)

これは元の「検証シナリオ」です。スペイン語のヨガ/スピリチュアル系コンテンツを、微信视频号/小红书向けの中国語にします。4つすべてのサブスキルを順に実行します。

ステップ 1 — スペイン語の原文を書き起こす
Invoke /wjs-transcribing-audio with the video and `--language es`.

このサブスキルが処理する内容:チャンク分割、単語レベルのタイムスタンプ、句読点の境界での字幕キューの組み立て、ループガード、再試行。出力:entrevista.srt(スペイン語、原文の言語)。

ステップ 2 — 簡体字中国語に翻訳する
Invoke /wjs-translating-subtitles with the Spanish SRT and target `zh-CN`.

このサブスキルが処理する内容:句読点に合わせた字幕キューの再分割、フィラー表現や指示語の最小化、行の長さの上限設定、話者の口調の維持。出力:entrevista.zh-CN.srt。

ステップ 3 — (任意)中国語に吹き替える
Invoke /wjs-dubbing-video with the video + entrevista.zh-CN.srt + a voice ID.

落ち着いた内省的な女性のデフォルト設定:zh_female_gaolengyujie_moon_bigtts(Volcano 高冷御姐、--rate -8% +0Hz)。Volcano の認証情報がない場合:zh-CN-XiaoxiaoNeural --rate -8% --pitch -10Hz。サブスキルは最初にサンプルを生成してから、確定します。

出力:entrevista_zh_dub.mp4。

ステップ 4 — 字幕を焼き込み、元音声をベッド音声として吹き替え音声とミックスする
Invoke /wjs-burning-subtitles with --video entrevista.mp4 --srt entrevista.zh-CN.srt --dub entrevista_zh_dub.mp4

このサブスキルが処理する内容:libass の利用可否チェック、evermeet の静的ビルドへのフォールバック、フォントサイズの調整、全体をレンダリングする前のフレームチェック、音量 0.18 でのベッド音声ミックス。

出力:entrevista_zh_final.mp4(公開可能な状態)。

ユーザーが標準化したデフォルト設定

これらの設定はパイプライン全体に適用されます。各サブスキルがそれぞれの担当範囲を適用します。

  • 中国語の ASR では、まず豆包 (Volcano) を使用し、Whisper はフォールバックとします。 /wjs-transcribing-audio で適用されます。
  • ユーザーが複数の話者を明示的に指定しない限り、吹き替え全体で声は 1 つにします。 /wjs-dubbing-video で適用されます。
  • 吹き替えの下に、元音声を低音量(0.15–0.25)のベッド音声として残します。 /wjs-burning-subtitles で適用されます。
  • 微信视频号 / 抖音 では字幕を焼き込み、それ以外ではデフォルトでソフト字幕を多重化します。 /wjs-burning-subtitles で適用されます。
  • 説明欄にチャンネルの CTA 名を追加する場合は、王建硕を使用します — ゲストの名前は使用しません。(~/.claude/CLAUDE.md にある全体ルール。続けて /wjs-uploading-video を実行する場合に適用されます。)

ファイル名の規則(元のスキルから引き継ぎ)

input:                       entrevista.mp4

Chinese pipeline:
  source SRT                 entrevista.srt
  Chinese SRT                entrevista.zh-CN.srt
  Chinese dub (audio only)   entrevista_zh_dub.mp4
  Chinese final (subs+dub)   entrevista_zh_final.mp4

English pipeline:
  English SRT                entrevista.en.srt
  English dub                entrevista_en_dub.mp4
  English final              entrevista_en_final.mp4

Bilingual subtitles:
  Spanish + Chinese          entrevista.es-zh.srt
  Spanish + English          entrevista.es-en.srt
  three-language             entrevista.es-zh-en.srt

BCP-47 形式のサフィックスを付けることで、複数のターゲット言語の出力を並べて保持し、ひと目でターゲット言語が分かるようにします。

このオーケストレーターが行わないこと

  • 機能を再実装しません。各ステップはすべてサブスキルに委任します。
  • スクリプトを同梱しません。dub.py は /wjs-dubbing-video/scripts/ に、render.py は /wjs-burning-subtitles/scripts/ に、visual_diarize.py は /wjs-dubbing-video/scripts/ にあります。wjs-localizing-video/scripts/ に古いコピーがある場合は、正規のサブスキルの場所にあるものを優先してください。

最終応答のテンプレート

パイプライン全体が完了したら、ユーザーの言語で簡潔に応答します。ユーザーが使い慣れている元の「Done」テンプレートに合わせてください。

已完成:
- 西班牙语转写  (/wjs-transcribing-audio)
- 中文翻译     (/wjs-translating-subtitles)
- 中文配音     (/wjs-dubbing-video, voice: 高冷御姐 -8%)
- 烧入字幕 + 原声底层 0.18  (/wjs-burning-subtitles)

输出:
- entrevista.srt
- entrevista.zh-CN.srt
- entrevista_zh_dub.mp4
- entrevista_zh_final.mp4

不确定片段:
- 00:01:23–00:01:26 背景噪音较大,原文可能不完全准确。

不確かな箇所がなければ、2 つ目のリストは省略してください。

関連項目

  • /wjs-segmenting-video — 長尺動画を単独で使える短いクリップに分割します(独自の SRT スライサーを使用。こちらのパイプラインとは独立しています)。
  • /wjs-overlaying-video — HyperFrames を使って、クリップに HTML/CSS の字幕を重ねます。/wjs-burning-subtitles と併用しないでください — 出力ごとに字幕方式を 1 つ選んでください。
  • /wjs-uploading-video — 最終版の MP4 を YouTube にアップロードします。
  • /lark-minutes — ローカルの豆包 ASR が設定されていない場合の、中国語のみの代替文字起こし経路です。飛书妙记を使用します。

コメント