项目简介
'youtube-transcript-mcp' 是一个高效的MCP服务器,专门用于通过 'yt-dlp' 工具获取YouTube视频的字幕。它支持Server-Sent Events (SSE) 和 JSON-RPC 2.0 两种传输协议,可以轻松与Claude Desktop、n8n等LLM客户端或自动化平台集成,为AI应用提供获取视频上下文的能力。
主要功能点
- 多语言字幕获取: 支持提取YouTube视频的多种语言字幕(如英语、法语、西班牙语等)。
- 高可靠性: 采用 'yt-dlp' 工具获取字幕,该工具会持续更新以适应YouTube平台变化。
- 多种客户端支持: 提供SSE接口(适用于Claude Desktop)和JSON-RPC接口(适用于n8n、自定义HTTP客户端等)。
- 容器化部署: 可通过Docker轻松部署和移植。
- API密钥认证: 支持通过API密钥保护HTTP端点,增强安全性。
安装步骤
- 前提条件: 确保您的系统已安装 Docker 和 Docker Compose。
- 克隆仓库: 将项目仓库克隆到本地:
git clone https://github.com/toorop/youtube-transcript-mcp cd youtube-transcript-mcp - 配置API密钥: 在项目根目录创建名为 'api_keys.json' 的文件,并添加您的API密钥。您可以添加多个密钥,用逗号分隔:
{ "keys": [ "您的第一个超密密钥", "您的第二个超密密钥" ] } - 构建并运行: 在项目根目录执行以下命令,构建并以后台模式运行服务器:
docker-compose up -d --build - 验证运行: 服务器将运行在 'http://localhost:5000'。您可以尝试使用 'curl' 命令验证:
如果返回JSON格式的字幕数据,则表示服务器运行正常。curl -H "X-API-KEY: 您的第一个超密密钥" "http://localhost:5000/test_transcript?videoId=dQw4w9WgXcQ&lang=en"
服务器配置 (用于MCP客户端)
MCP客户端(如Claude Desktop)需要知道如何连接到此服务器。以下是常见的配置方式:
对于Claude Desktop (通过'mcp-remote'适配器连接)
将以下JSON配置添加到您的 'claude_desktop_config.json' 文件中。该文件通常位于:
- macOS: '~/Library/Application Support/Claude/claude_desktop_config.json'
- Windows: '%APPDATA%\Claude\claude_desktop_config.json'
请将 'https://your-domain.com/sse' 替换为您的服务器实际的SSE端点URL。根据您的认证设置,选择合适的 'args' 配置:
- 使用HTTP Basic Auth (推荐通过反向代理实现):
{ "mcpServers": { "youtube-transcript": { "command": "npx", "args": [ "mcp-remote", "https://username:[email protected]/sse" ] } } } - 使用自定义HTTP头 (例如API密钥):
{ "mcpServers": { "youtube-transcript": { "command": "npx", "args": [ "mcp-remote", "--header", "X-API-Key: 您的超密密钥", "https://your-domain.com/sse" ] } } }
重要提示: '/sse' 端点在服务器端默认不进行认证,强烈建议您在服务器前端使用反向代理(如Caddy、Nginx)来添加认证和加密(HTTPS)。
对于n8n或其他HTTP客户端 (通过JSON-RPC POST请求)
MCP服务器的JSON-RPC端点是 'https://your-domain.com/' (请替换为您的实际服务器URL)。
您可以通过发送标准的JSON-RPC POST请求来调用工具。请确保在请求头中包含 'Content-Type: application/json' 和 'X-API-KEY: 您的超密密钥'。
- 例如,调用 'tools/call' 方法获取字幕:
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "get_transcript", "arguments": { "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ", "language": "en" } } }
基本使用方法
- 通过Claude Desktop: 在与Claude的对话中直接请求获取视频字幕。例如,您可以说:“你能从这个YouTube视频中获取字幕吗:'https://www.youtube.com/watch?v=dQw4w9WgXcQ'?” Claude Desktop将自动识别并调用 'youtube-transcript-mcp' 服务器的 'get_transcript' 工具。
- 通过n8n工作流: 在n8n工作流中添加一个“HTTP Request”节点,配置其URL为您的MCP服务器的JSON-RPC端点 ('https://your-domain.com/')。设置请求方法为 'POST',并在头部添加 'Content-Type: application/json' 和 'X-API-KEY: 您的超密密钥'。在请求体中,构建如上所示的JSON-RPC 'tools/call' 请求,传入YouTube视频URL和可选的语言参数。
信息
分类
网页与API