YouTube MCP服务器
一个全面的模型上下文协议(MCP)服务器,通过YouTube数据API v3提供实时YouTube数据访问。该服务器使AI助手能够搜索、分析和检索有关YouTube视频、频道、播放列表等的详细信息。
🚀 特性
14完整功能
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视频中提取实际转录内容
关键能力
- ✅ 实时数据 来自YouTube数据API v3
- ✅ 全面的错误处理 API配额管理
- ✅ 支持多种URL格式 (youtube.com、youtu.be、@用户名、频道ID)
- ✅ 智能内容评估 技术新鲜度评分
- ✅ 灵活的搜索和过滤 选项
- ✅ 啮合分析 符合行业基准
- ✅ 区域内容支持 用于趋势和类别
- ✅ MCP协议合规性 实现无缝的人工智能集成
📋 需求
- Python 3.8+
- YouTube数据API v3密钥
- MCP兼容客户端(克劳德桌面、光标等)
- youtube转录api(用于转录提取功能)
🛠️ 安装和设置
步骤1:克隆存储库
git clone https://github.com/dannySubsense/youtube-mcp-server.git
cd youtube-mcp-server步骤2:安装依赖项
pip install -r requirements.txt步骤3:获取YouTube API密钥
- 转到 谷歌云控制台
- 创建新项目或选择现有项目
- 启用YouTube数据API v3
- 创建凭据(API密钥)
- (可选)为安全起见,将API密钥限制为YouTube Data API v3
步骤4:配置API密钥
创建一个 credentials.yml 项目根目录中的文件:
youtube_api_key: "YOUR_YOUTUBE_API_KEY_HERE"重要提示: 永远不要承诺你的 credentials.yml 文件到版本控制!
步骤5:测试服务器
python test_server.py这将对所有14个功能进行全面测试,以确保一切正常工作。
🔧 集成指南
Claude桌面集成
- 安装服务器 按照上面的设置步骤
- 添加到Claude桌面配置 -编辑您的Claude Desktop配置文件:
窗户: %APPDATA%\Claude\claude_desktop_config.json 雨衣: ~/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"
}
}
}
}- 重新启动克劳德桌面
- 验证集成 -问Claude:“你能在YouTube上搜索Python教程吗?”
光标集成
- 安装服务器 按照上面的设置步骤
- 在游标设置中配置:
- 打开光标设置 - 导航到MCP服务器 - 使用python命令和参数添加新服务器
- 设置环境变量 为您的API密钥
- 使用游标进行测试 要求它搜索YouTube内容
自定义项目集成
对于自定义应用程序或其他MCP客户端:
from youtube_mcp_server import (
get_video_details,
search_videos,
evaluate_video_for_knowledge_base
)
# Example usage
async def example():
# Search for videos
results = await search_videos("machine learning", max_results=5)
print(results)
# Evaluate video for knowledge base
evaluation = await evaluate_video_for_knowledge_base("dQw4w9WgXcQ")
print(evaluation)环境变量设置
您还可以使用环境变量代替凭据文件:
export YOUTUBE_API_KEY="your_api_key_here"📖 使用示例
基本视频信息
# Get detailed video information
result = await get_video_details("https://www.youtube.com/watch?v=dQw4w9WgXcQ")
# Also works with video IDs
result = await get_video_details("dQw4w9WgXcQ")搜索和发现
# Search for recent Python tutorials
tutorials = await search_videos(
query="Python tutorial",
max_results=10,
order="date"
)
# Get trending videos in the US
trending = await get_trending_videos(region_code="US", max_results=5)通道分析
# Get channel information
channel_info = await get_channel_details("@3Blue1Brown")
# Get recent videos from a channel
recent_videos = await get_channel_videos("@3Blue1Brown", max_results=5)
# Get all playlists from a channel
playlists = await get_channel_playlists("@3Blue1Brown")内容评估(专题)
# Evaluate if a video is worth adding to knowledge base
# Includes technology freshness scoring for educational content
evaluation = await evaluate_video_for_knowledge_base("Z6nkEZyS9nA")
# Example output:
# 🟢 HIGHLY RECOMMENDED - Strong indicators of valuable content
# ⏰ Content Freshness: Very Recent (2 days old)
# 🚀 Tech Currency: React 2025 content - framework evolves rapidly转录提取(新增!)
# Extract full transcript content from a video
transcript = await get_video_transcript("Z6nkEZyS9nA")
# Also works with URLs and different languages
transcript_spanish = await get_video_transcript(
"https://www.youtube.com/watch?v=Z6nkEZyS9nA",
language="es"
)
# Example output:
# 📝 Full Transcript: [Complete video transcript text]
# ⏰ Timestamped Segments: [00:15] Welcome to this tutorial...
# Word Count: ~2,847 words啮合分析
# Analyze video engagement metrics
engagement = await analyze_video_engagement("dQw4w9WgXcQ")
# Get video comments
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 | 字幕可用性 | 语言,手动与自动 |
evaluate_video_for_knowledge_base | 内容评价 | 科技内容的智能新鲜度评分 |
get_video_transcript | 提取成绩单内容 | 全文提取、时间戳、多语言 |
🔥 特色:智能内容评估
这 evaluate_video_for_knowledge_base 功能包括高级内容评估:
技术新鲜度评分
- 高波动性话题 (React、AWS、AI/ML):强烈偏好最新内容
- 中等波动性主题 (Python,通用编程):中等新鲜度奖励
- 稳定的话题 (算法、数学):最小年龄惩罚
质量指标
- 查看计数和参与度指标
- 手动与自动生成字幕
- 内容类型检测(教程、评论等)
- 持续时间适宜性
- 技术货币指标(2024年、2025年,“最新”,版本号)
智能推荐
- 🟢 强烈推荐 -卓越的品质+最新的技术含量
- 🟡 适度推荐 -一些积极的指标
- 🔴 有限推荐 -质量指标少
📊 API配额使用情况
| 功能 | 定额成本 | 备注 |
|---|---|---|
| 基本功能(get_video_details等) | 1台 | 成本低 |
| 搜索功能 | 100+个单位 | 成本高 |
| 字幕功能 | 50+个 | 中高成本 |
| 评估功能 | 51台 | 中高成本 |
每日限额: 10000单位(默认) 监控使用情况 以避免配额耗尽。
🛡️ 错误处理
该服务器包括全面的错误处理功能,用于:
- API密钥无效
- 超出配额错误
- 网络连接问题
- 视频/频道ID无效
- 区域限制
- 禁用评论/标题
🧪 测试
运行综合测试套件:
python test_server.py这将使用真实的YouTube内容测试所有14个功能,并提供详细的输出。
🚨 安全说明
- 永不承诺 你的
credentials.yml文件 - 限制API密钥 仅限于YouTube Data API v3
- 监控配额使用情况 防止意外成本
- 使用环境变量 在生产环境中
🤝 贡献
- 分叉存储库
- 创建要素分支(
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 详细的开发和测试程序。
🐛 故障排除
常见问题
“找不到API密钥”错误:
- 确保
credentials.yml以正确格式存在 - 检查文件权限
- 验证API密钥是否有效且不受限制
“超出配额”错误:
- 检查您的Google Cloud Console配额使用情况
- 考虑升级配额或优化请求
- 对频繁访问的数据使用缓存
“未找到视频”错误:
- 验证视频ID或URL是否正确
- 检查视频是私人的还是受限制的
- 确保视频未被删除
MCP连接问题:
- 验证配置中的Python路径
- 检查是否安装了所有依赖项
- 配置更改后重新启动MCP客户端
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
🙏 致谢
- 使用 模型上下文协议
- 由...驱动 YouTube数据API v3
- 与开发 FastMCP
______________________________________________________________________
准备好用YouTube功能增强你的人工智能助手了吗?今天就开始吧! 🚀
