Skip to main content
Glama
thesalautomation-lgtm

YouTube MCP Server

YouTube MCP Server

将 YouTube 带入 Claude Code 的 MCP 服务器——支持视频文字记录、搜索、元数据、频道信息、播放列表、评论、热门视频、互动数据分析、章节提取、SponsorBlock 集成以及最多重播热力图。基于 YouTube Data API v3、youtube-transcript 和 SponsorBlock 构建。

快速开始

第一步:获取 API 密钥

  1. 前往 Google Cloud Console

  2. 创建一个项目(或选择现有项目)

  3. 启用 YouTube Data API v3

  4. 创建 API 密钥:

    • 前往 凭据

    • 点击 创建凭据 > API 密钥

  5. 复制该密钥(第三步会用到)

第二步:安装必备条件

第三步:安装 MCP 服务器

3.1 克隆仓库

git clone https://github.com/wynandw87/claude-code-youtube-mcp.git
cd claude-code-youtube-mcp

3.2 安装依赖

macOS / Linux / Windows:

npm install

注意: 依赖安装与服务器构建会在一步内自动完成。

3.3 注册到 Claude Code

选择你的安装范围:

范围

Flag

谁可以使用

用户(推荐)

-s user

你,在任何项目中

项目

-s project

任何克隆此仓库的人

本地

-s local

仅限当前目录

YOUR_API_KEY 替换为你真实的 YouTube Data API 密钥,并使用 dist/index.js 的完整路径。

提示: 在克隆的目录中运行以下命令获取完整路径:

  • macOS/Linux:echo "$(pwd)/dist/index.js"

  • Windows:echo %cd%\dist\index.js

macOS / Linux:

claude mcp add -s user youtube -e YOUTUBE_API_KEY=YOUR_API_KEY -- node /full/path/to/dist/index.js

Windows (CMD):

claude mcp add -s user youtube -e "YOUTUBE_API_KEY=YOUR_API_KEY" -- node "C:\full\path\to\dist\index.js"

Windows (PowerShell):

claude mcp add -s user youtube -e "YOUTUBE_API_KEY=YOUR_API_KEY" '--' node "C:\full\path\to\dist\index.js"

替代方案:使用 npm 辅助命令(如果已在环境中设置 API 密钥)

export YOUTUBE_API_KEY=YOUR_API_KEY
npm run install:claude

第四步:重启 Claude Code

关闭并重新打开 Claude Code,以使更改生效。

第五步:验证安装

claude mcp list

你应该会看到 youtube 显示为已连接(Connected)状态。


Related MCP server: YouTube Insights MCP Server

功能特性

文字记录与字幕

  • Get Transcript (get_transcript) - 获取带时间戳的完整视频文字记录,支持多种语言

  • Search Transcript (search_transcript) - 查找关键词或短语在视频中出现的位置,并附带时间戳

  • Clean Transcript (get_clean_transcript) - 通过 SponsorBlock 移除赞助口播、开场、结尾和填充内容的文字记录

  • Extract Chapters (extract_chapters) - 从视频描述中解析章节时间戳

搜索与发现

  • Search Videos (search_videos) - 完整的 YouTube 搜索,支持按日期、时长、类型和排序方式过滤

  • Search Within Channel (search_within_channel) - 在特定创作者的频道内搜索视频

  • Get Trending Videos (get_trending_videos) - 按地区和类别查看当前热门视频

  • Get Channel Videos (get_channel_videos) - 频道最近上传的视频,可按日期或观看次数排序

视频与频道信息

  • Video Metadata (get_video_metadata) - 标题、描述、时长、观看次数、点赞数、标签等

  • Channel Info (get_channel_info) - 订阅者数量、视频数量、描述、国家/地区

  • Playlist Items (get_playlist_items) - 播放列表中的所有视频及其位置和元数据

数据分析与互动

  • Calculate Engagement (calculate_engagement) - 根据公开统计数据计算点赞率、评论率和互动率

  • Most Replayed (get_most_replayed) - 热力图数据,显示观众最常重看的片段

  • Video Comments (get_video_comments) - 热门评论及其点赞数和回复数

实用工具

  • Parse YouTube URL (parse_youtube_url) - 从任意 YouTube URL 格式中提取视频/频道/播放列表 ID


使用方法

安装完成后,使用触发词来调用 YouTube 工具:

触发词

工具

示例

youtube transcript

Get Transcript

“获取这个视频的 youtube 文字记录”

youtube search

Search Videos

“用 youtube 搜索 React 教程”

youtube metadata

Video Metadata

“获取这个视频的 youtube 元数据”

youtube channel

Channel Info

“获取 @ThePrimeagen 的 youtube 频道信息”

youtube playlist

Playlist Items

“列出这个 youtube 播放列表中的视频”

