视频转文字服务

一个支持1000+平台的视频转文字服务,使用whisper.cpp技术,提供4-10倍于Python Whisper的转写速度,适用于教育、研究和无障碍访问场景。

  • by nhatvu148
  • TypeScript
  • 本地部署
  • 8 星标
  • 更新于
在 GitHub 查看 nhatvu148/video-transcriber-mcp

使用说明

视频转录器MCP服务器

一种模型上下文协议(MCP)服务器,用于转录来自 1000+平台 使用 whisper.cpp --比Python Whisper快4-10倍。使用TypeScript构建以确保类型安全,并可通过npx轻松安装。

🦀 更喜欢独立二进制文件? 看看 Rust版本,直接嵌入whisper.cpp(不需要外部CLI),并添加可选的HTTP/REST API。可用的 克拉特斯.io 随着 cargo install video-transcriber-mcp.

✨ 最新动态

v2.0.0版本

  • ⚡ whisper.cpp发动机:从Python切换 openai-whisper 到 whisper.cpp (通过 whisper-cli 二进制),转录速度快4-10x,内存使用率低。 ⚠️ 霹雳舞:安装 whisper-cpp 并下载模型(请参阅 先决条件).
  • 🛰️ 远程耳语工作者:通过以下方式将转录卸载到GPU服务 REMOTE_WHISPER_URL.
  • 🍪 yt-dlp cookie:对年龄限制/仅限会员的视频进行身份验证,并通过以下方式绕过YouTube的机器人检查 YT_DLP_COOKIES 或 YT_DLP_COOKIES_FROM_BROWSER.
  • 🧹 成绩单管理工具: get_latest_transcript, delete_transcript, cleanup_old_transcripts, delete_all_transcripts.
  • 📚 更智能的列表: list_transcripts 现在先排序最新的,并支持 limit.

早些时候

  • 🌍 多平台支持:通过yt-dlp,1000多个视频平台(YouTube、Vimeo、TikTok、Twitter/X、Facebook、Instagram、Twitch、教育网站等)
  • 💻 交叉平台的:适用于macOS、Linux和Windows
  • 🎛️ 可配置的Whisper型号:从小型、基础型、小型、中型或大型型号中选择
  • 🌐 语言支持:以90多种语言转录或使用自动检测
  • 🔄 自动检索:网络故障通过指数回退自动处理
  • 🎯 平台检测:自动检测视频平台

⚠️ 法律声明

此工具仅用于教育、可访问性和研究目的。

在使用此工具之前,请理解:

  • 大多数平台的服务条款通常禁止下载内容
  • 你有责任 确保您的使用符合适用法律
  • 此工具主要用于:
    • ✅ 您自己的内容
    • ✅ 创建无障碍功能(聋人/听力障碍者字幕)
    • ✅ 教育和研究目的(如允许)
    • ✅ 您有明确权限下载的内容

请阅读 法律.md 在使用此工具之前,请参阅详细的法律信息。

我们不鼓励或支持违反任何平台的服务条款或侵犯版权。负责任和合乎道德地使用。

特性

  • 🎥 从1000多个视频平台下载音频(由yt-dlp提供支持)
  • 📂 转录本地视频文件(mp4、avi、mov、mkv等)
  • ⚡ 使用转录 whisper.cpp 本地(不需要API密钥)-比Python Whisper快4-10x
  • 🛰️ 用于GPU卸载的可选远程耳语工作器(REMOTE_WHISPER_URL)
  • 🍪 yt-dlp cookie支持年龄限制/机器人检查的视频
  • 🎛️ 可配置的Whisper型号(微型、基础型、小型、中型、大型)
  • 🌐 支持90多种语言,具有自动检测功能
  • 📝 生成多种格式的成绩单(TXT、JSON、Markdown)
  • 📚 列出、读取和管理以前的成绩单(列出/最新/删除/清理)
  • 🔌 与Claude Code或任何MCP客户端无缝集成
  • 🔒 TypeScript的完全类型安全
  • 🔍 自动依赖性检查
  • 🔄 网络故障的自动重试逻辑
  • 🎯 平台检测(显示您正在从哪个平台转录)

支持的平台

