mcpField
V
video-producer-agent

video-producer-agent

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

video-producer-agent について

video-producer-agentは、製品紹介や解説、広告、トレーニング動画を制作するためのオーケストレーションスキルです。要件を確認したうえで、台本とストーリーボード、映像クリップ、ナレーション、音楽、最終編集を組み合わせます。

主な機能

  1. 01対話形式で動画の要件を収集
  2. 02台本、ストーリーボード、シーンを計画
  3. 03映像クリップ、ナレーション、BGMを生成
  4. 04カスタム音声、Veo音声、無音を設定
  5. 05既存素材も使って映像と音声を編集

活用シーン

  1. 01製品紹介やデモ動画の制作
  2. 02解説コンテンツやトレーニング動画の制作
  3. 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カレントディレクトリ親ディレクトリ
--duration30目標の長さ(秒)
--aspect-ratio16:916:9、9:16、1:1、4:3
--audio-strategycustomcustom、veo_audio、silent
--scenes3シーンプレースホルダーの数
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

パイプラインのステップ:

  1. 動画シーンを生成する(Veo 3.1)
  2. シーンから音声を除去する(カスタム音声の場合)
  3. ナレーションを生成する(Gemini TTS)
  4. 背景音楽を生成する(Lyria)
  5. ナレーション + 音楽をミックスする
  6. 動画クリップを連結する
  7. 音声を動画にマージする
  8. 最終動画を出力する

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
  }
}

音声戦略

戦略説明使用する場合
customVeo の音声を除去し、カスタムのナレーション + 音楽を追加するほとんどの動画
veo_audioVeo が生成した音声(セリフ、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 用の縦型フォーマットで初期化してください」

コメント