yt-dlp

Descarga contenido de video y audio de varios sitios web como YouTube, Facebook y TikTok usando yt-dlp.

Documentación

🎬 yt-dlp-mcp

Un potente servidor MCP que lleva las capacidades de plataformas de video a tus agentes de IA

npm version License: MIT Node.js Version TypeScript

Integra yt-dlp con Claude, Dive y otros sistemas de IA compatibles con MCP. Descarga videos, extrae metadatos, obtén transcripciones y más, todo mediante lenguaje natural.

Características • Instalación • Herramientas • Uso • Documentación


✨ Características

🔍 Búsqueda y Descubrimiento

  • Busca en YouTube con paginación
  • Formatos de salida JSON o Markdown
  • Filtra por relevancia y calidad

📊 Extracción de Metadatos

  • Información completa del video
  • Detalles del canal y estadísticas
  • Fechas de publicación, etiquetas, categorías
  • No requiere descargar contenido

📝 Transcripciones y Subtítulos

  • Descarga subtítulos en formato VTT
  • Genera transcripciones de texto limpio
  • Soporte multilingüe
  • Subtítulos generados automáticamente

🎥 Descargas de Video

  • Control de resolución (480p-1080p)
  • Soporte para recorte de video
  • Independiente de la plataforma (YouTube, Facebook, etc.)
  • Se guarda en la carpeta de Descargas

🎵 Extracción de Audio

  • Audio de mejor calidad (M4A/MP3)
  • Descargas directas solo de audio
  • Perfecto para podcasts y música

🛡️ Privacidad y Seguridad

  • Sin seguimiento ni análisis
  • Descargas directas mediante yt-dlp
  • Validación de esquema Zod
  • Límites de caracteres para seguridad del LLM

🚀 Instalación

Requisitos previos

Instala yt-dlp en tu sistema:

PlataformaComando
🪟 Windowswinget install yt-dlp
🍎 macOSbrew install yt-dlp
🐧 Linuxpip install yt-dlp

Primeros pasos

Añade la siguiente configuración a tu cliente MCP:

{
  "mcpServers": {
    "yt-dlp": {
      "command": "npx",
      "args": ["-y", "@kevinwatt/yt-dlp-mcp@latest"]
    }
  }
}

Configuración del Cliente MCP

Dive
  1. Abre Dive Desktop
  2. Haz clic en "+ Add MCP Server"
  3. Pega la configuración proporcionada arriba
  4. Haz clic en "Save" y ¡listo!
Claude Code

Usa la CLI de Claude Code para añadir el servidor MCP de yt-dlp (guía):

claude mcp add yt-dlp npx @kevinwatt/yt-dlp-mcp@latest
Claude Desktop

Añade a tu claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "yt-dlp": {
      "command": "npx",
      "args": ["-y", "@kevinwatt/yt-dlp-mcp@latest"]
    }
  }
}
Cursor

Ve a Cursor Settings -> MCP -> New MCP Server. Usa la configuración proporcionada arriba.

VS Code / Copilot

Instala mediante la CLI de VS Code:

code --add-mcp '{"name":"yt-dlp","command":"npx","args":["-y","@kevinwatt/yt-dlp-mcp@latest"]}'

O sigue la guía de instalación de MCP con la configuración estándar de arriba.

Windsurf

Sigue la guía de configuración de MCP usando la configuración estándar de arriba.

Cline

Sigue la guía de configuración de MCP de Cline y usa la configuración proporcionada arriba.

Warp

Ve a Settings | AI | Manage MCP Servers -> + Add para añadir un servidor MCP. Usa la configuración proporcionada arriba.

JetBrains AI Assistant

Ve a Settings | Tools | AI Assistant | Model Context Protocol (MCP) -> Add. Usa la configuración proporcionada arriba.

Instalación manual

npm install -g @kevinwatt/yt-dlp-mcp

🛠️ Herramientas disponibles

Todas las herramientas tienen el prefijo ytdlp_ para evitar conflictos de nombres con otros servidores MCP.

