mcpField
Y
YouTube MCP Server

YouTube MCP Server

本地服务
github.com/ZubeidHendricks媒体与设计59212 周前更新

关于 YouTube MCP Server

YouTube MCP Server 是面向 YouTube Data API 的 MCP 服务,让语言模型查询视频、频道、播放列表和字幕信息。它适合需要通过 AI 分析 YouTube 内容或发现创作者的用户。项目支持配置多个 API 密钥,配额耗尽时自动切换到下一个密钥。

主要功能

  1. 01查询视频与频道详情
  2. 02搜索视频并按频道规模筛选
  3. 03获取视频字幕文本
  4. 04读取播放列表及其内容

适用场景

  1. 01按主题搜索视频并筛选特定频道
  2. 02获取某个视频的字幕用于内容分析
  3. 03查找符合订阅数范围的创作者频道

MCP 相关

该项目是 MCP 服务,向 MCP 客户端暴露 10 个工具,涵盖视频、频道、字幕和播放列表的查询。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"youtube": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-youtube"
],
"env": {
"YOUTUBE_API_KEY": "<YOUTUBE_API_KEY>"
}
}
}
}
启动命令npx -y @modelcontextprotocol/server-youtube
需要配置的环境变量
YOUTUBE_API_KEY密钥

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@modelcontextprotocol/server-youtube

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

YouTube MCP Server

npm version npm downloads npm total downloads

一个用于 YouTube 的模型上下文协议(MCP)服务实现,可通过标准化接口让 AI 大模型与 YouTube 内容交互。

网站: zubeidhendricks.github.io/youtube-mcp-server

可用工具

该服务目前提供 10 个 MCP 工具。

工具描述必需参数可选参数
videos_getVideo获取 YouTube 视频的详细信息videoIdparts
videos_searchVideos搜索 YouTube 上的视频querymaxResults、order、publishedAfter、publishedBefore、channelId、uniqueChannels、channelMinSubscribers、channelMaxSubscribers、channelLastUploadAfter、channelLastUploadBefore、creatorOnly、sortBy
transcripts_getTranscript获取 YouTube 视频的文字稿videoIdlanguage
channels_getChannel获取 YouTube 频道的信息channelId无
channels_getChannels获取多个 YouTube 频道的信息channelIdsparts、includeLatestUpload
channels_searchChannels按用户名、名称或查询词搜索 YouTube 频道querymaxResults、order、channelType、minSubscribers、maxSubscribers、lastUploadAfter、lastUploadBefore、creatorOnly、sortBy
channels_findCreators根据视频提及查找创作者频道,并按频道规模和活跃度筛选querymaxResults、order、videoPublishedAfter、videoPublishedBefore、channelMinSubscribers、channelMaxSubscribers、channelLastUploadAfter、channelLastUploadBefore、creatorOnly、sortBy、sampleVideosPerChannel
channels_listVideos获取特定频道的视频channelIdmaxResults
playlists_getPlaylist获取 YouTube 播放列表的信息playlistId无
playlists_getPlaylistItems获取 YouTube 播放列表中的视频playlistIdmaxResults
工具参数
videos_getVideo
  • videoId(string):YouTube 视频 ID。
  • parts(string[],可选):要获取的特定视频资源部分。
videos_searchVideos
  • query(string):搜索查询词。
  • maxResults(number,可选):返回结果的最大数量。
  • order(string,可选):结果排序方式,例如 relevance 或 date。
  • publishedAfter(string,可选):仅包含在此 ISO 8601 日期之后发布的视频。
  • publishedBefore(string,可选):仅包含在此 ISO 8601 日期之前发布的视频。
  • channelId(string,可选):将结果限定为特定频道。
  • uniqueChannels(boolean,可选):每个不同频道仅返回一个视频。
  • channelMinSubscribers / channelMaxSubscribers(number,可选):按匹配视频所属频道的订阅者数量范围筛选。
  • channelLastUploadAfter / channelLastUploadBefore(string,可选):按匹配视频所属频道的最近上传时间筛选。
  • creatorOnly(boolean,可选):将结果限定为启发式分类为创作者的频道。
  • sortBy(string,可选):支持 relevance、subscribers_asc、subscribers_desc、indie_priority 和 recent_activity。
transcripts_getTranscript
  • videoId(string):YouTube 视频 ID。
  • language(string,可选):文字稿语言代码。未指定时使用 YOUTUBE_TRANSCRIPT_LANG,否则默认为 en。
channels_getChannel
  • channelId(string):YouTube 频道 ID。

响应现在包含:

  • latestVideoPublishedAt
  • normalizedMetadata
    • 包含 country、defaultLanguage、joinedAt、customUrl、emailsFound、contactLinks,以及用于区分创作者与品牌的启发式字段
channels_getChannels
  • channelIds(string[]):YouTube 频道 ID 列表。
  • includeLatestUpload(boolean,可选):是否包含 latestVideoPublishedAt。默认为 true。
channels_searchChannels
  • query(string):频道搜索查询或账号名。
  • maxResults(number,可选):返回的频道数量上限。
  • order(string,可选):结果排序方式,例如 relevance。
  • channelType(string,可选):将搜索范围限定为某种频道类型。
  • minSubscribers / maxSubscribers(number,可选):按订阅者数量范围筛选频道。
  • lastUploadAfter / lastUploadBefore(string,可选):按最新上传活动筛选频道。
  • creatorOnly(boolean,可选):将结果限定为通过启发式方法归类为创作者的频道。
  • sortBy(string,可选):支持 relevance、subscribers_asc、subscribers_desc、indie_priority 和 recent_activity。
