mcpField
Y
youtube-seo

youtube-seo

github.com/illyism营销与增长1.2k158 次安装3 天前更新
代码仓库

关于 youtube-seo

这项 skill 面向发布搜索导向视频的团队,可将视频素材整理为 YouTube 元数据并编辑仓库文件。它规定了基于转录稿编写章节、标题、描述、发布帖和配套博客嵌入内容的流程。

主要功能

  1. 01基于转录稿规划章节
  2. 02提供两种限长标题
  3. 03按 Key Moments 结构编写描述
  4. 04起草社交平台发布帖
  5. 05在配套博客中嵌入视频

适用场景

  1. 01为教程视频准备元数据
  2. 02依据转录稿添加可搜索章节
  3. 03为 X 和 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 经常会展示 3-8 个 YouTube 视频,其中许多还带有跳转到特定章节的链接。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

标记出最重要的一个内容节点。它将成为标题选项 A 的吸引点,也是描述第 1 行的内容。

第 3 步:撰写 2 个标题选项

选项 A:结果型吸引点(适用于 Browse 和 Suggested)。 围绕最重要的内容节点展开:一个数字、一项成果或一个惊喜。最多 70 个字符,避免在移动设备上被截断。

选项 B:搜索型标题。 先写目标查询词组,再写产品或结果。最多 60 个字符,确保在 Google 搜索结果中完整显示。

显示每个标题的字符数:

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 秒。较短的章节会导致整个列表无法解析 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 格式。每行写一个章节: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 查看所在领域中表现最好的视频帖子采用的吸引点。它会筛选出表现超出作者平时触达范围的 X 帖子,让你可以套用经过验证的吸引点结构,而不是凭空猜测。

为每个平台分别撰写一个纯文本区块:

[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]

帖子中的章节行能让读者在点击前看到具体步骤,还能在第二个被索引的平台上重复这些可搜索的措辞。

嵌入到匹配的博客文章中

将视频嵌入到针对相同查询的博客文章中,直接放在视频所回答的第一个 <h2> 下方。这样,页面和视频就会针对同一查询共同获得排名,而页面文本也能为 AI Overviews 提供另一个可引用来源,与视频并列。

如果仓库中没有视频组件,请添加一个:

// 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>
  )
}

在 MDX 中的用法,包含 VideoObject JSON-LD,其 hasPart 与章节相对应:

<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 转义,从而破坏 schema。将每个章节都包含在 hasPart 中,并以秒为单位填写 startOffset 和 endOffset。如果仓库通过辅助工具或页面 metadata 渲染 JSON-LD,请使用该方式,而不是内联脚本;遵循现有模式。

将博客文章 URL 添加到视频描述中,作为次要链接,以便两个页面都能链接到对方。

输出

每次运行都会写入 content/youtube/[video-slug].md(或仓库中的等效目录),内容包括:

  1. 标题选项 A 和 B,附字符数及推荐选项。
  2. 完整描述,可直接粘贴,并附经过验证的章节列表。
  3. X 和 LinkedIn 的发布帖内容块。

如果存在匹配的博客文章,还要就地编辑,添加 <YouTubeVideo> 嵌入和 VideoObject JSON-LD。

交付前,验证章节列表:从 00:00 开始,按时间递增,每段间隔 >= 10 秒,数量在规定范围内。在聊天中输出:章节:10 个,间隔均 >= 10 秒,起始时间为 00:00。

使用 AI SEO Tracker 跟踪 Google AI Overviews、ChatGPT 和 Perplexity 是否在目标查询中引用该视频或配套博客文章(MCP:https://aiseotracker.com/api/agent/mcp)。

不要

  • 编写没有真实转录稿时间戳依据的章节
  • 将任何章节命名为 Intro、Part 1 或 Outro
  • 选项 B 不得超过 60 个字符
  • 不要将落地页链接放在时间戳下方
  • 不要代表用户上传、发布或发帖

评论

支持 Markdown