Communitygithub.com

NiJingzhe/promo-video-skill

プロモーション/ローンチ映像を、ビートに同期させてエンドツーエンドで制作します。音楽選び(Epidemic Soundの「Create a cut」)、ストーリーボードの共同設計、ショットスクリプトとElevenLabs音声原稿の作成、音声テイクのカット、Remotionでの映像構築(three.jsメタルレンダリング、製品UIのレプリカ、仮想カメラのプッシュ/プル/パン、すべてのカットをビートに合わせる)を、人間が各工程を確認しながら進めます。ユーザーがプロモーションビデオ、予告編、ローンチフィルム、製品ティーザー、モーショングラフィックス広告を希望する場合、または映像を音楽に同期させたり、ストーリーボード+ナレーション原稿の生成を依頼した場合に使用します。

promo-video-skill とは?

このスキルは、音楽に同期したプロモーション映像をエンドツーエンドで制作するためのものです。6つのステージ(音楽分析、ストーリーボード作成、ナレーション原稿作成、ナレーションカット、Remotionでの映像構築、レビューと修正)で構成され、各ステージの完了時に人間が確認することで、高コストな映像構築段階での手戻りを防ぎます。主なプラットフォームはClaude Code、Cursor、CodexなどのAIエージェント環境であり、Remotion(three.js)、Epidemic Sound、ElevenLabsと連携します。スクリプトベースのツール(`music_analyze.py`、`cut_ui.py`、`review_ui.py`など)を使用して、音楽の正確なテンポ測定、ビート同期カット、ブラウザベースのカッティング/レビューUIを提供します。ブラウザ自動化機能(`ego-browser`、Playwright、browser MCP)が利用可能な場合は、Epidemic Soundでの楽曲選択やElevenLabsでの音声生成を代行することもできますが、アカウント作成、ログイン、支払いは常に人間が行います。最終的な映像は、製品の実際のCADメッシュ、コード、UIコンポーネントを使用してリアルに再現されます。

対応~Claude Code~Codex CLI~Cursor
npx skills add NiJingzhe/promo-video-skill

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

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

ドキュメント

promo-video

映像は6つのステージで制作されます。各ステージの終わりには人間が確認するものがあります。 先走ってはいけません。高コストなステージ(構築)は、それ以前のステージが確定していて初めて安上がりになります。なぜなら、すべての映像イベントは音楽とナレーションに合わせて配置されるからです。

最初に一度、計画を人間に伝えてください(README.mdに人間向けのバージョンがあります)。その後、ステージを順番に実行します。人間の言語で話しかけてください。すべてのプロジェクトファイルは1つのディレクトリに保存します(<project>/: audio/、vo/、PLAN.md、elevenlabs.md、Remotionプロジェクトはvideo/)。

#ステージあなたが行うこと人間が行うこと参照先
1音楽トラックを分析し、正確なテンポとハードマークを見つけるEpidemic Soundでトラックを選び、Create a cutで長さを調整し、ファイルを渡すreferences/01-music.md
2ストーリーボードガイド質問をし、PLAN.md(音楽に合わせたショットテーブル)を書く回答し、承認するreferences/02-storyboard.md
3ナレーション原稿セリフ+タグ付きElevenLabsテイクを書くElevenLabsで生成し、ファイルを送るreferences/03-voiceover.md
4ナレーションカットテイクに対してcut_ui.pyを開き、分割、レベル調整、各行を配置するブラウザページで行の間をクリックし、Doneを押す;配置テーブルを確認するreferences/03-voiceover.md
5構築template/からRemotionプロジェクトを、シーンごとに、スチル確認しながら作成するスチル / ドラフトレンダリングをレビューするreferences/04-build.md
6レビュー+仕上げレンダリング、ラウドネスチェック、レンダリングに対してreview_ui.pyを開き、人間のノートとフレームを読み、修正し、再レンダリングするレビューページで視聴し、映像にノートを残し、承認 / 変更必要を選択するreferences/05-review.md

ブラウザ自動化:提案はするが、決して前提としない

ステージ1と3はウェブサイト(Epidemic Sound、ElevenLabs)上で行われます。ブラウザ自動化スキルやツール(例:ego-browser、Playwright環境、browser MCP)が利用可能な場合は、それらの部分を自分で行うことを提案し、その内容を明確に説明した上で承諾を求めます。

  • アカウント:両方のサイトにアカウントが必要です(Epidemic Soundはトライアルありの有料サブスクリプション、ElevenLabsは月間文字数制限付きの無料枠あり)。人間がアカウントを持っていない場合は、自分たちで登録します。あなたはアカウントを作成しません。
  • 費用:ElevenLabsは文字数単位で課金されます。40~60秒の映像で約600~1000文字、再生成のたびに再度課金されます。Epidemicのダウンロードはプランにカウントされます。予想される支出を伝え、最初に確認を取ってください。
  • ログインと支払いは人間の担当:サインイン、2FA、キャプチャ、および支払い画面では、ブラウザを人間に委譲します(ego-browserのtask.handOff())。人間が完了したと言うまで再開しません。パスワードを入力したり、カード情報を入力・保存したり、APIキーをページやファイルに貼り付けたりしてはいけません。
  • 承諾後にあなたが行ってもよいこと:同意されたムードとBPMに基づいてトラックを検索・フィルタリングし、候補を人間が聴けるように開く(人間が選択する)、目標の長さでCreate a cutをクリックし、結果をダウンロードする;elevenlabs.mdテイクを貼り付け、人間が選んだ音声と設定を適用し、一度生成し、mp3をダウンロードする。
  • そのようなツールがない場合、または人間が辞退した場合:正確な手順(ステージ1と3のドキュメント)を伝え、ファイルを待ちます。

