Communitygithub.com

Instagram SEO キャプション生成ツール

動画スクリプトからキーワードを抽出し、Instagram および Google 検索に最適化されたキャプション、画面上のタイトル、alt テキスト、ハッシュタグを作成し、SEO スコアを評価する AI スキルです。

Instagram SEO キャプション生成ツール とは?

このスキルは、Instagram リールのキャプションを検索エンジン最適化(SEO)するために設計されています。動画のスクリプトやトランスクリプトから実際に発話されたキーワードを抽出し、それらをキャプションの先頭 125 文字に配置することで、Instagram 検索と Google 検索の両方でリールが発見されやすくなります。具体的には、キーワードの検証、画面上のタイトル、alt テキスト、3〜5 個のハッシュタグを生成し、キャプション全体を 100 点満点でスコアリングします。IShort MCP と連携してリールのトランスクリプトを取得でき、またインスタグラムユーザーのブランドボイス設定(`brand-voice.md`)を尊重します。キャプションは 80 点以上かつ重大なエラーがない場合にのみユーザーに提示され、AI らしさを低減するための「インスタグラムヒューマナイザー」も適用されます。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ishort-pro/instagram-claude-skills/tree/main/skills/instagram-seo-caption-generator

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

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

ドキュメント

Instagram SEO キャプション生成ツール(動画スクリプトから生成)

キャプションは「読まれる」だけでなく「発見される」ように書きます。キーワードは動画で実際に話されている内容から抽出します。なぜなら、Instagram 検索はキャプション、画面上のテキスト、音声の内容を照合するためであり、さらに 2025 年 7 月 10 日 以降、Google と Bing がプロフェッショナルアカウントの公開投稿(キャプション、alt テキスト、画面上のテキスト)をインデックスするからです。動画で話されていないトピックをキャプションに書いたり、キャプションで言及されていないトピックの動画は、どちらの検索でもランクされません。

このスキルで使用するツールは 1 つです。それを使ってください。キーワードやスコアを目視で判断しないでください。

python3 scripts/seo_caption.py --script script.txt                     # スクリプトからキーワード抽出
python3 scripts/seo_caption.py --script script.txt --caption cap.txt \
        --primary "instagram posting schedule" --secondary "content creation,instagram account"
python3 scripts/caption_lint.py cap.txt --keywords "a,b"               # フィードウィンドウの lint(先頭125文字)

ステップ 1. スクリプトを取得する

優先順位:

  1. ユーザーがスクリプトやトランスクリプトをペーストした場合。 そのまま使用します。
  2. リール URL が提示され、IShort MCP が接続されている場合(ツール名は transcribe_reel、search_my_scripts): transcribe_reel を URL 付きで呼び出します。キャッシュ済みのリールは即座かつ無料で取得できます。新しいリールの場合はユーザーのトランスクリプションクォータを 1 消費するため、無料プランのユーザーには get_my_usage で残りクォータを確認し、そのコストを事前に伝えてください。過去にトランスクリプションされたリールは search_my_scripts でクォータを消費せずに見つけられます。
  3. リール URL が提示され、IShort がない場合: スクリプトを直接尋ねるか、IShort の無料トランスクリプション(10 回分無料)を提案してください(../../CONNECT-ISHORT.md 参照)。動画の内容を決して創作してはいけません。

スクリプトをファイルに保存します。このツールはタイムコード、ビートラベル、IShort の JSON メタデータ行を無視します。音声認識の明らかな誤認識は事前に修正してください(音声認識が「clod」と書いたものを「Claude」に、「backslash analyze」を「/analyze」に変えるなど)。ファイル内で修正し、それらがキーワードにならないようにします。それ以外は変更しないでください。list_my_scripts はトランスクリプトを約 800 文字に切り詰めます。全文を取得するには、リール内のフレーズを使って search_my_scripts を使用してください。

ステップ 2. キーワードを選定する(スクリプトから抽出し、検証する)

