mcpField
Y
youtube-seo

youtube-seo

github.com/illyismマーケティング・グロース1.2k158 回インストール3 日前に更新
リポジトリ

youtube-seo について

検索流入を重視する動画を公開するチーム向けに、動画素材からYouTubeメタデータを作成し、リポジトリを編集するスキルです。文字起こしに基づくチャプター、タイトル、説明文、告知投稿、対応するブログへの埋め込みを定めます。

主な機能

  1. 01文字起こしに基づくチャプター作成
  2. 02長さ制限付きのタイトル案を2つ作成
  3. 03Key Moments形式の説明文
  4. 04SNS告知投稿の下書き
  5. 05対応するブログへの動画埋め込み

活用シーン

  1. 01チュートリアル動画のメタデータ作成
  2. 02文字起こしから検索向けチャプターを追加
  3. 03XとLinkedIn向け告知投稿の作成
  4. 04対応するブログ記事への動画埋め込み

MCP 対応

Scribiz MCPを使い、動画の概要取得、動画内検索、文字起こし取得ができます。引用状況の追跡にはAI SEO Tracker MCPも挙げられています。

インストール

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

$npx skills add https://github.com/illyism/seo-skills --skill youtube-seo

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

詳細

YouTube SEO

録画を、YouTubeで上位表示され、Google Key Momentsに選ばれ、AI Overviewsで動画が引用されるメタデータに変換します。出力するのはメタデータファイルと、ユーザーのリポジトリ内の埋め込み編集です。タイトルを書かずに「良いタイトル」について助言するだけでは、実行失敗です。

YouTubeが検索とAI Overviewsへの近道である理由

how to のクエリ、API連携のクエリ、ワークフローのクエリでは、Googleの検索結果とAI Overviewsに、特定のチャプターへのジャンプリンク付きでYouTube動画が3~8本表示されることがよくあります。Googleは、アップロードしたユーザーのドメインオーソリティではなく、音声の文字起こしとチャプターラベルをクエリに照合して動画を選びます。そのため、DR 10のスタートアップが公開した2日前の動画が、DR 90の既存企業のブログ記事より上位の動画枠を獲得できるのです。

効果を左右するのは、購入検討者が検索するサブクエスチョンに合致する、的確なチャプターラベルと文字起こしのフレーズです。03:12 Add the DKIM TXT record in Cloudflare なら、クエリ add dkim record cloudflare で上位表示を狙えます。03:12 Part 2 では何も得られません。

入力

VIDEO:        YouTube URL, local file, or .srt/.vtt transcript
PRODUCT:      name, landing page URL for this video's topic
TARGET QUERY: the main search phrase (ask if unclear; check autocomplete for wording)
BLOG POST:    matching post path in the repo, if one exists

ステップ1:文字起こしを取り込む

