mcpField
Y
Youtube

Youtube

远程服务
pipeworx.io社交媒体03 周前更新

关于 Youtube

Youtube 是用于搜索 YouTube 并读取视频、频道、评论和字幕数据的 MCP 服务。除字幕外,其他工具均需自备 YouTube Data API v3 密钥。

主要功能

  1. 01搜索视频、频道和播放列表
  2. 02读取视频与频道元数据
  3. 03获取频道近期上传内容
  4. 04获取评论串
  5. 05读取带时间戳的视频字幕

适用场景

  1. 01按主题查找视频或频道
  2. 02查看视频互动数据与元信息
  3. 03检查频道近期上传内容
  4. 04阅读评论或视频字幕

MCP 相关

向 MCP 客户端提供 YouTube 搜索、元数据、评论和字幕工具。可作为独立 stdio 服务运行,也可通过 Pipeworx 网关使用。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://gateway.pipeworx.io/youtube/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

@pipeworx/youtube

YouTube 视频、频道、评论和转录文本:搜索视频和频道,获取包含观看数和点赞数的元数据、评论串以及视频字幕文本。

属于 Pipeworx — 一个将 AI Agent 连接到 1763+ 个实时数据源的 MCP 网关。这是独立的非官方集成,与上游提供商无关,未获其认可,也并非由其发布。

工具

  • yt_search(query, type?, …) — 搜索符合关键词的视频、频道或播放列表。
  • yt_video_details(video_id) — 标题、描述、时长、观看数/点赞数/评论数、标签。
  • yt_channel_details(channel_id | username) — 订阅者数、视频数和观看数。
  • yt_channel_videos(channel_id, …) — 频道最近上传的视频。
  • yt_video_comments(video_id, …) — 顶层评论串。
  • yt_video_transcript(video_id, lang?, start_seconds?, max_chars?) — 视频的字幕,包括带时间戳的片段及合并后的文本、字幕语言,以及字幕是否为自动生成。接受纯 ID 或 youtube.com / youtu.be URL。长视频会分页:响应中包含 truncated 和 next_start_seconds;将后者传回 start_seconds。

身份验证

  • yt_video_transcript — 无需密钥。
  • 其他所有工具 — 仅使用自备密钥:从 Google Cloud Console 获取 YouTube Data API v3 密钥,并通过 _apiKey 传入。Pipeworx 不提供共享密钥。

数据源