youtube comments

Video Comments

“获取这个视频的 youtube 评论”

youtube trending

Trending Videos

“youtube 在美国有哪些热门内容?”

youtube chapters

Extract Chapters

“从这个 youtube 视频中提取章节”

youtube engagement

Calculate Engagement

“计算这个视频的 youtube 互动率”

youtube most replayed

Most Replayed

“显示这个 youtube 视频最常被重看的片段”

youtube clean transcript

Clean Transcript

“获取一份不含赞助内容的干净 youtube 文字记录”

youtube search transcript

Search Transcript

“在 youtube 文字记录中搜索‘authentication’”

或者直接自然地问:

  • “获取这个 YouTube 视频的文字记录并总结一下”

  • “这个视频最常被重看的片段有哪些?”

  • “在这个频道上查找最近关于 TypeScript 的视频”

  • “这个视频有多少观看次数和点赞数?”

  • “获取这个视频的评论并总结情感倾向”

  • “给我看看这个教程的章节”

  • “获取一份不含赞助口播的干净文字记录”

  • “YouTube 游戏区现在有什么热门内容?”


工具参考

parse_youtube_url

解析任意 YouTube URL 格式并提取标识符。无需 API 密钥。

参数:

  • url (string, 必填) - 任意 YouTube URL 或视频 ID

支持的格式: youtube.com/watch?v=youtu.be//shorts//embed//playlist?list=/channel//@handle/c//user/、裸视频 ID

get_transcript

获取 YouTube 视频的完整文字记录/字幕。无需 API 密钥。

参数:

  • url (string, 必填) - YouTube 视频 URL 或视频 ID

  • lang (string, 可选) - 字幕的语言代码 (默认:"en")

在视频的文字记录中搜索关键词或短语。

参数:

  • url (string, 必填) - YouTube 视频 URL 或视频 ID

  • query (string, 必填) - 要搜索的关键词或短语

  • lang (string, 可选) - 字幕的语言代码 (默认:"en")

extract_chapters

从视频描述中提取章节时间戳。

参数:

  • url (string, 必填) - YouTube 视频 URL 或视频 ID

get_clean_transcript

获取文字记录,并通过 SponsorBlock 移除赞助口播、开场、结尾和填充内容。

参数:

  • url (string, 必填) - YouTube 视频 URL 或视频 ID

  • lang (string, 可选) - 字幕的语言代码 (默认:"en")

get_most_replayed

获取“最多重播”热力图数据,显示观众最常重看的片段。

参数:

  • url (string, 必填) - YouTube 视频 URL 或视频 ID

注意: 需要大约 50K+ 次观看才会生成热力图数据。

使用完整的过滤选项搜索 YouTube。

参数:

  • query (string, 必填) - 搜索关键词

  • max_results (number, 可选) - 结果数量,1-50 (默认:10)

  • order (string, 可选) - "relevance""date""viewCount""rating" (默认:"relevance")

  • duration (string, 可选) - "short" (<4 分钟)、"medium" (4-20 分钟)、"long" (>20 分钟)

  • upload_date (string, 可选) - "hour""day""week""month""year"

  • type (string, 可选) - "video""channel""playlist" (默认:"video")

get_video_metadata

获取 YouTube 视频的详细元数据。

参数:

  • url (string, 必填) - YouTube 视频 URL 或视频 ID

返回: 标题、描述、频道、时长、观看/点赞/评论数量、标签、类别、缩略图、直播状态等。

get_channel_info

获取 YouTube 频道信息。

参数:

  • url (string, 必填) - YouTube 频道 URL、@handle 或频道 ID

返回: 标题、描述、订阅者/视频/观看数量、国家/地区、自定义 URL 和缩略图。

get_playlist_items

获取 YouTube 播放列表中的所有视频。

参数:

  • url (string, 必填) - YouTube 播放列表 URL 或播放列表 ID

  • max_results (number, 可选) - 条目数量,1-50 (默认:25)

get_channel_videos

获取 YouTube 频道最近发布的视频。

参数:

  • url (string, 必填) - YouTube 频道 URL、@handle 或频道 ID

  • max_results (number, 可选) - 视频数量,1-50 (默认:25)

  • order (string, 可选) - "date""viewCount" (默认:"date")

get_trending_videos

获取当前热门/流行的 YouTube 视频。

参数:

  • region_code (string, 可选) - ISO 3166-1 alpha-2 国家/地区代码 (默认:"US")

  • category_id (string, 可选) - YouTube 类别 ID(例如 "10" 表示音乐,"20" 表示游戏,"28" 表示科学与技术)

  • max_results (number, 可选) - 结果数量,1-50 (默认:10)

在特定 YouTube 频道内搜索视频。