選択肢は常に人間のものです。トラックと音声は決してあなたが選びません。

基本ルール(苦い経験から学んだこと)

  1. 表示されるものはすべて本物です。 実際のサンプルメッシュ(実際のCAD/STEPをテッセレーションしたもの)、コードパネル内の実際のコードとAPI、製品自身のフロントエンドコンポーネントから再構築されたUI。偽物に見えるコンテンツは、視聴者が最初に気づくものです。本物を入手できない場合は、その旨を伝えて尋ねてください。決して偽造してはいけません。
  2. 音楽が時計です。 正確なテンポを測定します(scripts/music_analyze.pyがフィッティングします。1.2%ずれたBPMを推測すると、スプライスが3分の1拍ずれ、人間に聞き取れる違和感が生じます)。すべての時間はsrc/marks.tsに格納されます。シーンはこれをインポートし、秒数をハードコードしてはいけません。
  3. 外部に公開される手順や高コストな手順は確認を取る: 音楽ファイルとナレーションは人間が選択するものであり、あなたが代わりに選ぶことは決してありません。撮影する製品に表示されるAPIキーやログイントークンを決して印刷してはいけません。
  4. スチルで画像を確認し、暗黙のうちに信頼しない: マーク(ビートヒット、カット、ロゴ)のフレームをレンダリングし、フルレンダリングの前に確認します。フルレンダリングには数分かかりますが、スチルは数秒です。
  5. 古いバージョンを保持する。 人間が短縮版やバリアントを依頼した場合、プロジェクトディレクトリをコピーし、コピーを編集します(cp -R video video_short、node_modulesをシンボリックリンク)。
  6. 編集者のように報告する: 何が変わったか、ファイルパス、何を聴く/見るべきか、その秒数は何秒かを伝えます。

このスキルのツール

すべてのPythonスクリプトはuv runで実行します(依存関係は各ファイルで宣言されています。インストールは不要です)。

スクリプト目的
scripts/music_analyze.py track.wav --out beats.json正確なBPM(フィッティング済み)、ビート/小節グリッド、セクション、ドロップ、無音ギャップ
scripts/music_splice.py track.wav out.wav --beats beats.json --keep a:b --keep c:d小節単位のクロスフェードジャンプでトラックを短縮;結合を検証
scripts/cut_ui.py take.mp3 --mode cuts --script elevenlabs.md --out vo/cuts.jsonブラウザカッティングページ(波形、スクリプトを行ごとに表示、音声とポーズ、ズーム、元に戻す/やり直し):人間が再生し、行の終わりでクリックし、Doneを押すとタブが閉じ、cuts.jsonが生成されます。--mode marks --beats beats.json はビートグリッド上に音楽のドロップ/スタブ/ブレイクダウンをマーク
scripts/vo_cut.py take.mp3 --regions vo/cuts.json --out vo/ElevenLabsテイクをレベル調整されたクリップ+clips.jsonに分割(人間が時間を入力する場合は --lines N --ends t1,... も可)
scripts/review_ui.py out/promo.mp4 --out review/review.json [--overlay overlay.json]ブラウザレビューページ:上にモニター、下にタイムラインストリップ(フィルムストリップ+完成ミックスの波形+オプションのビート/マーク/ナレーション行)。人間は特定の瞬間や範囲にノートを残し、各ノートは正確なフレームを持ちます。最後に承認 / 変更必要を選択すると、review.jsonが生成されます
scripts/new_project.sh <dir> [--link-modules path]template/からRemotionプロジェクトを作成(メタルステージ、ビートクロック、VOミックス、仮想カメラ)
template/tools/mesh.pySTEP/OCC形状 -> three.js用のコンパクトメッシュ+B-repエッジ
template/tools/refold.pyOCCが読み取れない巨大なSTEPメタデータ文字列をブランク化
template/tools/variants.py、stages.pyメッシュパラメータバリアント / CADノートブックのすべての中間ソリッド(「スライダーを動かすとモデルが追従する」シーンや「セルごと」シーン用)

必要環境:ffmpeg、node 20+、uv。ヘッドレスChromeでthree.jsを使用する場合:playwrightのchrome-headless-shell(new_project.shがインストールします)。

関連スキル