内容
# youtube-mcp
YouTube播放列表管理的MCP(模型上下文协议)服务器。允许您直接通过Claude创建、删除和重新组织YouTube播放列表。
## 功能
- 列出您YouTube账户上的所有播放列表
- 创建和删除播放列表
- 从播放列表中添加和删除视频
- 在播放列表之间移动视频
- 列出账户上的所有频道
- 搜索音乐视频
- 获取详细的视频元数据
## 设置
### 先决条件
- Node.js 18 或更高版本
- 一个启用了YouTube Data API v3的Google Cloud项目
- YouTube API密钥(用于只读操作)
- Google OAuth 2.0凭证 — 客户端ID和客户端密钥 — 用于写入操作(创建/删除播放列表,管理视频)
### 安装
```bash
git clone https://github.com/MetalOath/youtube-mcp.git
cd youtube-mcp
npm install
npm run build
```
### 在Claude Code中配置
将服务器添加到您的 `.claude.json` 配置中:
```json
{
"mcpServers": {
"youtube": {
"command": "node",
"args": ["/absolute/path/to/youtube-mcp/build/index.js"],
"env": {
"YOUTUBE_API_KEY": "your_api_key_here",
"YOUTUBE_CLIENT_ID": "your_client_id_here",
"YOUTUBE_CLIENT_SECRET": "your_client_secret_here"
}
}
}
}
```
用您自己的路径和凭证值替换。保存配置后重新启动Claude Code。
## 身份验证
该服务器使用两级访问权限:
**API密钥** — 所有只读操作都需要(搜索视频,列出公共播放列表等)。通过`YOUTUBE_API_KEY`设置。
**OAuth 2.0** — 所有写入操作都需要(创建/删除播放列表,管理播放列表内容)。通过`YOUTUBE_CLIENT_ID`和`YOUTUBE_CLIENT_SECRET`设置。
要设置OAuth凭证:
1. 进入 [Google Cloud Console](https://console.cloud.google.com/) 并打开您的项目。
2. 启用YouTube Data API v3。
3. 在凭证下,创建一个OAuth 2.0客户端ID,应用程序类型为“桌面应用程序”。
4. 将客户端ID和客户端密钥复制到您的配置中。
要在运行时完成OAuth流程:
1. 调用 `authenticate_youtube` 并设置 `getAuthUrl: true` 以获取授权URL。
2. 在浏览器中打开URL并授予访问权限到您的Google账户。
3. 从重定向URL复制授权代码。
4. 再次调用 `authenticate_youtube` 并设置授权代码以完成身份验证。
OAuth令牌在成功身份验证后保存在 `~/.youtube-mcp-tokens.json` 中。在后续服务器启动时,已保存的令牌将自动加载 — 您只需要进行一次身份验证。如果令牌过期或被撤销,请重复上述OAuth流程以刷新它们。
## 可用工具
| 工具 | 描述 |
|---|---|
| `authenticate_youtube` | 启动或完成OAuth流程以启用写入访问权限 |
| `get_auth_status` | 检查当前是否启用OAuth身份验证 |
| `list_my_channels` | 列出与已认证账户关联的所有YouTube频道 |
| `list_playlists` | 列出给定频道ID的播放列表 |
| `list_channel_playlists` | 列出已认证用户自己的频道的播放列表 |
| `create_playlist` | 创建具有标题、描述和隐私设置的新的播放列表 |
| `edit_playlist` | 更新现有播放列表的标题、描述或隐私设置 |
| `delete_playlist` | 删除播放列表ID |
| `get_playlist_items` | 检索播放列表中的所有视频 |
| `add_to_playlist` | 将视频添加到播放列表 |
| `remove_from_playlist` | 从播放列表中删除视频,播放列表项目ID |
| `search_music_videos` | 通过查询字符串搜索YouTube音乐视频 |
| `get_video_details` | 获取特定视频的元数据,视频ID |
## 许可证
MIT