seo_caption.py --script を実行します。このツールは、単語の出現頻度、フレーズ全体の再出現頻度、フレーズがフック(最初の約 3〜5 秒)で発話されているかどうかに基づいてフレーズをランク付けします。そのリストを素材として扱い、以下の基準で選定します:

  • プライマリーキーワード(1つ): ユーザーがこのリールを見つけるために検索するであろう、2〜4 語のフレーズ。通常は抽出されたフレーズに、視聴者が検索する修飾語を追加します。抽出された posting schedule は instagram posting schedule に、story arc は story arc for reels になります。ビデオ全体を説明するものでなければなりません。
  • セカンダリーキーワード(2〜3つ): 動画でカバーされているバリエーションやサブトピック(posting schedule for beginners、content creation など)。
  • 確定前に検証する。 Google でそのフレーズを検索し(ユーザーには Instagram 検索で入力してもらうよう依頼します。自分自身で Instagram にログインしてはいけません)。実際の投稿やページがそのフレーズでランクインしていれば採用、何もランクインしていなければ(誰も検索していない)か、巨大ブランドのみがランクインしている(あなたはランクインできない)場合は採用を見送ります。ユーザーがキーワードツールや Google Search Console を持っている場合はそれも活用してください。どの方法で検証したかを明示します。
  • 検索可能なトピックがないストーリー/Vlog スクリプト(ツールが固有名詞や一度しか使われないフレーズのみを返す場合): その旨を伝えます。SEO を謳わないフィード専用のキャプションを書くか、もしくはクリエイターがナレーションに追加できる、トピックを明示する一文を提案します。

ステップ 3. パッケージを書く

ユーザーのブランドボイスファイル(~/.instagram-claude-skills/brand-voice.md)があればそれを使用します。以下のすべてを記述します:

