YouTube模型上下文协议服务器

YouTube MCP Server是一个基于模型上下文协议(MCP)的服务器,为AI模型提供与YouTube内容交互的标准化接口。该服务器提供视频搜索、内容分析、评论处理等一系列工具,支持对YouTube视频和频道信息的深度处理和分析。

  • by temiedani
  • 更新于
在 GitHub 查看 temiedani/youtube-mcp-server

使用说明

基本能力

产品定位

YouTube MCP Server是一个连接AI模型与YouTube内容的中间件,提供标准化的API接口和丰富的视频处理工具。

核心功能

  • 视频搜索与发现:搜索YouTube视频、获取热门视频、查找相关内容、获取频道信息
  • 内容分析:详细视频信息、频道统计数据、视频字幕、综合摘要
  • 社交功能:评论检索、评论分析、用户互动数据
  • 教育工具:生成视频闪卡、创建视频测验

适用场景

  • AI辅助的视频内容分析
  • 教育类视频的自动摘要和测验生成
  • 社交媒体监控和分析
  • 视频推荐系统开发
  • 频道运营数据分析

工具列表

  1. 搜索视频:根据关键词搜索YouTube视频
  2. 获取视频信息:获取视频的详细信息
  3. 获取频道详情:获取YouTube频道的统计数据
  4. 获取视频评论:检索视频的评论内容
  5. 获取热门视频:按地区获取当前热门视频
  6. 获取相关视频:查找与指定视频相关的内容
  7. 视频摘要:生成视频内容的摘要
  8. 生成视频闪卡:从视频内容创建教育闪卡
  9. 生成视频测验:基于视频内容创建测验题

使用教程

使用依赖

1. 安装Python

macOS:

# 使用Homebrew(推荐)
brew install python@3.11

# 验证安装
python3 --version  # 应显示Python 3.11.x

Linux (Ubuntu/Debian):

# 更新软件包列表
sudo apt update

# 安装Python
sudo apt install python3.11 python3.11-venv

# 验证安装
python3 --version  # 应显示Python 3.11.x

Windows:

  1. 从python.org下载Python安装程序
  2. 运行安装程序
  3. 安装时勾选"Add Python to PATH"
  4. 打开命令提示符并验证:
python --version  # 应显示Python 3.11.x

2. 安装uv

macOS/Linux:

# 使用官方安装程序安装uv
curl -LsSf https://astral.sh/uv/install.sh | sh

# 验证安装
uv --version

Windows (PowerShell):

# 使用官方安装程序安装uv
(Invoke-WebRequest -Uri "https://astral.sh/uv/install.ps1" -UseBasicParsing).Content | pwsh -Command -

# 验证安装
uv --version

3. 设置Google Cloud凭证

  1. 创建Google Cloud项目
  2. 启用YouTube Data API
  3. 创建OAuth 2.0凭证
  4. 下载并存储凭证文件
  5. 首次认证

安装教程

  1. 克隆仓库:
git clone https://github.com/yourusername/youtube-mcp-server.git
cd youtube-mcp-server
  1. 创建并激活虚拟环境:
# 创建虚拟环境
python -m venv .venv

# 激活虚拟环境
# macOS/Linux:
source .venv/bin/activate
# Windows (命令提示符):
.venv\Scripts\activate
# Windows (PowerShell):
.venv\Scripts\Activate.ps1
  1. 使用uv安装依赖:
# 以可编辑模式安装项目
uv pip install -e .
  1. 设置YouTube API凭证

调试方式

  1. 启动服务器:
python mcp_videos.py
  1. 测试工具功能:
# 测试搜索功能
get_videos("python programming", max_results=5)

# 测试视频信息获取
get_video_info("dQw4w9WgXcQ")

# 测试闪卡生成
generate_video_flashcards(video_id="dQw4w9WgXcQ", max_cards=10)