What do you have?
├── A URL and the Scribiz MCP (https://scribiz.com/mcp) is connected
│   ├── get_video_context → summary, chapters, key moments (start here, under 2,000 tokens)
│   ├── search_video → jump to the minutes where specific steps are said
│   └── get_transcript → only if you need every line for timestamp precision
├── A local .srt or .vtt file
│   └── Read it directly. Every cue has a start time.
├── A URL or local media file with no MCP
│   └── Run `npx scribiz <url-or-file>` (or ask for the .srt from YouTube Studio > Subtitles > Download)
└── Nothing with timestamps
    └── Stop. Chapters without real timestamps send viewers to the wrong moment.

Scribiz(https://scribiz.com/mcp)は、動画に字幕がない場合、タイムスタンプ付きの文字起こしを返します。また、APIキーがあれば画面上のテキストも読み取ります。画面上のテキストはデモで重要です。画面に表示される正確なUIラベル、エラーメッセージ、設定名が、人々の検索語句だからです。

ステップ2:要点を抽出する

文字起こしを読み、具体的な要点を開始時刻とともにすべて列挙します。

KEEP                                          CUT
A number ("cut the bill from $480 to $90")    "Hey guys, welcome back"
A live fix or step being done on screen       "Before we start, smash that like button"
A before/after result                         Recaps of what was just said
An error message and how it was solved        Tangents unrelated to the target query
A named setting, command, or UI path          Sponsor reads

最も強い要点を1つ選びます。それをタイトル案Aのフックと、説明文の1行目に使います。

ステップ3:タイトル案を2つ作成する

案A:成果を引き出すフック(ブラウジングと関連動画向け)。 最も強い要点を基に、数字、成果、または意外性を盛り込みます。モバイルで省略されないよう、70文字以内にします。

案B:検索向けタイトル。 検索対象のクエリフレーズを先頭に置き、その後に製品名または成果を続けます。Googleの検索結果に全文が表示されるよう、60文字以内にします。

それぞれの文字数を示します。

A (62): I Cut Our Email Bounce Rate From 9% to 0.4% With 3 DNS Records
B (48): How to Set Up DMARC, SPF, and DKIM in Cloudflare

チュートリアルと連携動画(検索主導)では案Bを、監査、解説、意見動画(ブラウジング主導)では案Aを推奨します。

ステップ4:Key Moments用の説明文を作成する

構成
Line 1:   The problem and the solution in one line, under 120 characters.
          This is the only text visible above "Show more" in search and on the watch page.
Line 2:   blank
Lines 3-5: 3 bullets, each a concrete result or step from the video (numbers, named tools)
Line 6:   Primary landing page link with a 2-5 word label: "Free DMARC checker: https://..."
Line 7:   blank
TIMESTAMPS block
Optional: 1-2 related video or doc links, then nothing else

YouTubeの説明文ではMarkdownがレンダリングされないため、1行目の効果は太字ではなく、配置と表現によって決まります。検索対象のクエリに含まれる語句を、1行目にそのまま入れます。

チャプターのルール(厳守)
  1. 最初のチャプターは 00:00 にします。そうしないと、YouTubeはチャプターリスト全体を無視します。

  2. タイムスタンプは昇順に並べ、各チャプターを10秒以上にします。10秒未満のチャプターがあると、リスト全体のKey Moments解析に支障をきたします。

  3. 動画の長さに応じたチャプター数:

    Video length
    ├── Under 3 minutes  → 3-5 chapters (YouTube requires at least 3)
    ├── 3-8 minutes      → 6-10 chapters
    └── Over 8 minutes   → 10-18 chapters
    
  4. 各ラベルは、検索されるサブステップを「動詞+目的語+文脈」の形で表現し、3~8語にします。Add the SPF record in Cloudflare DNS、Fix "too many DNS lookups" error、Check results with a DMARC report。

  5. 00:00 のラベルにはフックの内容を付け、Intro は使いません。00:00 Why your emails land in spam ならGoogleが照合できるフレーズになりますが、Intro では何も伝わりません。

  6. 話者が説明を始めた時点ではなく、ステップが画面に表示され始める時点のタイムスタンプを使います。検索結果から移動してきた視聴者にすぐステップを見せないと、視聴をやめてしまいます。

  7. 1時間未満は mm:ss、1時間以上は h:mm:ss の形式にします。チャプターは1行に1つ記載します:03:12 Add the DKIM TXT record。

例
Emails going to spam? Set up DMARC, SPF, and DKIM in Cloudflare in 8 minutes and fix deliverability.

- Bounce rate dropped from 9% to 0.4% after these 3 records
- Fix the "too many DNS lookups" SPF error live
- Read your first DMARC aggregate report without a paid tool

Free DMARC checker: https://formspark.dev/tools/dmarc-checker

00:00 Why your emails land in spam
00:41 Check your current DNS records
01:28 Add the SPF record in Cloudflare
02:35 Fix "too many DNS lookups" error
03:12 Add the DKIM TXT record
04:20 Publish a DMARC policy at p=none
05:06 Send a test email and read headers
05:58 Read your first DMARC report
06:47 Move from p=none to p=quarantine
07:40 Final deliverability check

ステップ5:告知投稿とページへの埋め込み

XとLinkedInの告知投稿

作成前に、ニッチ分野で特に成果を上げている動画投稿のフックを XOutlier で確認します。XOutlierは、投稿者の通常のリーチを上回ったXの投稿を見つけられるため、推測ではなく、実績のあるフックの構成を参考にできます。

各プラットフォーム用に、プレーンテキストのブロックを1つずつ作成します。

[Hook line: the strongest beat with its number, under 100 characters]

[1 line of context: who this is for]

[3-5 chapter lines copied from the description, mm:ss + label]

[CTA: "Full video below" on X with the YouTube link in the first reply; link inline on LinkedIn]

投稿にチャプターの行を入れると、読者はクリックする前に具体的なステップを確認できます。また、検索される表現を、インデックス登録されるもう1つの場所にも掲載できます。

対象となるブログ記事に埋め込む

動画が回答する最初の <h2> の直下に、同じ検索クエリを対象とするブログ記事の動画を埋め込みます。これにより、ページと動画が同じ検索クエリで一緒に上位表示され、ページのテキストが動画と並んで AI Overviews に引用される第 2 のソースになります。

リポジトリに動画コンポーネントがない場合は、追加します。

// components/youtube-video.tsx
export function YouTubeVideo({ id, title }: { id: string; title: string }) {
  return (
    <div className="aspect-video my-6">
      <iframe
        src={`https://www.youtube-nocookie.com/embed/${id}`}
        title={title}
        loading="lazy"
        allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
        allowFullScreen
        className="h-full w-full rounded-lg"
      />
    </div>
  )
}

hasPart がチャプターと対応する VideoObject JSON-LD を含む、MDX での使用例:

<YouTubeVideo id="VIDEO_ID" title="How to Set Up DMARC, SPF, and DKIM in Cloudflare" />

<script
  type="application/ld+json"
  dangerouslySetInnerHTML={{ __html: JSON.stringify({
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "name": "How to Set Up DMARC, SPF, and DKIM in Cloudflare",
  "description": "Set up DMARC, SPF, and DKIM in Cloudflare in 8 minutes and fix deliverability.",
  "thumbnailUrl": "https://i.ytimg.com/vi/VIDEO_ID/maxresdefault.jpg",
  "uploadDate": "2026-11-12T09:00:00+07:00",
  "duration": "PT8M14S",
  "embedUrl": "https://www.youtube.com/embed/VIDEO_ID",
  "hasPart": [
    { "@type": "Clip", "name": "Add the SPF record in Cloudflare", "startOffset": 88, "endOffset": 155, "url": "https://www.youtube.com/watch?v=VIDEO_ID&t=88" },
    { "@type": "Clip", "name": "Add the DKIM TXT record", "startOffset": 192, "endOffset": 260, "url": "https://www.youtube.com/watch?v=VIDEO_ID&t=192" }
  ]
}) }}
/>

dangerouslySetInnerHTML は JSON をエスケープせずに書き込みます。子要素として渡すと、引用符が HTML エスケープされ、スキーマが壊れてしまいます。startOffset と endOffset を秒単位で指定し、すべてのチャプターを hasPart に含めます。リポジトリでヘルパーまたはページの metadata を通じて JSON-LD を出力している場合は、インラインスクリプトではなく、そちらを使用します。既存のパターンに合わせてください。

動画の説明文にブログ記事の URL をサブリンクとして追加し、それぞれの掲載先からもう一方へリンクするようにします。

出力

実行するたびに、以下を含む content/youtube/[video-slug].md(またはリポジトリ内の同等のフォルダー)を書き出します。

  1. 文字数と推奨案を含むタイトル案 A と B。
  2. 検証済みのチャプターリストを含む、貼り付けてすぐ使える説明文全文。
  3. X と LinkedIn の告知投稿ブロック。

該当するブログ記事がある場合は、<YouTubeVideo> の埋め込みと VideoObject JSON-LD をその場で追加します。

引き渡す前に、チャプターリストを検証します。開始時刻が 00:00 であること、時刻が昇順であること、各チャプターの間隔が 10 秒以上であること、チャプター数が動画の長さに応じた範囲内であることを確認します。チャットに Chapters: 10, all >= 10s, first 00:00 と出力します。

対象の検索クエリで Google AI Overviews、ChatGPT、Perplexity が動画または関連するブログ記事を引用しているかどうかを、AI SEO Tracker(MCP:https://aiseotracker.com/api/agent/mcp)で追跡します。

禁止事項

  • 実際のトランスクリプトにタイムスタンプがないチャプターを作成しないでください。
  • チャプターに Intro、Part 1、Outro というラベルを付けないでください。
  • タイトル案 B を 60 文字以内にしてください。
  • ランディングページのリンクをタイムスタンプより下に置かないでください。
  • ユーザーに代わってアップロード、公開、投稿しないでください。

コメント