使用说明
YouTube转录MCP服务器
一个模型上下文协议(MCP)服务器,用于从YouTube视频中检索Claude Code的转录本。此服务器允许您轻松提取视频转录,而无需手动下载或复制内容,使其非常适合分析视频内容、总结演讲或从教育视频中提取信息。
- 关于此mcp服务器的博客文章 再建一件:将YouTube分析添加到我的钢铁侠学习服中
- npm包: @fabrica.ai/youtube-transcript-mcp
- 作者: 韩
特性
- 获取视频转录:从任何带有可用字幕的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:从源代码安装
- 克隆此存储库:
git clone https://github.com/hancengiz/youtube-transcript-mcp.git
cd youtube-transcript-mcp
- 安装依赖项:
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或视频IDlang(可选):成绩单的语言代码(例如“en”、“es”、“fr”)。默认:视频的默认语言include_timestamps(可选):在输出中包含时间戳。默认值:true
支持的URL格式:
https://www.youtube.com/watch?v=VIDEO_IDhttps://youtu.be/VIDEO_IDhttps://m.youtube.com/watch?v=VIDEO_IDVIDEO_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一起使用:
-
提取成绩单以总结视频:
Give me the key learnings from this Andrej Karpathy talk: https://www.youtube.com/watch?v=LCEmiRjPEtQ -
分析视频中的特定主题:
Get the transcript from https://www.youtube.com/watch?v=LCEmiRjPEtQ and extract all mentions of "LLM" and "agents" -
获取不同语言的成绩单:
What transcript languages are available for https://www.youtube.com/watch?v=LCEmiRjPEtQ? -
提取没有时间戳的引号 (对于长视频):
Get the transcript without timestamps from this video: https://www.youtube.com/watch?v=LCEmiRjPEtQ注意:这段60分钟的视频在没有时间戳的情况下生成了约19k个令牌,而在有时间戳的时候生成了约30k个令牌。
-
研究和内容创作:
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.
解决:
-
禁用时间戳 (推荐用于长视频):
Get the transcript without timestamps from https://www.youtube.com/watch?v=VIDEO_ID这通常会将响应大小减少20-30%,使大多数视频都在限制范围内。
-
请求较短的视频 (60分钟以下通常使用时间戳)
-
分块处理:对于很长的视频,您可能需要以编程方式处理转录数据,而不是通过MCP工具
现实世界的例子(Andrej Karpathy的演讲):
- https://www.youtube.com/watch?v=LCEmiRjPEtQ(60分钟技术讲座)
- 带时间戳:约30000个令牌❌ (超过25k限制)
- 无时间戳:约19000个令牌✅ (工作完美)
解决方法: 只需询问“获取成绩单 没有时间戳“对于长视频。
故障排除
服务器未出现在Claude代码中
- 验证配置文件中的路径是否正确
- 确保Node.js已安装并位于您的PATH中
- 检查是否安装了依赖项:
npm install - 完全重新启动Claude代码
- 检查克劳德代码日志是否有任何错误消息
“无可用成绩单”错误
- 并非所有YouTube视频都有文字记录
- 某些视频仅具有某些语言的自动生成字幕
- 无法访问私人或受限视频
- 尝试检查视频是否在YouTube上启用了字幕
找不到语言
- 使用
get-transcript-languages检查可用语言的工具 - 常见语言代码:“en”、“es”、“fr”、“de”、“ja”、“ko”、“pt”、“ru”、“zh”等。
- 并非所有视频都有所有语言的文字记录
无效的URL错误
- 确保您使用的是有效的YouTube URL格式
- 视频ID应恰好为11个字符
- 确保视频存在并且可公开访问
发展
要修改或扩展服务器,请执行以下操作:
- 编辑
index.js添加新工具或修改现有工具 - 更新
ListToolsRequestSchema注册新工具的处理程序 - 在中添加相应的处理程序
CallToolRequestSchema处理器 - 使用测试您的更改
npm test - 重新启动服务器(重新启动Claude Code)以测试更改
测试
运行测试套件:
npm test
这将验证:
- Claude API的JSON模式符合性
- 工具注册和列表
- 转录提取功能
- 错误处理
- URL语法分析
许可证
麻省理工学院
作者
由...创建 韩
贡献
请随时提交问题或拉取请求以改进此MCP服务器。