Communitygithub.com

jianshuo/claude-skills

動画ローカライゼーションのための薄型オーケストレーター:音声書き起こし→字幕翻訳→吹き替え→字幕焼き込みのエンドツーエンドパイプラインをルーティングします。131★のスイート。

claude-skills とは?

このスキルは、ユーザーが「動画の完全ローカライゼーション」を一度に要求した場合にのみ呼び出されるオーケストレーターです。4つのサブスキル(書き起こし、翻訳、吹き替え、字幕焼き込み)を順番に実行し、各ステップの進捗をリアルタイムでチェックリスト表示します。ユーザーが個別のステップ(例:「このSRTを翻訳して」)だけを要求した場合は、このオーケストレーターを通さず、該当するサブスキルを直接呼び出すべきです。このスキルは、特にスペイン語から中国語へのフルパイプライン(吹き替え+字幕焼き込み+原音ベッド)に対応しており、WeChatビデオアカウントやDouyin向けの出力を想定しています。また、ファイル命名規則やデフォルト設定(例えば、中国語ASRは豆包を優先、吹き替えは単一音声、原音は低ボリュームで保持など)も定義されています。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/jianshuo/claude-skills/tree/main/wjs-localizing-video

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

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

このスキルは分割されました。 かつて1300行の一括スキルだったものは、4つの集中したサブスキルに分割されました。このオーケストレーターは、ユーザーが一度のリクエストで 完全なパイプライン を要求した場合のみ使用してください。個別のステップについては、直接サブスキルにルーティングしてください。

4つのサブスキル

ステップスキルINOUT
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の後で終了します。

このオーケストレーターを呼び出すタイミング vs サブスキルを直接呼び出すタイミング

このスキル (wjs-localizing-video) を呼び出す:ユーザーがチェーン全体を一度に要求した場合。

  • "帮我把这个西班牙语视频做成中文字幕和中文配音"
  • "translate this Spanish video to English with dubbing"
  • "全套:转写、翻译、烧字幕、配音、混音"

サブスキルを直接呼び出す:ユーザーが1つのステップだけを要求した場合。

  • "转写一下这个音频" → /wjs-transcribing-audio
  • "把这个 SRT 翻译成中文" → /wjs-translating-subtitles
  • "给这个视频配个中文音" → /wjs-dubbing-video
  • "把字幕烧进视频" → /wjs-burning-subtitles

サブスキルの方がより集中しており、入出力の契約もより厳密に文書化されています。単一のステップが要求全体である場合に、このオーケストレーターを通じてルーティングしないでください。不要なドキュメントを読むだけになります。

進捗チェックリスト (最初にこれを行う。サブスキルの前)

パイプラインは最大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 のまま にしておきます。これにより、ユーザーはパイプラインがどこで停止したかを正確に確認できます。中途半端なステップを完了としてマークしないでください。
  • ユーザーがパイプラインの途中で方向転換した場合 (例:「吹き替えはスキップ」)、残りのタスクを更新します。該当しなくなったタスクは削除し、残りを保持します。黙って削除しないでください。

標準的なエンドツーエンドパイプライン (スペイン語 → 中国語、吹き替え + ベッド + 焼き込みあり)

これは元の「検証シナリオ」です。スペイン語のヨガ/スピリチュアルコンテンツを中国語に翻訳し、微信視頻号 / 小紅書向けに出力します。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 (火山 高冷御姐、--rate -8% +0Hz)。火山の認証情報がない場合: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はまず豆包 (火山) にルーティングします。Whisper はフォールバックです。 /wjs-transcribing-audio で適用されます。
  • ユーザーが明示的に複数の話者を言及しない限り、吹き替え全体で単一の音声を使用します。 /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が設定されていない場合の代替中国語専用書き起こしパス (飛書妙記経由)。

Individual skills in this repo

This repo contains 5 individual skills — each has its own dedicated page.

関連スキル