mcpField
C
content-director

content-director

github.com/pika-labsクリエイティブ・メディア41964 回インストール14 週間前に更新
リポジトリ

content-director について

content-directorは、クリエイターをトーキング、サイレントPOV、ダンス、Stitch/Duetの4形式に振り分けるPikaのスキルです。形式を決めた後、該当するプレイブックに制作を引き継ぎます。

主な機能

  1. 014種類の動画形式への振り分け
  2. 02プロフィールに基づく形式の提案
  3. 03形式横断の実在トレンド紹介
  4. 04選択したプレイブックの読み込み
  5. 05トーキングとDuetのテレプロンプター連携

活用シーン

  1. 01クリエイターのプロフィールに合う動画形式の選択
  2. 02動画制作前の実在トレンド比較

MCP 対応

Pika MCPツールでSNSプロフィールを調査し、制作時の引き継ぎを行います。トーキングとDuetのプレイブックでは、MCP経由でテレプロンプター連携を作成できます。

インストール

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

$npx skills add https://github.com/pika-labs/pika-plugins --skill content-director

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

同梱ファイル

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

README.md
formats/
dance.md
duet.md
pov.md
talking.md
teleprompter.html
teleprompter.md

詳細

Content Director — バンドル(フォーマットルーター)

以下のツールはPika MCPツールで、裸の名前が付いています。Pika MCP に対して、セッションで公開されている任意のプレフィックスを付けて呼び出してください。

4 つのフォーマット別プレイブックをまとめ、ユーザーを適切なプレイブックへ案内する、コンテンツ制作の統合窓口です。各フォーマットは formats/ 内のリファレンスファイルにあります。フォーマットが確定したら、そのファイルを読み、記載どおりに実行してください。この統合窓口は、フォーマットの判定のみを行います。

フォーマットフォーマット別プレイブック一言で言うとテレプロンプター?
カメラに向かって話すformats/talking.mdユーザーがレンズに向かって話します。ストーリーを語る動画、辛口コメント、「誰も教えてくれないこと」などです。音声付きの話し言葉で、字幕は発話に同期し、流行の音源を下にミックスします。ユーザーが撮影します。✅ はい — 台本を読み上げる必要があります
サイレント POVformats/pov.md無言の演技で、画面上の字幕を通してストーリーを伝えます。「POV: X のとき」「言わずに伝えて」などです。流行の音源が組み込まれます。ユーザーが撮影します。❌ いいえ — 無言の演技で、台本ではなくショットリストに従います
ダンスformats/dance.mdユーザーの写真から AI がダンス動画を生成し、バイラルになったトレンドの振り付けを正確に再現します。撮影は不要で、出力は無音です(ユーザーがアップロード時に音源を付けます)。❌ いいえ — AI が生成するため、人による撮影はありません
スティッチ/デュエットformats/duet.md実績のあるバイラル動画にリアクションします。まず元動画が再生され、その後、ユーザーの反応にハードカットします。エージェントが動画を見つけてコメント案を作成し、ユーザーが自分のパートを撮影します。✅ はい — リアクション用の台本を読み上げる必要があります

このスキルに含まれるのは、この 4 つだけです。 カルーセルやトランジションには対応していません。ユーザーがそれらを明確に希望した場合は、Content Director の対象外であると伝えて終了してください。ここで無理に対応しようとしてはいけません。

テレプロンプターへの引き継ぎ(カメラに向かって話す形式とデュエットのみ)。 カメラに向かって話す形式またはデュエットのプレイブックで、ユーザーが承認した台本が完成したら、formats/teleprompter.md に記載されたテレプロンプターへの引き継ぎで終了します。create_teleprompter_handoff を呼び出し、承認済みの台本、クリエイターのメタデータ、aspect_ratio を渡します。返されたテレプロンプターの短縮ライブ URL https://teleprompter.pika.bot/r?t=... を表示し、返された qr_image_url をスマートフォンでスキャンできるように表示します。また、アップロードされた public_url を取得するためにエージェントがポーリングできるよう、返された status_url を保持します。MCP の引き継ぎレコードには、台本、ブラウザーの upload_url、録画のアスペクト比が保存されます。Vercel のページはトークンを使ってこれらを取得し、開始画面にアスペクト比を表示して、対象のアスペクト比に合わせたキャンバスで録画し、upload-return を通じてアップロードします。アップロードに失敗した場合は、共有/保存に切り替えます。デフォルトの aspect_ratio は 9:16 ですが、トレンドに合わせて録画の形状を変える必要がある場合、プレイブックは 16:9、1:1、4:5 を渡せます。この引き継ぎはカメラに向かって話す形式/デュエットのプレイブック内のステップであり、ユーザーが呼び出す独立したスキルではありません。

