YouTube转录服务器

一个用于从YouTube视频中检索转录文本的服务器,支持多语言、时间戳选择和高效上下文使用,适用于视频内容分析、摘要和教育用途。

  • by hancengiz
  • JavaScript
  • 本地部署
  • 15 星标
  • 更新于
在 GitHub 查看 hancengiz/youtube-transcript-mcp

使用说明

YouTube转录MCP服务器

一个模型上下文协议(MCP)服务器,用于从YouTube视频中检索Claude Code的转录本。此服务器允许您轻松提取视频转录,而无需手动下载或复制内容,使其非常适合分析视频内容、总结演讲或从教育视频中提取信息。

特性

  • 获取视频转录:从任何带有可用字幕的YouTube视频中提取完整的文字记录
  • 多种URL格式:支持所有常见的YouTube URL格式(YouTube.com、youtu.be等)
  • 时间戳支持:在成绩单输出中包含或排除时间戳
  • 语言选择:要求提供特定语言的成绩单
  • 错误处理:优雅地处理没有文字记录或无效网址的视频
  • 高效的上下文使用:仅获取成绩单,不加载不必要的视频元数据

安装

选项A:从npm安装(推荐)

npm install -g @fabriqa.ai/youtube-transcript-mcp

安装后,服务器将在全球范围内可用。您可以通过运行以下命令进行配置:

# The package will be installed in your global node_modules
# Typically: /usr/local/lib/node_modules/@fabriqa.ai/youtube-transcript-mcp

选项B:从源代码安装

  1. 克隆此存储库:
git clone https://github.com/hancengiz/youtube-transcript-mcp.git
cd youtube-transcript-mcp
  1. 安装依赖项:
npm install

配置

如果通过npm安装(推荐):

选项1:使用Claude Code CLI(最简单)

推荐:全机安装

# Add the MCP server for all projects (machine-wide)
claude mcp add --scope user youtube-transcript npx @fabriqa.ai/youtube-transcript-mcp@latest

了解范围选项:

Claude Code支持MCP服务器的三种配置范围:

  • --scope user (推荐)- 机器范围

    • 在所有项目和目录中可用
    • 配置一次,随处可用
    • 非常适合您在不同项目中经常使用的工具
  • --scope local (默认)- 项目特定

    • 仅在当前目录和子目录中可用
    • 适用于特定项目的MCP服务器
    • 每个项目必须单独配置
  • --scope project - 明确的项目

    • 对于特定的项目配置

示例用法:

# Machine-wide (recommended for youtube-transcript)
claude mcp add --scope user youtube-transcript npx @fabriqa.ai/youtube-transcript-mcp@latest

# Project-specific (if you prefer)
claude mcp add --scope local youtube-transcript npx @fabriqa.ai/youtube-transcript-mcp@latest

# Or use the convenience script
npx @fabriqa.ai/youtube-transcript-mcp/update-config.js

选项2:手动配置

添加到您的 ~/.claude.json:

{
  "mcpServers": {
    "youtube-transcript": {
      "command": "npx",
      "args": [
        "@fabriqa.ai/youtube-transcript-mcp@latest"
      ]
    }
  }
}

这使用 npx 自动运行全局安装的包,而无需指定路径。

快速设置脚本(可选):

通过npm安装后,您可以使用附带的配置脚本自动更新您的 ~/.claude.json:

npx @fabriqa.ai/youtube-transcript-mcp/update-config.js

或者,如果从源代码安装:

node update-config.js

这将使用以下命令自动添加MCP服务器 npx,使其在所有项目中都可以在机器范围内使用。

手动配置:

对于 克劳德桌面版,编辑 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)或 %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "youtube-transcript": {
      "command": "npx",
      "args": [
        "@fabriqa.ai/youtube-transcript-mcp@latest"
      ]
    }
  }
}

用法

配置后,重新启动Claude Code。将提供以下工具:

1.获取成绩单

