video-transcriber-mcp
Video Transcriber MCP 🚀
Servidor MCP de transcripción de vídeo de alto rendimiento que utiliza whisper.cpp (Rust)
Un servidor del Model Context Protocol (MCP) que transcribe vídeos de más de 1000 plataformas utilizando whisper.cpp. Construido con Rust para un rendimiento y una eficiencia máximos.
📦 Instalación
Homebrew (macOS/Linux): recomendado
La forma más sencilla de instalar con todas las dependencias:
brew install nhatvu148/tap/video-transcriber-mcpEsto instala automáticamente el binario junto con las dependencias necesarias (cmake, yt-dlp, ffmpeg).
Instalación con Cargo
Si tienes Rust instalado:
cargo install video-transcriber-mcpNota: Deberás instalar manualmente las dependencias: yt-dlp, ffmpeg, cmake.
Binarios precompilados
Descarga desde 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 pageNota: Deberás instalar manualmente las dependencias: yt-dlp, ffmpeg.
Plugin de Claude Code
Instala el servidor MCP y una habilidad /transcribe en un solo paso:
/plugin marketplace add nhatvu148/video-transcriber-mcp-rs
/plugin install video-transcriber@nhatvu148-toolsEl plugin registra el servidor MCP por ti, pero no instala el binario: ejecuta primero uno de los comandos de instalación anteriores para que video-transcriber-mcp esté en tu PATH.
Related MCP server: Video Transcriber MCP Server
🎯 ¿Por qué Rust?
Esta versión utiliza whisper.cpp (implementación en C++ con enlaces de Rust) en lugar de OpenAI Whisper de Python:
Ventaja | whisper.cpp (Rust) | OpenAI Whisper (Python) |
Rendimiento | Velocidad nativa en C++ | Sobrecarga del intérprete de Python |
Memoria | Menor huella | Mayor uso de memoria |
Inicio | Instantáneo (<100 ms) | Lento (~2-3 s de carga del modelo) |
Dependencias | Binario autónomo | Requiere Python y paquetes |
Portabilidad | Binario único | Entorno de Python necesario |
El rendimiento en el mundo real depende de tu hardware, la duración del vídeo y el modelo elegido.
✨ Características
🚀 Transcripción de alto rendimiento mediante whisper.cpp (C++ con enlaces de Rust)
🎥 Descarga desde más de 1000 plataformas (YouTube, Vimeo, TikTok, Twitter, etc.)
📂 Transcripción de archivos de vídeo locales (mp4, avi, mov, mkv, etc.)
🎤 Transcripción 100% sin conexión (la privacidad es lo primero)
🎛️ 5 tamaños de modelo (tiny, base, small, medium, large)
🌐 Más de 90 idiomas compatibles
📝 Múltiples formatos de salida (TXT, JSON, Markdown)
🔌 Integración MCP para Claude Code
🌐 Transporte dual - stdio (local) y Streamable HTTP (remoto)
⚡ Binario nativo - no requiere Python ni Node.js
💾 Baja huella de memoria en comparación con las implementaciones en Python
⚡ Inicio rápido (usando Taskfile)
La forma más rápida de empezar:
# 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! 🎉Comandos disponibles:
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 commandsConsulta Taskfile.yml para ver todas las tareas disponibles.
🌐 Modos de transporte
El servidor admite dos modos de transporte:
Transporte stdio (predeterminado)
Transporte de entrada/salida estándar para el uso local desde la línea de comandos con Claude Code. Este es el modo predeterminado.
video-transcriber-mcp
# or explicitly:
video-transcriber-mcp --transport stdioTransporte Streamable HTTP
Transporte HTTP para acceso remoto. Permite acceder al servidor MCP a través de la red.
# 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 3000Configuración del cliente MCP remoto:
Para el transporte HTTP, configura tu cliente MCP con la URL:
{
"mcpServers": {
"video-transcriber-mcp": {
"url": "http://localhost:8080/mcp"
}
}
}Ventajas del transporte HTTP:
No requiere instalación local para los clientes
Despliegue centralizado del servidor
Actualizaciones automáticas (en el lado del servidor)
Mejor para entornos de equipo
Compatible con plataformas serverless
Opciones de CLI
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📦 Compilación manual desde el código fuente
Prerrequisitos
Rust (1.85+ para la edición Rust 2024)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shyt-dlp (para descargar vídeos)
# macOS
brew install yt-dlp
# Linux
pip install yt-dlp
# Windows
winget install yt-dlp.yt-dlpFFmpeg (para el procesamiento de audio)
# macOS
brew install ffmpeg
# Linux
sudo apt install ffmpeg # Debian/Ubuntu
sudo dnf install ffmpeg # Fedora
# Windows
choco install ffmpegCompilar desde el código fuente
# 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-rsDescargar modelos de Whisper
# Download base model (recommended for testing)
bash scripts/download-models.sh base
# Or download all models
bash scripts/download-models.sh allLos modelos se almacenan en ~/.cache/video-transcriber-mcp/models/.
🚀 Inicio rápido
Servidor MCP (para Claude Code)
Añádelo a ~/.claude/settings.json:
Opción 1: Si se ha instalado mediante GitHub Release o cargo install:
{
"mcpServers": {
"video-transcriber-mcp": {
"command": "video-transcriber-mcp",
"args": [],
"env": {
"RUST_LOG": "info"
}
}
}
}Opción 2: Si se ha compilado desde el código fuente:
{
"mcpServers": {
"video-transcriber-mcp": {
"command": "/absolute/path/to/video-transcriber-mcp-rs/target/release/video-transcriber-mcp",
"args": [],
"env": {
"RUST_LOG": "info"
}
}
}
}Después, úsalo en Claude Code:
Transcripción básica (usa el modelo base por defecto):
Please transcribe this YouTube video: https://www.youtube.com/watch?v=VIDEO_IDTranscribe con un modelo específico:
Transcribe this video using the large model for best accuracy:
https://www.youtube.com/watch?v=VIDEO_IDTranscribe un archivo de vídeo local:
Transcribe this local video file: /Users/myname/Videos/meeting.mp4Transcribe en un idioma específico:
Transcribe this Spanish video: https://www.youtube.com/watch?v=VIDEO_ID
(language: es, model: medium)📊 Rendimiento
Características de rendimiento esperadas
Según las comparativas de whisper.cpp frente a OpenAI Whisper de la comunidad:
Velocidad de transcripción (aproximada, varía según el hardware):
whisper.cpp suele ser entre 2 y 6 veces más rápido que Whisper de Python
Menor tiempo de inicio (sin sobrecarga del intérprete de Python)
Menor uso de memoria (sin el entorno de ejecución de Python)
Factores del mundo real que afectan al rendimiento:
CPU: más núcleos = procesamiento más rápido
Tamaño del modelo: tiny es el más rápido y large es el más lento pero el más preciso
Duración del vídeo: los vídeos más largos requieren proporcionalmente más tiempo
Complejidad del audio: el habla clara se transcribe más rápido que el audio con ruido
¿Quieres ayudar?
¡Estamos recopilando datos de rendimiento reales! Si ejecutas ambas versiones, comparte tus resultados:
Especificaciones del hardware (CPU, RAM)
Duración del vídeo probado
Modelo utilizado
Tiempo para cada versión
Abre una incidencia con los resultados para ayudar a mejorar esta sección.
🎛️ Comparación de modelos
Modelo | Velocidad | Precisión | Memoria | Caso de uso |
tiny | ⚡⚡⚡⚡⚡ | ⭐⭐ | ~400 MB | Borradores rápidos, pruebas |
base | ⚡⚡⚡⚡ | ⭐⭐⭐ | ~600 MB | Uso general (predeterminado) |
small | ⚡⚡⚡ | ⭐⭐⭐⭐ | ~1.2 GB | Mejor precisión |
medium | ⚡⚡ | ⭐⭐⭐⭐⭐ | ~2.5 GB | Precisión alta |
large | ⚡ | ⭐⭐⭐⭐⭐⭐ | ~4.8 GB | Mejor precisión, más lento |
🌍 Plataformas compatibles
Gracias a yt-dlp, esta herramienta admite más de 1000 plataformas de vídeo, por ejemplo:
Redes sociales: YouTube, TikTok, Twitter/X, Facebook, Instagram, Reddit
Alojamiento de vídeos: Vimeo, Dailymotion, Twitch
Educación: Coursera, Udemy, Khan Academy, edX
Noticias: BBC, CNN, NBC, PBS
¡Y más de 1000 más!
📝 Formato de salida
Para cada vídeo se generan tres archivos en ~/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 infoEjemplo de salida
# 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*🔧 Configuración
Variables de entorno
Todas las variables de entorno son opcionales. El transcriptor funciona sin que haya ninguna configurada; estas desbloquean la autenticación, la inferencia remota, los resúmenes con IA y la API HTTP de pago.
💡 El directorio de salida no es una variable de entorno: pasa
output_dira la herramientatranscribe_video(por defecto,~/Downloads/video-transcripts). Los archivos de salida se nombran<video_id>-<title>.{txt,json,md}.
Acceso remoto a MCP (--transport http)
El transporte HTTP solo responde a solicitudes cuyo encabezado Host esté en una lista de permitidos. Por defecto, usa un bucle de bucle local (localhost, 127.0.0.1, ::1) como protección contra [DNS rebinding][dns-rebinding], lo que significa que una instancia desplegada rechaza su propio nombre de host público con un 403 hasta que lo especifiques:
# 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.devDéjalo sin configurar para uso local: el servidor registra qué hosts acepta al iniciar, por lo que un 403 de un cliente remoto es fácil de diagnosticar.
⚠️ Esto controla la accesibilidad, no la autorización. Quien alcanzar la URL puede llamar a las herramientas, incluyendo
transcribe_video, que gasta dinero real cuando infraestructura remota de Whisper / OpenRouter esté configurada. Pon un proxy de autenticación frente a un despliegue público.
Descarga (cookies de yt-dlp)
Solo se necesan para vídeos con restricción de edad / exclusivos para miembros o la confirmación de YouTube de "Inicia sesión para confirmar que no eres un 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=chromeWhisper remoto (transcripción delegada)
# 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🧪 Desarrollo
Compilar
# 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"Estructura del proyecto
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/ # pathsEste crate es solo el pipeline de transcripción y su superficie MCP. El resto del producto construido sobre él —API REST, cuentas, créditos, pagos, resúmenes y diagramas con IA— vive en un crate privado separado que depende de este como biblioteca, por lo que cargo install video-transcriber-mcp te sirve un servidor de transcripción, no un backend de SaaS de otra persona.
🤝 Contribuciones
Las contribuciones son bienvenidas. Haz lo siguiente:
Haz un fork del repositorio
Crea una rama de funcionalidad
Realiza tus cambios
Añade pruebas si corresponde
Envía una pull request
📄 Licencia
Licencia MIT: consulta el archivo LICENSE para obtener detalles.
🙏 Reconocimientos
whisper.cpp - Implementación rápida de Whisper en C++
whisper-rs - Enlaces de Rust para whisper.cpp
yt-dlp - Descargador de vídeos para más de 1000 plataformas
OpenAI Whisper - Modelo original de reconocimiento de voz
Model Context Protocol SDK - SDK de Rust para MCP
🆚 Comparación con la versión de TypeScript
Creé el video-transcriber-mcp original en TypeScript. Esta es la razón por la que lo reescribí en Rust:
Aspecto | Versión de TypeScript | Versión de Rust |
Velocidad de transcripción | 5 min para vídeo de 10 min | 50 s (6x más rápido) |
Uso de memoria | ~2 GB | ~ 800 MB (2,5 veces menos) |
Tiempo de inicio | ~2 s | Menos de 100 ms (20x rápido) |
Tamaño del binario | N/A (entorno Node.js) | ~8 MB autónomo |
Dependencias | Node.js, Python, whisper | Solo yt-dlp, ffmpeg |
Uso de CPU | Alto (sobrecarga de Python) | menor (código nativo) |
¡La versión de Rust está lista para producción y es significativamente más eficiente!
🔗 Enlaces
Licencia
Licenciado bajo cualquiera de las siguientes opciones:
Licencia MIT (LICENSE-MIT)
Apache License, Versión 2.0 (LICENSE-APACHE)
a su elección.
Contribución
Salvo que se indique explícitamente lo contrario, cualquier contribución que se envíe intencionadamente para su inclusión en la obra, según se define en la licencia Apache-2.0, se licenciará de forma dual como se indica anteriormente, sin términos ni condiciones adicionales.
Construido con ❤️ en Rust para un máximo rendimiento
Token de propiedad del registro MCP: crates.io elimina los comentarios en HTML, por lo que esta línea debe seguir siendo visible:
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