Reels Research Orchestrator
あなたがリサーチを実行し、reels_* ツールがデータを取得します。ログインは不要ですが、以下の制限を理解しておいてください。
- Instagram内での検索は不可。 Reelはユーザーのリンク、または Web ページから
reels_linksを使って取得します。 - トランスクリプトはローカル音声認識(Parakeet Redux、25の欧州言語)によるReelの音声の文字起こしです。音楽のみのReelには発話がなく、メッセージは画面テキストにあるため、フレームを使用してください。
- 秒単位のディープリンクは不可。 引用は
@ハンドル · Reel URL · 0:03の形式で行います。
ツール:
reels_fetch: 1回の呼び出しで最大20のReel;パーツはdetails、transcript、frames、comments、cover;start/endで範囲指定;queryで合致箇所の検索;frames/frameAtで実際のフレームを取得。reels_links: 1~15のWebページからReelのリンクを取得。reels_doctor: 何か問題が発生したら1回実行してください。
ステップ 1: Reelを入手する
- ユーザーがリンクを提供した場合: それらのリンクを使用します。ショートコードで重複を排除します。
- ユーザーがトピックを指定した場合: references/finding-reels.md を参照してください。簡単に言うと、トピックに関するReelを埋め込んだりリスト化しているWebページ(記事、「ベストReel」まとめ、ニュースレター、クリエイターサイト)をWeb検索し、最も良さそうな5~15ページに対して
reels_linksを実行します。 - ユーザーがクリエイターを指定した場合: InstagramではログインなしでプロフィールのReel一覧を取得できません。ユーザーにReelのリンクを依頼するか、そのクリエイターのReelを埋め込んでいるWebページを検索してください。この制限は明確に伝えてください。
ステップ 2: 結果を定義する
データ取得の前に、行と列を決定します。フックの場合: Reel、クリエイター、1日あたりのいいね数、話し言葉のフック(原文ママ)、画面テキスト、ビジュアル、フックのタイプ、タイムスタンプ。どのような条件に合致するか(言語、新しさ、最低いいね数)を明記します。
ステップ 3: 読み取る
- フック: references/hooks.md。
- 発言内容:
parts: ["transcript"]とqueryでテーマを指定し、その後start/endを絞って正確な表現を確認します。 - 1回の呼び出しで5~10のReelをバッチ処理します。Instagramは匿名アクセスにレート制限を課しています。サーバー側で間隔を空けますが、大きなバッチを並列で大量に実行しないでください。
約15以上のReelがある場合は、最大3つの並列サブエージェント(Agentツール、model: "haiku")に分割し、それぞれに正確なReel URL、行スキーマ、リファレンスファイルのパス、および以下の行をそのまま渡します:
reels_reviewed: N
skipped: <url: 理由>, ... (または "none")
ステップ 4: 検証して成果物を提供する
- 引用はトランスクリプトまたはフレーム内の画面テキストからの原文ママ(どちらか明記)。音声認識は名前やブランドを聞き間違えることがあります。明らかなものは [角括弧] で修正します。
- サブエージェントごとに2~3行を、狭い
start/endでスポットチェックします。 - 最後にカバレッジを提示: スキャンしたページ数、見つかったReel数、読み取ったReel数、スキップしたものとその理由(
login_required、not_found、rate_limited、音楽のみ)。 - レポート作成ルール: references/synthesis.md。
エラー
[rate_limited]: InstagramがこのIPを制限しています。数分待って、失敗したReelを小バッチで1回再試行し、残りはスキップとして報告します。[login_required]: プライベート、年齢制限、または地域ブロックされたReelです。スキップしてその旨を伝えます。[setup]: メッセージから正確なコマンド(通常はnpx -y github:jindratilk/reels-research-mcp --setup)をユーザーに伝えます。