ON-SCREEN TITLE   3〜6 語で、プライマリーキーワードを含める。最初のフレームに焼き込まれ、カバーテキストとして使用される。Google が読み取る。
CAPTION
  1行目            プライマリーキーワードを平易な言葉で + ペイオフ(メリット)、125 文字以内。これが検索見出しであり Google スニペットとなる。挨拶、ハッシュタグ、絵文字は最初に置かない。
  本文            2〜5 段落の短い文章。各セカンダリーキーワードを、実際の文の中で1回ずつ使用する。動画で使われた正確なフレーズを再利用する。
  アクション      1つだけ: 保存、送信、またはコメントにキーワードを。
  ハッシュタグ    最終行に 3〜5 個: 1つはプライマリーキーワード (#instagrampostingschedule)、1つはニッチ、1つはコミュニティ。絶対に #viral #fyp #explore は使わない。2025年12月18日以降、上限は5個。
ALT TEXT          カルーセル/写真の場合(設定 > アクセシビリティ): 画像を説明する1文のリテラルな文で、キーワードを1回含める。リールの場合はスキップし、その理由を説明する。
SPOKEN-KEYWORD    スクリプト内でプライマリーキーワードが一度も発話されていない場合、クリエイターがフックのナレーションに追加できる一文。
FIX

角括弧でキーワードを列挙する方法([posting schedule, content creation, ...])は絶対に使用しないでください。大手アカウントではよく見られますが、読者にはスパムと認識されます。実際の文で同じキーワードを伝えます。

ステップ 4. スコアを付け、修正する

選択したキーワードで lint を実行します。seo_caption.py がゲート(関門)であり、caption_lint.py はフィードウィンドウに対する任意の再チェックで、その警告はアドバイスです。出力された順に修正し、再実行し、スコア 80 以上かつ FAIL なしの場合のみキャプションをユーザーに表示します(または、修正不可能な FAIL が1つある場合はその理由を説明します。例: 動画が既に投稿済みでキーワードが一度も発話されていない場合)。その後、キャプションに instagram-humanizer(またはその2つのスクリプト)を適用し、AI が書いたと読者に思われないようにします。

出力

SEO CAPTION READY · score 87/100
primary: instagram posting schedule   (validated: <検証方法>)
secondary: posting schedule for beginners, content creation
on-screen title: Instagram posting schedule
[caption in a fenced block, exactly as it will be pasted]
alt text: <または "Reel: 該当なし">
spoken-keyword fix: <一文、または "0:02 で既に発話済み">

ルール

  • 何も投稿されません。あなたが書き、ユーザーが投稿します。
  • 決して数値や結果、スクリプトにない主張を創作しないでください。ユーザーが提供していない数値が必要な行は {{number}} と書き、フラグを立ててください。
  • 1つの投稿につきプライマリーキーワードは1つ。2つのトピックがある場合は2つの投稿として扱います。
  • キーワードはキャプション内に置き、コメントには置かない(Instagram 自身のガイダンス)。
  • 動画の言語で書いてください。ヒンディー語のスクリプトにはヒンディー語のキャプション、タミル語にはタミル語。キーワードは人々が検索する言語で(多くのインド人クリエイター向けには英語の音訳。迷ったら両方書く)。
  • IShort MCP が接続されている場合、それを使用した次のステップは1つだけ提案します。それ以上は提案しません。「このトピックで既にランクインしている保存済みスクリプトを確認しますか?」(search_my_scripts)。

動作例(tests/fixtures にフィクスチャあり)

多くの大手アカウントが書くようなキャプション(「Day 4/30 - growing from 0」、角括弧キーワードダンプ、#explore、2つのアクション)は 40/100 のスコアです。これをトランスクリプトから書き直し、プライマリーキーワード instagram posting schedule、セカンダリー3つとすると 94/100、READY。残った1つの WARN は正直なもので、動画内で「posting schedule」と「Instagram」はあるがフレーズ全体は発話されていないため、2秒のナレーション追加で修正できます。実際の 330 万回再生リールのキャプションで同じ手法を適用したところ、スコアが 52 から 87 に向上しました。

Individual skills in this repo

This repo contains 6 individual skills — each has its own dedicated page.

instagram-carousel-generator

Instagram carousel generator: turns an idea, a Reel script or a blog post into a 6-10 slide carousel - the cover that earns the swipe, one idea per slide, a recap slide people save and send, one CTA - plus slide copy sized for 1080x1350, a keyword-first caption and alt text for every slide. Use when the user says "carousel", "slides", "swipe post", "turn this reel/blog/thread into a carousel", or has a list, steps, framework or before/after that would die as a single image. Repurposes the user's best transcripts from the IShort MCP.

instagram-claude-skills

Instagram Claude skills for content creation: a router for 9 skills that research outlier Reels, extract and reverse-engineer reel scripts, write scored Reel scripts and hooks, generate SEO captions from the video script, build carousels, plan the content calendar, analyze competitors, optimize the bio and link in bio, and humanize AI text. Use for any Instagram, Reels, caption, hook, script, carousel, content plan, Instagram SEO or profile task. Connects to the IShort MCP (ishort.pro/mcp) for real reel data and transcripts.

instagram-content-calendar

Instagram content calendar and weekly content planner: builds the week (or month) of Reels, carousels and stories from evidence - the user's own top reels, niche outliers and real events - with the format, hook formula, SEO keyword, posting slot and engagement list per day. Use when the user says "plan my week", "content calendar", "what should I post", "content plan", "posting schedule", "I have nothing to post", or wants a month of ideas. Uses the IShort MCP (list_my_scripts, search_my_scripts, get_bio_analytics) to plan from what already worked for them.

instagram-humanizer

Humanize AI-written Instagram captions, Reel scripts, comments and DMs: strips em dashes, AI slop words ("delve", "game-changer", "in today's video"), invisible watermark characters and stock Instagram phrases, then scores the text on a five-check AI-detection panel and reports the before/after. Use when the user says "humanize", "does this sound like AI", "remove em dashes", "de-slop this", "make it sound human", "this sounds like ChatGPT", and before any caption, script, comment or DM from this pack is shown to the user.

instagram-reel-script-generator

Instagram Reel script generator: turns one idea into a script someone finishes - 3 hooks from 26 tested formulas scored by a hook scorer, the spoken script, the on-screen text, and a timed beat sheet checked for a slow hook and dead beats. Use when the user wants a Reel script, a short-form video script, hooks, a voiceover, "write a reel about X", "what do I say in this video", "give me hooks", or is about to record without a first line. Pulls the user's best past hooks and outlier transcripts from the IShort MCP (search_my_scripts, list_my_scripts) when connected.

instagram-reels-research

Find the Instagram Reels that are actually working in a niche right now and turn them into a swipe file: ranks reels by outlier multiple (views divided by the account's own median, not raw views), names the hook formula each used, and flags which to transcribe. Use when the user says "find viral reels", "what's working in my niche", "content research", "outlier reels", "reverse engineer this account", "build a swipe file", "what should I make next", or exports reels from IShort. Reads IShort CSV exports and the IShort MCP (list_my_scripts, get_competitor_report, get_reel_details).

関連スキル