多亏了yt-dlp,这个工具支持 1000+视频平台 包括:

  • 社交媒体:YouTube、TikTok、推特/X、脸书、Instagram、Reddit、领英
  • 视频托管:Vimeo、Dailymotion、Twitch
  • 教育的:Coursera、Udemy、可汗学院、领英学习、edX
  • 新闻:英国广播公司、美国有线电视新闻网、美国全国广播公司、英国公共广播公司
  • 会议/技术:YouTube(技术讲座)、Vimeo(会议)
  • 还有很多,更多!

跑吧 list_supported_sites 工具查看1000+支持平台的完整列表。

先决条件

您需要安装以下工具: yt-dlp (视频下载器), whisper.cpp (the whisper-cli 二进制),以及 FFmpeg (音频处理),加上至少一个whisper.cpp型号(请参阅 Whisper型号). 迪诺 是可选的,但建议用于坚如磐石的YouTube下载——请参阅下面的注释。

💡 YouTube可靠性——Deno(推荐,非必需)。 此工具将yt-dlp传递给 android 提取器客户端,用于 大多数 Youtube视频 没有 JavaScript运行时。对于android客户端无法提供的偶尔视频,yt-dlp需要一个JS运行时来解决YouTube的签名/“n”挑战——否则 特定的 视频失败,出现类似机器人检测的错误(No supported JavaScript runtime could be found, Signature solving failedHTTP 403)。安装 日≥2.3.0 (yt-dlp自动检测到它)使YouTube在所有视频中的下载都很强大。如果你已经有了Deno,请确保它≥2.3.0(deno --version那么 deno upgrade)--检测到一个较旧的,但无法解决挑战。非YouTube网站不需要它。还要保持yt-dlp最新(yt-dlp -U)过时的yt-dlp是YouTube失败的更常见原因。

如果你设置 REMOTE_WHISPER_URL 要将转录卸载到远程工作者,可以跳过安装 whisper-cpp 并在本地下载模型。

macOS

brew install yt-dlp       # Video downloader (supports 1000+ sites)
brew install whisper-cpp  # whisper.cpp transcription (installs `whisper-cli`)
brew install ffmpeg       # Audio processing
brew install deno         # JS runtime — optional, recommended for YouTube reliability

Linux

# Ubuntu/Debian
sudo apt update
sudo apt install ffmpeg
pip install yt-dlp
curl -fsSL https://deno.land/install.sh | sh   # JS runtime — optional, recommended for YouTube reliability
# whisper.cpp: build from source, then put `whisper-cli` on your PATH
git clone https://github.com/ggerganov/whisper.cpp && cd whisper.cpp && make
# copy build/bin/whisper-cli to /usr/local/bin, or set WHISPER_CPP_BINARY to its path

视窗

# Install Python from python.org first
pip install yt-dlp

# Install ffmpeg (required) + deno (optional, recommended for YouTube) via Chocolatey
choco install ffmpeg
choco install deno   # JS runtime — optional, recommended for YouTube reliability

# whisper.cpp: download a prebuilt release from
# https://github.com/ggerganov/whisper.cpp/releases and put whisper-cli.exe on PATH,
# or set WHISPER_CPP_BINARY to its full path.

Deno不在PATH上吗? 如果您安装了Deno,但yt-dlp仍然报告“不支持JavaScript运行时”(安装程序将其放入时很常见) ~/.deno/bin),将其符号链接到PATH中的某个位置——例如。 ln -sf ~/.deno/bin/deno ~/.local/bin/deno --或添加 ~/.deno/bin 到你的路径。

验证安装(所有平台)

yt-dlp --version
whisper-cli --help
ffmpeg -version
deno --version

Whisper型号

whisper.cpp使用 ggml 模型文件存储在 ~/.cache/video-transcriber-mcp/models/。使用捆绑的脚本下载它们:

# Download a single model (recommended: start with base)
bash scripts/download-models.sh base

# Or download everything
bash scripts/download-models.sh all

窗户: download-models.sh 是一个Bash脚本--从以下位置运行它 Git Bash 或 Windows 子系统 for Linux。或者手动下载模型:抓取 ggml-base.bin (或其他尺寸) https://huggingface.co/ggerganov/whisper.cpp/tree/main 并将其放入 %USERPROFILE%\.cache\video-transcriber-mcp\models\.

型号 尺寸 备注
微小 ~75MB 最快,精度最低
基本 ~142 MB 建议默认值
小 ~466 MB 平衡良好
中等 ~1.5 GB 高精度
大 ~2.9 GB 精度最高,速度最慢

跑吧 check_dependencies 工具随时查看安装了哪些型号。

快速开始

面向最终用户(使用npx)