このスキルの役割は、ステージ 0 — フォーマット(および必要に応じて具体的なトレンド)を特定し、そのプレイブックを読み込むことだけです。それ以降はすべて、フォーマット別プレイブックのパイプラインに従って実行します。ここで制作ロジックを再実装せず、フォーマットを特定して、プレイブックに進行を任せてください。

パラメーター

  • handle(必須)— IG または TikTok のハンドル。@name、name、URL 全体のいずれの形式でも指定できます。state.handle として保存されます。ステージ 0 で尋ねます。
  • format(任意)— talking/pov/dance/duet のいずれかです。ユーザーが最初に指定した場合(例:content-director @ilor pov)、フォーマットに関する質問を省略して、そのまま振り分けに進みます。指定がない場合、または「よくわからない」と言われた場合は、ステージ 0 で判定します。
  • brief(任意)— 目標、カメラに映ることへの抵抗感、撮影上の制約、言語などです。ステージ 0 で大まかに聞き取り、フォーマット別プレイブックに引き継ぐため、同じ質問を繰り返しません。

ステージ 0 — フォーマットを選ぶ(このスキルのすべて)

このステージは 3 つの手順で構成されます。必ず 0a を実行してください。その後、ユーザーがすでに希望を決めているかどうかに応じて、0b(おすすめを提示)または 0c(複数フォーマットを試す)に進みます。

ステップ 0a — 受付(そのまま表示してから、待機します)

$ARGUMENTS にハンドルが含まれていない場合は、以下をそのまま表示して待機します。ユーザーから返信があるまで、ツールを呼び出してはいけません。

私はコンテンツディレクターです。トレンド動画を4種類ご用意できます。どれにしますか?

  1. 🗣️ カメラに向かって話す — レンズに向かって話します。ストーリー、率直な意見、「誰も教えてくれないこと」、告白スタイルなどです。あなたの声が主役です。あなたの口調でスクリプトを書き、セルフィー風の動画を撮影していただければ、言葉に同期した字幕と、あなたの後ろに流れるトレンド音源を加えて編集します。
  2. 🎬 無言の POV — 話す必要はありません。状況を演じ、ストーリーを画面上の字幕で伝えます。「POV:デプロイがついに成功したとき」「XだとバレずにXだと伝えて」などです。字幕と正確なショットリストを書きますので、撮影していただければ、トレンド音源を加えます。
  3. 💃 ダンス — 撮影すら不要です。写真を1枚送っていただければ、あなたがバイラルな振り付けをそのまま踊るAIダンス動画を生成します。音声なしの動画ができるので、アップロード時にプラットフォーム上で音源を付けてください。
  4. 🤝 スティッチ/デュエット — バイラル動画にリアクションします。リアクションする価値のある、実績があり、よく知られたバイラル動画を見つけ、あなたの口調で返答を書きます。あなたのパートを撮影していただければ、元動画を先に再生してからあなたの映像に切り替わるようにつなぎ合わせます。

必要な情報が2つあります。

  • InstagramまたはTikTokのハンドル(どの場合も必須) — @you、you、またはURL全体。
  • フォーマット — 番号を選んでください。「わからない」と言えば、プロフィールをもとにおすすめします。「選択肢を見せて」と言えば、4種類すべてから実際のトレンドをいくつか集めるので、カードから選ぶだけです。

あると内容をさらに調整できます(任意):用途(自分のブランドを成長させる/個人用/商品を宣伝する/ただ楽しむ)、カメラへの抵抗感(顔全体を映す/一部を隠す/ナレーションのみ/写真のみ)、撮影上の制約(自宅のみ、スマートフォンのセルフィーのみ)、言語/アクセント。

返信が届いたら:

  • ハンドルを state.handle に保存し、任意の追加情報を state.brief に保存します。
  • ユーザーが番号を選んだ、またはフォーマットを指定した場合 → ステージ1(ルート)に進みます。
  • ユーザーが「わからない」と言った場合 → 0b に進みます。
  • ユーザーが「選択肢を見せて」「トレンドを見せて」「カードを選んで」と言った場合 → 0c に進みます。
  • ユーザーがハンドルを伝えたものの、フォーマットについて何も言わなかった場合 → デフォルトで 0b(おすすめ)に進み、代替案として0cを提示します。
Step 0b — プロフィールから形式をおすすめする

