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.
Antes
Para decidir temas y miniaturas de Drayten necesitaba revisar qué publica la competencia: títulos, miniaturas y contenido de los videos.
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.
Miniaturas como imágenes
La tool devuelve un bloque de texto con la identificación y bloques de imagen MCP, con límites de tamaño.
Transcripción local
Whisper large-v3 sobre MLX en un worker nativo de macOS.
Modelo bajo demanda
El proceso del modelo se carga con el primer pedido y se libera tras un período sin uso.
12 herramientas
Las del proyecto original más las nuevas, con esquemas Zod.
Herramientas.
12 herramientas. Las dos marcadas en rojo son las que agregué yo; el resto viene del proyecto original.
Miniaturas
nueva · míaytdlp_get_video_thumbnailsDevuelve la miniatura de uno a cinco videos como bloques de imagen MCP.
Transcripción local
nueva · míaytdlp_transcribe_videoTranscribe el audio con Whisper large-v3 en un worker local; videos de hasta dos horas.
Búsqueda
originalytdlp_search_videosBusca videos por palabras clave y fecha.
Metadatos
originalytdlp_get_video_metadataMetadatos completos del video.
Resumen de metadatos
originalytdlp_get_video_metadata_summaryVersión resumida de los metadatos.
Comentarios
originalytdlp_get_video_commentsComentarios del video.
Resumen de comentarios
originalytdlp_get_video_comments_summaryComentarios en formato resumido.
Idiomas de subtítulos
originalytdlp_list_subtitle_languagesIdiomas de subtítulos disponibles.
Subtítulos
originalytdlp_download_video_subtitlesDescarga los subtítulos en VTT.
Transcript
originalytdlp_download_transcriptTexto limpio a partir de los subtítulos.
Video
originalytdlp_download_videoDescarga el video con calidad y recorte a elección.
Audio
originalytdlp_download_audioDescarga sólo el audio.
Cómo está armado
- 01CHATGPTcliente multimodal
- 02SERVIDOR MCPTypeScript · Docker · STDIO
- 03YT-DLP + FFMPEGmetadatos · audio · miniaturas
- 04WORKER WHISPERHTTP local autenticado
- 05MLXlarge-v3 · GPU Apple
Decisiones técnicas.
Qué se eligió y qué implica.
- 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.
- 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.
- 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.
Que ChatGPT vea las miniaturas y que Whisper conviva con el resto de mis servicios.
- 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.
- 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.
- 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.