mcpField
T
tubedata

tubedata

本地服务
github.com/CloudCorpRecords社交媒体03 天前更新

关于 tubedata

tubedata 是用于获取 YouTube 公开数据 JSON 的本地桥接工具,适合需要搜索结果、视频或频道详情及转录文本的应用与工作流。它将请求转发至 HasData 托管的 MCP 服务,并支持命令行和 stdio MCP 接入。

主要功能

  1. 01搜索视频、频道和 Shorts
  2. 02获取视频详情与定时转录文本
  3. 03读取频道页面及各标签页
  4. 04筛选并分页浏览搜索结果
  5. 05命令行与 stdio MCP 模式

适用场景

  1. 01查找某个主题的 YouTube 视频
  2. 02查看视频详情和转录文本
  3. 03检查频道内容与订阅者数量

MCP 相关

通过本地 MCP 服务向客户端提供 YouTube 搜索、视频、频道和转录文本工具,并将调用转发至 HasData 托管的 MCP 服务。也支持命令行调用。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"cloudcorprecords-tubedata": {
"command": "npx",
"args": [
"-y",
"@reneturcios/tubedata"
]
}
}
}
启动命令npx -y @reneturcios/tubedata

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

安装包
npm@reneturcios/tubedata0.1.0
ocighcr.io/cloudcorprecords/tubedata:0.1.0

工具

4

收录的工具列表 · 更新于 2 天前

参数类型必填说明
glstring否要将搜索范围限制到的国家/地区的两字母国家代码。请提供一个精确的已记录值(共支持 245 个),例如 `ac`、`af`。
hlstring否要用于搜索的两位语言代码。请提供一个准确的文档所列值(共允许 159 个),例如 `af`、`ak`。
tabenum否要抓取的频道标签页。每个标签页返回不同结构的内容: - `featured`(默认)— 频道主页(频道预告片 + 精选行) - `videos` — 已上传的长视频 - `shorts` — Shorts 信息流 - `streams` — 过去和即将开始的直播 - `playlists` — 创建和保存的播放列表 - `posts` / `community` — 社区帖子 - `podcasts` — 播客节目 - `releases` — 音乐发行内容 - `about` — 频道说明、链接、统计数据 - `store` — 频道周边商品featured | videos | shorts | streams | playlists | posts | community | podcasts | releases | about | store
channelIdstring是YouTube 频道标识符,可以是规范频道 ID(`UC…`,24 个字符)或以 `@` 开头的公开句柄(例如 `@PewDiePie`)。也接受旧版 `/c/<custom>` 和 `/user/<name>` URL 路径。
deviceTypeenum否请求所用的设备类型。desktop | mobile
paginationTokenstring否上一次响应中返回的令牌,用于获取下一页结果。

详细介绍

tubedata

tubedata 是一个小型本地桥接程序,连接托管的 HasData YouTube MCP 服务,并以 JSON 格式返回 YouTube 数据。 向它提供搜索查询,它会返回拆分为视频、频道、Shorts、货架和 广告的结果页;提供一个视频 ID,它会获取该视频的 完整详情或带时间戳的字幕稿;提供一个频道 ID 或句柄,它会逐个标签页获取该频道页面。

该桥接程序不保存任何 YouTube 数据。它会在本地提供上游服务的工具列表, 内容与从实时端点捕获的完全一致,并将每次 工具调用转发到上游,原样返回结果。 捕获的接口只包含只读的 YouTube 公开数据: 其中没有上传、发布评论、发送消息或付款工具。

工具

  • hasdata_youtube_search_getYoutubeSearchResults — 搜索 YouTube。必需参数:q。可选筛选项 包括 gl、hl、deviceType、sp、sortBy、 date、videoType、length、filters__ 和 paginationToken。返回视频、频道和 Shorts 结果、货架、广告以及结果总数。
  • hasdata_youtube_video_getYoutubeVideo — 按 11 个字符的 ID 获取一个视频。必需参数:v。 可选参数:gl、hl、deviceType。返回标题、观看次数和点赞数、 时长、频道、说明、字幕轨道、音乐匹配项以及相关内容栏。
  • hasdata_youtube_channel_getYoutubeChannel — 按 ID(UC...)或句柄(@name) 获取一个频道。必需参数:channelId。可选参数:tab、gl、hl、 deviceType、paginationToken。返回频道 身份、订阅者数量以及所请求标签页的内容。
  • hasdata_youtube_transcript_getYoutubeTranscript — 获取视频的带时间戳字幕稿。必需参数:v。 可选参数:languageCode、type(自动生成的轨道使用 asr)。返回字幕稿片段以及视频上所有可用的轨道。

配置

  • HASDATA_YOUTUBE_MCP_URL(可选)— 覆盖 上游端点。默认值为 https://mcp.hasdata.com/mcp?apis=youtube。(此覆盖入口是本次重建自行标注的还原内容。)
  • HASDATA_API_KEY(可选)— 设置后,每个 上游请求都会携带 x-api-key: <key> 标头,使用调用者自己的 HasData API 密钥。未设置时, 不会发送密钥标头。(标头名称和环境变量名称已由原始注册记录确定;从此环境 变量转发密钥属于标注的还原内容 — 原始接口是在未提供密钥的情况下捕获的。)
转发机制

首次调用工具时,客户端会与上游建立可流式传输的 HTTP 会话:发送 JSON-RPC initialize 请求(protocolVersion 2025-03-26, clientInfo 名称为 tubedata),随后发送 notifications/initialized 通知,再发送携带调用者参数原样内容的 tools/call 请求。上游在 initialize 响应中返回 Mcp-Session-Id 标头时,该值会随 此会话之后的每个请求一起发送,并在进程运行期间重复使用。 回复可能是普通 JSON,也可能是服务器发送事件;两种格式都会读取。

成功的上游结果会原样传递,包括上游设置的任何 isError 标志。 失败情况 — JSON-RPC 错误、非 2xx 状态、无法读取的响应或 无法完成的请求 — 都会作为 isError 结果返回,文本以 tubedata error: 开头(此错误呈现方式是本次重建自行标注的还原内容)。

CLI

每个工具也可以作为子命令使用,接受一个 JSON 参数字符串:

npx @reneturcios/tubedata hasdata_youtube_search_getYoutubeSearchResults '{"q":"lofi beats"}'
npx @reneturcios/tubedata hasdata_youtube_video_getYoutubeVideo '{"v":"dQw4w9WgXcQ"}'
npx @reneturcios/tubedata hasdata_youtube_channel_getYoutubeChannel '{"channelId":"@PewDiePie"}'
npx @reneturcios/tubedata hasdata_youtube_transcript_getYoutubeTranscript '{"v":"dQw4w9WgXcQ","languageCode":"en"}'
npx @reneturcios/tubedata --version

退出代码:成功时为 0,结果为 isError 时为 1, 用法错误时为 2。

MCP 服务端

npx -y @reneturcios/tubedata mcp

MCP 客户端配置:

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

Docker

docker run -i ghcr.io/cloudcorprecords/tubedata
docker run --rm ghcr.io/cloudcorprecords/tubedata --version

容器的默认命令是 mcp,因此第一种形式是 stdio MCP 服务端;其他参数会照常传递给 CLI。

开发

npm install
npm run build
npm test
npm run dev

测试套件完全通过桩接 JSON-RPC 上游运行 — 不会进行实时网络调用。

许可证

MIT — 参见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

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

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