🔍 Búsqueda y Descubrimiento

HerramientaDescripción
ytdlp_search_videos

Busca en YouTube con soporte de paginación y filtrado por fecha

  • Parámetros: query, maxResults, offset, response_format, uploadDateFilter
  • Filtro de fecha: hour, today, week, month, year (opcional)
  • Devuelve: Lista de videos con títulos, canales, duraciones, URLs
  • Soporta: Formatos JSON y Markdown

📝 Subtítulos y Transcripciones

HerramientaDescripción
ytdlp_list_subtitle_languages

Lista todos los idiomas de subtítulos disponibles para un video

  • Parámetros: url
  • Devuelve: Idiomas disponibles, formatos, estado de generación automática
ytdlp_download_video_subtitles

Descarga subtítulos en formato VTT con marcas de tiempo

  • Parámetros: url, language (opcional)
  • Devuelve: Contenido de subtítulos VTT sin procesar
ytdlp_download_transcript

Genera una transcripción de texto plano limpia

  • Parámetros: url, language (opcional)
  • Devuelve: Texto limpio sin marcas de tiempo ni formato

🎥 Descargas de Video y Audio

HerramientaDescripción
ytdlp_download_video

Descarga video a la carpeta de Descargas

  • Parámetros: url, resolution, startTime, endTime
  • Resoluciones: 480p, 720p, 1080p, mejor
  • Soporta: Recorte de video
ytdlp_download_audio

Extrae y descarga solo audio

  • Parámetros: url
  • Formato: Mejor calidad M4A/MP3

📊 Metadatos

HerramientaDescripción
ytdlp_get_video_metadata

Extrae metadatos completos del video en JSON

  • Parámetros: url, fields (matriz opcional)
  • Devuelve: Metadatos completos o campos filtrados
  • Incluye: Vistas, me gusta, fecha de publicación, etiquetas, formatos, etc.
ytdlp_get_video_metadata_summary

Obtén un resumen de metadatos legible para humanos

  • Parámetros: url
  • Devuelve: Texto formateado con información clave

💬 Comentarios

HerramientaDescripción
ytdlp_get_video_comments

Extrae comentarios en JSON plano, JSON en hilo o Markdown apto para IA

  • Parámetros: url, maxComments, sortOrder, view, responseFormat, maxParents, maxReplies, maxRepliesPerThread, maxDepth
  • Vistas: flat (predeterminada) o threaded
  • Formatos: json (predeterminado) o markdown_tree (markdown_tree requiere vista en hilo)
  • Devuelve: Objetos de comentario con depth, reply_count, root_threads, reply_comments, orphan_comments
  • Degradación elegante: En plataformas sin metadatos de comentario principal, el modo en hilo vuelve a comentarios solo de raíz
ytdlp_get_video_comments_summary

Obtén un resumen legible de los comentarios

  • Parámetros: url, maxComments, view
  • Vistas: flat (resumen lineal) o threaded (árboles de respuestas agrupados)
  • Devuelve: Resumen de comentarios legible con insignias de autor, hora, me gusta y respuestas agrupadas

💡 Ejemplos de uso

Buscar videos

"Search for Python programming tutorials"
"Find the top 20 machine learning videos"
"Search for 'react hooks tutorial' and show results 10-20"
"Search for JavaScript courses in JSON format"

Obtener metadatos

"Get metadata for https://youtube.com/watch?v=..."
"Show me the title, channel, and view count for this video"
"Extract just the duration and upload date"
"Give me a quick summary of this video's info"

Obtener comentarios

"Get the top 20 comments for https://youtube.com/watch?v=..."
"Get comments as threaded JSON for this video"
"Extract comments as markdown_tree so the reply branches stay intact"
"Get newest comments with maxDepth 1 and maxRepliesPerThread 0"
"Summarize comments in threaded view"

Descargar subtítulos y transcripciones

"List available subtitles for https://youtube.com/watch?v=..."
"Download English subtitles from this video"
"Get a clean transcript of this video in Spanish"
"Download Chinese (zh-Hant) transcript"

