YouTube稍后观看MCP服务

一个通过yt-dlp获取YouTube稍后观看播放列表的MCP服务器,适用于需要自动化管理YouTube观看队列的场景。

  • by tulaman
  • JavaScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 tulaman/youtube-watchlater-mcp

使用说明

youtube watchlater mcp

MCP服务器,用于通过以下方式获取您的YouTube Watch Later播放列表 yt-dlp.

为什么存在

YouTube“稍后观看”播放列表对于YouTube数据API是不可见的。

大多数YouTube MCP服务器和集成都使用官方 YouTube数据API v3 使用OAuth身份验证。这适用于公共播放列表、订阅、搜索和点赞视频,但“稍后观看”是一个特殊的私人播放列表(WL)谷歌已明确将其排除在API之外。即使使用完整的OAuth作用域和有效的令牌,API也会返回空结果或 403 Forbidden 此播放列表出现错误。

这意味着:

  • 基于OAuth的MCP无法访问“稍后观看” -端点根本不存在于API中。
  • 删除YouTube网络用户界面 需要管理会话cookie、处理反bot措施,并且对布局更改很脆弱。
  • 带有浏览器Cookie的yt-dlp 是唯一可靠的方法:它从您的活动YouTube登录中读取您的浏览器已经持有的身份验证Cookie,并使用它们直接获取播放列表——就像您的浏览器一样。

该服务器将该机制封装为MCP工具,因此AI助手可以读取您的Watch Later队列,而无需API密钥、OAuth流或公开凭据。

需求

  • Node.js 18+
  • yt-dlp 已安装并可用于 $PATH
  • YouTube帐户已登录到您计算机上的浏览器

安装

1.安装yt-dlp:

# macOS
brew install yt-dlp

# Linux
sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp
sudo chmod a+rx /usr/local/bin/yt-dlp

# Windows (winget)
winget install yt-dlp

2.安装Node.js依赖:

npm install

跑步

npm start

服务器通过stdio进行通信,旨在连接到MCP主机(例如Claude Desktop),而不是直接在浏览器中运行。

Claude桌面设置

添加 claude_desktop_config.json:

{
  "mcpServers": {
    "youtube-watchlater": {
      "command": "node",
      "args": ["/path/to/youtube-watchlater-mcp/server.mjs"]
    }
  }
}

工具: get_watch_later

从“稍后观看”播放列表中返回视频。

参数 类型 默认值 说明
browser chrome brave edge
limit 数字(1–500) 50 要返回的视频数量
profile string -- 浏览器配置文件名称,例如。 "Default" 或 "Profile 1"

示例响应:

{
  "items": [
    {
      "videoId": "dQw4w9WgXcQ",
      "title": "Never Gonna Give You Up",
      "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
      "channel": "Rick Astley"
    }
  ]
}

工具: get_subtitles

下载YouTube视频的自动生成字幕,并返回VTT内容。

参数 类型 默认值 说明
video string -- YouTube视频URL或裸视频ID(例如。 dQw4w9WgXcQ)
lang 字符串 "en" 字幕语言代码,例如。 "en" 或 "ru"
browser chrome brave edge
profile string -- 浏览器配置文件名称,例如。 "Default" 或 "Profile 1"

示例响应:

{
  "lang": "en",
  "videoId": "dQw4w9WgXcQ",
  "subtitles": "WEBVTT\n..."
}

运作原理

服务器调用 yt-dlp --cookies-from-browser <browser> --flat-playlist --dump-json 反对 WL 播放列表。Cookie直接从本地浏览器读取,不会在任何地方传输令牌或密码。