Communitygithub.com

jindratilk/reels-research-mcp

Instagram Reelsの研究を行うためのMCPツールセットです。Reelの詳細、タイムスタンプ付きトランスクリプト、フレームを取得し、フックや引用、画面上のテキストを抽出、比較できます。

reels-research-mcp とは?

このスキルは、Claude Code や Cursor などのAIエージェントがInstagram Reelsを体系的にリサーチするためのMCPツールセットです。ユーザーが提供したURLやWebページからReelのリンクを収集し、Reelの詳細、音声からのトランスクリプト(25言語対応)、実際のフレーム画像、コメントなどを取得できます。ログイン不要で動作しますが、Instagram内の検索はできず、Reelはユーザーのリンクまたは Web ページからのみ取得可能です。トランスクリプトはローカル音声認識エンジン(Parakeet Redux)を使用するため、音楽のみのReelでは発話が取得できません。リサーチはステップに分かれており、まずReelを収集し、解析したい項目(フック、引用、画面テキストなど)を定義し、実際にデータを取得、最後に検証と結果の合成を行います。レート制限やログイン制限などのエラーハンドリングも組み込まれており、大規模なリサーチでは複数のサブエージェントへの分割もサポートしています。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/jindratilk/reels-research-mcp/tree/HEAD/skills/reels-research

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

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

ドキュメント

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)をユーザーに伝えます。

関連スキル