添加到您的Claude代码配置中(~/.claude/settings.json):

{
  "mcpServers": {
    "video-transcriber": {
      "command": "npx",
      "args": ["-y", "video-transcriber-mcp"]
    }
  }
}

或者直接从GitHub使用:

{
  "mcpServers": {
    "video-transcriber": {
      "command": "npx",
      "args": [
        "-y",
        "github:nhatvu148/video-transcriber-mcp"
      ]
    }
  }
}

就是这样!无需安装。npx将自动下载并运行该包。

促进地方发展

# Clone the repository
git clone https://github.com/nhatvu148/video-transcriber-mcp.git
cd video-transcriber-mcp

# Install dependencies
npm install
# or
bun install

# Build the project
npm run build

# Use in Claude Code with local path
{
  "mcpServers": {
    "video-transcriber": {
      "command": "npx",
      "args": ["-y", "/path/to/video-transcriber-mcp"]
    }
  }
}

用法

来自克劳德代码

配置后,您可以在Claude Code中使用这些工具:

从任何平台转录视频

Please transcribe this YouTube video: https://www.youtube.com/watch?v=VIDEO_ID
Transcribe this TikTok video: https://www.tiktok.com/@user/video/123456789
Get the transcript from this Vimeo video with high accuracy: https://vimeo.com/123456789
(use model: large)
Transcribe this Spanish tutorial video: https://youtube.com/watch?v=VIDEO_ID
(language: es)

转录本地视频文件

Transcribe this local video file: /Users/myname/Videos/meeting.mp4
Transcribe ~/Downloads/lecture.mov with high accuracy
(use model: medium)

克劳德将使用 transcribe_video 该工具自动提供模型和语言的可选参数。

列出所有支持的平台

What platforms can you transcribe videos from?

列出可用成绩单

List all my video transcripts

检查相关性

Check if my video transcriber dependencies are installed

阅读成绩单

Show me the transcript for [video name]

程序化使用

如果安装该软件包:

npm install video-transcriber-mcp

您可以通过编程方式导入和使用它:

import { transcribeVideo, checkDependencies, WhisperModel } from 'video-transcriber-mcp';

// Check dependencies — returns a human-readable status string
console.log(checkDependencies());

// Transcribe a video from URL with custom options
const result = await transcribeVideo({
  url: 'https://www.youtube.com/watch?v=VIDEO_ID',
  outputDir: '/path/to/output',
  model: 'medium', // tiny, base, small, medium, large
  language: 'en', // or 'auto' for auto-detection
  onProgress: (progress) => console.log(progress)
});

// Or transcribe a local video file
const localResult = await transcribeVideo({
  url: '/path/to/video.mp4',  // Local file path instead of URL
  outputDir: '/path/to/output',
  model: 'base',
  language: 'auto',
  onProgress: (progress) => console.log(progress)
});

console.log('Title:', result.metadata.title);
console.log('Platform:', result.metadata.platform);
console.log('Words:', result.wordCount);
console.log('Model:', result.modelUsed);
console.log('Files:', result.files);

输出

成绩单保存到 ~/Downloads/video-transcripts/ 默认情况下。

对于每个视频,生成三个文件:

  1. .txt -纯文本转录
  2. .json -包含视频元数据、转录本和所用模型的JSON
  3. .md -带视频元数据和格式化转录的Markdown

示例

~/Downloads/video-transcripts/
├── 7JBuA1GHAjQ-From-AI-skeptic-to-UNFAIR-advantage.txt
├── 7JBuA1GHAjQ-From-AI-skeptic-to-UNFAIR-advantage.json
└── 7JBuA1GHAjQ-From-AI-skeptic-to-UNFAIR-advantage.md

MCP工具

transcribe_video

将来自1000多个平台或本地视频文件的视频转录为文本。

参数:

  • url (必填):来自任何支持平台的视频URL或本地视频文件(mp4、avi、mov、mkv等)的路径
  • output_dir (可选):输出目录路径
  • model (可选):Whisper型号-“微型”、“基础”(默认)、“小型”、“中型”、“大型”
  • language (可选):语言代码(ISO 639-1:“en”、“es”、“fr”等)或“auto”(默认)

型号比较:

