项目简介
这是一个基于 Model Context Protocol (MCP) 构建的应用后端服务器,专门用于处理 YouTube 视频的转录任务。它通过实现 MCP 标准,将视频音频转录能力封装为一个可供大型语言模型 (LLM) 客户端调用的工具。
主要功能点
- YouTube 音频下载: 根据提供的 YouTube 视频 URL,下载其音频文件。
- 音频分割处理: 将下载的长音频文件智能分割成更小的块,以适应后续转录服务的处理限制。
- OpenAI Whisper 转录: 利用 OpenAI 的 Whisper 模型将音频块转换为文本。
- 文本分块输出: 将完整的转录文本分割成适合 LLM 处理的文本块。
- MCP 工具封装: 将上述整个流程封装成一个名为 'transcribe_youtube' 的 MCP 工具,可通过 MCP 客户端调用。
- SSE 协议支持: 支持 Server-Sent Events (SSE) 作为与客户端通信的传输协议。
- API Key 认证: 提供简单的 API Key 认证,确保只有授权的客户端可以连接和使用服务。
安装步骤
- 克隆仓库:
git clone https://github.com/format37/youtube_mcp.git cd youtube_mcp - 配置环境变量: 复制 '.env.example' 为 '.env' 并编辑,设置以下变量:
- 'CONTAINER_NAME': Docker 容器名称 (可选,默认为 youtube_mcp_main)
- 'PORT': 服务器监听端口 (默认为 7001)
- 'OPENAI_API_KEY': 您的 OpenAI API 密钥 (用于转录)
- 'MCP_KEY': MCP 服务器的 API 密钥 (用于客户端认证,建议生成一个随机值)
- 获取并放置 cookies.txt: 按照仓库中的 'cookies.md' 说明,获取您的 YouTube cookies 并将其保存为 'mcp/cookies.txt' 文件。这有助于下载受限视频。
- 生成 MCP_KEY: 运行 'python token_generator.py' 生成一个 UUID,将其粘贴到 '.env' 文件中的 'MCP_KEY' 字段。
- 赋予运行权限:
sudo chmod +x compose.sh logs.sh update.sh - 启动服务器: 使用 './compose.sh' 脚本通过 Docker 启动服务器。
./compose.sh - 检查端口: 确保您在 '.env' 中配置的端口在您的防火墙或网络设置中是开放的,以便客户端可以连接。
服务器配置 (给 MCP 客户端)
要让支持 MCP 的 LLM 客户端(如 Anthropic 的 Claude 桌面应用)连接到这个服务器,您需要修改客户端的配置文件,添加一个新的 MCP 服务器条目。配置信息通常是一个 JSON 格式的对象,描述了如何启动连接到服务器的进程。
以下是一个配置示例 (具体配置位置和格式请参考您的 MCP 客户端文档):
{ "mcpServers": { "youtube": { // 给服务器起一个易于识别的名称 "command": "npx", // 启动连接进程的命令 (例如使用 npm 包提供的连接工具) "args": [ "mcp-remote", // 一个常用的 MCP 远程连接工具 "http://localhost:7001/sse", // MCP 服务器的完整地址,包括协议 (http/https)、主机、端口和 SSE 路径 "--header", "Authorization: YOUR-MCP-KEY", // 用于认证的授权头,值是您在服务器 .env 中设置的 MCP_KEY "--allow-http" // 如果服务器使用 HTTP 而非 HTTPS,可能需要此参数 ], "disabled": false // 设为 true 会禁用此 MCP 服务器连接 } // 如果有其他 MCP 服务器,可以在这里添加更多条目 } }
请将上面的配置中的 'http://localhost:7001/sse' 替换为您服务器的实际访问地址和端口,将 'YOUR-MCP-KEY' 替换为您在服务器 '.env' 文件中设置的 'MCP_KEY' 值。
基本使用方法
- 确保 MCP 服务器已成功启动并运行。
- 修改您的 MCP 客户端配置文件,添加上面提供的服务器配置信息。
- 重新启动您的 MCP 客户端应用程序。
- 客户端应该会自动检测到 YouTube 转录 MCP 服务器,并识别其提供的 'transcribe_youtube' 工具。
- 在与 LLM 交互时,您现在可以尝试调用这个工具来转录 YouTube 视频。例如,您可以向 LLM 提问:“你能转录这个 YouTube 视频吗?[视频链接]”,或者如果客户端支持,直接使用工具调用语法来触发转录功能。具体如何调用工具取决于您的客户端实现。
信息
分类
AI与计算