channels_findCreators
  • query(string):用于从匹配的视频中发现频道的主题、游戏或提及内容。
  • videoPublishedAfter / videoPublishedBefore(string,可选):匹配视频的时效筛选条件。
  • channelMinSubscribers / channelMaxSubscribers(number,可选):返回频道的订阅者数量范围筛选条件。
  • channelLastUploadAfter / channelLastUploadBefore(string,可选):返回频道的最新上传活动筛选条件。
  • creatorOnly(boolean,可选):将结果限定为通过启发式方法归类为创作者的频道。
  • sortBy(string,可选):支持 relevance、subscribers_asc、subscribers_desc、indie_priority 和 recent_activity。
  • sampleVideosPerChannel(number,可选):每个返回频道包含的匹配视频数量。
channels_listVideos
  • channelId(string):YouTube 频道 ID。
  • maxResults(number,可选):返回的视频数量上限。
playlists_getPlaylist
  • playlistId(string):YouTube 播放列表 ID。
playlists_getPlaylistItems
  • playlistId(string):YouTube 播放列表 ID。
  • maxResults(number,可选):返回的播放列表项数量上限。

安装

Claude Desktop 快速设置
  1. 安装软件包:
npm install -g zubeid-youtube-mcp-server
  1. 添加到 Claude Desktop 配置中(macOS 上为 ~/Library/Application Support/Claude/claude_desktop_config.json,Windows 上为 %APPDATA%\Claude\claude_desktop_config.json):
{
  "mcpServers": {
    "zubeid-youtube-mcp-server": {
      "command": "zubeid-youtube-mcp-server",
      "env": {
        "YOUTUBE_API_KEY": "your_primary_youtube_api_key",
        "YOUTUBE_API_KEY2": "your_secondary_youtube_api_key",
        "YOUTUBE_API_KEY3": "your_tertiary_youtube_api_key"
      }
    }
  }
}
替代方案:使用 NPX(无需安装)

将以下内容添加到 Claude Desktop 配置中:

{
  "mcpServers": {
    "youtube": {
      "command": "npx",
      "args": ["-y", "zubeid-youtube-mcp-server"],
      "env": {
        "YOUTUBE_API_KEY": "your_primary_youtube_api_key",
        "YOUTUBE_API_KEY2": "your_secondary_youtube_api_key",
        "YOUTUBE_API_KEY3": "your_tertiary_youtube_api_key"
      }
    }
  }
}
通过 Smithery 安装

如需通过 Smithery 自动为 Claude Desktop 安装 YouTube MCP Server:

npx -y @smithery/cli install @ZubeidHendricks/youtube --client claude

配置

设置以下环境变量:

  • YOUTUBE_API_KEY:主要的 YouTube Data API 密钥
  • YOUTUBE_API_KEY2:备用 API 密钥
  • YOUTUBE_API_KEY3:第三个备用 API 密钥
  • YOUTUBE_TRANSCRIPT_LANG:字幕的默认语言(可选,默认为 'en')

必须至少设置 YOUTUBE_API_KEY、YOUTUBE_API_KEY2 或 YOUTUBE_API_KEY3 中的一个。当请求因某个密钥的配额耗尽而失败时,服务会使用下一个已配置的密钥重试相同请求。

在 VS Code 中使用

如需一键安装,请点击下方的其中一个安装按钮:

在 VS Code 中使用 NPX 安装 在 VS Code Insiders 中使用 NPX 安装

手动安装

如果你更倾向于手动安装,请先查看本节顶部的安装按钮。否则,请按以下步骤操作:

将以下 JSON 代码块添加到 VS Code 的用户设置(JSON)文件中。你可以按 Ctrl + Shift + P,然后输入 Preferences: Open User Settings (JSON) 来打开该文件。

{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "apiKey",
        "description": "YouTube API Key",
        "password": true
      }
    ],
    "servers": {
      "youtube": {
        "command": "npx",
        "args": ["-y", "zubeid-youtube-mcp-server"],
        "env": {
          "YOUTUBE_API_KEY": "${input:apiKey}"
        }
      }
    }
  }
}

你也可以选择将其添加到工作区中名为 .vscode/mcp.json 的文件:

{
  "inputs": [
    {
      "type": "promptString",
      "id": "apiKey",
      "description": "YouTube API Key",
      "password": true
    }
  ],
  "servers": {
    "youtube": {
      "command": "npx",
      "args": ["-y", "zubeid-youtube-mcp-server"],
      "env": {
        "YOUTUBE_API_KEY": "${input:apiKey}"
      }
    }
  }
}

开发

# Install dependencies
npm install

# Build
npm run build

# Start the server (requires at least one configured YouTube API key)
npm start

# Development mode with auto-rebuild
npm run dev

Docker

随附的 Docker 镜像默认通过 HTTP 启动服务。

  • 默认传输方式:http
  • 默认端点:http://localhost:8088/mcp
  • 就绪端点:http://localhost:8088/ready
  • 默认模式:无状态

Docker 构建会将 .env 复制到运行时镜像中,服务会在启动时自动加载该文件。这意味着只要 .env 在 docker build 时存在,容器运行时就无需通过 docker run 传入 API 凭据。

docker build -t youtube-mcp-server .
docker run --rm -p 8088:8088 youtube-mcp-server

容器默认配置如下:

MCP_TRANSPORT=http
MCP_HOST=0.0.0.0
MCP_PORT=8088
MCP_STATELESS=true

贡献

有关如何为此代码库做贡献的信息,请参阅 CONTRIBUTING.md。

许可证

本项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。