返回市场
YouTube-MCP服务器

YouTube-MCP服务器

作者:dannySubsense6 星标更新:2025-07-07

项目介绍

YouTube MCP Server

一个全面的模型上下文协议(MCP)服务器,通过YouTube Data API v3提供实时YouTube数据访问。此服务器使AI助手能够搜索、分析并检索关于YouTube视频、频道、播放列表等的详细信息。

🚀 功能特点

14个完整功能

  1. get_video_details - 获取包括标题、描述、统计数据和元数据在内的完整视频信息
  2. get_playlist_details - 检索播放列表信息和元数据
  3. get_playlist_items - 列出播放列表中的视频及其详细信息
  4. get_channel_details - 获取频道信息,包括订阅者数量、视频数量和描述
  5. get_video_categories - 列出特定地区的可用视频类别
  6. get_channel_videos - 获取YouTube频道的最新视频
  7. search_videos - 使用可定制参数在YouTube上搜索视频
  8. get_trending_videos - 获取特定地区的热门视频
  9. get_video_comments - 获取视频评论,并提供排序选项
  10. analyze_video_engagement - 分析互动指标并提供见解
  11. get_channel_playlists - 列出YouTube频道的播放列表
  12. get_video_caption_info - 获取可用字幕/转录信息
  13. evaluate_video_for_knowledge_base - 使用技术新鲜度评分进行智能内容评估,以供知识库整理
  14. get_video_transcript - 提取YouTube视频的实际转录内容

关键能力

  • ✅ 来自YouTube Data API v3的实时数据
  • 全面的错误处理和API配额管理
  • ✅ 支持多种URL格式(youtube.com, youtu.be, @用户名, 频道ID)
  • ✅ 带有技术新鲜度评分的智能内容评估
  • ✅ 灵活的搜索和过滤选项
  • ✅ 带有行业基准的互动分析
  • ✅ 区域内容支持,用于热门和分类
  • ✅ 符合MCP协议,实现无缝AI集成

📋 要求

  • Python 3.8+
  • YouTube Data API v3密钥
  • 兼容MCP的客户端(Claude Desktop, Cursor等)
  • youtube-transcript-api(用于提取转录内容的功能)

🛠️ 安装与设置

第一步:克隆仓库

git clone https://github.com/dannySubsense/youtube-mcp-server.git
cd youtube-mcp-server

第二步:安装依赖项

pip install -r requirements.txt

第三步:获取YouTube API密钥

  1. 访问Google Cloud Console
  2. 创建新项目或选择现有项目
  3. 启用YouTube Data API v3
  4. 创建凭据(API密钥)
  5. (可选)限制API密钥仅用于YouTube Data API v3以提高安全性

第四步:配置API密钥

在项目根目录创建一个credentials.yml文件:

youtube_api_key: "YOUR_YOUTUBE_API_KEY_HERE"

重要提示: 不要将你的credentials.yml文件提交到版本控制中!

第五步:测试服务器

python test_server.py

这将对所有14个功能进行全面测试,确保一切正常工作。

🔧 集成指南

Claude Desktop集成

  1. 按照上述步骤安装服务器

  2. 添加到Claude Desktop配置 - 编辑你的Claude Desktop配置文件:

Windows: %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"
      }
    }
  }
}
  1. 重启Claude Desktop

  2. 验证集成 - 询问Claude:“你能搜索YouTube上的Python教程吗?”

Cursor集成

  1. 按照上述步骤安装服务器

  2. 在Cursor设置中配置:

    • 打开Cursor设置
    • 导航至MCP服务器
    • 添加新服务器,指定python命令和参数
  3. 设置环境变量 用于你的API密钥

  4. 使用Cursor测试 通过让它搜索YouTube内容

自定义项目集成

对于自定义应用或其他MCP客户端:

from youtube_mcp_server import (
    get_video_details,
    search_videos,
    evaluate_video_for_knowledge_base
)

# 示例用法
async def example():
    # 搜索视频
    results = await search_videos("机器学习", max_results=5)
    print(results)

    # 评估视频是否适合加入知识库
    evaluation = await evaluate_video_for_knowledge_base("dQw4w9WgXcQ")
    print(evaluation)

环境变量设置

你也可以使用环境变量而不是凭证文件:

export YOUTUBE_API_KEY="your_api_key_here"

📖 使用示例

基本视频信息

# 获取详细的视频信息
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教程",
    max_results=110,
    order="日期"
)

# 获取美国的热门视频
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天前)
# 🚀 技术时效性:React 2025内容 - 框架发展迅速

转录提取(新!)

# 从视频中提取完整的转录内容
transcript = await get_video_transcript("Z6nkEZyS9nA")

# 也支持URL和不同语言
transcript_spanish = await get_video_transcript(
    "https://www.youtube.com/watch?v=Z6nkEZyS9nA", 
    language="es"
)

# 示例输出:
# 📝 完整转录:[完整的视频转录文本]
# ⏰ 时间戳段落:[00:15] 欢迎参加这个教程...
# 字数:约2,847字

互动分析

# 分析视频互动指标
engagement = await analyze_video_engagement("dQw4w9WgXcQ")

# 获取视频评论
comments = await get_video_comments("dQw4w9WgXcQ", max_results=10, order="相关性")

🎯 函数参考

函数目的主要特性
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 单位中高成本

每日限额: 10,000单位(默认) 监控使用情况 以避免配额耗尽。

🛡️ 错误处理

服务器包括全面的错误处理:

  • 无效的API密钥
  • 配额超出错误
  • 网络连接问题
  • 无效的视频/频道ID
  • 地区限制
  • 禁用的评论/字幕

🧪 测试

运行全面的测试套件:

python test_server.py

这将使用真实的YouTube内容测试所有14个功能,并提供详细输出。

🚨 安全注意事项

  • 永远不要提交你的credentials.yml文件
  • 限制你的API密钥仅用于YouTube Data API v3
  • 监控配额使用情况以防止意外费用
  • 在生产环境中使用环境变量

🤝 贡献

  1. 分支仓库
  2. 创建功能分支(git checkout -b feature/amazing-feature
  3. 使用python test_server.py测试更改
  4. 提交更改(git commit -m '添加精彩功能'
  5. 推送到分支(git push origin feature/amazing-feature
  6. 打开拉取请求

📝 开发笔记

该项目使用以下方法开发:

  • 增量方法论 - 一次一个功能
  • 基于测试驱动的开发 - 在集成之前测试每个功能
  • 用户协作 - 持续反馈和审批门
  • 备份协议 - 具有回滚能力的安全开发

详见documents/testing.md以获取详细的开发和测试程序。

🐛 故障排除

常见问题

“未找到API密钥”错误:

  • 确保credentials.yml存在且格式正确
  • 检查文件权限
  • 验证API密钥有效且未被限制

“配额超出”错误:

  • 检查Google Cloud Console中的配额使用情况
  • 考虑升级配额或优化请求
  • 对于频繁访问的数据使用缓存

“未找到视频”错误:

  • 验证视频ID或URL是否正确
  • 检查视频是否为私有或受限
  • 确保视频未被删除

MCP连接问题:

  • 验证配置中的Python路径
  • 检查所有依赖项是否已安装
  • 在配置更改后重启MCP客户端

📄 许可

本项目根据MIT许可发布 - 详情参见LICENSE文件。

🙏 致谢


准备好增强你的AI助手的YouTube功能了吗?今天就开始吧! 🚀