转录文本的上游接口并不稳定。 这是一个未公开文档的端点,并非已发布的 API;YouTube 可以随时更改。以下是截至 2026-10-09 的已知情况(从 Worker 进行边缘探测,fleet #2846):

  • WEB 观看页会列出相同的字幕轨道,但其 URL 带有 exp=xpe,且需要 PO token:直接请求时会返回 200,但响应正文为 0 字节。这会导致静默的空转录文本,因此不使用 WEB 路由。ANDROID 客户端的字幕轨道 URL 无需 PO token 即可获取。
  • YouTube 有时会向数据中心 IP 返回 LOGIN_REQUIRED,提示“登录以确认您不是机器人”。此情况按请求而非按视频发生:通过实时网关连续调用 10 次,单次尝试中有 7 次遇到此问题,随后相同的视频又能正常访问。因此,该工具会先尝试 ANDROID 客户端,再尝试 IOS(两者提供的字幕 URL 都无需 PO token;ANDROID_VR 不符合条件,它在每次探测中都会遇到机器人验证)。如果两者都被拒绝,工具会打开公开观看页。如果页面显示视频可播放且没有字幕轨道,则返回 captions_unavailable。否则会携带页面提供的访客 ID 和 Cookie 重试这两个客户端。只有四次尝试全部被拒绝后,调用才会以 upstream_down 失败,并说明 YouTube 正在阻止我们的服务器。工具绝不会返回空转录文本。部分出口 IP 请求观看页时会收到 429,此时会跳过该页面。
  • 翻译(&tlang=)从数据中心 IP 请求时会返回 429,因此如果视频没有所需语言的字幕轨道,工具会拒绝请求并返回 captions_unavailable(列出视频现有的字幕轨道),而不会进行机器翻译。
  • 没有字幕轨道的视频会以 captions_unavailable 失败。私有、已移除或被地区屏蔽的视频会以 not_found 失败,并附上 YouTube 自身给出的原因。

如果所有视频都开始无法获取,首先检查 src/index.ts 中的 ANDROID clientVersion — YouTube 会弃用旧的客户端版本。

此时不会改用出口中继作为备用方案。已于 2026-10-09 进行测量并排除该方案(fleet #2877)。 这看似是显而易见的下一步,但其表现远不如现有方案。我们从中继自身的 Supabase edge 基础设施上的临时函数,对 www.youtube.com 进行了探测:

转录所需环节通过中继住宅网络控制
POST /youtubei/v1/player403,10/10 — Google 的“抱歉……您的计算机或网络可能正在发送自动查询”页面,每次调用都是完全相同的 1,103 字节,覆盖 5 个不同视频200 OK,3/3,2 个字幕轨道
GET /watch?v=200,5/5,存在访客 ID—
GET /api/timedtext(已签名)200,3/3,79,833 字节 — 与住宅网络返回的逐字节相同200,79,833 字节

因此,拦截严格限定在一个端点——innertube 播放器调用—— 而且目前这也是 Cloudflare 上唯一失败的环节。中继有 100% 的概率拒绝该调用;Cloudflare 出口有 40% 的概率拒绝(2026-10-09,跨 10 个视频的 20 次实时 yt_video_transcript 调用中有 8 次失败)。把播放器调用改由中继转发,会让工具从部分可用变成永远不可用,这就是为什么 www.youtube.com 被有意排除在中继的 ALLOWED_HOSTS 之外(那里有一条说明)。通过中继的两个环节确实能正常工作,并不是需要帮助的环节。

测量 40% 的失败率需要谨慎:网关会缓存工具响应,因此重复使用相同参数进行探测,测出的结果会好得离谱。对同样的 10 个视频进行未破坏缓存的测试,得分为 14/16;每次调用都改变 max_chars 以绕过缓存后,得分为 12/20。改变某个参数,否则测到的只是缓存。

实际上还剩下的方案都尚未尝试:住宅/移动代理(需要付费,因此由 Bruce 决定)、用于生成 PO-token 的工具,让 WEB 路由的 exp=xpe URL 不再返回 0 字节;或者接受 40% 的成功率,让错误消息中的重试建议作为解决方案。

快速开始

添加到您的 MCP 客户端(Claude Desktop、Cursor、Windsurf 等):

{
  "mcpServers": {
    "youtube": {
      "url": "https://gateway.pipeworx.io/youtube/mcp"
    }
  }
}
此端点实际提供的内容

https://gateway.pipeworx.io/youtube/mcp 上的 tools/list 会返回上表中的工具,以及共享的 Pipeworx 元工具——ask_pipeworx、 discover_tools、search_within、remember/recall 和网关级工具集中的其他工具。因此,您看到的工具数量会多于此表所列:单个工具包端点目前会列出大约 30 个共享工具,以及该工具包自身的工具。连接的 initialize 响应会说明其确切范围,是了解当天情况的权威依据。

这是有意为之,并非意外的多路复用。这些元工具让限定范围的连接也能回答此工具包未覆盖的问题——通过 ask_pipeworx 跨整个目录路由——无需添加第二个 MCP 服务。目前无法挂载不含这些工具的工具包端点;如果额外的架构定义占用的上下文比路由带来的价值还多,请连接一次完整网关,而不是连接多个工具包端点。

也可以连接到完整的 Pipeworx 网关,直接列出所有工具包的工具,而不只是当前这个工具包的:

{
  "mcpServers": {
    "pipeworx": {
      "url": "https://gateway.pipeworx.io/mcp"
    }
  }
}

两个 URL 都连接到同一个网关和相同的 1763+ 个数据源。唯一的区别是直接列出哪个工具包的工具;从任一端点都可以通过 ask_pipeworx 访问所有工具。

没有 MCP 客户端?通过 HTTP 调用

此工具包需要您自己的 API 密钥(_apiKey)——我们不会代为提供,因此这里没有无需密钥即可运行的 curl 命令。查看任意工具:GET https://gateway.pipeworx.io/v1/tools/yt_search。查找工具:使用 {"query":"..."} 向 POST https://gateway.pipeworx.io/v1/tools/search_packs 发送请求。

独立运行(无需网关账户)

此软件包也可以作为本地 stdio MCP 服务运行——无需 Pipeworx 账户,也无需经由网关往返:

{
  "mcpServers": {
    "youtube": {
      "command": "npx",
      "args": ["-y", "@pipeworx/mcp-youtube"]
    }
  }
}

也可以直接运行,确认它能启动:

npx -y @pipeworx/mcp-youtube

它通过 stdin/stdout 使用 MCP 通信,并对 initialize/tools/list/tools/call 作出响应,仅包含此工具包的工具——不包含上方网关连接所添加的任何共享元工具。来源相同,工具相同,不经过 ask_pipeworx 路由。

与 ask_pipeworx 搭配使用

你可以用自然语言提问,而不是直接调用工具 —— 这适用于上面的工具包端点,也适用于完整网关:

ask_pipeworx({ question: "your question about Youtube data" })

网关会选择合适的工具并自动填写参数。

更多

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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