型号 速度 精度 用例
微小 ⚡⚡⚡⚡⚡ ⭐⭐ 快速草稿、测试
基础 ⚡⚡⚡⚡ ⭐⭐⭐ 一般用途(默认)
小 ⚡⚡⚡ ⭐⭐⭐⭐ 更准确
中等 ⚡⚡ ⭐⭐⭐⭐⭐ 高精度
大 ⚡ ⭐⭐⭐⭐⭐⭐ 精度最高,速度较慢

list_transcripts

列出所有可用的转录本及其元数据,按修改时间排序(最新的优先)。

参数:

  • output_dir (可选):要列出的目录
  • limit (可选):仅返回N个最近的成绩单

get_latest_transcript

获取最近创建/修改的转录的路径和详细信息。有助于避免意外阅读旧成绩单。

参数:

  • output_dir (可选):要搜索的目录

delete_transcript

按视频ID删除特定转录(删除所有关联的转录 .txt, .json, .md 文件)。

参数:

  • video_id (必填):要删除的视频ID(例如。 dQw4w9WgXcQ)
  • output_dir (可选):要删除的目录

cleanup_old_transcripts

删除超过给定天数的成绩单。

参数:

  • days (必填):删除超过此天数的文件
  • output_dir (可选):要清理的目录

delete_all_transcripts

删除输出目录中的所有转录本。 无法撤消。

参数:

  • confirm (必填):必须 true 实际删除
  • output_dir (可选):要清除的目录

check_dependencies

验证是否安装了所有必需的依赖项(yt-dlp、ffmpeg、whisper.cpp)和型号。

list_supported_sites

列出所有1000+支持的视频平台。

环境变量

所有这些都是可选的。看 .env.example 了解详情。使用MCP服务器时,在客户端的 env 块。

变量 描述
YT_DLP_COOKIES Netscape格式Cookie文件的路径(--cookies).首选无头/Linux。
YT_DLP_COOKIES_FROM_BROWSER 用于读取Cookie的浏览器(chrome, brave, edge, firefox, safari, …).忽略如果 YT_DLP_COOKIES 已设置。
REMOTE_WHISPER_URL 将转录卸载到远程HTTP worker,而不是在本地运行whisper.cpp。
WHISPER_CPP_BINARY 覆盖whisper.cpp CLI名称/路径(默认 whisper-cli).

带Cookie的Claude代码配置示例:

{
  "mcpServers": {
    "video-transcriber": {
      "command": "npx",
      "args": ["-y", "video-transcriber-mcp"],
      "env": {
        "YT_DLP_COOKIES_FROM_BROWSER": "chrome"
      }
    }
  }
}

配置示例

克劳德代码(推荐)

{
  "mcpServers": {
    "video-transcriber": {
      "command": "npx",
      "args": ["-y", "video-transcriber-mcp"]
    }
  }
}

来自GitHub(最新)

{
  "mcpServers": {
    "video-transcriber": {
      "command": "npx",
      "args": ["-y", "github:nhatvu148/video-transcriber-mcp"]
    }
  }
}

本地开发

{
  "mcpServers": {
    "video-transcriber": {
      "command": "npx",
      "args": ["-y", "/absolute/path/to/video-transcriber-mcp"]
    }
  }
}

发展

设置

# Install dependencies
npm install

# Build the project
npm run build

# Type check
npm run check

# Development mode (requires Bun)
bun run dev

# Clean build artifacts
npm run clean

项目结构

video-transcriber-mcp/
├── src/
│   ├── index.ts          # MCP server implementation (8 tools)
│   └── transcriber.ts    # Core transcription logic (whisper.cpp)
├── scripts/
│   └── download-models.sh # Download whisper.cpp ggml models
├── dist/                 # Built JavaScript (generated)
├── package.json          # Package configuration
├── tsconfig.json         # TypeScript configuration
├── .env.example          # Documented environment variables
├── LICENSE               # MIT License
└── README.md             # This file

脚本

命令 描述
npm run build 将TypeScript编译为JavaScript
npm run dev 热重载开发模式(Bun)
npm run check TypeScript类型检查
npm run clean 删除dist/目录
npm run prepublishOnly 预发布构建(自动)

出版

# Build the project
npm run build

# Test locally first
npx . --help

# Publish to npm (bump version first)
npm version patch  # or minor, major
npm publish

# Or publish from GitHub
# Push to GitHub and users can use:
# npx github:username/video-transcriber-mcp

故障排除

未安装依赖项

看 先决条件 以上部分为平台特定的安装说明。

npx找不到包

确保包装是:

  • 发布到npm,OR
  • 在GitHub上提供正确的package.json

