关于 Youtube Playlist Generator Mcp Server
YouTube Playlist Generator MCP Server 通过 YouTube Data API v3,让 AI 应用搜索音乐视频、查看视频详情并管理播放列表。只读搜索需 API 密钥;修改播放列表需 OAuth 身份验证。
主要功能
- 01按条件搜索音乐视频
- 02获取视频详情
- 03列出公开播放列表中的视频
- 04创建和编辑播放列表
- 05添加或移除播放列表视频
- 06列出已验证用户的播放列表
适用场景
- 01按查询和排序方式查找音乐视频
- 02查看视频信息
- 03创建播放列表并设置隐私
- 04更新播放列表内容
MCP 相关
该 stdio MCP 服务向 MCP 客户端提供 YouTube 搜索、视频和播放列表工具。播放列表管理工具需 YouTube OAuth;只读工具使用 API 密钥。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
YouTube 播放列表生成器 MCP 服务
一个模型上下文协议(MCP)服务,可让 AI 应用使用官方 YouTube Data API v3 搜索 YouTube 音乐视频并管理播放列表。
功能
- 搜索音乐视频:使用可自定义的搜索参数查找 YouTube 音乐视频
- 获取视频详情:检索特定视频的全面信息
- 获取播放列表项目:列出公开播放列表中的视频
- 播放列表管理:全面管理播放列表,包括创建、编辑和管理播放列表(需要设置 OAuth)
设置
前提条件
- Node.js 18 或更高版本
- 已启用 YouTube Data API v3 的 Google Cloud 项目
- YouTube Data API 密钥
- OAuth 2.0 客户端凭据(可选,播放列表管理功能需要)
安装
- 克隆此仓库:
git clone https://github.com/danisss9/yt-playlist-generator-mcp-server
- 安装依赖项:
npm install
-
获取 YouTube Data API 密钥:
- 前往 Google Cloud Console
- 创建新项目或选择现有项目
- 启用 YouTube Data API v3
- 创建凭据(API 密钥)
- 复制 API 密钥
-
设置环境变量:
# Create a .env file
echo "YOUTUBE_API_KEY=your_api_key_here" > .env
echo "YOUTUBE_CLIENT_ID=your_client_id_here" >> .env
echo "YOUTUBE_CLIENT_SECRET=your_client_secret_here" >> .env
- 构建 TypeScript 代码:
npm run build
运行服务
开发时自动重新构建:
npm run dev
生产环境:
npm start
与 MCP 客户端配合使用
此服务使用 stdio 传输,因此可与任何支持 stdio 的 MCP 客户端配合使用。
Claude Desktop 配置
将以下内容添加到 Claude Desktop 配置文件中:
macOS:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"youtube-playlist-generator": {
"command": "node",
"args": ["/absolute/path/to/yt-playlist-generator/build/index.js"],
"env": {
"YOUTUBE_API_KEY": "your_youtube_api_key_here",
"YOUTUBE_CLIENT_ID": "your_client_id_here",
"YOUTUBE_CLIENT_SECRET": "your_client_secret_here"
}
}
}
}
Visual Studio Code 与 GitHub Copilot 配置
要在 Visual Studio Code 中将此 MCP 服务与 GitHub Copilot 配合使用,需要在 VS Code 设置中进行配置:
-
打开 VS Code 设置:按
Ctrl+,(Windows/Linux)或Cmd+,(macOS) -
搜索 MCP:在搜索栏中输入“mcp”
-
添加 MCP 服务配置:将以下内容添加到 VS Code 的 settings JSON 中:
{
"github.copilot.chat.mcp.servers": {
"youtube-playlist-generator": {
"command": "node",
"args": ["/absolute/path/to/yt-playlist-generator/build/index.js"],
"env": {
"YOUTUBE_API_KEY": "your_youtube_api_key_here",
"YOUTUBE_CLIENT_ID": "your_client_id_here",
"YOUTUBE_CLIENT_SECRET": "your_client_secret_here"
}
}
}
}
替代方法:使用设置界面
- 前往 File > Preferences > Settings(或使用
Ctrl+,) - 搜索“GitHub Copilot MCP”
- 点击“Github › Copilot › Chat: Mcp Servers”旁边的“Edit in settings.json”
- 按上文所示添加服务配置
环境变量设置
为确保安全,也可以在系统范围内设置环境变量,而不是在配置文件中设置:
Windows(PowerShell):
[Environment]::SetEnvironmentVariable("YOUTUBE_API_KEY", "your_api_key_here", "User")
[Environment]::SetEnvironmentVariable("YOUTUBE_CLIENT_ID", "your_client_id_here", "User")
[Environment]::SetEnvironmentVariable("YOUTUBE_CLIENT_SECRET", "your_client_secret_here", "User")
Windows(命令提示符):
setx YOUTUBE_API_KEY "your_api_key_here"
setx YOUTUBE_CLIENT_ID "your_client_id_here"
setx YOUTUBE_CLIENT_SECRET "your_client_secret_here"
macOS/Linux:
export YOUTUBE_API_KEY="your_api_key_here"
export YOUTUBE_CLIENT_ID="your_client_id_here"
export YOUTUBE_CLIENT_SECRET="your_client_secret_here"
# Add to ~/.bashrc, ~/.zshrc, or ~/.profile to persist
echo 'export YOUTUBE_API_KEY="your_api_key_here"' >> ~/.bashrc
echo 'export YOUTUBE_CLIENT_ID="your_client_id_here"' >> ~/.bashrc
echo 'export YOUTUBE_CLIENT_SECRET="your_client_secret_here"' >> ~/.bashrc
然后从 VS Code 配置中移除 env 部分:
{
"github.copilot.chat.mcp.servers": {
"youtube-playlist-generator": {
"command": "node",
"args": ["/absolute/path/to/yt-playlist-generator/build/index.js"]
}
}
}
在 VS Code 中使用
配置完成后,可以通过 GitHub Copilot Chat 使用 MCP 服务:
- 打开 Copilot Chat(按
Ctrl+Alt+I或点击聊天图标) - 使用自然语言与 YouTube 交互:
- “搜索关于爵士乐的音乐视频”
- “创建一个名为‘我的收藏’的新播放列表”
- “将此视频添加到我的播放列表”
- “显示此 YouTube 视频的详情”
可用工具
只读工具(API 密钥身份验证)
search_music_videos
根据指定条件搜索 YouTube 音乐视频。
参数:
query(string):音乐视频搜索词maxResults(number,1–50,默认值:10):结果数量上限order(enum):排序方式——“relevance”、“date”、“rating”、“viewCount”、“title”
get_video_details
获取特定 YouTube 视频的详细信息。
参数:
videoId(string):YouTube 视频 ID
get_playlist_items
从公开的 YouTube 播放列表中获取视频。
参数:
playlistId(string):YouTube 播放列表 IDmaxResults(number,1–50,默认值:25):项目数量上限
需要 OAuth 的工具(播放列表管理)
authenticate_youtube
通过 YouTube OAuth 进行身份验证,以启用播放列表管理功能。
参数:
getAuthUrl(布尔值,默认:false):设为 true 以获取授权 URLauthCode(字符串,可选):OAuth 流程中的授权码
get_auth_status
检查当前的 OAuth 身份验证状态。
参数: 无
create_playlist
创建新的 YouTube 播放列表(需要 OAuth 身份验证)。
参数:
title(字符串):播放列表标题description(字符串,可选):播放列表描述privacy(枚举):"private"、"public" 或 "unlisted"
edit_playlist
编辑现有播放列表信息(需要 OAuth 身份验证)。
参数:
playlistId(字符串):要编辑的播放列表 IDtitle(字符串,可选):播放列表的新标题description(字符串,可选):播放列表的新描述privacy(枚举,可选):新的隐私设置——"private"、"public" 或 "unlisted"
注意: 更新时必须至少提供一个字段(title、description 或 privacy)。
add_to_playlist
将视频添加到现有播放列表(需要 OAuth 身份验证)。
参数:
playlistId(字符串):目标播放列表 IDvideoId(字符串):要添加的视频 ID
list_playlists
列出用户的播放列表(需要 OAuth 身份验证)。
参数:
maxResults(数字,1-50,默认:25):播放列表的最大数量mine(布尔值,默认:true):列出已通过身份验证的用户的播放列表
remove_from_playlist
从播放列表中移除视频(需要 OAuth 身份验证)。
参数:
playlistItemId(字符串):要移除的播放列表项 ID(通过 get_playlist_items 获取)
OAuth 身份验证设置
如需完整的播放列表管理功能,需要设置 OAuth 2.0:
1. Google Cloud Console 设置
- 前往 Google Cloud Console
- 创建新项目或选择现有项目
- 启用 YouTube Data API v3
- 前往“Credentials” → “Create Credentials” → “OAuth 2.0 Client ID”
- 选择“Desktop Application”作为应用类型
- 下载凭据,或复制 Client ID 和 Client Secret
2. 环境配置
将 OAuth 凭据添加到 .env 文件中:
YOUTUBE_API_KEY=your_api_key_here
YOUTUBE_CLIENT_ID=your_client_id_here
YOUTUBE_CLIENT_SECRET=your_client_secret_here
3. 身份验证流程
- 使用
authenticate_youtube工具并设置getAuthUrl: true - 在浏览器中打开提供的 URL
- 登录 Google 账号并授予权限
- 复制授权码
- 再次使用
authenticate_youtube工具,并提供authCode参数
4. 使用已通过身份验证的功能
通过身份验证后,你可以:
- 创建新的播放列表
- 编辑现有播放列表信息(标题、描述、隐私设置)
- 将视频添加到播放列表
- 列出你的私密播放列表
- 从播放列表中移除视频
API 限制
- 配额限制:YouTube API 有每日配额限制(默认每天 10,000 个单位)
- 速率限制:API 调用受速率限制
- OAuth 令牌:访问令牌会过期,需要刷新(自动处理)
- 权限:OAuth 作用域决定可用的操作
开发
构建
npm run build
开发模式
npm run dev
项目结构
src/
└── index.ts # Main server implementation
build/ # Compiled JavaScript output
贡献
- Fork 此仓库
- 创建功能分支
- 进行更改
- 充分测试
- 提交 pull request
许可证
MIT License——详情请参阅 LICENSE 文件
故障排除
常见问题
-
“YOUTUBE_API_KEY environment variable is required”
- 请确保已设置 YOUTUBE_API_KEY 环境变量
- 请确认 API 密钥有效,并且有权访问 YouTube Data API
-
“Quota exceeded” 错误
- 您已达到每日 API 配额上限
- 请等待配额重置,或申请提高配额
-
“Playlist not found” 错误
- 请确认播放列表 ID 正确
- 请确认播放列表为公开状态(私有播放列表需要 OAuth)
-
构建错误
- 请确保已安装 Node.js 18+
- 运行
npm install,确保已安装所有依赖项 - 运行
npm run build,检查 TypeScript 编译情况
安全注意事项
- 切勿将 API 密钥提交到版本控制系统
- 使用环境变量存储敏感配置
- 验证所有用户输入
- 实现恰当的错误处理和日志记录
此项目使用 GitHub Copilot 创建
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。