使用说明
项目简介
本项目 'youtube-mcp' 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为LLM(大型语言模型)客户端提供访问和分析YouTube视频内容的能力。它通过标准化的MCP接口,提供了一系列工具,使LLM能够轻松获取YouTube视频的转录文本、内容摘要、视频搜索结果、视频评论以及点赞数等信息,从而增强LLM在处理视频相关任务时的上下文理解和功能性。
主要功能点
- 视频转录: 获取YouTube视频的详细转录文本。
- 视频摘要: 使用AI(Gemini)生成YouTube视频内容的精简摘要。
- 自然语言问答: 针对YouTube视频内容提出问题,并获得基于视频内容的答案。
- YouTube视频搜索: 根据关键词搜索YouTube视频。
- 评论分析: 检索和分析YouTube视频的评论。
- 点赞数查询: 获取YouTube视频的点赞数量。
安装步骤
前提条件
- Python 3.9 或更高版本
- 已安装 'pip' 包管理器
- 拥有 Google Gemini API 密钥 (GEMINI_API_KEY)
- 拥有 YouTube Data API 密钥 (YOUTUBE_API_KEY)
安装步骤
-
克隆仓库:
git clone https://github.com/Prajwal-ak-0/youtube-mcp cd youtube-mcp -
创建虚拟环境 (推荐):
python -m venv .venv source .venv/bin/activate # Linux/macOS .venv\Scripts\activate # Windows -
安装依赖:
pip install -e . -
配置API密钥: 在项目根目录下创建 '.env' 文件,并填入您的API密钥:
GEMINI_API_KEY=your_gemini_api_key YOUTUBE_API_KEY=your_youtube_api_key请将 'your_gemini_api_key' 和 'your_youtube_api_key' 替换为您自己的API密钥。
-
运行MCP服务器:
python main.py服务器成功启动后,将等待MCP客户端的连接和请求。
服务器配置 (MCP客户端配置)
为了让MCP客户端能够连接到 'youtube-mcp' 服务器,您需要在客户端的配置文件中添加以下服务器配置信息。以下是一个 'mcp.json' 配置示例,用于配置名为 "youtube" 的服务器:
{ "youtube": { "command": "uv", "args": [ "--directory", "/absolute/path/to/youtube-mcp", // 请替换为 youtube-mcp 仓库的绝对路径 "run", "main.py", "--transport", "stdio", "--debug" ] } }
配置参数说明:
- '"youtube"': 服务器的名称,客户端通过此名称引用该服务器。可以自定义。
- '"command": "uv"': 运行服务器的命令,这里使用 'uv' (可能是 'uvicorn' 或类似的 Python 运行器,根据实际情况调整,如果直接使用 'python' 也可以将 command 改为 '"python"',并将 args 相应调整)。
- '"args"': 传递给命令的参数列表。
- '"--directory", "/absolute/path/to/youtube-mcp"': 指定 'youtube-mcp' 仓库的绝对路径。请务必将 '/absolute/path/to/youtube-mcp' 替换为实际的仓库路径。
- '"run", "main.py"': 指示运行 'main.py' 文件,即启动 MCP 服务器的主程序。
- '"--transport", "stdio"': 指定使用 'stdio' 作为 MCP 的传输协议,这是MCP客户端与服务器通信的标准方式。
- '"--debug"': 启用调试模式(可选)。
注意:
- 请根据您的实际环境和 Python 运行方式调整 '"command"' 和 '"args"' 配置。
- MCP客户端需要读取此 'mcp.json' 配置文件才能正确启动和连接到 'youtube-mcp' 服务器。
基本使用方法
'youtube-mcp' 服务器提供以下工具 (Tools),客户端可以通过 MCP 协议调用这些工具来执行相应的YouTube视频分析任务:
-
'youtube/get-transcript': 获取视频转录。
- 参数: 'video_id' (YouTube 视频ID), 'languages' (可选,语言代码列表,默认为 '["en"]')
- 示例: '{"tool": "youtube/get-transcript", "params": {"video_id": "视频ID"}}'
-
'youtube/summarize': 生成视频摘要。
- 参数: 'video_id' (YouTube 视频ID)
- 示例: '{"tool": "youtube/summarize", "params": {"video_id": "视频ID"}}'
-
'youtube/query': 就视频内容提问。
- 参数: 'video_id' (YouTube 视频ID), 'query' (问题内容)
- 示例: '{"tool": "youtube/query", "params": {"video_id": "视频ID", "query": "视频讲了什么?"}}'
-
'youtube/search': 搜索YouTube视频。
- 参数: 'query' (搜索关键词), 'max_results' (可选,最大结果数,默认为 '5')
- 示例: '{"tool": "youtube/search", "params": {"query": "人工智能", "max_results": 3}}'
-
'youtube/get-comments': 获取视频评论。
- 参数: 'video_id' (YouTube 视频ID), 'max_comments' (可选,最大评论数,默认为 '100')
- 示例: '{"tool": "youtube/get-comments", "params": {"video_id": "视频ID", "max_comments": 50}}'
-
'youtube/get-likes': 获取视频点赞数。
- 参数: 'video_id' (YouTube 视频ID)
- 示例: '{"tool": "youtube/get-likes", "params": {"video_id": "视频ID"}}'
使用流程:
- 启动 'youtube-mcp' 服务器。
- 在MCP客户端中配置并连接到 'youtube' 服务器。
- 构造包含 'tool' 和 'params' 的 JSON-RPC 请求,发送给MCP客户端。
- MCP客户端会将请求转发给 'youtube-mcp' 服务器。
- 服务器执行相应的工具,并将结果通过MCP客户端返回。
请参考您的MCP客户端文档,了解如何配置和使用MCP服务器,以及如何发送和接收MCP请求。
信息
分类
AI与计算