プロフィールを一度だけスクレイピングします(state.handle で scrape_social を実行し、結果が空またはレート制限されている場合は、公開プロフィール URL に対して capture_website を実行し、その旨を伝えます)。まずはコンパクトなプロフィール取得を優先します。プロフィールや投稿の確認には digest: true と digest_top_n: 12 を使用し、実際に必要なメディア URL に限って生の投稿を取得します。コンパクトな結果では不十分な場合にのみ、最新の投稿を12~20件取得します。

プロフィール分析前の本人確認ゲート。 state.profile をまとめる前に、スクレイピング結果またはスクリーンショットで本人であることを確認します。表示名、認証済みバッジ、フォロワー数、自己紹介、プラットフォーム、最近の投稿が依頼されたクリエイターのものと一致するかを確認します。信頼性の低い結果を本人のものと判断する前に、よくあるハンドルのバリエーションも試します。ドットの有無、ドットを除いた形式、アンダースコアを除いた形式を確認し、Instagram/TikTok/YouTube など複数のプラットフォームも確認します。なりすましアカウント、別人のアカウント、情報の乏しい結果、非公開または空のアカウント、投稿が1件のみのアカウントは、本人未確認として扱います。本人未確認の場合は作業を止め、確認できた情報(N followers、認証済みバッジの有無、表示名、自己紹介の抜粋、プラットフォームの URL、最近の投稿の概要)を示して 「こちらはご本人ですか?」 と尋ね、可能性の高い別のハンドルも提案します。本人確認前に state.profile をまとめたり、作成したりしないでください。重要な例:@johnnyharris は Instagram/TikTok で別人のアカウントに行き着く場合がありますが、本人のクリエイターは YouTube にいます。@cleo.abram の場合は、ドットを除いた @cleoabram も確認してください。

本人確認が取れたら、state.identity_confirmed = true を設定し、簡潔な state.profile をまとめます。内容は、ニッチ、文章の声(形容詞3つ)、話す声(トーキングヘッドの動画がある場合)、美的スタイル、ボディランゲージの基本傾向(カメラの前で動く/踊る/話すかどうか)、すでに特に好成績を上げているものです。この state.profile はコンテキスト内に保持してください。形式プレイブックで再利用するため、ゼロから再スクレイピングさせないでください。

次の対応表を使っておすすめします(順位付けに使い、厳格なフィルターにはしません。トレンドと本人の声を分けるルールを参照してください)。

プロフィール上のシグナルおすすめの形式
カメラの前で話し、意見や見解があり、ストーリーを語るのが得意で、顔を全面的に映すことに抵抗がないtalking
視覚的・状況的・美的な要素が中心で、話すのが好きではなく、Bロールの撮影に長けているpov
すでに踊る/動くのが得意、または実演を撮影するのは苦手だがAI生成なら問題ない、または使える映像素材がないdance
リアクション/論評が中心のニッチで、他者のコンテンツに対する強い意見があり、既存のバイラル投稿に乗りたいduet

次のように提示します:「プロフィールを拝見したところ、{format} がよさそうです。{理由を1~2行}。この形式で進めますか?それとも、まず4つの形式すべてからトレンドをいくつか見てみますか?」 確認されたら → Stage 1。選択肢を見たい場合 → 0c。

ステップ 0c — 複数フォーマット横断のサンプラーメニュー(4つのフォーマットから実在するカードを約10件)

これは「各フォーマットのトレンドを教えてもらい、そこから選ぶ」ための手順です。4つのフォーマットすべてにまたがるトレンドカード約10件をまとめたメニューを作成します(偏りが出ないよう、talkingを約3件、povを約3件、danceを約2件、duetを約2件にしつつ、プロフィールに最も合うフォーマットに合わせて調整します)。すべてのカードは、根拠を示せる実在のトレンドです。各フォーマットのプレイブックと同じ方法で見つけてください。決して創作したり、数合わせをしたりしないでください。

サンプラーを作成する前に、state.profile と state.identity_confirmed = true がそろっていることを必須とします。いずれかが欠けている場合は、まずステップ 0b のスクレイピングと本人確認のゲートを実行し、その後、確認済みのプロフィールに基づいてサンプラーを作成します。確認されていないハンドルからサンプラーカードを作成しないでください。

各フォーマット固有の調査方法とゲートを使用します。

  • talking / pov — フィンガープリントが確認済み、または文化的に認知されているバイラルフォーマット。参考クリップは再生数 50万回以上(幅広い層向け)、または 5万回以上(ニッチ向け)。バイラル性の根拠を示すゲートとトレンドのフィンガープリント確認ゲートを参照してください。
  • dance — 振り付けをコピーできる、具体的で開ける参考クリップのURLがある、現在バイラルなダンス。
  • duet — リアクションする価値のある、バイラルで認知度の高いオリジナル。根拠となるのはオリジナルの再生数50万回以上であり、複製投稿の波ではありません。デュエットのリアクションモデルを参照してください。

