YouTube音乐MCP服务器
  
一个模型上下文协议(MCP)服务器,使AI助手能够与YouTube音乐进行交互。通过自然语言创建播放列表、搜索歌曲和管理音乐库。
特性
- 🎵 创建播放列表:使用自定义标题和描述创建新的播放列表
- 🔍 搜索歌曲:按名称、艺术家或专辑查找歌曲
- ➕ 添加歌曲:将歌曲添加到现有播放列表
- 📋 列表播放列表:查看您的所有播放列表
- 👁️ 查看播放列表详细信息:从特定播放列表中获取歌曲和信息
- 🗑️ 删除播放列表:删除不再需要的播放列表
安装
- 克隆或下载此存储库
- 安装依赖项:
pip install -r requirements.txt- 设置身份验证
⚠️ 重要:由于YouTube服务器端的更改,OAuth身份验证当前已中断(第676期). 改用浏览器身份验证 (请参阅下面的快速设置)。
快速设置(浏览器身份验证-推荐)
运行浏览器身份验证设置:
python setup_browser_auth.py按照提示从浏览器中提取请求标头。
有关截图的详细说明,请参阅 ytmusicapi浏览器认证官方文档.
替代方案:OAuth安装程序(当前不工作)
- 创建Google OAuth凭据 (一次性设置-当前已损坏):
a.转到 谷歌云控制台
b.创建新项目或选择现有项目
c.启用 YouTube数据API v3:
- 转到“API和服务”→ “启用API和服务” - 搜索“YouTube数据API v3”并启用它
d.创建OAuth凭据:
- 转到“API和服务”→ “凭据” - 点击“创建凭据”→ “OAuth客户端ID” - 重要:选择应用程序类型: “电视和有限输入设备” - ⚠️ 不要选择“桌面应用程序”或“Web应用程序”-它们不起作用! - 为其命名(例如,“YouTube音乐MCP”) - 点击“创建” - 复制您的 客户端ID 和 客户端密钥
- 设置OAuth身份验证:
python setup_auth.py脚本将:
- 询问您的客户ID和客户密码
- 打开Google OAuth浏览器
- 请求您授予YouTube音乐权限
- 将您的凭据安全地保存到
~/.config/ytmusic/oauth.json
就是这样!身份验证已保存,并将自动使用。
备注:您可以为多个ytmusicapi应用程序重用相同的OAuth凭据。
用法
使用克劳德桌面
将此添加到您的Claude Desktop配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"youtube-music": {
"command": "python",
"args": ["/absolute/path/to/youtube-music/server.py"]
}
}
}替换 /absolute/path/to/youtube-music/ 此目录的实际路径。
与其他MCP客户端
此服务器使用stdio传输,可以与任何兼容MCP的客户端一起使用。将其配置为运行:
python /path/to/server.py可用工具
create_playlist
在YouTube音乐库中创建新的播放列表。
参数:
title(必填):播放列表名称description(可选):播放列表描述privacy_status(可选):“公共”、“私人”或“未列出”(默认值:“私人”)
示例:“创建一个名为‘健身组合’的播放列表,将隐私设置为私人”
search_songs
在YouTube音乐上搜索歌曲。
参数:
query(必填):搜索词(歌曲、艺术家、专辑)limit(可选):要返回的最大结果(默认值:10)
示例:“搜索泰勒·斯威夫特的歌曲”
add_songs_to_playlist
将歌曲添加到现有播放列表中。
参数:
playlist_id(必填):播放列表IDvideo_ids(必填):要添加的YouTube视频ID数组
示例:“将这些歌曲添加到我的锻炼播放列表中”
get_playlists
列出库中的所有播放列表。
示例:“显示我的播放列表”
get_playlist
从特定播放列表中获取详细信息和歌曲。
参数:
playlist_id(必填):播放列表IDlimit(可选):要返回的最大歌曲数(默认值:100)
示例:“显示我的‘Chill Vibes’播放列表中的内容”
delete_playlist
从库中删除播放列表。
参数:
playlist_id(必填):要删除的播放列表ID
示例:“删除我的‘Old Mix’播放列表”
对话示例
一旦连接到像Claude Desktop这样的MCP客户端:
你:“创建一个名为‘Road Trip 2024’的新播放列表” 克劳德: *创建播放列表并返回播放列表ID*
你:“搜索傻朋克的歌曲” 克劳德: *返回带有视频ID的歌曲列表*
你:“将前三首歌曲添加到我的Road Trip 2024播放列表中” 克劳德: *将歌曲添加到播放列表*
安全
- 您的OAuth凭据存储在本地
~/.config/ytmusic/oauth.json - 除了谷歌的YouTube音乐API外,凭据不会在任何地方共享或传输
- 您可以随时从您的 Google帐户权限页面
故障排除
OAuth中的“400个错误请求”
这是一个已知的问题! 由于YouTube服务器端的更改,OAuth身份验证被破坏。切换到浏览器身份验证:
python setup_browser_auth.py看 了解详情。
“未找到OAuth凭据”或“未找到身份验证凭据”
运行安装脚本:
- 浏览器身份验证(推荐):
python setup_browser_auth.py - OAuth(当前已损坏):
python setup_auth.py
“身份验证失败”或“客户端无效”(仅限OAuth)
- 确保您在Google Cloud Console中创建了OAuth凭据
- 验证您是否选择了“电视和有限输入设备”作为应用程序类型
- 确保在您的Google Cloud项目中启用YouTube Data API v3
- 仔细检查您的客户端ID和客户端密码是否正确
- 尝试删除
~/.config/ytmusic/oauth.json并再次运行安装程序 - 确保在OAuth流程中授予所有请求的权限
- 注: 即使配置正确,由于YouTube的更改,OAuth也可能无法工作
“服务器未连接”
- 验证MCP客户端配置中的路径是否正确
- 确保安装了Python和依赖项
- 检查server.py文件是否具有执行权限
- 确保已设置身份验证:检查
~/.config/ytmusic/oauth.json存在
需要更多帮助?
查看ytmusicapi官方文档:
- 浏览器身份验证设置 (推荐)
- OAuth身份验证设置 (目前已损坏)
- 使用指南
需求
- Python 3.10或更高版本
- YouTube音乐帐户
- Internet连接
贡献
欢迎投稿!请阅读我们的 贡献指南 有关以下内容的详细信息:
- 如何设置开发环境
- 代码风格指南
- 如何提交pull请求
- 报告错误和请求功能
许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
鸣谢
内置:
- ytmusicapi -非官方YouTube音乐API
- MCP Python SDK -模型上下文协议