Descargar contenido

"Download this video in 1080p: https://youtube.com/watch?v=..."
"Download audio from this YouTube video"
"Download this video from 1:30 to 2:45"
"Save this Facebook video to my Downloads"

📖 Documentación


🔧 Configuración

Variables de entorno

# Downloads directory (default: ~/Downloads)
YTDLP_DOWNLOADS_DIR=/path/to/downloads

# Default resolution (default: 720p)
YTDLP_DEFAULT_RESOLUTION=1080p

# Default subtitle language (default: en)
YTDLP_DEFAULT_SUBTITLE_LANG=en

Consulta la Guía de configuración para ver la lista completa.

Proxy y archivo de configuración de yt-dlp

Todas las herramientas leen tu archivo de configuración de yt-dlp (~/.config/yt-dlp/config), por lo que cualquier opción de --proxy, --cookies u otras configuradas allí se aplican automáticamente. Este es el único canal disponible para clientes MCP que no pueden pasar variables de entorno al proceso del servidor.

Estas son alternativas: configura solo la que necesites:

AjusteEfecto
YTDLP_PROXY=socks5://127.0.0.1:1080Enruta todas las solicitudes a través de este proxy
YTDLP_PROXY= (vacío)Fuerza una conexión directa, anulando un proxy en el archivo de configuración de yt-dlp
YTDLP_IGNORE_CONFIG=1Omite todos los archivos de configuración de yt-dlp

Esquemas de proxy compatibles: http, https, socks4, socks5, socks5h.

YTDLP_IGNORE_CONFIG=1 no es una reversión directa a 0.9.x. Las herramientas de búsqueda, metadatos y comentarios siempre leen el archivo de configuración, por lo que este ajuste evita que también lo hagan.

Configuración de MCP con un proxy:

{
  "mcpServers": {
    "yt-dlp": {
      "command": "npx",
      "args": ["-y", "@kevinwatt/yt-dlp-mcp@latest"],
      "env": {
        "YTDLP_PROXY": "socks5://127.0.0.1:1080"
      }
    }
  }
}

Si tu cliente MCP no puede pasar variables de entorno al servidor, coloca las opciones en ~/.config/yt-dlp/config en su lugar: cada herramienta lee ese archivo:

--proxy socks5://127.0.0.1:1080
--cookies /path/to/cookies.txt

Nota: Tu archivo de configuración también se aplica a las descargas. Las opciones que cambian el formato de salida (-x, --remux-video, --recode-video) cambian lo que producen las herramientas de descarga; las herramientas informan el archivo que yt-dlp realmente escribió, por lo que el nombre informado sigue siendo correcto. Las opciones de ubicación de salida (-o, -P) no tienen efecto, porque las herramientas siempre pasan un --output absoluto en la línea de comandos, lo cual tiene prioridad.

Nota: Los archivos de configuración de yt-dlp pueden contener opciones que ejecutan comandos (--exec, --postprocessor-args, --ffmpeg-location). Estas ahora también se ejecutan en invocaciones de herramientas, incluidas las activadas por un asistente de IA. Establece YTDLP_IGNORE_CONFIG=1 si prefieres que el servidor ignore tu archivo de configuración por completo.

Configuración de Cookies

Para acceder a videos privados, contenido restringido por edad o evitar límites de velocidad, configura cookies:

⚠️ Importante: La autenticación con cookies requiere un entorno de ejecución de JavaScript (deno) instalado. Al usar cookies, YouTube utiliza endpoints de API autenticados que requieren resolver desafíos de JavaScript. Sin deno, las descargas fallarán con el error "n challenge solving failed".

Instala deno: https://docs.deno.com/runtime/getting_started/installation/

# Extract cookies from browser (recommended)
YTDLP_COOKIES_FROM_BROWSER=chrome

# Or use a cookie file
YTDLP_COOKIES_FILE=/path/to/cookies.txt

Configuración de MCP con cookies:

