成绩单mcp
一种模型上下文协议(MCP)服务器,提供全面的视频工具:转录检索、视频下载、自动字幕生成和直接音频转录。适用于YouTube、Bilibili、Vimeo以及yt-dlp支持的任何平台。
特性
- 多平台支持:适用于YouTube、Bilibili、Vimeo以及yt-dlp支持的任何平台
- 视频记录:从视频中提取现有的文字记录/字幕
- 视频下载:将各种格式和质量的视频下载到本地存储
- 自动字幕生成:使用OpenAI Whisper API或本地Whisper生成字幕
- 客户端音频转录:
audio_url取(分配),小audio_base64、分块上传、可选异步作业、服务器端Opus压缩、结构化JSON结果 - 多种URL格式:支持来自不同平台的各种URL格式
- 时间戳支持:在成绩单输出中包含或排除时间戳
- 语言选择:请求转录本或生成特定语言的字幕
工具
| 工具 | 说明 |
|---|---|
get-transcript | 从视频平台检索现有成绩单 |
list-transcript-languages | 列出视频的可用转录语言 |
download-video | 将视频下载到本地存储 |
list-downloads | 列出下载的视频文件 |
generate-subtitles | 使用AI语音转文本生成字幕 |
transcribe-audio | 转录客户端提供的音频(URL/bbase64/path/resource URI) |
transcribe_upload_start | 开始大音频负载的分块上传 |
transcribe_upload_append | 在上传会话中附加一个base64块 |
transcribe_upload_finalize | 完成上传并运行转录 |
transcribe_get_job | 轮询异步转录作业 |
transcribe_cancel_job | 取消异步转录作业 |
先决条件
- Node.js >= 16.0.0
- yt-dlp -获取成绩单和下载视频所需
- FFmpeg -字幕生成、音频规范化、Opus压缩和静音感知分割所需(安装带有
libopus)
安装依赖项
yt-dlp(必填):
# Using Homebrew (macOS)
brew install yt-dlp
# Using pip
pip install yt-dlpffmpeg(字幕生成所需):
# Using Homebrew (macOS)
brew install ffmpeg
# Using apt (Ubuntu/Debian)
sudo apt install ffmpeg本地耳语(可选,用于生成本地字幕):
pip install openai-whisper安装
源自
git clone
cd transcript-mcp
npm install
npm run build全局安装(发布后)
npm install -g transcript-mcp配置
适用于克劳德桌面/光标
将MCP服务器添加到配置文件中:
克劳德桌面版 (~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):
{
"mcpServers": {
"transcript-mcp": {
"command": "node",
"args": ["/path/to/transcript-mcp/dist/index.js"],
"env": {
"TRANSCRIPT_MCP_STORAGE_DIR": "/path/to/downloads",
"OPENAI_API_KEY": "your-openai-api-key"
}
}
}
}光标 (~/.cursor/mcp.json):
{
"mcpServers": {
"transcript-mcp": {
"command": "node",
"args": ["/path/to/transcript-mcp/dist/index.js"],
"env": {
"TRANSCRIPT_MCP_STORAGE_DIR": "/path/to/downloads",
"OPENAI_API_KEY": "your-openai-api-key"
}
}
}
}环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
TRANSCRIPT_MCP_STORAGE_DIR | 下载视频的默认目录 | ~/.transcript-mcp/downloads |
OPENAI_API_KEY | 用于基于Whisper的字幕生成的OpenAI API密钥 | 无 |
TRANSCRIPT_MCP_WHISPER_ENGINE | 首选耳语引擎: openai, local,或 auto | auto |
VIDEO_TOOLKIT_STORAGE_DIR | 的旧别名 TRANSCRIPT_MCP_STORAGE_DIR | — |
VIDEO_TOOLKIT_WHISPER_ENGINE | 的旧别名 TRANSCRIPT_MCP_WHISPER_ENGINE | — |
WHISPER_BINARY_PATH | 本地耳语二进制文件的路径 | whisper |
WHISPER_MODEL_PATH | 耳语模型路径(用于本地耳语) | 自动下载 |
YT_DLP_PATH | yt-dlp二进制文件的路径 | yt-dlp |
FFMPEG_PATH | ffmpeg二进制文件的路径 | ffmpeg |
FFPROBE_PATH | ffprobe二进制文件的路径 | 来源于 FFMPEG_PATH |
TRANSCRIPT_MCP_URL_ALLOWLIST | 允许使用逗号分隔的主机模式 audio_url (例如。 *.amazonaws.com,localhost).空禁用所有 audio_url 获取 | 空 |
DEBUG | 启用调试日志记录 | 0 |
用法
1.获取成绩单
从视频平台检索现有成绩单。
参数:
url(必填):视频URLlang(可选):语言代码(例如,'en'、'es'、'zh')include_timestamps(可选):包括时间戳(默认值:true)
例子:
Get the transcript from https://www.youtube.com/watch?v=VIDEO_ID2.列出成绩单语言
列出视频的可用转录语言。
参数:
url(必填):视频URL
例子:
What transcript languages are available for https://www.youtube.com/watch?v=VIDEO_ID?3.下载视频
将视频下载到本地存储。
参数:
url(必填):要下载的视频URLoutput_dir(可选):自定义输出目录filename(可选):自定义文件名format(可选):视频格式-mp4,webm,mkv(默认值:mp4)quality(可选):质量-best,1080p,720p,480p,360p,audio(默认值:最佳)
例子:
Download this video: https://www.youtube.com/watch?v=VIDEO_ID4.列表下载
列出所有下载的视频文件。
参数:
directory(可选):要列出的目录(默认:存储目录)
例子:
List my downloaded videos5.生成字幕
使用AI语音转文本为本地视频文件生成字幕。
参数:
video_path(必填):视频文件的绝对路径engine(可选):openai或local(默认:自动检测)language(可选):用于转录的语言代码output_format(可选):srt或vtt(默认值:srt)
例子:
Generate subtitles for /path/to/video.mp46.转录音频
通过Whisper转录音频。更喜欢 audio_url (服务器获取字节;配置 TRANSCRIPT_MCP_URL_ALLOWLIST).使用 audio_base64 仅适用于小片段(约 60KB原始 每次通话;较大的有效载荷应使用分块上传或URL)。 audio_path / file:// 仅当MCP主机与调用者共享文件系统时才有效(在沙盒客户端中通常为false)。
默认情况下,服务器 重新编码为Opus 16 kHz单声道16 kbps 在Whisper之前。集 skip_compression: true 如果您已经优化了文件。
音频长度超过 5分钟 (或当 async: true)退货 { job_id, status: "processing" };投票 transcribe_get_job.
参数(需要输入一个):
audio_url,audio_path,audio_base64,或audio_resource_uri(file:///data:...;base64,...)filename(可选):魔术字节检测不确定时的提示skip_compression(可选):跳过Opus重新压缩(默认值:false)engine(可选):openai,local,或auto(默认值:auto)language(可选):转录语言提示include_timestamps(可选):当as_text是真的,包括[MM:SS]行(默认值:true)as_text(可选):如果为true,则返回纯文本;如果为false,则返回结构化JSON(默认值:false)async(可选):强制异步作业(默认值:false)
示例:
Transcribe this presigned URL (after allowlisting the host): audio_url=...Transcribe this audio file on the MCP host: /path/to/interview.m4a7.转录*上传*\*(分块上传)
对于大文件,将原始字节拆分为base64块,最多 max_chunk_bytes (约60KB)来自 transcribe_upload_start,呼叫 transcribe_upload_append 对于每个指数,那么 transcribe_upload_finalize。大约一个小时后,被丢弃的上传将被垃圾回收。
8.转录_get_job/转录_cancel_job
轮询或取消由创建的异步作业 transcribe-audio (长音频或 async: true).
字幕生成引擎
OpenAI Whisper API
- 优点:精度高,无需本地设置,支持50多种语言
- 缺点:需要API密钥,每分钟音频成本
- 设置:设置
OPENAI_API_KEY环境变量
当地耳语
- 优点:免费,本地运行,无API限制
- 缺点:需要设置,使用本地CPU/GPU
- 设置:
pip install openai-whisper
该工具自动检测要使用的发动机:
- 如果
OPENAI_API_KEY已设置,使用OpenAI Whisper - 如果安装了本地耳语,则使用本地耳语
- 如果两者都不可用,则返回错误
对于 transcribe-audio, auto 首先使用OpenAI,当本地耳语可用时,回落到本地耳语。
示例工作流
下载并生成字幕
1. Download this video: https://www.youtube.com/watch?v=VIDEO_ID
2. Generate subtitles for the downloaded file总结视频
Get the transcript from https://www.youtube.com/watch?v=VIDEO_ID and summarize the key points为没有字幕的视频创建字幕
1. Download the video: https://vimeo.com/123456789
2. Generate English subtitles for it支持的平台
yt-dlp支持的任何平台,包括:
- 油管
- 买
- 维密欧
- 推特/X
- 试试看。
- Twitch
- 还有更多。..
完整列表:https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md
项目结构
transcript-mcp/
├── src/
│ ├── index.ts # Main MCP server entry point
│ ├── transcript-fetcher.ts # Transcript fetching using yt-dlp
│ ├── video-downloader.ts # Video download functionality
│ ├── subtitle-generator.ts # AI-powered subtitle generation
│ ├── config.ts # Configuration management
│ ├── url-detector.ts # Platform detection from URLs
│ ├── parser.ts # Transcript parsing (SRT, VTT, JSON)
│ └── errors.ts # Custom error classes
├── test/
│ └── transcript.test.ts # Unit tests
├── dist/ # Compiled JavaScript (after build)
└── package.json发展
# Build
npm run build
# Test
npm test
# Development mode
npm run dev故障排除
“yt-dlp未安装”
brew install yt-dlp
# or
pip install yt-dlp“未安装ffmpeg”
brew install ffmpeg“未安装ffprobe”
brew install ffmpeg“没有Whisper发动机可用”
要么:
- 集
OPENAI_API_KEY环境变量,或 - 安装本地耳语:
pip install openai-whisper
下载问题
- 检查视频是否可公开访问
- 某些平台可能有速率限制
- 无法下载私人/受限视频
字幕生成缓慢
- OpenAI Whisper API比本地更快
- 本地耳语性能取决于您的硬件
- 考虑使用较小的模型进行本地耳语
许可证
麻省理工学院
