video-producer-agent について
video-producer-agentは、製品紹介や解説、広告、トレーニング動画を制作するためのオーケストレーションスキルです。要件を確認したうえで、台本とストーリーボード、映像クリップ、ナレーション、音楽、最終編集を組み合わせます。
主な機能
- 01対話形式で動画の要件を収集
- 02台本、ストーリーボード、シーンを計画
- 03映像クリップ、ナレーション、BGMを生成
- 04カスタム音声、Veo音声、無音を設定
- 05既存素材も使って映像と音声を編集
活用シーン
- 01製品紹介やデモ動画の制作
- 02解説コンテンツやトレーニング動画の制作
- 03手持ちの画像、動画、音声素材を使った動画制作
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ michaelboeding/ skills --skill video-producer-agentインストール後、Claude Code で/video-producer-agentを入力して読み込まれたか確認します。
同梱ファイルscripts/assemble.pyscripts/init_project.py
詳細
動画プロデューサー
ナレーション、音楽、ビジュアルを備えた完全な動画を作成します。
これはオーケストレータースキルであり、以下を組み合わせます:
- スクリプト/ストーリーボードの生成(Claude)
- ナレーションの合成(Gemini TTS)
- バックグラウンドミュージック(Lyria)
- 動画クリップの生成(Veo 3.1)または画像アニメーション
- 最終アセンブリ(media-utils 経由の FFmpeg)
ワークフロー
ステップ 1: 要件の収集(必須)
⚠️ このステップをスキップしないでください。すべての回答が揃うまで init_project.py を実行しないでください。
インタラクティブな質問を使用します — 一度に 1 つの質問をし、回答を待ってから次の質問をします。これにより、協調的なスペック駆動のプロセスが生まれます。
質問フロー
⚠️ 以下の各質問には AskUserQuestion ツールを使用してください。 回答に質問をただ出力するのではなく、ツールを使って示された選択肢を含むインタラクティブなプロンプトを作成してください。
Q1: 主題
「その動画を作成します!まず — 何についてですか?
(例:製品発表、ブランドストーリー、チュートリアル、エクスプレイナー — またはご自身で説明してください)」
回答を待ちます。
Q2: 長さ
「動画はどのくらいの長さにしますか?
- 15 秒 (クイックフック)
- 30 秒 (標準的な広告)
- 60 秒 (エクスプレイナー)
- 2 分以上 (詳細)
- またはご自身で長さを指定してください」
回答を待ちます。
Q3: スタイル
「ビジュアルスタイルは?
- プレミアム/ラグジュアリー
- 楽しい/遊び心のある
- コーポレート/プロフェッショナル
- ドラマチック/シネマティック
- ミニマル/クリーン
- またはご自身でスタイルを説明してください」
回答を待ちます。
Q4: アセット
「使用する既存の画像や動画クリップはありますか?
- いいえ、すべて生成します
- はい、画像があります (パスを指定してください)
- はい、動画クリップがあります (パスを指定してください)」
回答を待ちます。
Q5: 音声戦略
「音声はどのように扱いますか?
- カスタム — ナレーション + バックグラウンドミュージックを生成します
- Veo ネイティブ — Veo 内蔵のダイアログ/SFX/環境音を使用します
- サイレント — 音声なし、後で追加します」
回答を待ちます。
Q6: ボイス (カスタム音声の場合)
「ナレーションの声のトーンは?
- プロフェッショナル
- フレンドリー/温かい
- エネルギッシュ
- 穏やか/癒やし
- ドラマチック
- またはご自身でトーンを説明してください」
回答を待ちます。
Q7: 音楽 (カスタム音声の場合)
「音楽の雰囲気は?
- モダンエレクトロニック
- シネマティック/エピック
- アップビートなポップ
- アンビエント/チル
- コーポレート
- またはご自身でスタイルを説明してください」
回答を待ちます。
Q8: フォーマット
「アスペクト比は?
- 16:9(YouTube、ウェブ)
- 9:16(TikTok、Reels、Shorts)
- 1:1(Instagram フィード)」
回答を待ちます。
Q9: 解像度
「解像度は?
- 720p(生成が高速)
- 1080p(標準 HD)」
回答を待ちます。
Q10: モデル
「どの Veo モデルにしますか?
veo-3.1— 最新、最高品質(デフォルト)veo-3.1-fast— 生成が高速、やや低品質veo-3— 前世代veo-3-fast— 前世代、より高速」
回答を待ちます。
クイックリファレンス
| 質問 | 決定する内容 |
|---|---|
| 主題 | シーンの内容とプロンプト |
| 長さ | シーン数(Veo クリップは 4、6、または 8 秒でなければなりません) |
| スタイル | ビジュアルプロンプトと音楽の選択 |
| アセット | 生成するか既存を使用するか |
| 音声 | custom、veo_audio、または silent |
| ボイス | TTS ボイスの選択 |
| 音楽 | Lyria プロンプト |
| フォーマット | Veo のアスペクト比 |
| 解像度 | 720p または 1080p の出力品質 |
| モデル | veo-3.1、veo-3.1-fast、veo-3、veo-3-fast |
ステップ 2: プロジェクトの初期化
ユーザーの回答が揃ったら、その設定でプロジェクトを初期化します:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/video-producer-agent/scripts/init_project.py \
--name "Product Launch Video" \
--duration 30 \
--aspect-ratio 16:9 \
--audio-strategy custom \
--scenes 5
ステップ 3: project.json の設定
ユーザーの回答に基づいて、シーンプロンプト、ナレーションテキスト、音楽スタイルを project.json に記述します。
ステップ 4: 動画のアセンブル
python3 ${CLAUDE_PLUGIN_ROOT}/skills/video-producer-agent/scripts/assemble.py \
--project ~/my_video_project/
プロジェクト構造
プロジェクトを初期化すると、次のフォルダー構造が作成されます:
my_project/
├── project.json # Configuration: scenes, voiceover, music, settings
├── storyboard.md # Planning document for the video
├── scenes/ # Generated video clips from Veo
│ ├── scene1_intro.mp4
│ ├── scene2_features.mp4
│ └── scene3_cta.mp4
├── audio/ # Audio assets
│ ├── voiceover.wav # Generated voiceover
│ ├── background_music.wav # Generated music
│ └── final_mix.mp3 # Mixed audio track
├── work/ # Intermediate files (auto-generated)
│ ├── silent_scene1.mp4
│ ├── video_concatenated.mp4
│ └── ...
└── output/ # Final deliverables
└── product_launch_video_final.mp4
スクリプト
init_project.py
フォルダ構造とテンプレートを備えた新しい動画プロジェクトを初期化します。
# Basic project
python3 init_project.py --name "My Video" --duration 30
# Create in specific directory
python3 init_project.py --name "Demo Video" --output ~/Videos/
# Vertical video for social
python3 init_project.py --name "Instagram Reel" --aspect-ratio 9:16 --duration 15
# Use Veo's native audio (no custom voiceover/music)
python3 init_project.py --name "Cinematic Scene" --audio-strategy veo_audio
# More scenes
python3 init_project.py --name "Long Video" --duration 60 --scenes 5
オプション:
| オプション | デフォルト | 説明 |
|---|---|---|
--name | 必須 | プロジェクト名 |
--output | カレントディレクトリ | 親ディレクトリ |
--duration | 30 | 目標の長さ(秒) |
--aspect-ratio | 16:9 | 16:9、9:16、1:1、4:3 |
--audio-strategy | custom | custom、veo_audio、silent |
--scenes | 3 | シーンプレースホルダーの数 |
assemble.py
動画組み立てパイプライン全体をオーケストレーションします。
# Full pipeline (generate everything + assemble)
python3 assemble.py --project ~/my_project/
# Skip generation (use existing scene/audio files)
python3 assemble.py --project ~/my_project/ --skip-generation
# Dry run (show what would be done)
python3 assemble.py --project ~/my_project/ --dry-run
パイプラインのステップ:
- 動画シーンを生成する(Veo 3.1)
- シーンから音声を除去する(カスタム音声の場合)
- ナレーションを生成する(Gemini TTS)
- 背景音楽を生成する(Lyria)
- ナレーション + 音楽をミックスする
- 動画クリップを連結する
- 音声を動画にマージする
- 最終動画を出力する
project.json の設定
{
"name": "Product Launch Video",
"duration_target": 30,
"aspect_ratio": "16:9",
"resolution": "720p",
"audio_strategy": "custom",
"scenes": [
{
"id": 1,
"name": "scene1_hero",
"prompt": "Cinematic slow zoom on premium product, dramatic lighting, high-end commercial style",
"duration": 6,
"notes": "Music only, no voiceover"
},
{
"id": 2,
"name": "scene2_features",
"prompt": "Product features demonstration, sleek animations, modern tech aesthetic",
"duration": 8,
"notes": "Voiceover starts here"
},
{
"id": 3,
"name": "scene3_cta",
"prompt": "Product with logo on clean background, call to action moment",
"duration": 6,
"notes": "Music swells, voiceover ends"
}
],
"voiceover": {
"enabled": true,
"text": "Introducing the future of audio. Crystal clear sound. All-day comfort. Experience the difference.",
"voice": "Charon",
"style": "Professional, confident, premium brand voice"
},
"music": {
"enabled": true,
"prompt": "modern electronic, premium, sleek, product showcase, subtle bass",
"duration": 35,
"bpm": 100,
"brightness": 0.6
},
"assembly": {
"transition": "fade",
"transition_duration": 0.5,
"music_volume": 0.3,
"fade_in": 1.0,
"fade_out": 2.0
}
}
音声戦略
| 戦略 | 説明 | 使用する場合 |
|---|---|---|
custom | Veo の音声を除去し、カスタムのナレーション + 音楽を追加する | ほとんどの動画 |
veo_audio | Veo が生成した音声(セリフ、SFX)を保持する | シネマティックなシーン、会話 |
silent | 音声を除去し、無音の動画を出力する | 後から音声を追加する場合 |
ワークフロー: 動画の作成
ステップ 1: プロジェクトを初期化する
python3 init_project.py --name "Wireless Earbuds Promo" --duration 30
ステップ 2: 絵コンテを計画する
storyboard.md を編集して動画の構成を計画します:
## Scene 1: Hero Reveal (0-5s)
- Visual: Earbuds emerging from shadow, premium lighting
- Audio: Music only (dramatic intro)
## Scene 2: Sound Quality (5-12s)
- Visual: Sound waves, person enjoying music
- Audio: Voiceover: "Crystal clear sound. Immersive bass."
## Scene 3: Comfort (12-20s)
- Visual: Close-up of fit, person running
- Audio: Voiceover: "All-day comfort. Secure fit."
## Scene 4: CTA (20-30s)
- Visual: Product + logo
- Audio: Voiceover: "Experience the difference." + music swell
ステップ 3: project.json を設定する
絵コンテに基づいて、シーンのプロンプト、ナレーションのテキスト、音楽のスタイルを記入します。
ステップ 4: 組み立てる
python3 assemble.py --project ~/wireless_earbuds_promo/
ステップ 5: 確認して反復する
output/ 内の出力を確認します。調整が必要な場合:
# Re-run with existing scenes (just re-mix audio)
python3 assemble.py --project ~/wireless_earbuds_promo/ --skip-generation
作成できるもの
| 種類 | 例 |
|---|---|
| 製品動画 | 製品を紹介する 30 秒のヒーロー動画 |
| 解説動画 | ハウツーや機能の説明 |
| プロモ / 広告動画 | マーケティング広告 |
| デモ動画 | 製品のデモンストレーション |
| トレーニング動画 | 社内トレーニングコンテンツ |
| testimonial | 顧客の声スタイルの動画 |
| ブランド動画 | 会社 / ブランドのストーリー |
前提条件
GOOGLE_API_KEY- Veo(動画)、Gemini TTS(音声)、Lyria(音楽)用- FFmpeg がインストールされていること:
brew install ffmpeg
動画スタイルと音楽の組み合わせ
| スタイル | 音楽プロンプト | 音声 |
|---|---|---|
| プレミアム / 高級 | "elegant, minimal, ambient, sophisticated" | Charon(informative) |
| テック / モダン | "electronic, futuristic, clean, innovative" | Kore(firm) |
| 楽しい / 遊び心 | "upbeat, cheerful, acoustic, positive" | Puck(upbeat) |
| コーポレート | "professional, inspiring, orchestral lite" | Orus(firm) |
| ライフスタイル | "chill, aspirational, indie, warm" | Aoede(breezy) |
| ドラマチック / シネマティック | "epic, orchestral, emotional, building" | Gacrux(mature) |
一般的な動画構成
製品動画(30 秒)
0-5s: Hero shot (music only)
5-15s: Features (voiceover + music)
15-25s: Lifestyle/use case (voiceover + music)
25-30s: Logo + CTA (music fade)
解説動画(60 秒)
0-5s: Hook/problem statement
5-20s: Solution introduction
20-45s: How it works (3 steps)
45-55s: Benefits summary
55-60s: CTA
testimonial 動画(45 秒)
0-5s: Intro/name card
5-35s: Testimonial quote (multiple scenes)
35-45s: Product shot + logo
手動ワークフロー(スクリプトなし)
各ステップを手動で実行したい場合:
シーンを生成:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/video-generation/scripts/veo.py \
--batch scenes.json
ナレーションを生成:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/voice-generation/scripts/gemini_tts.py \
--text "Your voiceover text..." \
--voice Charon \
--style "Professional, warm"
音楽を生成:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/music-generation/scripts/lyria.py \
--prompt "modern electronic, premium" \
--duration 35
クリップから音声を除去:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/media-utils/scripts/video_strip_audio.py \
-i scene*.mp4
動画を連結:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/media-utils/scripts/video_concat.py \
-i silent_*.mp4 --transition fade -o video.mp4
音声をミックス:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/media-utils/scripts/audio_mix.py \
--voice voiceover.wav --music music.wav -o audio.mp3
音声 + 動画をマージ:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/media-utils/scripts/video_audio_merge.py \
--video video.mp4 --audio audio.mp3 -o final.mp4
提供できる入力ファイル
| ファイルの種類 | 使用方法 |
|---|---|
| 製品画像 | Veo で最初のフレームとしてアニメーション化 |
| ロゴ(PNG) | 最終シーンにオーバーレイ |
| 既存のナレーション | audio/voiceover.wav に配置 |
| ブランド音楽 | audio/background_music.wav に配置 |
| 動画クリップ | scenes/ フォルダに配置 |
| スクリプト / コピー | ナレーションのテキストに使用 |
制限事項
- Veo の動画の長さ: クリップあたり最大 8 秒(長くするには連結)
- Veo 3.1 は音声を含む: すべてのクリップに生成された音声がある(カスタムを使用する場合は除去)
- 処理時間: 動画生成にはクリップあたり 1〜3 分かかる
- 解像度: 現在は 720p または 1080p(1080p は 8 秒のみ)
エラー処理
| エラー | 解決方法 |
|---|---|
| "GOOGLE_API_KEY not set" | README に従って API キーを設定してください |
| "FFmpeg not found" | インストール: brew install ffmpeg |
| "project.json not found" | 先に init_project.py を実行してください |
| 動画生成のタイムアウト | 再試行するか、より短い再生時間を使用してください |
| 音声/映像の同期の問題 | シーンの再生時間を調整してください |
プロンプトの例
シンプル:
「新しいコーヒーメーカーの 30 秒の製品動画を作成してください」
詳細:
「新しいワイヤレスイヤホンの 45 秒の製品動画を作成してください。プレミアムで高級感のある雰囲気。製品写真を添付しています。プロの男性ナレーション。モダンな電子音楽。YouTube 用の 16:9。」
プロジェクトを使用する場合:
「『App Demo』という名前の動画プロジェクトを、5 シーン、合計 60 秒、TikTok 用の縦型フォーマットで初期化してください」