参数:

  • url (string, 必填) - YouTube 频道 URL、@handle 或频道 ID

  • query (string, 必填) - 搜索关键词

  • max_results (number, 可选) - 结果数量,1-50 (默认:10)

get_video_comments

获取 YouTube 视频的顶级评论。

参数:

  • url (string, 必填) - YouTube 视频 URL 或视频 ID

  • max_results (number, 可选) - 评论数量,1-100 (默认:20)

  • order (string, 可选) - "relevance""time" (默认:"relevance")

calculate_engagement

计算 YouTube 视频的互动指标。

参数:

  • url (string, 必填) - YouTube 视频 URL 或视频 ID

返回: 观看次数、点赞数、评论数、点赞率、评论率和整体互动率。


工作原理

该 MCP 服务器通过 stdio 传输协议连接到 Claude Code,并提供 15 个工具:

工具

数据源

需要 API 密钥?

parse_youtube_url

本地解析

get_transcript

youtube-transcript 库

search_transcript

youtube-transcript 库

get_clean_transcript

youtube-transcript + SponsorBlock API

get_most_replayed

YouTube 页面(Innertube)

extract_chapters

YouTube Data API v3

search_videos

YouTube Data API v3

get_video_metadata

YouTube Data API v3

get_channel_info

YouTube Data API v3

get_playlist_items

YouTube Data API v3

get_channel_videos

YouTube Data API v3

get_trending_videos

YouTube Data API v3

search_within_channel

YouTube Data API v3

get_video_comments

YouTube Data API v3

calculate_engagement

YouTube Data API v3

备注: 5 个工具无需 API 密钥即可使用(转录、SponsorBlock、热图、URL 解析)。其余 10 个需要 YouTube Data API v3 密钥。


配置

环境变量

变量

必需

默认值

描述

YOUTUBE_API_KEY

YouTube Data API v3 密钥

YOUTUBE_TIMEOUT

30000

API 超时时间(毫秒)

YouTube API 配额

YouTube Data API v3 的每日配额为 10,000 个单元。每个工具消耗的配额不同:

操作

每次调用成本

search (search_videos, search_within_channel)

100 个单元

videos.list (get_video_metadata, get_trending, calculate_engagement)

1 个单元

channels.list (get_channel_info, get_channel_videos)

1 个单元

playlists.list (get_playlist_items)

1 个单元

playlistItems.list (get_playlist_items, get_channel_videos)

1 个单元

commentThreads.list (get_video_comments)

1 个单元

提示: 搜索操作的成本最高。如果只需要最新上传内容,请使用 get_channel_videos(1 个单元)而不是 search_within_channel(100 个单元)。


故障排查

修复 API 密钥

如果您输入了错误的 API 密钥,请将其移除并重新安装:

claude mcp remove youtube

然后使用上面第 3.3 步中的命令重新安装(使用与您最初安装时相同的作用域)。

MCP 服务器未显示

检查服务器是否已安装:

claude mcp list

如果未列出,请按照第 3 步进行安装。

服务器无法启动

  1. Google Cloud Console验证您的 API 密钥是否有效

  2. 检查 YouTube Data API 是否已启用

  3. 检查 Node.js 版本(需要 18+):

    node --version
  4. 确保服务器已构建 — 如果缺少 dist/index.js,请重新运行 npm install

连接错误

  1. 检查 dist/index.js 是否存在 — 如果不存在,请运行 npm install

  2. 在您的 claude mcp add 命令中验证路径是否为绝对路径

  3. 更改任何配置后,重启 Claude Code

配额超限

如果您看到“quotaExceeded”错误:

  • 等待太平洋时间午夜(配额每天重置)

  • 使用其他 API 密钥

  • 优先使用低成本工具(get_video_metadata,1 个单元),而不是搜索工具(100 个单元)

转录不可用

某些视频禁用了转录功能。get_transcript 工具将返回明确的错误消息。请尝试:

  • 使用其他语言代码(例如 lang: "es"

  • 即使没有手动字幕,自动生成的字幕也可能可用

超时错误

对于慢速连接,请增大 YOUTUBE_TIMEOUT 环境变量:

claude mcp add -s user youtube -e YOUTUBE_API_KEY=YOUR_KEY -e YOUTUBE_TIMEOUT=60000 -- node /path/to/dist/index.js

查看当前配置

claude mcp list

参与贡献

欢迎提交 Pull Request!请保持简单并适合初学者。

许可证

MIT


为 Claude Code 社区而制作

F
license - not found
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • YouTube transcripts, search, channels, playlists and bulk transcript jobs for AI agents. 14 tools.

  • Provide token-optimized, structured YouTube data to enhance your LLM applications. Access efficien…

  • Extract YouTube transcripts, search what was said, and read on-screen frames with cited timestamps.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/thesalautomation-lgtm/youtube-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server