Skip to main content
Glama
nhatvu148

video-transcriber-mcp

by nhatvu148

Video Transcriber MCP 🚀

Высокопроизводительный MCP-сервер для транскрибации видео на базе whisper.cpp (Rust)

License: MIT OR Apache-2.0 Rust crates.io

Сервер 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

📦 Ручная сборка из исходников

Предварительные требования

  1. Rust (1.85+ для Rust 2024 edition)

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  1. yt-dlp (для загрузки видео)

# macOS
brew install yt-dlp

# Linux
pip install yt-dlp

# Windows
winget install yt-dlp.yt-dlp
  1. FFmpeg (для обработки аудио)

# 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-бэкенд.

🤝 Вклад в разработку

Вклад приветствуется! Пожалуйста:

  1. Сделайте форк репозитория

  2. Создайте ветку для фичи

  3. Внесите свои изменения

  4. Добавте тесты, если применимо

  5. Отправьте 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 раза меньше)

Время запуска

~

<100ms (в 20 раз быстрее)

Размер бинарного файла

N/A (среда Node.js)

~8 MB standalone

Зависимости

Node.js, Python, whisper

Только yt-dlp, ffmpeg

Загрузка CPU

Высокая (накладки Python)

Ниже (нативный код)

Версия на Rust готова к продакшену и значительно эффективнее!

🔗 Ссылки

Лицензия

Распространяется на условиях:

на выбор.

Contribution

Если явно не указано иное, любой ваш вклад, целенаправленно направленный на включение в работу, как определено в лицензии Apache-2.0, лицензируется на условиях double-license, указанной выше, без дополнительных условий.


Сделано с ❤️ на Rust для максимальной производительности

Токен владельца реестра MCP — crates.io удаляет HTML-комменты, и поэтому эта строки должна оставаться видимой:

mcp-name: io.github.nhatvu148/video-transcriber-mcp

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
8hResponse time
2wRelease cycle
18Releases (12mo)
Commit activity
Issues opened vs closed

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

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

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