检索YouTube视频的文字记录。

参数:

  • url (必填):YouTube视频URL或视频ID
  • lang (可选):成绩单的语言代码(例如“en”、“es”、“fr”)。默认:视频的默认语言
  • include_timestamps (可选):在输出中包含时间戳。默认值:true

支持的URL格式:

  • https://www.youtube.com/watch?v=VIDEO_ID
  • https://youtu.be/VIDEO_ID
  • https://m.youtube.com/watch?v=VIDEO_ID
  • VIDEO_ID (仅11个字符的视频ID)

例子:

Can you get the transcript from https://www.youtube.com/watch?v=LCEmiRjPEtQ?
Get the transcript from this video without timestamps: https://youtu.be/LCEmiRjPEtQ
Summarize the key learnings from this Andrej Karpathy talk: https://www.youtube.com/watch?v=LCEmiRjPEtQ

2.获取成绩单语言

查看视频可用的转录语言。

参数:

  • url (必填):YouTube视频URL或视频ID

例子:

What transcript languages are available for https://www.youtube.com/watch?v=LCEmiRjPEtQ?

工作流示例

以下是如何将此MCP服务器与Claude Code一起使用:

  1. 提取成绩单以总结视频:

    Give me the key learnings from this Andrej Karpathy talk: https://www.youtube.com/watch?v=LCEmiRjPEtQ
    
  2. 分析视频中的特定主题:

    Get the transcript from https://www.youtube.com/watch?v=LCEmiRjPEtQ and extract all mentions of "LLM" and "agents"
    
  3. 获取不同语言的成绩单:

    What transcript languages are available for https://www.youtube.com/watch?v=LCEmiRjPEtQ?
    
  4. 提取没有时间戳的引号 (对于长视频):

    Get the transcript without timestamps from this video: https://www.youtube.com/watch?v=LCEmiRjPEtQ
    

    注意:这段60分钟的视频在没有时间戳的情况下生成了约19k个令牌,而在有时间戳的时候生成了约30k个令牌。

  5. 研究和内容创作:

    Get 3 key quotes from Andrej Karpathy about partial autonomy apps from https://www.youtube.com/watch?v=LCEmiRjPEtQ
    

高级:使用Claude代码子代理提高上下文效率

分析视频时保存90%的上下文!

Claude Code支持专门的子代理,可以在孤立的环境中分析YouTube视频,只返回对主要对话的见解。这意味着您可以分析许多视频,而无需在上下文窗口中填充大量文字记录。

快速示例

取而代之的是(用20k+令牌填充您的上下文):

Get the transcript and analyze this video: [URL]

执行此操作(在您的上下文中只有~2k个令牌):

Use sub-agent to analyze this video: [URL]

youtube转录分析器代理

该专业代理:

  • ✅ 在独立的上下文中获取转录本
  • ✅ 彻底分析内容
  • ✅ 仅将分析结果返回给您
  • ✅ 允许您在一次会话中分析10多个视频
  • ✅ 使您的上下文保持干净和专注

了解更多

📖 完整的克劳德代码子代理指南

该指南包括:

  • 子代理如何保存上下文(附示例)
  • 完成youtube转录分析器代理的设置说明
  • 可以直接复制的配置文件
  • 真实世界的使用示例和工作流程
  • 高效分析多个视频的高级技巧

非常适合: 研究人员、内容创作者、学生以及任何在一次会话中分析多个视频的人。

用例

  • 内容概述:从长达一小时的技术讲座中提取关键知识(例如,Andrej Karpathy的“人工智能时代的软件”)
  • 研究:无需观看即可分析会议演讲、学术讲座和教育内容
  • 内容创建:从博客文章或文章的视频内容中获取准确的引用和参考
  • 学习与教育:快速复习讲座内容,提取主要概念和例子
  • 无障碍:将视频内容转换为可搜索、可读的文本格式
  • 访谈分析:从播客访谈和小组讨论中提取引文和见解
  • 技术文档:从教程视频中提取代码示例和技术解释