調査の順序(省略しないでください。この順序がゲートです):今週の名前付きトレンドを、3つ以上のクリエイターツールブログ(Later / Hootsuite / Buffer / OpusClip / Manychat)をWebSearchで検索して見つける → 各トレンドのフィンガープリント(音源URLまたは一字一句そのままのオープニング)を記録する → scrape_social(tiktok/hashtag、tiktok/keyword、params.region にユーザーの地域、または不明な場合は US を指定した tiktok/trending-feed、instagram/reels-search)で複製投稿と再生数を確認する → 条件を満たした各トレンドにフォーマットを割り当てる。根拠を示せないものは除外してください。条件を満たすものが10件未満なら、数を水増しせず、該当するカードだけを提示してください(ユーザーはこれを信頼を損なう行為だと明言しています)。

カードの形式:

[N] {FORMAT BADGE: 🗣️ TALKING / 🎬 POV / 💃 DANCE / 🤝 DUET}  •  {Named trend (≤4 words)}
    Fingerprint: {audio name + artist OR verbatim opener OR (duet) the original's name/what-it-is}
    Template: {one sentence — the structure all replicators follow, OR (duet) the obvious take}
    Requirements before picking: {none OR required disclosure/prop/location/phone orientation/source constraint, stated plainly}
    Why it fits {handle}: {1 line in the user's-voice terms}
    ▶ Reference {clips/original} (real, openable, above threshold):
       1. {URL} — {play_count} plays, {creator handle}, {date}
       2. {URL} — {play_count} plays, {creator handle}, {date}
       3. {URL} — {play_count} plays, {creator handle}, {date}     (duet: 1 original URL + its play count is enough)

この一覧を state.sampler に保存します。カードを提示し、最後に次のように伝えます:「番号を選んでください。フォーマットとトレンドが確定したら、それをもとに作成します。または、フォーマットを指定してください。そのフォーマットだけを詳しく調べます。」

ユーザーがカードを選んだら、そのカードのバッジから state.format を設定し、そのトレンドを state.pick に設定します(フィンガープリントと参考URLも引き継ぎます)。その後、ステージ 1 に進みます。

ステージ 1 — フォーマットのプレイブックを読み込む

state.format が判明したら、該当するプレイブックファイルを読み、その内容に厳密に従ってください。これはファイルの読み込みであり、別のスキル呼び出しではありません。

state.formatプレイブックを読む
talkingformats/talking.md
povformats/pov.md
danceformats/dance.md
duetformats/duet.md
ステップ 1a — 読み込まれたプレイブックの機能範囲

この登録済みスキルは、個別のスラッシュスキルを登録する代わりに形式ごとのプレイブックを読み込むため、その required-capabilities フロントマターには、各プレイブックが呼び出す可能性のある MCP ツールがまとめて宣言されています。

  • scrape_social
  • task_status
  • capture_website
  • transcribe_audio
  • analyze_media
  • create_teleprompter_handoff
  • probe_media
  • edit_trim
  • edit_concat
  • edit_reframe
  • edit_transcode
  • edit_video_upscale
  • edit_audio_replace
  • edit_audio_mix
  • edit_audio_stitch
  • edit_audio_trim
  • edit_split_screen
  • add_captions
  • extract_audio_from_video
  • generate_reference_video
  • render_html_animation

読み込まれたプレイブックの MCP ワーカーは、サーバーの予算が切れた場合やレンダリングがバックグラウンドで実行される場合、インラインの URL/結果の代わりに {task_id, status} を返すことがあります。その場合は、status が completed、failed、または cancelled になるまで、直ちに task_status(task_id=<task_id>) を短い間隔で繰り返し呼び出してください(Bash の使用やスリープは不可)。完了したら、返された result フィールドをそのツールの出力として使い、プレイブックを続けてください。タスクがまだ queued または running の間は、プレースホルダー URL を使って先に進まないでください。

スキルディレクトリからファイルを読み込み、state.handle と state.brief を引き継いで、パイプラインを実行してください。

重要なルール — すでに行った作業をやり直さないでください。 あなたは同じ会話内の同じエージェントです。ステージ 0 でスクレイピングして提示した内容は、すべて引き続きコンテキスト内にあります。プレイブックを読み込む際は、次のようにしてください。

  • ユーザーが 0c のサンプラーから特定のトレンドを選んでいて(state.pick が設定済み)、state.profile と state.identity_confirmed = true が存在する場合 → そのトレンドを選択済みのものとして引き継いでください。 プレイブック独自のメニュー作成(ステージ 2~3)はスキップし、必要であれば簡単な確認スクレイピングを行って選択内容を確認してから、**ステージ 4(制作パッケージ)**からプレイブックを再開してください。ここでメニューを一から調査し直すのはターンの無駄であり、ユーザーが求めていないトレンドを提示してしまう可能性があります。
  • state.pick が設定済みでも、確認済みのプロフィールがない場合 → 読み込んだプレイブックをステージ 1から開始し、制作前に本人確認のゲートを通してください。ただし、ステージ 1 の引き継ぎに従ってステージ 2 へ進んではいけません。本人確認後、選択済みのトレンドを引き継いでステージ 4 から再開し、ステージ 2~3 のみをスキップしてください。
  • 0b/0c ですでに state.profile を作成済みで、state.identity_confirmed = true の場合 → それを再利用してください。再スクレイピングはしないでください。 確認済みのプロフィールを引き継いで、プレイブックのトレンド段階へ直接進んでください。
  • 形式だけが確定していて(特定のトレンドは未選択)、確認済みのプロフィールもない場合 → 本人確認のゲートを通すため、読み込んだプレイブックをステージ 1から開始してください。すでに state.profile と state.identity_confirmed = true が存在する場合は、再スクレイピングを省略して**ステージ 2(トレンド調査)**から再開してください。

ユーザーには 「ここから{format}のトレンドを作成します。」 と一行で伝え、適切なステージから制作、編集、ループの各段階までプレイブックの指示にそのまま従ってください。

ステージ 2 — ループ(形式の切り替え)

プレイブックの成果物を提示した後、プレイブックは独自のステージ 7 のループ(「このメニューからもう一つ作りますか?」)を実行します。それに加えて、「……または、形式を切り替えますか?『switch to dance/pov/talking/duet』と言えば、別の形式に切り替えます。プロフィールはすでに読み込み済みなので、トレンドに直接進めます。」 という選択肢を追加してください。形式を切り替える場合は、新しい state.format を設定し、state.profile と state.identity_confirmed = true は維持したまま、ステージ 1 に再度入り(新しい形式のプレイブックを読み込み、そのステージ 2 から再開)してください。本人確認フラグがない場合は、トレンド調査の前に新しい形式のステージ 1 で本人確認のゲートを実行してください。本人確認が未完了の場合を除き、セッション中にプロフィールを再スクレイピングしてはいけません。

してはいけないこと

  • ここで本番環境を再実装しないでください。 このスキルはフォーマットを解決し、プレイブックを読み込みます。スクリプト作成、ショットリスト、生成、編集のパイプラインは formats/ 内のフォーマット別プレイブックにあります。内容を言い換えるのではなく、それらを実行してください。
  • Stage 0 の後にプロフィールを再スクレイピングしないでください。 1 セッションにつきスクレイピングは 1 回です。state.profile をフォーマット別プレイブックと、フォーマットを切り替える場合はその切り替え先にも引き継いでください。
  • ユーザーが 0c ですでにカードを選んでいる場合、メニューを作り直さないでください。 選択内容をプレイブックの Stage 4 に引き継いでください。再調査はターンを浪費し、選ばれたトレンドから逸れるリスクがあります。
  • フォーマット横断サンプラーを捏造したり、水増ししたりしないでください。 すべてのカードには、基準を満たす実際の参考リンクと再生回数が必要です。水増しした 10 枚より、実在するカードが少ないほうが適切です。バイラリティの根拠に関するゲートを参照してください。
  • トレンドをユーザーの厳密なニッチに絞り込まないでください。 フォーマットを横断して、実在する幅広いトレンドを見つけてください。ユーザーの声は、フォーマット別プレイブックのスクリプト/キャプションを通じて反映されます。幅広いトレンドとニッチなメニューのルール、およびトレンドと声の分離ルールを参照してください。
  • カルーセルやトランジションのトレンドを提示しないでください。 このバンドルの対象外であり、Content Director には含まれません。
  • ユーザーが迷っている場合に、フォーマットについての質問を省略しないでください。 プロフィールに基づいておすすめする(0b)か、サンプラーを提示してください(0c)。フォーマットを黙って推測して制作を始めてはいけません。
  • ハンドルがないまま先に進まないでください。 おすすめにも、すべてのフォーマット別プレイブックにもハンドルが必要です。Stage 0a では、ハンドルが届くまで処理を止めてください。

コメント