YouTube字幕MCP服务器
一种MCP(模型上下文协议)服务器,使用字幕从YouTube视频中提取干净的文本转录。
特性
- 从YouTube视频中提取英文字幕(自动生成或手动)
- 将字幕文件转换为干净、重复数据消除的纯文本
- 将成绩单保存到本地文件或直接返回
- 适用于任何兼容MCP的客户端(Claude Desktop等)
先决条件
在使用此MCP服务器之前,您必须安装以下工具:
必需的依赖项
- yt-dlp -YouTube视频下载器
# Install via Homebrew (macOS)
brew install yt-dlp
# Or via pip
pip install yt-dlp- FFmpeg -媒体文件转换器
# Install via Homebrew (macOS)
brew install ffmpeg
# Or via apt (Linux)
sudo apt install ffmpeg- Node.js -版本18或更高
# Check your version
node --version
# Install via Homebrew (macOS)
brew install node安装
快速入门(使用npx)
无需安装!只需添加到您的MCP客户端配置中:
{
"mcpServers": {
"yt-subs": {
"command": "npx",
"args": ["-y", "yt-subs-mcp"]
}
}
}注: 你仍然需要 yt-dlp 和 ffmpeg 安装在您的系统上(请参阅上面的先决条件)。
Claude桌面配置
编辑您的Claude Desktop配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗:
%APPDATA%\Claude\claude_desktop_config.json
将服务器添加到 mcpServers 章节:
选项1:使用npx(推荐)
{
"mcpServers": {
"yt-subs": {
"command": "npx",
"args": ["-y", "yt-subs-mcp"],
"env": {
"YT_SUBS_DOWNLOAD_DIR": "/path/to/your/transcripts"
}
}
}
}选项2:使用本地安装
{
"mcpServers": {
"yt-subs": {
"command": "node",
"args": ["/absolute/path/to/yt-subs/index.js"]
}
}
}促进地方发展
- 克隆此存储库
- 安装依赖项:
npm install- 使脚本可执行:
chmod +x index.js用法
在MCP客户端中配置后,您可以使用 get_youtube_transcript 工具:
工具:get_youtube_transcript
从YouTube视频URL中提取字幕/转录文本。
参数:
url(必填):YouTube视频URLsave_to_file(可选):是否将成绩单保存到文件(默认值:true)
示例:
// Get transcript and save to file
{
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"save_to_file": true
}
// Get transcript without saving
{
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"save_to_file": false
}答复:
{
"success": true,
"video_id": "dQw4w9WgXcQ",
"transcript": "Never gonna give you up\nNever gonna let you down...",
"saved_to": "/Users/yourname/Downloads/yts/dQw4w9WgXcQ.txt",
"message": "Transcript extracted and saved to /Users/yourname/Downloads/yts/dQw4w9WgXcQ.txt"
}配置
环境变量
- YT_SUBS_DOWNLOAD_DIR:用于保存成绩单文件的自定义目录
- 如果未设置,则默认为 ~/Downloads/yts/ - 必须是绝对路径 - 如果目录不存在,将创建该目录
例子:
export YT_SUBS_DOWNLOAD_DIR="/path/to/your/transcripts"在Claude Desktop中设置环境变量
要使用自定义下载目录,请添加 env 属性到服务器配置:
{
"mcpServers": {
"yt-subs": {
"command": "node",
"args": ["/absolute/path/to/yt-subs/index.js"],
"env": {
"YT_SUBS_DOWNLOAD_DIR": "/path/to/your/transcripts"
}
}
}
}输出位置
默认情况下,成绩单文件保存到:
~/Downloads/yts/或指向由指定的目录 YT_SUBS_DOWNLOAD_DIR 环境变量。
每个记录都以视频ID作为文件名保存:
VIDEO_ID.txt运作原理
- 从提供的YouTube URL中提取视频ID
- 使用yt-dlp下载英文字幕(VTT格式)
- 使用ffmpeg将VTT转换为SRT格式
- 提取并消除重复文本内容
- 清理临时文件
- 返回干净的成绩单文本
故障排除
“缺少必需的依赖项”错误
确保yt-dlp和ffmpeg已安装并在PATH中可用:
which yt-dlp
which ffmpeg“下载字幕失败”错误
视频可能没有英文字幕。尝试其他视频或检查YouTube上是否存在字幕。
“无法提取视频ID”错误
确保您提供的是有效的YouTube URL格式:
https://www.youtube.com/watch?v=VIDEO_IDhttps://youtu.be/VIDEO_ID
发展
本地运行
npm start服务器将在stdio上运行并等待MCP协议消息。
测试
您可以使用MCP客户端或通过stdio发送JSON-RPC消息来测试服务器。
发布到npm
如果你想将自己的版本发布到npm:
- 更新中的包名称
package.json独特的东西
- 将存储库URL更新到您的GitHub存储库
- 添加您的作者信息
- 登录到npm:
npm login- 发布:
npm publish发布前,请确保:
- 使用以下命令在本地测试包
npm pack和npm install -g ./yt-subs-mcp-1.0.0.tgz - 更新semver后的版本号
- 确保README是最新的
- 添加适当的标签和关键字
许可证
麻省理工学院
鸣谢
基于yt-subs bash脚本提取YouTube字幕。
