video-transcriber-mcp
Video Transcriber MCP 🚀
Высокопроизводительный MCP-сервер для транскрибации видео на базе whisper.cpp (Rust)
Сервер Model Context Protocol (MCP), который транскрибирует видео с 1000+ платформ с помощью whisper.cpp. Написан на Rust для максимальной производительности и эффективности.
📦 Установка
Homebrew (macOS/Linux) — рекомендуемый способ
Самый простой способ установки со всеми зависимостями:
brew install nhatvu148/tap/video-transcriber-mcpЭта команда автоматически устанавливает бинарный файл вместе с необходимыми зависимостями (cmake, yt-dlp, ffmpeg).
Установка через Cargo
Если у вас установлен Rust:
cargo install video-transcriber-mcpПримечание: Зависимости yt-dlp, ffmpeg, cmake нужно установить вручную.
Готовые бинарные файлы
Скачайте из GitHub Releases:
# macOS (Intel)
curl -L https://github.com/nhatvu148/video-transcriber-mcp-rs/releases/latest/download/video-transcriber-mcp-x86_64-apple-darwin.tar.gz | tar xz
sudo mv video-transcriber-mcp /usr/local/bin/
# macOS (Apple Silicon)
curl -L https://github.com/nhatvu148/video-transcriber-mcp-rs/releases/latest/download/video-transcriber-mcp-aarch64-apple-darwin.tar.gz | tar xz
sudo mv video-transcriber-mcp /usr/local/bin/
# Linux (x86_64) — no ARM64 Linux build, see issue #13; use `cargo install`
curl -L https://github.com/nhatvu148/video-transcriber-mcp-rs/releases/latest/download/video-transcriber-mcp-x86_64-unknown-linux-gnu.tar.gz | tar xz
sudo mv video-transcriber-mcp /usr/local/bin/
# Windows: Download .zip from releases pageПримечание: Зависимости yt-dlp, ffmpeg нужно установить вручную.
Плагин для Claude Code
Устанавливает MCP-сервер и навык /transcribe за один шаг:
/plugin marketplace add nhatvu148/video-transcriber-mcp-rs
/plugin install video-transcriber@nhatvu148-toolsПлагин регистрирует MCP-сервер за вас, но не устанавливает бинарный файл — сначала выполните одну из команд установки выше, чтобы video-transcriber-mcp оказался в вашем PATH.
Related MCP server: Video Transcriber MCP Server
🎯 Почему Rust?
Эта версия использует whisper.cpp (реализацию на C++ с привязками для Rust) вместо OpenAI Whisper на Python:
Преимущество | whisper.cpp (Rust) | OpenAI Whisper (Python) |
Производительность | Скорость нативного C++ | Накладные расходы интерпретатора Python |
Память | Меньше потребление памяти | Больше потребление памяти |
Запуск | Мгновенный (<100мс) | Медленный (~2-3с загрузка модели) |
Зависимости | Автономный бинарный файл | Требуется Python + пакеты |
Переносимость | Один бинарный файл | Нужна среда Python |
Реальная производительность зависит от вашего оборудования, длины видео и выбранной модели.
✨ Возможности
🚀 Высокая производительность транскрибации благодаря whisper.cpp (C++ с привязками для Rust)
🎥 Загрузка с 1000+ платформ (YouTube, Vimeo, TikTok, Twitter и др.)
📂 Транскрибация локальных видеофайлов (mp4, avi, mov, mkv и др.)
🎤 100% офлайн-транскрибация (конфиденциальность в приоритете)
🎛️ 5 размеров моделей (tiny, base, small, medium, large)
🌐 Поддержка 90+ языков
📝 Несколько форматов вывода (TXT, JSON, Markdown)
🔌 MCP-интеграция для Claude Code
🌐 Два транспорта — stdio (локально) и Streamable HTTP (удалённо)
⚡ Нативный бинарный файл — Python или Node.js не требуются
💾 Низкое потребление памяти по сравнению с Python-реализациями
⚡ Быстрый старт (через Taskfile)
Самый быстрый способ начать работу:
# 1. Install Task (if not already installed)
brew install go-task/tap/go-task
# 2. Complete setup (build + download model)
task setup
# 3. Run a quick test
task test:quick
# Done! 🎉Доступные команды:
task setup # Complete project setup
task test:quick # Test with short video
task benchmark # Run performance benchmark
task deps:check # Check dependencies
task download:base # Download base model
task help # Show all commandsВсе доступные задачи — в Taskfile.yml.
🌐 Режимы транспорта
Сервер поддерживает два режима транспорта:
Транспорт Stdio (по умолчанию)
Транспорт стандартного ввода-вывода для локального использования в CLI с Claude Code. Это режим по умолчанию.
video-transcriber-mcp
# or explicitly:
video-transcriber-mcp --transport stdioТранспорт Streamable HTTP
HTTP-транспорт для удалённого доступа. Позволяет обращаться к MCP-серверу через сеть.
# Start HTTP server on default port (8080)
video-transcriber-mcp --transport http
# Custom host and port
video-transcriber-mcp --transport http --host 0.0.0.0 --port 3000Настройка удалённого MCP-клиента:
Для HTTP-транспорта укажите в конфигурации MCP-клиента URL:
{
"mcpServers": {
"video-transcriber-mcp": {
"url": "http://localhost:8080/mcp"
}
}
}Преимущества HTTP-транспорта:
Клиентам не требуется локальная установка
Централизованное развёртывание сервера
Автоматические обновления (на стороне сервера)
Лучше подходит для командной работы
Совместим с serverless-платформами
Параметры командной строки
video-transcriber-mcp --help
Options:
-t, --transport <TRANSPORT> Transport mode [default: stdio] [possible values: stdio, http]
--host <HOST> Host address for HTTP transport [default: 127.0.0.1]
-p, --port <PORT> Port for HTTP transport [default: 8080]
-h, --help Print help
-V, --version Print version📦 Ручная сборка из исходников
Предварительные требования
Rust (1.85+ для Rust 2024 edition)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shyt-dlp (для загрузки видео)
# macOS
brew install yt-dlp
# Linux
pip install yt-dlp
# Windows
winget install yt-dlp.yt-dlpFFmpeg (для обработки аудио)
# macOS
brew install ffmpeg
# Linux
sudo apt install ffmpeg # Debian/Ubuntu
sudo dnf install ffmpeg # Fedora
# Windows
choco install ffmpegСборка из исходников
# Clone the repository
git clone https://github.com/nhatvu148/video-transcriber-mcp-rs.git
cd video-transcriber-mcp-rs
# Build the project
cargo build --release
# The binary will be at: target/release/video-transcriber-mcp-rsЗагрузка моделей Whisper
# Download base model (recommended for testing)
bash scripts/download-models.sh base
# Or download all models
bash scripts/download-models.sh allМодели хранятся в ~/.cache/video-transcriber-mcp/models/
🚀 Быстрый старт
MCP-сервер (для Claude Code)
Добавьте в ~/.claude/settings.json:
Вариант 1: если установлено через GitHub Release или cargo install:
{
"mcpServers": {
"video-transcriber-mcp": {
"command": "video-transcriber-mcp",
"args": [],
"env": {
"RUST_LOG": "info"
}
}
}
}Вариант 2: если собрано из исходников:
{
"mcpServers": {
"video-transcriber-mcp": {
"command": "/absolute/path/to/video-transcriber-mcp-rs/target/release/video-transcriber-mcp",
"args": [],
"env": {
"RUST_LOG": "info"
}
}
}
}Затем используйте в Claude Code:
Базовая транскрибация (по умолчанию используется модель base):
Please transcribe this YouTube video: https://www.youtube.com/watch?v=VIDEO_IDТранскрибация с указанной моделью:
Transcribe this video using the large model for best accuracy:
https://www.youtube.com/watch?v=VIDEO_IDТранскрибация локального видеофайла:
Transcribe this local video file: /Users/myname/Videos/meeting.mp4Транскрибация на указанном языке:
Transcribe this Spanish video: https://www.youtube.com/watch?v=VIDEO_ID
(language: es, model: medium)📊 Производительность
Ожидаемые характеристики производительности
На основе сравнительных тестов whisper.cpp и OpenAI Whisper из сообщества:
Скорость транскрибации (приблизительно, зависит от оборудования):
whisper.cpp обычно в 2–6 раз быстрее при транскрибации
Заметно более быстрый запуск (без накладных расходов интерпретатора Python)
Меньшее потребление памяти (без Python-рантайма)
Факторы, влияющие на производительность в реальных условиях:
Процессор: больше ядер — быстрее обработка
Размер модели: tiny — самая быстрая, large — самая медленная, но самая точная
Длина видео: более длинные видео требуют пропорционально больше времени
Сложность аудио: чистая речь транскрибируется быстрее, чем зашумлённое аудио
Хотите помочь?
Мы собираем реальные данные бенчмарков! Если вы запускали обе версии, поделитесь результатами:
Характеристики оборудования (CPU, RAM)
Протестированная длина видео
Использованная модель
Время для каждой версии
Откройте issue с результатами ваших бенчмарков, чтобы помочь улучшить этот раздел!
🎛️ Сравнение моделей
Модель | Скорость | Точность | Память | Применение |
tiny | ⚡⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ~400 MB | Быстрые черновики, тестирование |
base | ⚡⚡⚡⚡ | ⭐⭐⭐ | ~600 MB | Основное использование (по умолчанию) |
small | ⚡⚡⚡ | ⭐⭐⭐⭐ | ~1.2 GB | Лучшая точность |
medium | ⚡⚡ | ⭐⭐⭐⭐⭐ap ⭐ | ~2.5 GB | Высокая точность |
large | ⚡ | ⭐⭐⭐⭐⭐⭐ | ~4.8 GB | Максимальная точность, самая медленная |
🌍 Поддерживаемые платформы
Благодаря yt-dlp этот инструмент поддерживает 1000+ видеоплатформ, включая:
Социальные сети: YouTube, TikTok, Twitter/X, Facebook, Instagram, Reddit
Видеохостинги: Vimeo, Dailymotion, Twitch
Образование: Coursera, Udemy, Khan Academy, edX
Новости: BBC, CNN, NBC, PBS
И ещё 1000+ других платформ!
📝 Формат вывода
Для каждого видео в ~/Downloads/video-transcripts/ создаются папка с файлами:
video-id-title.txt # Plain text transcript
video-id-title.json # JSON with metadata and timestamps
video-id-title.md # Markdown with video infoПример вывода
# How to Build Fast Software
**Video:** https://www.youtube.com/watch?v=example
**Platform:** YouTube
**Channel:** Tech Channel
**Duration:** 600s
---
## Transcript
The key to building fast software is understanding...
---
*Transcribed using whisper.cpp (Rust) - Model: base*🔧 Конфигурация
Переменные окружения
Все переменные окружения необязательны. Транскрайбер работает вообще без них; они добавляют аутентификацию, удалённый инференс, ИИ-саммари и платный HTTP API.
💡 Каталог для транскриптов — это не переменная окружения: передайте
output_dirинструментуtranscribe_video(по умолчанию~/Downloads/video-transcripts). Выходные файлы называются<video_id>-<title>.{txt,json,md}.
Удалённый доступ к MCP (--transport http)
HTTP-транспорт принимает только запросы, у которых заголовок Host входит в разрешённый список. По умолчанию это только loopback (localhost, 127.0.0.1, ::1) как защита от [DNS rebinding][dns-rebinding]. Это означает, что развёрнутый экземпляр возвращает 403 на собственный публичный адрес, пока вы его не добавите в список:
# Comma-separated. Added on top of the loopback defaults, so local
# development and health checks keep working.
export MCP_ALLOWED_HOSTS=mcp.example.com,mcp.example.com:8080
# On Fly:
fly secrets set MCP_ALLOWED_HOSTS=your-app.fly.devДля локального использования оставьте значение пустым — сервер при запуске логирует, какие хосты он принимает, поэтому 403 удалённого клиента легко диагностировать.
⚠️ Это контролирует доступность, но не авторизацию. Любой, кому доступен URL, может вызывать инструменты, включая
transcribe_video, которые тратят реальные деньги при настройке удалённого Whisper. Публичное размещение сервера обязательно защищайте прокси-сервером с аутентификацией.
Загрузчик (куки yt-dlp)
Нужны только для видео с ограничением по возрасту / для участников или при запросе YouTube "Sign in to confirm you're not a bot".
# Option 1 (preferred on headless / Linux): a Netscape-format cookies file.
# Export it however you like — e.g. a QR-login flow — then point at it.
export YT_DLP_COOKIES=/path/to/cookies.txt
# Option 2: read cookies straight from a logged-in local browser.
# One of: chrome, brave, edge, firefox, safari, chromium, opera, vivaldi.
# Ignored when YT_DLP_COOKIES is set.
export YT_DLP_COOKIES_FROM_BROWSER=chromeПринтер
GXP
Удалённый Whisper (выгрузка сервера) () =>
# POST audio to a remote HTTP worker (e.g. a serverless GPU) instead of
# running whisper-rs locally. Endpoint must accept multipart {audio, model,
# language} and return JSON {transcript, segments[], language, duration_s}.
export REMOTE_WHISPER_URL=https://your-worker.example.com/transcribe🧪 Разработка
Сборка
# Debug build
cargo build
# Release build (optimized)
cargo build --release
# Run tests
cargo test
# Run with logging
RUST_LOG=debug cargo run -- --url "https://youtube.com/watch?v=example"Структура проекта
src/
├── main.rs # CLI + transport selection (stdio / streamable HTTP)
├── lib.rs # public API for embedders
├── mcp/ # MCP server: tool definitions and handlers
├── transcriber/ # the pipeline: yt-dlp → ffmpeg → whisper.cpp
├── embeddings.rs # passage embeddings, used by `search_transcripts`
└── utils/ # pathsЭтот crate — только конвейер транскрибации и его надстройка MCP. Продукт, построенный поверх него — REST API, аккаунты, кредиты, платежи, ИИ-сводки и диаграммы — живёт в отдельном приватном crate. Этот crate используется им как библиотека, поэтому cargo install video-transcriber-mcp даёт вам транскрибационный сервер, а не чей-то SaaS-бэкенд.
🤝 Вклад в разработку
Вклад приветствуется! Пожалуйста:
Сделайте форк репозитория
Создайте ветку для фичи
Внесите свои изменения
Добавте тесты, если применимо
Отправьте pull request
📄 Лицензия
Лицензия MIT — подробнее в LICENSE.
🙏 Благодарности
whisper.cpp — Быстрая реализация Whisper на C ++ * whisper-rs — Rust-привязки для whisper.cpp
yt-dlp — загрузчик видео с 1000+ платформ
OpenAI Whisper — оригинальная модель распознавания речи
Model Context Protocol SDK — Rust SDK для MCP
🆚 Сравнение с версией на TypeScript
Оригинальный video-transcriber-mcp я написал на TypeScript. Вот почему я переписал его на Rust:
Характеристика | TypeScript-версия | Rust-версия |
Скорость транскрибации | 5 мин за видео 10 мин | 50с (в 6 раз быстрее) |
Потребление памяти | ~2 ГБ | ~800 MB (в 2.5 раза меньше) |
Время запуска | ~2с | <100ms (в 20 раз быстрее) |
Размер бинарного файла | N/A (среда Node.js) | ~8 MB standalone |
Зависимости | Node.js, Python, whisper | Только yt-dlp, ffmpeg |
Загрузка CPU | Высокая (накладки Python) | Ниже (нативный код) |
Версия на Rust готова к продакшену и значительно эффективнее!
🔗 Ссылки
Лицензия
Распространяется на условиях:
лицензия MIT (LICENSE-MIT)
Apache License, Version 2.0 (LICENSE-APACHE)
на выбор.
Contribution
Если явно не указано иное, любой ваш вклад, целенаправленно направленный на включение в работу, как определено в лицензии Apache-2.0, лицензируется на условиях double-license, указанной выше, без дополнительных условий.
Сделано с ❤️ на Rust для максимальной производительности
Токен владельца реестра MCP — crates.io удаляет HTML-комменты, и поэтому эта строки должна оставаться видимой:
mcp-name: io.github.nhatvu148/video-transcriber-mcp
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables high-performance audio transcription using Faster Whisper with CUDA acceleration, supporting single and batch audio file processing with multiple output formats (VTT, SRT, JSON).
- AlicenseAqualityAmaintenanceTranscribes videos from 1000+ platforms (YouTube, TikTok, Vimeo, etc.) and local video files using OpenAI's Whisper model, with support for 90+ languages and multiple output formats.8574MIT
- AlicenseBqualityDmaintenanceEnables downloading videos from platforms like YouTube and converting them to text using OpenAI Whisper and ffmpeg. It supports multiple output formats including TXT, JSON, SRT, and VTT for transcriptions.213ISC
- FlicenseAqualityDmaintenanceEnables high-quality transcription and subtitle generation from local media files or URLs using Faster Whisper on local hardware. It supports automatic language detection and integration with MCP clients for seamless speech-to-text workflows.3
Related MCP Connectors
Fetch transcripts, subtitles, chapters, metadata and frames from YouTube and 10+ video platforms
Transform video, audio and images, and generate media from prompts. FFmpeg, captions, models.
💯 The fastest YouTube transcript + YouTube search MCP for AI agents. Try for free.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/nhatvu148/video-transcriber-mcp-rs'
If you have feedback or need assistance with the MCP directory API, please join our Discord server