← Integraciones de IA
02 · MCP EXTENDIDO · UPSTREAM MIT

YouTube Tools

Extensión de yt-dlp-mcp con dos capacidades que ideé: miniaturas que ChatGPT recibe como imágenes y transcripción local con Whisper large-v3. La uso para investigar la competencia de mi canal, Drayten.

ROL
Ideas y decisiones de las funciones nuevas. Código con IA, revisado por mí.
BASE
yt-dlp-mcp · MIT
ESTADO
En uso · self-hosted
TOOLS
12
Node 22TypeScriptMCP SDKZodyt-dlpFFmpegmlx-whisperDocker
Demo · YouTube Tools
01 · CONTEXTO

Antes

Para decidir temas y miniaturas de Drayten necesitaba revisar qué publica la competencia: títulos, miniaturas y contenido de los videos.

02 · PROBLEMA

Qué había que resolver

yt-dlp-mcp ya resolvía metadatos y subtítulos, pero el modelo no podía ver las miniaturas y los videos sin subtítulos quedaban afuera.

Qué hace.
Las capacidades principales del sistema.

Herramientas.
12 herramientas. Las dos marcadas en rojo son las que agregué yo; el resto viene del proyecto original.

FIG_01 · ARQUITECTURA SIMPLIFICADAYouTube Tools

Cómo está armado

  1. 01CHATGPTcliente multimodal
  2. 02SERVIDOR MCPTypeScript · Docker · STDIO
  3. 03YT-DLP + FFMPEGmetadatos · audio · miniaturas
  4. 04WORKER WHISPERHTTP local autenticado
  5. 05MLXlarge-v3 · GPU Apple

Decisiones técnicas.
Qué se eligió y qué implica.

  1. 01

    Enviar la imagen, no la URL

    Las miniaturas viajan como bytes en bloques image, con su tipo MIME.

    → El modelo las ve sin abrir enlaces. El payload es más pesado.

  2. 02

    Docker para el MCP, nativo para la inferencia

    El servidor corre en Docker y habla por HTTP local autenticado con un worker de macOS que usa MLX.

    → Se aprovecha la GPU de Apple, con dos entornos que mantener.

  3. 03

    Liberar el modelo por inactividad

    El proceso de inferencia se reutiliza entre pedidos y se termina tras 300 s sin uso, por defecto.

    → La memoria queda libre cuando no se transcribe; el pedido siguiente espera la carga.

DESAFÍO PRINCIPAL

Que ChatGPT vea las miniaturas y que Whisper conviva con el resto de mis servicios.

  1. 01Las miniaturas tenían que llegar al cliente como imágenes reales, no como texto ni enlaces. Lo validé inspeccionando el pedido y la respuesta hacia ChatGPT.
  2. 02Whisper large-v3 corre en el mismo Mac mini que el resto de mis servicios: el modelo se carga cuando hace falta y se libera solo.
  3. 03Comparé la transcripción del MCP con una local del mismo video y modelo, y el resultado fue idéntico.

Cómo usé IA

Las ideas y decisiones de las dos funciones nuevas son mías. El código lo generó IA y lo revisé yo.

Resultado

Lo uso para investigar la competencia del canal antes de definir videos y miniaturas.

  • Validado en un caso de uso propio.
  • Transcripción del MCP idéntica a la local en el mismo video y modelo.