YouTube视频字幕提取服务

一个用于提取YouTube视频字幕的MCP服务器,支持本地和远程部署,提供两种提取方法并自动回退。

  • by alialfredji
  • JavaScript
  • 混合部署
  • 更新于
在 GitHub 查看 alialfredji/yt-transcript-mcp

使用说明

yt转录mcp

获取YouTube视频转录的MCP服务器。适用于Claude Code、Claude Desktop、OpenCode和任何兼容MCP的客户端。

🚀 现在支持本地和远程部署!

  • 本地模式:通过stdio传输 npx (适用于桌面应用程序)
  • 远程模式:HTTP/SSE传输(用于移动应用程序、云部署)

🔄 具有自动回退功能的双转录提取方法:

  • yt-dlp:基于Python的二进制文件(在本地运行良好)
  • youtubei.js:纯JavaScript(在云服务器上可靠)
  • 自动回退:先尝试yt-dlp,如果失败则返回youtubei.js

快速安装

克劳德代码

claude mcp add yt-transcript -- npx -y yt-transcript-mcp

克劳德桌面

编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "yt-transcript": {
      "command": "npx",
      "args": ["-y", "yt-transcript-mcp"]
    }
  }
}

保存后重新启动Claude Desktop。

开源代码

编辑 ~/Library/Application Support/opencode/opencode.json:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "yt-transcript": {
      "type": "local",
      "command": ["npx", "-y", "yt-transcript-mcp"],
      "enabled": true
    }
  }
}

保存后重新启动OpenCode。

用法

连接后,代理可以访问 get_transcript 工具。

示例:

  • “获取成绩单https://youtu.be/dQw4w9WgXcQ并对其进行总结”
  • “从该视频中获取成绩单并列出主要主题”
  • “获取此YouTube链接的西班牙语文字记录(lang:es)”

刀具参数:

参数 必填 默认 说明
url 是 - YouTube视频URL
lang 没有 en 字幕语言代码(例如。 es, fr, de, ja)

该工具以纯文本形式返回视频标题和完整成绩单,以及使用的方法。

转录提取方法

此服务器支持 两种方法 用于提取转录本,具有自动回退功能:

方法1:yt-dlp(默认,先尝试)

  • ✅ 在本地机器上运行良好
  • ✅ 高质量VTT字幕提取
  • ❌ 由于YouTube机器人检测,云服务器上可能会出现故障
  • ⚙️ 需要Python 3

方法2:youtubei.js(回退)

  • ✅ 可靠的云服务器(使用YouTube的InnerTube API)
  • ✅ 纯JavaScript-不需要Python
  • ✅ 更适合远程部署
  • ⚙️ 成绩单格式略有不同

控制使用哪种方法

设置 TRANSCRIPT_METHOD 环境变量:

# Auto mode (default) - tries yt-dlp, falls back to youtubei.js
TRANSCRIPT_METHOD=auto

# Force yt-dlp only
TRANSCRIPT_METHOD=ytdlp

# Force youtubei.js only (recommended for cloud deployment)
TRANSCRIPT_METHOD=youtubei

用于渲染部署,将此添加到您的环境变量中:

TRANSCRIPT_METHOD=youtubei

这迫使使用youtubei.js,它在云服务器IP上更可靠。

远程部署

将此MCP服务器部署到云端进行远程访问(例如,从Claude移动应用程序)。

部署以渲染(免费层)

  1. 在GitHub上分叉此存储库
  2. 注册 渲染
  3. 点击“新建+”→ “Web服务”
  4. 连接您的GitHub存储库
  5. 渲染将自动检测 render.yaml 配置
  6. 重要:添加环境变量:
    • 密钥: TRANSCRIPT_METHOD
    • 价值: youtubei
    • (这迫使使用youtubei.js,它在云IP上效果更好)
  7. 点击“创建Web服务”
  8. 等待部署完成
  9. 复制您的服务URL(例如。, https://yt-transcript-mcp.onrender.com)

在Claude Desktop中配置远程访问:

{
  "mcpServers": {
    "yt-transcript": {
      "url": "https://your-service.onrender.com/mcp",
      "transport": "sse"
    }
  }
}

备注:免费渲染层有750小时/月的限制,服务可能会在不活动(冷启动)后停止运行。

部署到Hetzner(或任何Docker主机)

  1. SSH到您的服务器
  2. 克隆存储库:
    git clone https://github.com/alialfredji/yt-transcript-mcp.git
    cd yt-transcript-mcp
    
  3. 使用Docker Compose进行部署:
    docker-compose up -d
    
  4. 服务器将在以下时间可用 http://your-server-ip:3000/mcp
  5. 使用HTTPS设置反向代理(nginx/caddy)以供生产使用

在Claude Desktop中配置:

{
  "mcpServers": {
    "yt-transcript": {
      "url": "https://your-domain.com/mcp",
      "transport": "sse"
    }
  }
}

手动Docker部署

# Build the image
docker build -t yt-transcript-mcp .

# Run the container
docker run -d \
  --name yt-transcript-mcp \
  -p 3000:3000 \
  -e NODE_ENV=production \
  --restart unless-stopped \
  yt-transcript-mcp

# Check health
curl http://localhost:3000/health

本地开发

git clone https://github.com/alialfredji/yt-transcript-mcp.git
cd yt-transcript-mcp
npm install
npm run build

# Run in stdio mode (default)
npm start

# Or run in HTTP mode for testing
npm run dev:http