益处

  • 节省时间:无需观看整个视频即可获取视频内容
  • 上下文效率:仅提取所需的文本内容
  • 灵活的格式:选择是否包含时间戳
  • 多语言:在可用时访问不同语言的成绩单
  • 易于集成:Claude Code的简单基于URL的界面

技术细节

  • 与 @模型上下文协议/sdk
  • 使用定制的YouTube转录库(yt-lib/)
  • 转录获取的外部依赖项为零(使用本机获取API)
  • 作为通过stdio进行通信的本地Node.js进程运行
  • 支持所有带有可用转录/字幕的YouTube视频
  • 与YouTube的Innertube API直接集成,实现可靠的成绩单访问

局限性

MCP协议令牌限制

MCP(模型上下文协议)基础设施具有 25000令牌响应限制 以保护Claude的上下文窗口并防止性能问题。此限制是由MCP协议层施加的,而不是由YouTube或此工具施加的。

这意味着:

  • 启用时间戳的超长视频转录(通常为60分钟以上)可能会超过此限制
  • 转录成功从YouTube获取,但如果太大,MCP会阻止响应

症状:

Error: MCP tool "get-transcript" response (30131 tokens) exceeds
maximum allowed tokens (25000). Please use pagination, filtering,
or limit parameters to reduce the response size.

解决:

  1. 禁用时间戳 (推荐用于长视频):

    Get the transcript without timestamps from https://www.youtube.com/watch?v=VIDEO_ID
    

    这通常会将响应大小减少20-30%,使大多数视频都在限制范围内。

  2. 请求较短的视频 (60分钟以下通常使用时间戳)

  3. 分块处理:对于很长的视频,您可能需要以编程方式处理转录数据,而不是通过MCP工具

现实世界的例子(Andrej Karpathy的演讲):

  • https://www.youtube.com/watch?v=LCEmiRjPEtQ(60分钟技术讲座)
  • 带时间戳:约30000个令牌❌ (超过25k限制)
  • 无时间戳:约19000个令牌✅ (工作完美)

解决方法: 只需询问“获取成绩单 没有时间戳“对于长视频。

故障排除

服务器未出现在Claude代码中

  1. 验证配置文件中的路径是否正确
  2. 确保Node.js已安装并位于您的PATH中
  3. 检查是否安装了依赖项: npm install
  4. 完全重新启动Claude代码
  5. 检查克劳德代码日志是否有任何错误消息

“无可用成绩单”错误

  • 并非所有YouTube视频都有文字记录
  • 某些视频仅具有某些语言的自动生成字幕
  • 无法访问私人或受限视频
  • 尝试检查视频是否在YouTube上启用了字幕

找不到语言

  • 使用 get-transcript-languages 检查可用语言的工具
  • 常见语言代码:“en”、“es”、“fr”、“de”、“ja”、“ko”、“pt”、“ru”、“zh”等。
  • 并非所有视频都有所有语言的文字记录

无效的URL错误

  • 确保您使用的是有效的YouTube URL格式
  • 视频ID应恰好为11个字符
  • 确保视频存在并且可公开访问

发展

要修改或扩展服务器,请执行以下操作:

  1. 编辑 index.js 添加新工具或修改现有工具
  2. 更新 ListToolsRequestSchema 注册新工具的处理程序
  3. 在中添加相应的处理程序 CallToolRequestSchema 处理器
  4. 使用测试您的更改 npm test
  5. 重新启动服务器(重新启动Claude Code)以测试更改

测试

运行测试套件:

npm test

这将验证:

  • Claude API的JSON模式符合性
  • 工具注册和列表
  • 转录提取功能
  • 错误处理
  • URL语法分析

许可证

麻省理工学院

作者

由...创建 韩

贡献

请随时提交问题或拉取请求以改进此MCP服务器。