项目简介

'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端点,增强安全性。

安装步骤

  1. 前提条件: 确保您的系统已安装 DockerDocker Compose
  2. 克隆仓库: 将项目仓库克隆到本地:
    git clone https://github.com/toorop/youtube-transcript-mcp
    cd youtube-transcript-mcp
  3. 配置API密钥: 在项目根目录创建名为 'api_keys.json' 的文件,并添加您的API密钥。您可以添加多个密钥,用逗号分隔:
    {
      "keys": [
        "您的第一个超密密钥",
        "您的第二个超密密钥"
      ]
    }
  4. 构建并运行: 在项目根目录执行以下命令,构建并以后台模式运行服务器:
    docker-compose up -d --build
  5. 验证运行: 服务器将运行在 'http://localhost:5000'。您可以尝试使用 'curl' 命令验证:
    curl -H "X-API-KEY: 您的第一个超密密钥" "http://localhost:5000/test_transcript?videoId=dQw4w9WgXcQ&lang=en"
    如果返回JSON格式的字幕数据,则表示服务器运行正常。

服务器配置 (用于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