{
  "mcpServers": {
    "yt-dlp": {
      "command": "npx",
      "args": ["-y", "@kevinwatt/yt-dlp-mcp@latest"],
      "env": {
        "YTDLP_COOKIES_FROM_BROWSER": "chrome"
      }
    }
  }
}

Navegadores compatibles: brave, chrome, chromium, edge, firefox, opera, safari, vivaldi, whale

Consulta la Guía de configuración de cookies para obtener instrucciones detalladas.


🏗️ Arquitectura

Construido con

  • yt-dlp - Motor de extracción de videos
  • MCP SDK - Protocolo de Contexto de Modelo
  • Zod - Validación de esquemas centrada en TypeScript
  • TypeScript - Seguridad de tipos y experiencia de desarrollo

Características clave

  • ✅ Seguridad de tipos: TypeScript completo con modo estricto
  • ✅ Entradas validadas: Esquemas Zod para validación en tiempo de ejecución
  • ✅ Límites de caracteres: Truncamiento automático para evitar desbordamiento de contexto
  • ✅ Anotaciones de herramientas: Sugerencias de solo lectura, destructivas e idempotentes
  • ✅ Orientación de errores: Mensajes de error accionables para LLMs
  • ✅ Diseño modular: Separación clara de responsabilidades

📊 Formatos de respuesta

Formato JSON

Perfecto para procesamiento programático:

{
  "total": 50,
  "count": 10,
  "offset": 0,
  "videos": [...],
  "has_more": true,
  "next_offset": 10
}

Formato Markdown

Visualización legible para humanos:

Found 50 videos (showing 10):

1. **Video Title**
   📺 Channel: Creator Name
   ⏱️  Duration: 10:30
   🔗 URL: https://...

Árbol de comentarios en Markdown

Útil para análisis de LLM cuando el contexto de respuesta importa:

# AI-Ready Comment Threads

source_title: "Sample Video"
comments_detected: 20
root_threads: 6
reply_comments: 14

## Threads

### Thread 1

- comment_id: "abc123"
  parent_id: "root"
  depth: 0
  reply_count: 2
  text:
    | Root comment text
  - comment_id: "reply456"
    parent_id: "abc123"
    depth: 1
    reply_count: 0
    text:
      | Reply text

Límites de comentarios

La extracción de comentarios de YouTube admite la tupla completa del extractor:

youtube:comment_sort=<sort>;max_comments=<total>,<parents>,<replies>,<repliesPerThread>,<depth>

Ejemplos:

  • Comportamiento predeterminado: maxComments=20 produce max_comments=20,20,20,20,2
  • Solo comentarios raíz: maxDepth=1, maxRepliesPerThread=0
  • Ramificación limitada: maxReplies=40, maxRepliesPerThread=5, maxDepth=2

🔒 Privacidad y seguridad

  • Sin seguimiento: Descargas directas, sin análisis
  • Validación de entradas: Los esquemas Zod previenen inyecciones
  • Validación de URL: Verificación estricta del formato de URL
  • Límites de caracteres: Previene ataques de desbordamiento de contexto
  • Solo lectura por defecto: La mayoría de las herramientas no modifican el estado del sistema

🤝 Contribuciones

¡Las contribuciones son bienvenidas! Consulta nuestra Guía de contribuciones.

  1. Haz un fork del repositorio
  2. Crea una rama de características (git checkout -b feature/amazing-feature)
  3. Realiza tus cambios (git commit -m 'Add amazing feature')
  4. Haz push a la rama (git push origin feature/amazing-feature)
  5. Abre una Solicitud de Extracción

📝 Licencia

Este proyecto está licenciado bajo la Licencia MIT: consulta el archivo LICENCIA para más detalles.


🙏 Agradecimientos

  • yt-dlp - La increíble herramienta de extracción de videos
  • Anthropic - Por el Protocolo de Contexto de Modelo
  • Dive - Plataforma de IA compatible con MCP

📚 Proyectos relacionados

  • Servidores MCP - Implementaciones oficiales de servidores MCP
  • yt-dlp - Descargador de videos por línea de comandos
  • Dive Desktop - Plataforma de agentes de IA