TypeScript错误

npm run check

权限不足

构建过程会自动生成 dist/index.js 可通过 fix-shebang 脚本。

“不支持的URL”错误

yt-dlp可能不支持该平台。跑 list_supported_sites 查看所有支持的平台。

“未找到Whisper型号”

下载您请求的模型: bash scripts/download-models.sh base (或 all).模特们住在 ~/.cache/video-transcriber-mcp/models/.快跑 check_dependencies 看看安装了什么。

“未找到whisper.cpp CLI('whisper-CLI')”

安装whisper.cpp(brew install whisper-cpp 在macOS上)或设置 WHISPER_CPP_BINARY 走向你的全部道路 whisper-cli (或遗产 main)二进制。

YouTube失败:“不支持JavaScript运行时”/“签名解析失败”/HTTP 403

yt-dlp需要一个JavaScript运行时才能从YouTube下载。 安装Deno≥2.3.0 (brew install deno, choco install deno,或 curl -fsSL https://deno.land/install.sh | sh)--yt-dlp自动检测到它。两个常见的陷阱:

  • 找不到Deno 即使已安装→ 它降落在 ~/.deno/bin,它不在PATH上。Symlink它: ln -sf ~/.deno/bin/deno ~/.local/bin/deno.
  • n challenge solving failed 持续 安装了Deno→ 你的Deno是 2.3.0以上.快跑 deno --version那么 deno upgrade(这是一个偷偷摸摸的问题——一个旧的Deno被检测到,但默默地无法解决挑战。)

证实 deno --version。参见 先决条件.

这些错误通常伪装成机器人检测,但修复方法是JS运行时, 不 饼干。同时保持yt-dlp的最新状态(yt-dlp -U 或 brew upgrade yt-dlp)过时的yt-dlp使YouTube的失败更加严重。

YouTube“登录以确认您不是机器人”

首先确认您已经安装了Deno(见上文),yt-dlp是最新的——这可以解决大多数情况。对于真正的门控内容(年龄限制/仅限成员),设置 YT_DLP_COOKIES (Cookie文件的路径)或 YT_DLP_COOKIES_FROM_BROWSER (例如。 chrome).看 环境变量.

演出

whisper.cpp大致是 快4-10倍 比Python openai-whisper 在相同的硬件上,使用更少的内存。实际处理时间取决于您的CPU(Apple Silicon上的P核数)、所选型号和视频长度。

提示:从 base 建模并向上移动 medium/large 只有当你需要更精确的时候。

高级配置

定制Whisper型号

在工具调用参数中指定:

{
  "url": "https://youtube.com/watch?v=...",
  "model": "large"
}

自定义语言

指定语言代码:

{
  "url": "https://youtube.com/watch?v=...",
  "language": "es"
}

自定义输出目录

在工具调用中指定:

{
  "url": "https://youtube.com/watch?v=...",
  "output_dir": "/custom/path"
}

贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

许可证

MIT许可证-请参阅 许可证 详细信息文件

TypeScript与Rust版本

项目范围: 这 Rust版本 是真理的源泉。 这个TypeScript包是有意保留的 小而稳定 --瘦削的当地人 标准 npm的MCP服务器/npx 观众。高级/SaaS功能(HTTP传输、身份验证、信用/计费、LLM摘要)上线 仅 在Rust版本和are 不 港口在这里。新功能首先登陆Rust;此包仅跟踪共享MCP工具合同。

两个版本都使用 whisper.cpp 用于转录,并暴露相同的MCP工具。

选择 TypeScript版本 (此项)用于:

  • ✅ 使用npx快速设置(无需编译)
  • ✅ 熟悉Node.js生态系统
  • ℹ️ 呼叫 whisper-cli 二进制(安装 whisper-cpp 单独)

选择 Rust版本 用于:

  • 📦 独立二进制 --whisper.cpp已嵌入,无需安装外部CLI
  • 💾 降低内存使用率 本地创业
  • 🌐 HTTP/REST API 传输、身份验证、信用和其他SaaS功能

两者都支持相同的MCP协议,并且与Claude Code的工作方式相同!

链接

致谢

  • whisper.cpp 用于快速本地转录
  • OpenAI Whisper用于底层模型
  • yt-dlp用于多平台视频下载(1000+站点)
  • 模型上下文协议SDK
  • 克劳德Anthropic

由以下材料制成❤️ 对于MCP社区