Promoción de videos nuevos de un canal de YouTube
Partiendo de una consulta de los feeds de un canal de YouTube, crea una promoción y distribuye el enlace de los videos recientes.
🧩 Descripción general
El flujo automatiza la monitorización de un canal de YouTube, analiza su feed RSS, identifica los videos publicados en las últimas 24 h, genera un resumen promocional en menos de 200 palabras y publica el anuncio con el enlace del video en un chat de Telegram. La solución combina consultas HTTP, procesamiento de XML, generación de texto con modelos de OpenAI y el envío de mensajes a través de la API de Telegram, todo gestionado por un agente avanzado que coordina las distintas herramientas.
⚙️ Funcionalidades principales
- Detección de publicaciones nuevas mediante el análisis de un feed RSS en tiempo real.
- Extracción y normalización de la información de cada video (ID, título, fecha de publicación).
- Generación automática de resúmenes promocionales con un modelo de lenguaje que garantiza tono inspirador y persuasivo.
- Envío inmediato de la publicación promocional a Telegram con el enlace y la fecha de publicación.
- Manejo de procesamiento en lote para que el agente pueda procesar múltiples videos simultáneamente.
- Soporte de fallback y tolerancia a fallos mediante modelos alternativos y un control de límites de llamadas.
🔄 Pasos del flujo de trabajo
| Nombre del componente | Rol en el flujo | Entradas clave | Salidas clave |
|---|---|---|---|
| Consulta feeds de un canal de YouTube | Solicita el XML del feed RSS de un canal de YouTube. | URL del feed (https://www.youtube.com/feeds/videos.xml?channel_id=[id]) | XML del feed |
| Extraer el resultado XML | Convierte el XML en un formato de texto estructurado. | XML del feed | Texto con la información de los videos |
| Análisis del xml | Analiza el texto con un modelo OpenAI y produce un JSON con nuevas publicaciones y metadatos. | Texto con información de los videos | JSON estructurado (nuevas publicaciones, metadatos) |
| JSON to Data | Convierte la cadena JSON en un objeto de datos utilizable por el agente. | JSON estructurado | Objeto de datos (Data) |
| Data batch Agent | Procesa el conjunto de datos en paralelo, aplicando lógica de lote y max. concurrencia. | Objeto de datos (Data) | Resultado procesado (para el agente) |
| Generador de publicidad | Agente que emplea las herramientas YouTube Transcripts y Telegram Message para generar y publicar la promoción. | Resultado del batch, URL del video, modelo OpenAI, mensaje generador | Mensaje de Telegram enviado con la promoción |
| YouTube Transcripts | Extrae el texto transcrito del video de YouTube solicitado por el agente. | URL del video | Transcripción del video (texto) |
| Telegram Message | Envía el mensaje promocional a un chat de Telegram. | Texto promocional, ID del chat | Confirmación de envío |
Nota: El nodo extrae nuevas publicaciones (ParseData-mmbzq) es una rama que extrae la lista de nuevas publicaciones del XML antes de la generación de texto, y su resultado alimenta al agente para la creación del anuncio.
🧠 Notas
- El flujo depende de la disponibilidad de la API pública de YouTube y de la API de Telegram; se requieren credenciales válidas para ambas.
- El modelo de OpenAI se ejecuta en modo JSON; la respuesta debe respetar el esquema proporcionado por el system message para garantizar la generación correcta del anuncio.
- Se emplea un Data batch Agent con concurrencia máxima de 5, lo que permite procesar hasta 5 videos simultáneamente sin sobrecargar la API de OpenAI.
- El agente avanzado incluye un mecanismo de fallback y límites de llamadas por herramienta, lo que garantiza robustez ante errores de red o de límites de cuota.
- Se asume que el feed RSS contiene la etiqueta
<yt:videoId>y los campos<title>,<published>,<updated>. Si el canal no sigue este esquema, el flujo deberá adaptarse. - El sistema no incluye lógica para la re‑intención de fallos; en caso de error de la API de OpenAI, se registra el fallo y se omite el video.
- El mensaje promocional se envía con una estructura fija: título, fecha, enlace, y se aplica la traducción a español según el system prompt configurado.
- Todos los componentes son independientes y pueden ser reemplazados por alternativas compatibles (por ejemplo, otro modelo de generación de texto o una API de mensajería distinta).