YouTube MCP 服务器是一个全面的模型上下文协议(MCP)服务器,它通过 YouTube 数据 API v3 提供实时的 YouTube 数据访问。该服务器使 AI 助手能够搜索、分析和检索有关 YouTube 视频、频道、播放列表等的详细信息。
本项目旨在为 AI 助手提供便捷的方式来获取和分析 YouTube 上的各类数据。你可以通过以下步骤开始使用该服务器。
get_video_details
- 获取全面的视频信息,包括标题、描述、统计数据和元数据。get_playlist_details
- 检索播放列表信息和元数据。get_playlist_items
- 列出播放列表中的视频及其详细信息。get_channel_details
- 获取频道信息,包括订阅者数量、视频数量和描述。get_video_categories
- 列出特定地区可用的视频类别。get_channel_videos
- 获取 YouTube 频道的近期视频。search_videos
- 使用可定制的参数在 YouTube 上搜索视频。get_trending_videos
- 检索特定地区的热门视频。get_video_comments
- 获取视频的评论,并提供排序选项。analyze_video_engagement
- 分析视频的参与度指标并提供洞察。get_channel_playlists
- 列出 YouTube 频道的播放列表。get_video_caption_info
- 获取可用的字幕/转录信息。evaluate_video_for_knowledge_base
- 对视频内容进行智能评估,并为知识库管理提供技术新鲜度评分。get_video_transcript
- 从 YouTube 视频中提取实际的转录内容。git clone https://github.com/dannySubsense/youtube-mcp-server.git
cd youtube-mcp-server
pip install -r requirements.txt
在项目根目录下创建一个 credentials.yml
文件:
youtube_api_key: "YOUR_YOUTUBE_API_KEY_HERE"
重要提示:切勿将 credentials.yml
文件提交到版本控制系统!
python test_server.py
这将对所有 14 个功能进行全面测试,以确保一切正常运行。
# 获取详细的视频信息
result = await get_video_details("https://www.youtube.com/watch?v=dQw4w9WgXcQ")
# 也可以使用视频 ID
result = await get_video_details("dQw4w9WgXcQ")
# 搜索近期的 Python 教程
tutorials = await search_videos(
query="Python tutorial",
max_results=10,
order="date"
)
# 获取美国的热门视频
trending = await get_trending_videos(region_code="US", max_results=5)
# 获取频道信息
channel_info = await get_channel_details("@3Blue1Brown")
# 获取频道的近期视频
recent_videos = await get_channel_videos("@3Blue1Brown", max_results=5)
# 获取频道的所有播放列表
playlists = await get_channel_playlists("@3Blue1Brown")
# 评估视频是否值得添加到知识库中
# 包括对教育内容的技术新鲜度评分
evaluation = await evaluate_video_for_knowledge_base("Z6nkEZyS9nA")
# 示例输出:
# 🟢 强烈推荐 - 有明显的有价值内容的迹象
# ⏰ 内容新鲜度:非常新(2 天前)
# 🚀 技术时效性:2025 年的 React 内容 - 框架发展迅速
# 从视频中提取完整的转录内容
transcript = await get_video_transcript("Z6nkEZyS9nA")
# 也可以使用 URL 和不同的语言
transcript_spanish = await get_video_transcript(
"https://www.youtube.com/watch?v=Z6nkEZyS9nA",
language="es"
)
# 示例输出:
# 📝 完整转录:[完整的视频转录文本]
# ⏰ 带时间戳的片段:[00:15] 欢迎来到本教程...
# 单词计数:约 2847 个单词
# 分析视频的参与度指标
engagement = await analyze_video_engagement("dQw4w9WgXcQ")
# 获取视频的评论
comments = await get_video_comments("dQw4w9WgXcQ", max_results=10, order="relevance")
函数 | 用途 | 关键特性 |
---|---|---|
get_video_details |
获取完整的视频信息 | 观看次数、点赞数、时长、描述 |
get_playlist_details |
获取播放列表元数据 | 标题、描述、视频数量 |
get_playlist_items |
列出播放列表中的视频 | 带元数据的有序列表 |
get_channel_details |
获取频道信息 | 订阅者数量、总观看次数、描述 |
get_video_categories |
获取可用的视频类别 | 特定地区的类别列表 |
get_channel_videos |
获取频道的近期视频 | 带详细信息的最新上传视频 |
search_videos |
搜索视频 | 多种排序方式和过滤选项 |
get_trending_videos |
获取热门内容 | 特定地区的热门视频 |
get_video_comments |
获取视频评论 | 排序、回复数量 |
analyze_video_engagement |
分析参与度指标 | 行业基准、洞察 |
get_channel_playlists |
获取频道的播放列表 | 所有公开的播放列表 |
get_video_caption_info |
获取字幕可用性 | 语言、手动 vs 自动生成 |
evaluate_video_for_knowledge_base |
评估视频内容 | 针对技术内容的智能新鲜度评分 |
get_video_transcript |
提取转录内容 | 全文提取、时间戳、多语言支持 |
evaluate_video_for_knowledge_base
函数包含高级的内容评估功能:
函数 | 配额成本 | 备注 |
---|---|---|
基本函数(get_video_details 等) | 1 单位 | 低成本 |
搜索函数 | 100 以上单位 | 高成本 |
字幕函数 | 50 以上单位 | 中高成本 |
评估函数 | 51 单位 | 中高成本 |
每日限制:10,000 单位(默认)。 监控使用情况,以避免配额耗尽。
服务器包含全面的错误处理,用于处理以下情况:
%APPDATA%\Claude\claude_desktop_config.json
Mac:~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"youtube": {
"command": "python",
"args": ["/path/to/youtube-mcp-server/youtube_mcp_server.py"],
"env": {
"YOUTUBE_API_KEY": "your_youtube_api_key_here"
}
}
}
}
对于自定义应用程序或其他 MCP 客户端:
from youtube_mcp_server import (
get_video_details,
search_videos,
evaluate_video_for_knowledge_base
)
# 示例用法
async def example():
# 搜索视频
results = await search_videos("machine learning", max_results=5)
print(results)
# 评估视频是否适合知识库
evaluation = await evaluate_video_for_knowledge_base("dQw4w9WgXcQ")
print(evaluation)
你也可以使用环境变量代替凭证文件:
export YOUTUBE_API_KEY="your_api_key_here"
运行全面的测试套件:
python test_server.py
这将使用真实的 YouTube 内容对所有 14 个功能进行测试,并提供详细的输出。
credentials.yml
文件。git checkout -b feature/amazing-feature
)。python test_server.py
测试你的更改。git commit -m 'Add amazing feature'
)。git push origin feature/amazing-feature
)。本项目采用以下开发方法:
有关详细的开发和测试程序,请参阅 documents/testing.md
。
credentials.yml
文件存在且格式正确。本项目采用 MIT 许可证 - 有关详细信息,请参阅 LICENSE 文件。
准备好为你的 AI 助手添加 YouTube 功能了吗?立即开始吧! 🚀