INDUSTRIAL NODES
¿Qué es INDUSTRIAL NODES?
Un configurador visual que transforma parámetros de producción de contenido en un JSON ejecutable para un workflow de n8n de edición de video.
INDUSTRIAL NODES es un Content Production Control Panel — una herramienta visual que permite configurar completamente un agente de inteligencia artificial de producción de video sin escribir código. Toda la configuración se exporta como un JSON estructurado que alimenta directamente un workflow de n8n multi-nodo de producción audiovisual.
¿Para quién es?
| Rol | Qué hace | Pasos |
|---|---|---|
| Creador | Define identidad del canal, estilo de contenido, presets de influencer, plataformas destino, triggers y orden del pipeline | Pasos 1-6 |
| Admin | Configura infraestructura técnica: modelos de IA, APIs de video, almacenamiento y memoria | Pasos 7-9 |
| Ambos | Configuran notificaciones, revisan el pipeline visual, validan el workflow y exportan el ZIP final | Pasos 10-12 |
¿Qué logra?
- Transcribe videos automáticamente con timestamps por palabra usando OpenAI Whisper, AssemblyAI o Deepgram
- Detecta clips virales con un LLM que analiza la transcripción y extrae los N momentos más valiosos
- Corta el video en clips individuales usando Shotstack o Creatomate (cloud-native) o FFmpeg (self-hosted)
- Añade subtítulos estilizados con el estilo visual del preset de influencer seleccionado
- Aplica efectos de edición (zoom, transiciones, música) según el preset configurado
- Genera miniaturas con IA usando DALL-E 3, Stable Diffusion o Ideogram
- Crea títulos y descripciones SEO para YouTube, TikTok e Instagram con GPT-4o
- Sube los clips a Google Drive / S3 organizados por proyecto
- Programa la publicación en múltiples redes vía Buffer, Meta API, TikTok API o YouTube API
- Recuerda el estilo del creador con memoria persistente que mejora con cada proyecto
- Notifica al creador cuando termina con un resumen del procesamiento
Los 12 Pasos
Identidad del Agente
Nombre, canal, nicho, idioma, plataformas destino
Módulos Activos
Transcripción, corte, subtítulos, SEO, publicación y más
Presets de Estilo
16 influencers como base: Hormozi, MrBeast, GaryVee...
Entrada de Video
Fuente (YouTube, Drive, URL), duración, formato de salida
Triggers Personalizados
Cron, formulario, email, webhook propio en paralelo
Pipeline
Orden de ejecución drag & drop de los módulos activos
Motor de IA
LLM, transcripción, motor de imágenes, motor de video
Accesos & APIs
Credenciales de video, storage, redes sociales e IA
Memoria del Agente
Qué recuerda, dónde lo guarda, Brand Kit del creador
10 Notificaciones
Canales de aviso, plantilla de mensaje, config Buffer
11 Revisión Visual
Diagrama del workflow n8n, resumen ejecutivo, estimador
12 Exportar
ZIP con workflow n8n, JSON config, presets y README
10 sistemas de content automation al ritmo de agencia
Desde idea hasta publicación multi-plataforma. Voz IA, video con auto-cut, carruseles con design system, newsletters con personalización por segmento. Para ver el detalle interactivo de cada caso (plataformas + stack chips), abre la presentación visual .
| # | Sistema | Mecánica | Plataformas | Detalle |
|---|---|---|---|---|
| 1 | Generador de Reels y Shorts virales | LLM script viral + voz ElevenLabs + B-roll auto + auto-cut beats + publish multi-plataforma | Instagram Reels, TikTok, YouTube Shorts, FB Reels, LinkedIn Video | — |
| 2 | Editor de podcast con clip generator | Long-form → Whisper → LLM identifica clips virales → captions sincronizados → distribuye | Spotify, Apple Podcasts, YouTube, IG, TikTok, X, LinkedIn | — |
| 3 | Calendario evergreen con SEO orgánico | Research Tavily + cluster keywords + LLM 30 piezas/mes (blog+social+email) + Buffer schedule | Blog/web, LinkedIn, X, Newsletter, Medium, Substack, Ghost | — |
| 4 | Newsletter inteligente con personalización por segmento | Pool noticias filtradas + LLM resume por audiencia + variantes A/B + envío via Beehiiv/ConvertKit | Beehiiv, ConvertKit, Substack, Mailchimp, Brevo, MailerLite | — |
| 5 | Carruseles educativos con design system | LLM estructura 8 slides + imágenes Stable Diffusion/Banana con brand DNA + exporta carrusel | Instagram, LinkedIn, TikTok carousel, Pinterest, X | — |
| 6 | Testimoniales sintéticos con avatar | Feedback real → LLM quote → video con avatar Heygen/Synthesia → publica con consent | Landing pages, IG, LinkedIn ads, YouTube ads, Meta ads, TikTok ads | — |
| 7 | Repurposing engine: 1 input → 20 outputs | 1 video YouTube → transcribe → LLM expande a 5 tweets + 3 LI posts + 1 blog + 2 reels + 1 newsletter | X, LinkedIn, Blog, IG, TikTok, Newsletter, Threads | — |
| 8 | Community management tono-aware | Monitorea menciones + LLM responde con tu tono StoryBrand + escala humano si crítica | X, IG DMs, LinkedIn, Facebook Pages, Discord, Reddit | — |
| 9 | Ads creative + variantes A/B masivas | Brand DNA + objetivo → 30 headlines + 30 descriptions + 10 imágenes → exporta a Meta+Google Ads | Meta Ads (FB/IG), Google Ads, TikTok Ads, LinkedIn Ads, X, Pinterest Ads | — |
| 10 | Estudio de podcast solo automatizado | Outline → LLM guion + voces ElevenLabs por rol + mezcla jingles + publish + transcripción SEO | Spotify, Apple, Google, YouTube, Anchor, Pocket Casts, web embed | — |
- El pipeline de contenido cubre transcripción, edición, clips, subtítulos, publicación multi-red y SEO — cada módulo se documenta en su paso correspondiente de esta guía.
Arquitectura del Sistema
Cómo fluye un video desde su entrada hasta la publicación automática.
INDUSTRIAL NODES
Configurador visual
JSON content_config
11 secciones
Plataforma n8n
Ejecuta el workflow
APIs de Video
Shotstack / Creatomate
Video de entrada
URL / Drive / Upload
STT
Transcripción
LLM análisis
Detecta clips
Corte
API / FFmpeg
Subtítulos
Efectos
Miniatura
SEO
Publicar
Confiabilidad Industrial
Cómo se construyen los agentes de contenido de Industrial Nodes para aguantar producción.
Cada agente se construye con prácticas de ingeniería de confiabilidad orientadas a producción, con objetivo de 99.99% de disponibilidad en la entrega de tus assets.
Pipeline sin fallos silenciosos
El orden del pipeline es crítico. El configurador permite definir el orden exacto de los módulos con drag & drop, previniendo flujos incoherentes mediante validaciones automáticas:
- Un clip no puede subtitularse antes de ser cortado — el módulo de subtítulos siempre viene después del corte.
- Los títulos SEO no se generan antes de tener la transcripción — el módulo de SEO depende de la transcripción.
- La publicación siempre es el último módulo del pipeline, nunca en medio.
Cloud-Native First (Eliminación de FFmpeg Local)
Si Shotstack falla, el sistema puede conmutar automáticamente a Creatomate. Si ambas APIs de video fallan, el workflow almacena la tarea en cola para reintento. Siempre hay continuidad operativa.
Sistema de Presets como Protocolo de Producción
En lugar de configurar manualmente cada parámetro de edición, se usan Presets — perfiles técnicos basados en los estilos de edición de los creadores de contenido más exitosos del mundo. Cada preset es un JSON técnico con parámetros de:
- max_silence_cut_ms: Cuánto silencio tolera antes de cortar
- zoom_effect / zoom_intensity: Si aplica zoom y con qué fuerza
- subtitle_style: Fuente, tamaño, color, animación de subtítulos
- cut_rhythm: Ritmo de corte (ultra_aggressive, organic, luxury...)
- music_energy: Energía de la música de fondo
- editing_prompt: Instrucción en lenguaje natural para el LLM de edición
Guía de los 12 Pasos
Antes de empezar, ten a mano: el nombre del canal o creador, las plataformas destino, el estilo de comunicación del creador y acceso a las APIs necesarias.
Checklist de preparación
- Nombre del agente y del canal / creador
- Nicho de contenido (negocios, fitness, tecnología...)
- Plataformas destino (YouTube, TikTok, Instagram Reels...)
- Estilo de comunicación del creador (tono, vocabulario, energía)
- Presets de influencer preferidos (máximo 2)
- Fuente del video (URL YouTube, Google Drive, upload manual)
- API Key de OpenAI (para Whisper + GPT-4o)
- API Key de Shotstack o Creatomate (para renderizado cloud)
- Acceso a Google Drive o AWS S3 (para almacenamiento de clips)
- API Key de Buffer u otra plataforma de publicación
- Email / WhatsApp del creador para notificaciones
Identidad del Agente de Contenido
Define quién es tu agente y para qué canal trabaja.
Campos a llenar (Explicación a detalle)
| Campo | Descripción | Ejemplo |
|---|---|---|
| Nombre del agente | Cómo se llama el agente internamente en el workflow | Content AI Pro, VideoAgent, ViralBot |
| Nombre del canal / creador | Nombre del canal o marca para el que trabaja | Canal de Juan Pérez, TechWith Alex |
| Industria / Nicho | Categoría de contenido — afecta el prompt del LLM de análisis viral | Negocios, Motivación, Fitness, Tech, Real Estate... |
| País e idioma principal | Idioma en que se generarán los textos (títulos, descripciones, subtítulos) | Español, Inglés, Bilingüe |
| Estilo de comunicación del creador | Describe el tono, vocabulario y energía del creador. El LLM lo usa para generar títulos y captions alineados a la voz del canal | "Energético, directo, usa muchos ejemplos. Habla de tú a tú. Vocabulario de negocios sin ser corporativo." |
| Plataformas destino | Dónde se publicará el contenido. Determina el formato de salida y los módulos de publicación disponibles | YouTube, TikTok, Instagram Reels, YouTube Shorts, LinkedIn |
Súper-Prompt Plantilla (Estilo del Creador)
Para que el LLM genere títulos, captions y guiones con la voz exacta del creador, copia esta plantilla de razonamiento estructurado, pégala en el campo 'Estilo de comunicación del creador' y sustituye los valores entre corchetes [ ]:
Soy [Nombre del Creador], creador de contenido en el nicho de [Nicho].
Mi audiencia: [Descripción demográfica, ej: emprendedores 25-40 años en Latinoamérica].
Tono: [ej: Directo, práctico, con humor inteligente. Nunca corporativo].
Vocabulario clave: [ej: "implementa", "sistema", "resultados", "cash flow"].
Estructura de mis ganchos: [ej: siempre empieza con una pregunta retórica o una cifra impactante].
CTA recurrente: [ej: "Suscríbete si quieres más estrategias como esta"].
Módulos Activos de Contenido
Selecciona las funcionalidades que ejecutará tu agente. Solo activa los módulos que necesites.
Catálogo completo de módulos
| Módulo | Descripción | APIs/Herramientas requeridas |
|---|---|---|
| Transcripción con Timestamps | Transcribe el video completo con marcas de tiempo precisas por palabra/oración. Base para todos los módulos de análisis y subtítulos. | OpenAI Whisper, AssemblyAI o Deepgram |
| Detector de Clips Virales | Analiza la transcripción con LLM y detecta los N momentos más potentes para clips cortos, basándose en el preset seleccionado y el nicho. | GPT-4o / Claude / Gemini |
| Corte Automático de Videos | Corta el video en clips individuales según los timestamps detectados. En n8n Cloud usa Shotstack/Creatomate; en self-hosted usa FFmpeg. | Shotstack API o Creatomate API (cloud) / FFmpeg (local) |
| Subtítulos Estilizados | Genera archivos SRT e integra subtítulos al video con el estilo visual del preset (fuente, color, animación, posición). | Shotstack / Creatomate / FFmpeg |
| Edición con Efectos | Aplica zooms, transiciones, música de fondo e intros/outros según el estilo del preset de influencer activo. | Shotstack API o Creatomate API |
| Generación de Miniatura | Genera prompts optimizados para el nicho y los envía a la IA de imágenes configurada (DALL-E 3, Ideogram, Stable Diffusion). | DALL-E 3 / Ideogram / Stable Diffusion XL |
| Títulos y Descripciones SEO | Genera 3 opciones de título, descripción SEO para YouTube, tags y captions para Instagram/TikTok/LinkedIn, con la voz del creador. | GPT-4o / Claude (LLM principal) |
| Guión desde Cero / Mejora | Si no hay video de entrada, genera un guión optimizado para el estilo del preset y el nicho. También puede mejorar guiones existentes. | GPT-4o / Claude / Gemini |
| Upload a Nube | Registra/organiza los clips, miniaturas y SRT por proyecto. OJO con el modo (ver "Modo de subida"): por defecto (Referenciada) el vídeo se queda en el CDN del render y NO se copia a tu Drive/S3; para copiarlo de verdad elige Cloudinary o worker externo. | Google Drive OAuth2 / AWS S3 / Cloudinary / worker |
| Programación y Publicación | Programa la publicación en múltiples redes con captions, hashtags y horario óptimo via Buffer, Meta API, TikTok API o YouTube API. | Buffer Token / Meta Access Token / TikTok Token |
| Research de Multimedia | Busca en internet referencias sobre los temas mencionados en el video para enriquecer el guión o la descripción SEO con datos actuales. | API de búsqueda web |
child_process), así que lo hace un worker externo que despliegas — implementación de referencia en workers/beat-detect/ (Python + librosa, con Dockerfile para Railway). Contrato: POST {audio_url} → {beats, bpm}. Activas el toggle y pegas la URL del worker; sin ella el toggle no hace nada. Con beats, los SFX y el B-roll se alinean al ritmo en vez de a un timing fijo.cc0 (seguro para monetizar). El filtro aplica sobre todo a Freesound; Pixabay/Pexels son uniformemente libres.Presets de Estilo Influencer
Los presets definen cómo edita, corta y subtitula el agente. Selecciona máximo 2.
Catálogo de presets disponibles
| Preset | Categoría | Estilo técnico | Mejor para |
|---|---|---|---|
| MrBeast | Viralidad Extrema | Corte cada 2s, subtítulos Impact/pop_word, música extrema, gancho en 1 seg | Contenido de entretenimiento puro, challenges, listas |
| Alex Hormozi | Retención & Marca Personal | Zoom agresivo, subtítulos Montserrat/dorado, ritmo aggressive, gancho 3 seg | Negocios, marketing, emprendimiento, ventas |
| GaryVee | Retención & Marca Personal | Documental/raw, sin zoom, Helvetica, ritmo orgánico, gancho 8 seg | Entrepreneurship, emprendimiento, mentalidad |
| Tony Robbins | Desarrollo Personal & Motivación | Épico, crossfade, Trajan Pro/amarillo, música épica en crescendo | Motivación, transformación personal, liderazgo |
| Dean Graziosi | Desarrollo Personal & Motivación | Íntimo, sin zoom, Open Sans, ritmo relajado, ambient music | Coaching, comunidad, mentalidad de éxito |
| Mel Robbins | Desarrollo Personal & Motivación | Enérgico, zoom suave, Poppins Bold/rosa, bounce_in, música upbeat | Productividad, hábitos, desarrollo femenino |
| Andy Elliott | Ventas & Autoridad | Máxima intensidad, Bebas Neue/rojo, slam transitions, urgencia extrema | Ventas, closers, force de ventas |
| ️ Brad Lea | Ventas & Autoridad | Podcast sofisticado, Montserrat/cian, efectos de sonido puntuales | Ventas consultivas, podcast clips, entrevistas |
| Myron Golden | Ventas & Autoridad | Educativo high-value, Georgia/dorado, ritmo educational, pauses respetadas | Principios de riqueza, negocios basados en valores |
| Ali Abdaal | Educativo Minimalista | Minimalista, Inter/cian, lofi music, crossfade, 10 seg de gancho | Productividad, estudio, tecnología, tutoriales |
| Casey Neistat | Lifestyle Cinematográfico | Cortes al ritmo de jazz, Courier New, timelapses, storytelling visual | Vlog, travel, day-in-the-life, documentales |
| MKBHD | Tech & Reviews | Ultra pulido, SF Pro, electronic ambient, b-roll cinematográfico premium | Tech reviews, gadgets, comparativas |
| ️ Ryan Serhant | Inversión & Real Estate | Lujo extremo, Playfair Display/dorado, luxury_wipe, cinematic | Real estate, propiedades, lujo |
| Grant Cardone | Inversión & Real Estate | 10X energy, Oswald/verde, jets y mansiones en broll, ultra agresivo | Inversiones, mentalidad 10X, real estate |
| Marie Forleo | Liderazgo Femenino | Elegante vibrante, Lato Bold/rosa, energético, upbeat, emojis en subs | Marketing para mujeres, liderazgo femenino, negocios |
| Barbara Corcoran | Liderazgo Femenino | Autoridad con humor, Georgia Bold/rojo, cifras resaltadas, bounce_in | Negocios, inversiones, shark tank clips |
Presets Personalizados
Si ninguno de los 16 presets predefinidos encaja exactamente con tu estilo, puedes crear un Preset Personalizado subiendo archivos de referencia de tu creador:
- Transcripciones anteriores: El LLM aprende el vocabulario y estructura vocal del creador
- Guiones de referencia: Enseña la estructura exacta (gancho → desarrollo → CTA) que usa el creador
- Brand guidelines: Colores exactos, tipografías, paleta visual del canal
- Videos de referencia (URLs): El sistema analiza los patrones de edición para emularlos
Configuración de Entrada de Video
Define cómo recibe el agente el material de origen y cómo debe procesar los clips.
Entorno de Ejecución
| Entorno | Descripción | Ventajas | Limitaciones |
|---|---|---|---|
| n8n Cloud (API-only) | Sin instalación local. TODO el procesamiento de video se delega a Shotstack o Creatomate. | No requiere FFmpeg, fácil configuración, escalable, ideal para equipos remotos | Costo por renderizado en API de video (~$0.015/seg Shotstack) |
| Self-hosted (con FFmpeg) | Tu servidor tiene FFmpeg instalado. El workflow usa ffmpeg directamente para cortar y subtitular. | Sin costo por renderizado, mayor control, videos muy largos sin límite | Requiere servidor con FFmpeg, mantenimiento técnico |
Fuentes de Video
| Fuente | Cómo funciona | Nota |
|---|---|---|
| URL YouTube / Vimeo | El workflow extrae el audio/video directamente de la URL usando yt-dlp en el servidor o via API | Requiere yt-dlp o acceso a YouTube Data API. La más común en self-hosted. |
| URL directa de archivo | Una URL directa que apunta a un archivo .mp4 o .mov descargable | Ideal para videos alojados en tu propio CDN o servidor |
| Google Drive (link) | El workflow accede al archivo usando las credenciales OAuth2 de Google Drive configuradas | Requiere OAuth2 configurado. El video debe ser compartido o estar en una carpeta del mismo OAuth2 |
| Upload Manual | El operador sube el archivo directamente al webhook del workflow antes de iniciar | Para videos que ya están en disco. Requiere webhook configurado para recibir multipart |
| Carpeta Drive (Trigger) | El workflow se activa automáticamente cuando se sube un nuevo archivo a una carpeta específica de Google Drive | Modo de producción continua. Ideal para pipelines recurrentes automatizados |
Parámetros de Clips
| Parámetro | Descripción | Recomendado |
|---|---|---|
| Número de clips a extraer | Cuántos clips cortos generará el detector viral. Default: 10. | 5-10 para videos de 30-60 min. 15-25 para videos de 2h+ |
| Duración mínima por clip | Los clips detectados no pueden ser más cortos que este valor (en segundos) | 30s para TikTok/Reels. 60s para YouTube Shorts |
| Duración máxima por clip | Los clips detectados no pueden ser más largos que este valor (en segundos) | 60-90s para TikTok/Reels. 60s para Shorts. 3-5 min para YouTube largo |
| Formato de salida | Relación de aspecto del video exportado. Puede ser múltiple (corta en varios formatos a la vez). | 9:16 para TikTok/Reels/Shorts. 16:9 para YouTube horizontal. 1:1 para feed de Instagram |
| Calidad de salida | Resolución del video de salida | 1080p Full HD para la mayoría. 4K solo si el video original es 4K y las plataformas lo soportan |
Triggers Personalizados
Disparadores adicionales que ejecutan en paralelo al webhook principal — para arrancar el pipeline de contenido desde más de una fuente.
Tipos disponibles
| Tipo | Cuándo se dispara | Qué configuras |
|---|---|---|
| Trigger manual | Cuando lo ejecutas a mano desde n8n (ideal para pruebas). | Nada. |
| Cron personalizado | En un horario recurrente que tú defines (ej. procesar la cola cada mañana). | Expresión cron (ej. 0 9 * * 1). |
| Formulario web público | Cuando alguien envía un formulario alojado por n8n (ej. subir un video). | Título del formulario. |
| Evento del workflow | Al activarse el workflow. | Nada. |
| Sub-workflow | Cuando otro flujo de n8n lo invoca. | Los inputs se definen en n8n. |
| Email (IMAP) | Cuando llega un correo a una casilla (ej. un cliente manda material). | Carpeta/mailbox (requiere credencial IMAP). |
| Webhook con path propio | Cuando un sistema externo llama a una URL tuya. | Path + método (POST/GET). |
Crear uno personalizado
Si necesitas un disparador que no está en la lista, el botón "Crear personalizado…" te deja definir cualquier nodo trigger de n8n: nombre, tipo de nodo, versión, parámetros en JSON e ícono.
¿Qué ejecuta cada trigger?
Por cada trigger eliges su destino: el pipeline completo (igual que un video entrante) o un módulo específico (por ejemplo, solo la publicación o solo la generación de clips).
Pipeline de Orquestación
El orden en que el agente ejecuta los módulos activos.
Lógica del Pipeline
Súper-Prompt Plantilla (Pipeline Lógico)
Si necesitas instruir al LLM sobre el orden de prioridades dentro del análisis viral, usa este prompt en el campo de instrucciones del Módulo de Detección de Clips:
EJECUCIÓN SECUENCIAL DEL ANÁLISIS VIRAL:
PRIORIDAD 1 (GANCHO): Identifica el primer momento impactante en los primeros 0-30 segundos.
PRIORIDAD 2 (VALOR): Detecta los N-1 momentos con mayor densidad de información útil para el nicho [NICHO].
PRIORIDAD 3 (CTA): Si existe, incluye el momento final donde el speaker da el call-to-action.
Aplica el estilo editorial del preset seleccionado para evaluar el ritmo de corte ideal.
Orden recomendado para cada caso de uso
| Caso de uso | Pipeline recomendado |
|---|---|
| Video largo → Clips virales | Transcripción → Detector Viral → Corte → Subtítulos → Efectos → SEO → Miniatura → Upload → Publicar |
| Solo SEO y texto | Transcripción → Títulos & SEO |
| Guión desde cero | Research → Guión desde Cero → Títulos & SEO |
| Video ya editado → Solo publicar | Upload → Publicar |
| Pipeline completo (producción full) | Transcripción → Detector → Corte → Subtítulos → Efectos → Miniatura → SEO → Upload → Publicar |
Motor de IA y Transcripción
Configura los modelos de IA que usará el agente en cada fase del pipeline.
Motor de Transcripción (STT)
| Motor | Fortaleza | Coste aprox. | Nota |
|---|---|---|---|
| OpenAI Whisper | Muy preciso, multilingüe, excelente español | $0.006/min | Recomendado. Parte del OpenAI API Key |
| AssemblyAI | Speaker diarization, timestamps de alta precisión | $0.0037/min | Mejor para podcasts multi-speaker |
| Deepgram | Ultra rápido, baja latencia, streaming | $0.0043/min | Mejor si el tiempo de procesamiento es crítico |
| Rev.ai | Alta precisión en inglés, soporte humano | $0.02/min | Para contenido en inglés donde la precisión es crítica |
| Google Speech | Integración nativa con GCP, muchos idiomas | $0.009/min | Ideal si ya usas GCP |
Modelo LLM Principal
| Modelo | Fortaleza | Coste aprox. |
|---|---|---|
| GPT-4o | El más versátil. Excelente para análisis viral y generación de títulos creativos | $$ |
| GPT-4o Mini | Rápido y económico. Adecuado para SEO y captions simples | $ |
| Claude Sonnet 4.5 | Razonamiento largo, texto muy natural. Ideal para guiones y análisis de presets | $$ |
| Claude Haiku 3.5 | Ultra rápido, bajo costo, bueno para tareas repetitivas | $ |
| Gemini 2.0 Flash | Muy rápido, multimodal, buen análisis de video | $ |
| Gemini 2.5 Pro | El más potente de Google. Excelente para contenido largo y análisis multimodal | $$$ |
Motor de Imágenes (para Miniaturas)
| Motor | Fortaleza | Nota |
|---|---|---|
| DALL-E 3 | Integrado con OpenAI. Composición excelente, texto legible en imagen | Recomendado. Usa el mismo OPENAI_API_KEY |
| Nano Banana (Gemini Imagen) | Google Imagen 3. Alta calidad fotorrealista | Requiere GOOGLE_AI_API_KEY de AI Studio |
| Stable Diffusion XL (Replicate) | Altamente controlable, prompts técnicos avanzados | Requiere REPLICATE_API_KEY |
| Midjourney (Replicate) | Estética artística premium, estilos únicos | Requiere REPLICATE_API_KEY + acceso a Midjourney |
| Ideogram | Genera texto integrado dentro de la imagen, ideal para miniaturas con texto | Requiere IDEOGRAM_API_KEY. Mejor para thumbnails con títulos |
| Grok (xAI) | Generación ultrarrápida, estética moderna | Requiere XAI_API_KEY de console.x.ai |
| Canva API | Plantillas branded, coherencia visual con el canal | Requiere CANVA_API_KEY. Ideal si el canal tiene templates en Canva |
Motor de Edición de Video
| Motor | Tipo | Fortaleza | Nota |
|---|---|---|---|
| Shotstack API | Cloud-native | Corte, subtítulos, efectos, música — todo via JSON. Sin FFmpeg. | Recomendado para n8n Cloud. ~$0.015/seg renderizado |
| Creatomate API | Cloud-native | Similar a Shotstack, con más plantillas de animación | Alternativa a Shotstack. Precios similares |
| RunwayML | IA generativa | Efectos generativos de IA sobre video (Gen-3 Alpha) | Para efectos artísticos, no edición estándar |
| Kapwing API | Nube + manual | Subtítulos automáticos de alta calidad, fácil integración | Buena opción para subtítulos cloud sin FFmpeg |
Accesos & APIs
Credenciales de todos los servicios que usa el agente. Se manejan como variables de entorno.
$env.VARIABLE), nunca como valores reales en el JSON. Configúralas directamente en n8n (Settings → Variables de entorno).APIs Obligatorias
| API / Variable | Para qué | Dónde obtenerla |
|---|---|---|
OPENAI_API_KEY | Whisper (transcripción) + GPT-4o (análisis viral, SEO) + DALL-E 3 (miniaturas) | platform.openai.com/api-keys |
APIs de Edición de Video (Elige al menos 1 si usas n8n Cloud)
| API / Variable | Servicio | Dónde obtenerla |
|---|---|---|
SHOTSTACK_API_KEY | Shotstack — Edición y renderizado cloud | shotstack.io → Dashboard → API Keys |
CREATOMATE_API_KEY | Creatomate — Alternativa a Shotstack | creatomate.com → Dashboard → API |
FFMPEG_PATH | FFmpeg — Solo si usas self-hosted | Ruta en el servidor, ej: /usr/bin/ffmpeg |
APIs de Transcripción Alternativas
| API / Variable | Servicio | Dónde obtenerla |
|---|---|---|
ASSEMBLYAI_API_KEY | AssemblyAI — Transcripción de alta precisión con speaker diarization | assemblyai.com → Dashboard |
DEEPGRAM_API_KEY | Deepgram — Transcripción ultrarrápida | console.deepgram.com |
Almacenamiento en Nube
| API / Variable | Servicio | Nota |
|---|---|---|
GDRIVE_CLIENT_ID / GDRIVE_CLIENT_SECRET | Google Drive OAuth2 — Para subir clips procesados | Crear en Google Cloud Console → APIs & Credentials |
AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY | AWS S3 — Alternativa a Google Drive | AWS IAM → Crear usuario con permisos S3 |
CLOUDINARY_URL | Cloudinary — El más fácil de configurar, CDN integrado | cloudinary.com → Account Settings → API Keys |
APIs de Publicación en Redes Sociales
| API / Variable | Servicio | Dónde obtenerla |
|---|---|---|
BUFFER_TOKEN / BUFFER_PROFILE_IDS | Buffer — Publicación multi-red (la opción más sencilla) | buffer.com/developers/api |
META_ACCESS_TOKEN / META_PAGE_ID | Meta API — Instagram & Facebook (publicación nativa) | developers.facebook.com → App → Tokens |
TIKTOK_ACCESS_TOKEN | TikTok API — Publicación directa en TikTok | developers.tiktok.com |
YOUTUBE_API_KEY / YOUTUBE_CHANNEL_ID | YouTube Data API v3 — Subir videos a YouTube | Google Cloud Console → YouTube Data API v3 → API Key |
LINKEDIN_ACCESS_TOKEN | LinkedIn — Publicación en feed profesional | LinkedIn Developer Portal → OAuth 2.0 |
APIs de Generación de Imágenes (Opcionales)
| API / Variable | Motor | Nota |
|---|---|---|
OPENAI_API_KEY | DALL-E 3 — No requiere key extra | Usa la misma key de OpenAI ya configurada |
GOOGLE_AI_API_KEY | Google Gemini Imagen (Nano Banana) | aistudio.google.com |
REPLICATE_API_KEY | Stable Diffusion XL / Midjourney unofficial | replicate.com/account/api-tokens |
IDEOGRAM_API_KEY | Ideogram — Texto integrado en imagen | ideogram.ai/api |
XAI_API_KEY | Grok (xAI) | console.x.ai |
Memoria del Agente
El agente recuerda proyectos, preferencias y el Brand Kit del creador entre ejecuciones.
Qué recuerda el agente
| Categoría de Memoria | Qué almacena | Para qué sirve |
|---|---|---|
| Videos procesados | ID del video, URL origen, timestamp de proceso, módulos ejecutados | Evitar reprocesar el mismo video dos veces |
| Preferencias de edición | Ajustes manuales que el creador hizo sobre los clips (cambiar duración, rechazar subtítulos) | Aprendizaje continuo del estilo preferido del creador |
| Métricas de engagement | Vistas, likes, CTR de los clips publicados por el agente | Optimizar futuros clips basándose en qué funcionó mejor |
| Brand Kit del creador | Colores de marca, fuentes, eslogan, logo URL, tone of voice, keywords del nicho | Asegurar coherencia visual y verbal en todos los clips |
| Presets por proyecto | Qué presets se usaron en cada proyecto y cuáles dieron mejores resultados | Seleccionar automáticamente el preset más efectivo según el tipo de video |
Estrategias de Almacenamiento
| Plataforma | Ideal para | Complejidad |
|---|---|---|
| Supabase | PostgreSQL + API REST. La más recomendada. Tablas structured para proyectos y presets | Baja-Media |
| Redis | Cache ultra-rápido para datos temporales (job queue, estado del pipeline en curso) | Media |
| Airtable | Interfaz visual para el equipo creativo. Ideal para revisar proyectos manualmente | Baja |
| Notion | Si el equipo ya usa Notion para content planning. Integración via API | Baja |
| Google Sheets | La opción más simple y gratuita. Sin backend extra | Mínima |
Almacenamiento de archivos y media
Distinto de la memoria: aquí eliges dónde se guardan los videos, clips e imágenes que genera el agente (no el estado del pipeline). Es un selector aparte del método de memoria.
| Opción | Ideal para |
|---|---|
| Supabase Storage | Todo en un mismo lugar si ya usas Supabase para la memoria. |
| Cloudflare R2 | Sin costos de egreso — económico cuando manejas mucho video. |
| Amazon S3 | El estándar de la industria, máxima compatibilidad. |
| Cloudinary | Transformaciones de imagen y video sobre la marcha. |
Modo de subida (importante)
El destino de arriba dice a dónde; el modo dice cómo. n8n 2.16.1 no puede pasar un binario descargado a un PUT, así que en el paso de Efectos eliges uno de tres modos:
| Modo | Qué hace | Qué necesitas |
|---|---|---|
| Referenciada (por defecto) | El vídeo NO se copia a tu storage: se queda en el CDN del servicio de render (Shotstack/Creatomate) y el agente registra esa URL. Es lo honesto — n8n no puede subir el binario solo. | Nada extra. |
| Cloudinary (fetch por URL) | Cloudinary hace fetch server-side de la URL del render → subida real sin que n8n toque el binario. | CLOUDINARY_CLOUD_NAME + CLOUDINARY_UPLOAD_PRESET (unsigned). |
| Worker externo | Un worker que despliegas mueve el binario del CDN a tu storage. | Desplegar el worker (contrato POST {video_url,target_path,bucket,public} → {public_url}) y poner su URL en el wizard. |
PASOS_MANUALES.md detalla lo que pide el modo que elijas.Brand Kit del Creador
El Brand Kit es un JSON que el agente usa para mantener coherencia visual y editorial en todos los clips. Los campos configurables incluyen:
| Campo | Field ID | Ejemplo |
|---|---|---|
| Nombre del canal/creador | channel_name | Canal de Alex Hernández |
| Colores de marca (hex) | brand_colors | #FFD700, #000000, #FFFFFF |
| Fuente de marca | brand_font | Montserrat Black, Bebas Neue |
| Eslogan o frase de marca | brand_slogan | "Negocios sin filtros" |
| URL del logo | logo_url | https://drive.google.com/logo.png |
| Tone of voice | tone_of_voice | Directo, práctico, empático |
| Keywords del nicho | niche_keywords | negocios, emprendimiento, ventas, cash flow |
Configuración de Notificaciones
El agente puede tardar minutos procesando un video de 1 hora. Configura cómo te avisa al terminar.
Canales de Notificación
| Canal | Cuándo usarlo | Requisito |
|---|---|---|
| Siempre. Canal principal para notificaciones detalladas con el resumen completo | OWNER_EMAIL configurado como variable de entorno | |
| Para notificaciones rápidas al creador en su teléfono. Incluye el resumen en texto y links de Drive | WhatsApp Business API o Twilio | |
| Telegram | Ideal para equipos que usan Telegram. Permite enviar el clip directamente al chat | Token de Telegram Bot |
| Slack | Para equipos de producción que usan Slack. Avisa en el canal del proyecto | Slack Webhook de canal |
Notificaciones por módulo
Puedes configurar si el agente te notifica cada vez que un módulo termina (útil para pipelines largos), o solo una vez al finalizar todo el proceso. Las opciones por módulo son:
- Solo al finalizar todo: Una única notificación con el resumen completo cuando todos los módulos han terminado
- Al terminar cada módulo: Una notificación por cada etapa (útil para debuggear o monitorear pipelines complejos)
Plantilla de Notificación
La plantilla de notificación soporta variables dinámicas que se reemplazan automáticamente:
| Variable | Valor |
|---|---|
{{clips_generados}} | Número de clips producidos en este proceso |
{{duracion_total}} | Duración total del video de entrada procesado |
{{plataformas_publicadas}} | Lista de plataformas donde se programó la publicación |
{{drive_link}} | URL de la carpeta de Google Drive con todos los clips |
{{processing_time}} | Tiempo total que tardó el pipeline en completarse |
{{preset_usado}} | Nombre del preset (o presets) de influencer aplicados |
{{errores}} | Lista de errores o advertencias encontradas durante el proceso (si aplica) |
{{agent_name}} | Nombre del agente que procesó el video |
Configuración de Buffer para Publicación
Si usas Buffer para programar publicaciones, debes configurar los Profile IDs — los identificadores únicos de cada cuenta de red social conectada a tu Buffer. Los encuentras en la URL del Dashboard de Buffer al seleccionar cada perfil.
Revisión Visual del Pipeline
Diagrama del workflow de n8n que se generará, basado en tu configuración actual.
Vista del Workflow n8n
En este paso el configurador muestra un diagrama visual de los nodos de n8n que serán incluidos en el ZIP exportado, reflejando todos los módulos activos y sus conexiones. Sirve para:
- Verificar visualmente que el pipeline está en el orden correcto antes de exportar
- Detectar módulos activos que faltan (por ejemplo, olvidar activar el módulo de Upload antes de Publicar)
- Entender la estructura del workflow antes de importarlo en n8n
Resumen Ejecutivo
El resumen ejecutivo muestra un cuadro de métricas con la configuración actual:
| Métrica | Descripción |
|---|---|
| Módulos activos | Número total de módulos seleccionados y en qué orden se ejecutarán |
| Presets seleccionados | Los presets de influencer activos y la mezcla de estilos resultante |
| Plataformas de salida | Redes sociales destino configuradas |
| Entorno de ejecución | n8n Cloud (API-only) o Self-hosted (con FFmpeg) |
| APIs configuradas / faltantes | Resumen de qué APIs están listas y cuáles faltan por configurar |
| Estimación de costo por video | Estimación del costo de APIs por video de 1 hora procesado completamente |
Estimador de Carga del Sistema
El estimador calcula dinámicamente el rendimiento esperado del pipeline:
- Tiempo estimado de procesamiento — Basado en los módulos activos y la duración del video de entrada
- Costo estimado en APIs — Suma de todos los costos de APIs según el tiempo de video y número de clips
- Puntuación de complejidad — Estimación de cuántos puntos de falla potenciales tiene el pipeline configurado
- Recomendaciones de optimización — Sugerencias para reducir costo o tiempo manteniendo la calidad
Exportar Agente de Contenido
Genera el ZIP con el workflow n8n funcional y todos los archivos de soporte necesarios para el despliegue.
Contenido del ZIP (24 sub-workflows + soporte)
workflows/ (main_webhook, rag_pipeline, llm_router, post_actions, health_check, error_handler_content) y un dispatcher + 17 módulos en workflows/pipeline/ (transcripción, detección de clips, subtítulos, research, publicación, thumbnails, SEO, generador cognitivo…). El dispatcher enruta cada módulo por executeWorkflow: importas todos y activas solo lex_main_webhook.json. El paso final muestra el panel «El ZIP contiene» con el desglose real.workflows/ + workflows/pipeline/
24 sub-workflows n8n importables (6 orquestación + dispatcher + 17 módulos).
Incluye Error Handler y reintentos.
agent_config_reference.json
Tu configuración completa del formulario: identidad, módulos, presets, APIs, memoria, notificaciones.
README.txt
Guía de instalación: configuración de APIs, variables de entorno, cómo triggear el primer video.
style_presets.json
Los parámetros completos de los presets seleccionados, listos para inyectar en el nodo de edición.
El enlace entre sub-workflows se resuelve solo
El pipeline se entrega en varios sub-workflows que se llaman entre sí (dispatcher + módulos). Cuando usas el Deploy directo, la herramienta detecta el ID que n8n le asigna a cada uno y los conecta automáticamente — no configuras ninguna variable de enlace a mano (las LEX_CONTENT_*_WF_ID). Funciona igual en n8n gratis o de pago. Si descargas el ZIP e importas a mano, el README te lo explica.
Tipo de cuenta de n8n (Community vs Con Variables)
En el paso final eliges qué tipo de cuenta de n8n tienes. Eso decide cómo se ponen tus credenciales (OpenAI, Shotstack, etc.):
| Tipo de cuenta | Cómo se ponen las variables |
|---|---|
| Community (gratis) para tu n8n gratis o self-hosted | Los workflows usan variables de entorno ($env). Las pones una vez en Settings → Environment Variables (o el .env del host). El README trae los nombres y valores. |
| Con Variables (pago) | Los workflows usan $vars. Al hacer Deploy directo, la herramienta sube tus credenciales por ti como Variables de n8n. Cero configuración manual. |
Proceso de implementación en n8n
En n8n, ve a Workflows → Import from File. Selecciona content_agent_workflow.json del ZIP (más los sub-workflows incluidos, si tu pipeline los genera). Atajo: usa el Deploy directo del wizard y omite este paso.
En n8n, ve a Settings → Environment Variables. Crea al menos: OPENAI_API_KEY, SHOTSTACK_API_KEY (o CREATOMATE_API_KEY), GDRIVE_CLIENT_ID, GDRIVE_CLIENT_SECRET. Opcionalmente: BUFFER_TOKEN, OWNER_EMAIL.
Abre el nodo "Cargar Config del Agente" en n8n y pega el contenido completo de agent_config_reference.json. Reemplaza TODO el objeto de ejemplo.
Abre el nodo "Presets de Edición" y pega el contenido de style_presets.json. Este JSON define todos los parámetros de edición del workflow.
Activa el workflow. Envía un POST al webhook de entrada (/webhook/lex-content-agent-trigger) con el body: {"video_url": "https://youtube.com/watch?v=..."}. Monitorea la ejecución en n8n y verifica que los clips aparecen en Google Drive.
Validación pre-exportación (campos críticos)
- Nombre del agente y del canal configurados
- Al menos 1 plataforma destino seleccionada
- Al menos 1 módulo activo en el pipeline
- Fuente de video configurada
- Motor de transcripción seleccionado
- Motor de edición de video configurado (Shotstack o Creatomate para n8n Cloud)
- Al menos 1 destino de almacenamiento (Google Drive, S3 o Cloudinary)
Opciones avanzadas del paso Exportar
Antes de generar el ZIP, el paso Exportar incluye cuatro tarjetas opcionales. Ninguna es obligatoria: si no tocas nada, el workflow se genera igual.
(a) Adapter Providers
Fija explícitamente qué servicio usa cada categoría:
| Selector | Opciones |
|---|---|
| Storage | Supabase · AWS S3 · Cloudflare R2 · Cloudinary |
| Mensajería | Meta WhatsApp · Twilio WhatsApp · Facebook Messenger · Slack · Telegram |
| Brevo · Resend | |
| LLM | Anthropic · OpenAI · Gemini |
| PDFShift · Gotenberg | |
| Conversiones | Meta CAPI · Google Ads · TikTok Events. Multi-selección: se genera un flujo de tracking por cada red elegida. |
| Research | Brave · Tavily · Perplexity · OpenAI (LLM) · Anthropic (LLM) · Gemini (LLM) |
| Acortador de URLs | TinyURL · Bitly |
| Destino de despliegue | Self-hosted · Cloud |
(b) Credenciales (opcional)
Si quieres, puedes pegar tus credenciales aquí y el wizard las inyecta en el .env.example del ZIP. Se agrupan por servicio:
- WhatsApp (Meta Cloud) — Phone ID, Access Token, Verify Token, App Secret
- Google Calendar / Calendly — Client ID/Secret, Calendar ID, API Key, User URI
- CRMs — Clientify, HubSpot, GoHighLevel, Salesforce, Pipedrive
- LLM — Anthropic, OpenAI, Gemini
- Storage — Supabase (URL + Service Role Key), Cloudflare R2 (Account, Access Key, Secret)
- Email y notificaciones — Mailgun, Brevo, correo y WhatsApp del dueño
- Conversiones — Meta Pixel ID, Meta CAPI Token
(c) Features industriales (opcional)
Capacidades extra opcionales que se inyectan al workflow solo si las activas (algunas son transversales, pensadas para agentes que además conversan con clientes). Si no enciendes ninguna, el ZIP queda idéntico.
| Feature | Qué agrega |
|---|---|
| Logs estructurados | Registra cada evento (inicio/fin/error) en Supabase, listo para dashboards de analytics. |
| Persistencia conversacional | Guarda el estado en Redis con TTL, para que sobreviva entre mensajes. Requiere Redis. |
| Router por intención | Un LLM clasifica cada mensaje y lo enruta con un Switch. Requiere API key de LLM. |
| Intérprete de "no" | Clasifica los rechazos del cliente en categorías (sin presupuesto, más tarde, no interesado…) para decidir el seguimiento. |
| Handoff resume (HMAC) | Webhook firmado para que un operador libere al bot tras un handoff. Requiere una variable secreta. |
| Validador de salida | Revisa la salida del LLM contra términos prohibidos y bloques faltantes; inyecta logos y assets. |
(d) Modo de despliegue del workflow
Cambia cómo se generan los nodos de render de video:
| Modo | Qué implica |
|---|---|
| Self-hosted | Tu propio n8n en Docker/localhost con ffmpeg local. Sin costos extra de render. |
| Cloud | n8n.cloud u otro host sin ffmpeg. El render de subtítulos y video se delega a la API de Shotstack. |
Flujo de Producción Completo
El viaje de un video desde su entrada hasta los clips publicados en redes sociales.
Video
de entrada
Webhook
Trigger
Cargar
Config
Transcripción
(Whisper)
Detector Viral
Corte API
Subtítulos
Efectos
Miniatura
Títulos SEO
Upload
Publicar
Notificar al creador
Email / WhatsApp / Telegram
Lógica Interna del Pipeline
Cómo el agente orquesta módulos, maneja errores y garantiza la continuidad del flujo.
Flujo de decisión por módulo
inicia
Pasar al módulo N+1
Reintento (hasta 3x)
→ Notificar error
→ Continuar o abortar
Manejo de errores por módulo
| Módulo | Error típico | Acción del agente |
|---|---|---|
| Transcripción | Video muy largo, formato no soportado, API caída | Reintenta hasta 3 veces. Si falla, aborta el pipeline y notifica al creador con el error específico. |
| Detector Viral | LLM excede tokens, respuesta malformada | Reintenta con un modelo de fallback (GPT-4o Mini). Si falla, usa timestamps equidistantes para cortar. |
| Corte de Video | API de video caída, créditos agotados | Si Shotstack falla, intenta con Creatomate. Si ambos fallan, almacena en cola para reintento. |
| Subtítulos | Archivo SRT malformado, fuente no encontrada | Usa subtítulos de fallback con parámetros por defecto del preset. |
| Upload | Drive sin espacio, credenciales expiradas | Notifica al creador. Guarda los clips localmente si hay failover de almacenamiento. |
| Publicación | Token de red social expirado, límite de publicaciones | Guarda el clip en cola para publicación manual. Notifica al creador con el enlace de Drive. |
Cómo Funcionan los Presets de Influencer
El sistema técnico detrás de los parámetros de edición basados en estilos de creadores.
técnicos de edición
(Natural Language)
ejecuta instrucciones
¿Qué pasa al combinar dos presets?
Cuando seleccionas 2 presets, el LLM analiza ambos editing_prompt y los style_params, luego genera un prompt sintetizado que mezcla ambos estilos. El sistema hace una media ponderada de los parámetros numéricos:
// Ejemplo: MrBeast (ultra agresivo) + GaryVee (orgánico)
preset_A.max_silence_cut_ms = 100 // MrBeast
preset_B.max_silence_cut_ms = 500 // GaryVee
// Resultado mezclado:
merged.max_silence_cut_ms = 300 // Media: ritmo moderado-agresivo
// GaryVee no usa zoom. MrBeast sí. Resultado:
merged.zoom_effect = true // Se activa
merged.zoom_intensity = 0.10 // Intensidad reducida (media de 0.20 y 0.0)
Anatomía de un Preset (JSON completo)
{
"id": "hormozi",
"name": "Alex Hormozi",
"cat": "Retención & Marca Personal",
"emoji": "",
"desc": "...",
"style_params": {
"max_silence_cut_ms": 200,
"zoom_effect": true,
"zoom_intensity": 0.15,
"subtitle_style": {
"font": "Montserrat Black",
"size": 72,
"color": "#FFFFFF",
"stroke_color": "#000000",
"highlight_keywords": true,
"highlight_color": "#FFD700",
"animation": "pop_word",
"position": "center"
},
"cut_rhythm": "aggressive",
"music_energy": "high",
"hook_aggressive": true,
"opening_seconds_max": 3
},
"editing_prompt": "Edit in the style of Alex Hormozi: remove all silences over 200ms..."
}
Estructura del JSON de Configuración
El JSON exportado que alimenta el workflow de n8n.
{
"content_agent_config": {
"identity": { agent_name, channel_name, niche, language, creator_style, platforms },
"active_modules": [ "transcription", "clip_detection", "auto_cut", "subtitles",
"effects", "thumbnail", "seo_text", "script", "upload", "publish" ],
"pipeline_order": [ /* mismo array que active_modules en el orden de ejecución */ ],
"active_presets": [ "hormozi", "garyvee" ],
"preset_params": { /* estilo mezclado de los presets activos */ },
"video_input": { exec_mode, source_type, max_duration, video_lang,
num_clips, min_clip_s, max_clip_s, output_formats, quality },
"ai_engines": { transcription, llm_model, llm_temperature, output_lang,
image_engine, video_engine },
"memory": { content_types, storage_type, brand_kit },
"notifications": { channels, owner_email, owner_phone, per_module, template },
"apis": { mandatory: [], video: [], transcription: [], storage: [], publish: [], images: [] }
},
"_meta": { generator: "INDUSTRIAL NODES", created, validation }
}
Implementación en n8n
Nodos incluidos en el workflow exportado y cómo conectarlos.
Nodos incluidos en el workflow
| Nodo | Tipo n8n | Función |
|---|---|---|
| Webhook Trigger Principal | Webhook v2 | Recibe el video_url y parámetros de configuración para iniciar el pipeline |
| Cargar Config del Agente | Code v2 | Extrae el content_agent_config e inicializa el estado del pipeline |
| Descargar / Acceder Video | HTTP Request v4.2 | Descarga el video desde la URL o accede a Google Drive según la fuente configurada |
| Transcribir con Whisper | HTTP Request v4.2 | Envía el audio a OpenAI Whisper API y recibe la transcripción con timestamps |
| Detectar Clips Virales (LLM) | HTTP Request v4.2 | Envía transcripción + preset + nicho al LLM. Recibe JSON con timestamps de clips |
| Iterar sobre Clips | SplitInBatches v3 | Itera sobre cada clip detectado para procesarlo individualmente |
| Cortar Video (Shotstack / Creatomate) | HTTP Request v4.2 | Envía job de renderizado a la API de video seleccionada |
| Esperar Renderizado | Wait v1 | Polling hasta que la API de video confirme que el renderizado completó |
| Añadir Subtítulos | HTTP Request v4.2 | Job de subtítulos a la API de video con el estilo del preset activo |
| Aplicar Efectos | HTTP Request v4.2 | Job de efectos (zoom, música, transiciones) según el preset |
| Generar Miniatura | HTTP Request v4.2 | Envía prompt de imagen al motor de IA configurado (DALL-E 3, etc.) |
| Generar SEO | HTTP Request v4.2 | Envía prompt al LLM con el transcript del clip y el estilo del creador. Recibe título + descripción + tags |
| Subir a Google Drive | HTTP Request v4.2 | Sube el clip final + miniatura + SRT a la carpeta del proyecto en Drive |
| Programar Publicación (Buffer) | HTTP Request v4.2 | Envía el video, caption y horario a Buffer para publicación programada |
| Guardar en Memoria | HTTP Request v4.2 | Registra el proyecto y los clips en Supabase/Airtable para memoria del agente |
| Notificar al Creador | Code v2 + HTTP | Prepara y envía la notificación de resumen por los canales configurados |
| Error Handler | Error Trigger v1 | Captura errores de cualquier nodo y notifica al creador con detalles del fallo |
Variables de entorno necesarias
| Variable | Para qué | Requerida |
|---|---|---|
$env.OPENAI_API_KEY | Whisper + GPT-4o + DALL-E 3 | Sí |
$env.SHOTSTACK_API_KEY | Renderizado de video en la nube | Sí (si n8n Cloud) |
$env.CREATOMATE_API_KEY | Alternativa a Shotstack | Opcional |
$env.GDRIVE_CLIENT_ID | Google Drive OAuth2 | Sí (si usa Drive) |
$env.GDRIVE_CLIENT_SECRET | Google Drive OAuth2 | Sí (si usa Drive) |
$env.BUFFER_TOKEN | Publicación multi-red | Opcional |
$env.SUPABASE_URL | Base de datos de memoria del agente | Opcional |
$env.SUPABASE_SERVICE_KEY | Acceso a Supabase | Opcional |
$env.OWNER_EMAIL | Email del creador para notificaciones | Opcional |
$env.FFMPEG_PATH | Ruta de FFmpeg en servidor (solo self-hosted) | Opcional |
.env.example pueden incluirlas. Si vas a compartir esos archivos, deja los campos vacíos y configura las claves directamente en n8n (Settings → Variables), donde se manejan como variables de entorno y nunca quedan dentro del workflow.APIs y Webhooks del Sistema
| Servicio | Tipo | Endpoint / Acción | Nota |
|---|---|---|---|
| Trigger principal del workflow | Webhook IN | /webhook/lex-content-agent-trigger | POST con {"video_url": "..."} |
| Shotstack | API OUT | POST https://api.shotstack.io/v1/render | Envía job de renderizado de video |
| Shotstack polling | API OUT | GET https://api.shotstack.io/v1/render/{id} | Verifica si el renderizado completó |
| OpenAI Whisper | API OUT | POST https://api.openai.com/v1/audio/transcriptions | Transcribe el audio del video |
| OpenAI Chat | API OUT | POST https://api.openai.com/v1/chat/completions | Análisis viral, SEO, guiones |
| Google Drive | API OUT | Google Drive API v3 | Subir clips procesados |
| Buffer | API OUT | POST https://api.bufferapp.com/1/updates/create.json | Programar publicación |
| Notificación de Email | SMTP / API OUT | Mailgun, SendGrid o SMTP propio | Resumen de procesamiento al creador |
Preguntas Frecuentes
Para el Creador
¿Puedo usar el agente con videos que no son míos (ej: una entrevista)?
Sí. El agente procesa cualquier video que le pases, sin importar quién lo grabó. Asegúrate de tener los derechos de uso del contenido antes de publicar los clips.
¿Cuántos clips puede generar por video?
El configurador permite de 1 a 30 clips por video. Para videos de 30-60 min, 10 clips es el estándar recomendado. Para podcasts de 2h+, 20-25 clips maximizan el ROI del procesamiento.
¿Puedo cambiar el preset después de exportar?
Sí. Vuelve al configurador, cambia los presets y re-exporta. El workflow de n8n usa el style_presets.json que puedes reemplazar sin importar el workflow de nuevo.
¿El agente puede crear contenido en inglés aunque el video sea en español?
Sí. Configura el idioma del video de entrada en Paso 4 y el idioma de los outputs de texto en Paso 6 de forma independiente. El agente traducirá los títulos, descripciones y captions al idioma objetivo.
¿Puedo usar varios presets personalizados para diferentes tipos de video?
Sí. Crea múltiples presets personalizados (uno para entrevistas, otro para tutoriales, otro para clips motivacionales) y selecciona el apropiado antes de cada ejecución.
Para el Admin
¿Qué pasa si se agota el crédito de Shotstack durante un procesamiento?
El workflow tiene un fallback a Creatomate si ambas claves están configuradas. Si ninguna está disponible, el job se almacena en cola para reintento. El creador recibe una notificación con el estado.
¿Cómo funciona el trigger automático por carpeta de Drive?
En n8n puedes configurar un nodo de Google Drive trigger que monitorea una carpeta específica. Cada vez que se sube un nuevo archivo .mp4, .mov o .mkv, el workflow se ejecuta automáticamente sobre ese video.
¿Se puede ejecutar el workflow manualmente sin webhook?
Sí. En n8n puedes ejecutar el workflow manualmente desde el editor pasando los parámetros directamente en el nodo de inicio. Útil para tests o producciones puntuales.
¿Cómo conecto la autenticación OAuth2 de Google Drive en n8n?
En n8n, ve a Credentials → New → Google OAuth2 API. Ingresa el Client ID y Secret de tu Google Cloud Console. Completa el flujo de autenticación. El token se renueva automáticamente.
¿Puedo procesar múltiples videos en paralelo?
Sí. Cada ejecución del workflow es independiente. puedes enviar múltiples videos al webhook simultáneamente y n8n los procesará en workers paralelos (limitado por tu plan de n8n y los rate limits de las APIs).
Solución de Problemas
El workflow no procesa el video — error en el nodo de descarga
Verifica que la URL del video sea pública o que las credenciales OAuth2 de Google Drive tengan los permisos correctos. Para videos de YouTube, verifica que yt-dlp esté instalado y actualizado en el servidor (self-hosted) o que uses un servicio de descarga cloud.
Los subtítulos no aparecen en el video final
Verifica que el motor de edición de video (Shotstack / Creatomate) esté configurado con las credenciales correctas. Para ver el error específico, revisa los logs de ejecución en n8n del nodo "Añadir Subtítulos".
Los títulos SEO no reflejan el estilo del creador
Revisa el campo "Estilo de comunicación del creador" en el Paso 1. Debe ser muy específico: incluye ejemplos de frases que el creador usa, su vocabulario particular y su estructura de CTA. Cuanto más detallado, más preciso será el LLM.
La publicación en Buffer falla
Verifica que el BUFFER_TOKEN no haya expirado y que los BUFFER_PROFILE_IDS sean correctos. Los Profile IDs se encuentran en la URL del Dashboard de Buffer al seleccionar cada cuenta de red social.
El agente procesa el mismo video dos veces
Activa el módulo de Memoria del agente con Supabase o Google Sheets. El agente registrará los IDs de videos procesados y los filtrará en futuras ejecuciones para evitar reprocesar.
Confiabilidad Industrial
Los mecanismos que evitan que tu pipeline se caiga.
Industrial Nodes está construido bajo prácticas de ingeniería de confiabilidad orientadas a producción: objetivo de 99.99% de disponibilidad (máximo 52.56 minutos de downtime al año) y seis mecanismos de tolerancia a fallos activos en cada agente. No perseguimos un sello estadístico — construimos los sistemas que evitan que el negocio se caiga.
Los 6 pilares de confiabilidad
- Rate Limiting Distribuido: vía RPC
rate_limit_checken Supabase con degradación gracil. Si Supabase no responde, el sistema entra en modo degradado con flag_rate_degradeden lugar de fallar. - Health Check /health: endpoint público que verifica env vars críticas, estado del circuit breaker LLM, ping a OpenAI y Supabase. Persistido en tabla
system_health_log. - Circuit Breaker LLM: estado
CLOSED → OPEN → HALF_OPEN → CLOSEDcon contador de fallos en$getWorkflowStaticData('global').llmFails. Si el LLM falla N veces, el circuit pasa a OPEN y los siguientes requests reciben respuesta degradada sin gastar tokens. - DLQ + Retry Exponencial: webhooks externos con
wh_retry: 3y fallback a Dead Letter Queue (media_dlq) si todos los reintentos fallan. - Idempotency Dual: header
Idempotency-Key+ tabla de tracking (generated_content_log) con TTL 24h. Previene duplicados en la generación de contenido y operaciones del pipeline. - Audit Log Universal: cada transición de estado crítica queda registrada en un log de auditoría (
audit_log) con nivel (info/warn/error), servicio, tipo de evento y contexto — para diagnosticar en producción cualquier cosa que pase.
Query SQL Error Budget
SELECT date_trunc('minute', timestamp) AS minute,
COUNT(*) FILTER (WHERE overall_status IN ('unhealthy','degraded')) AS down_minutes
FROM system_health_log
WHERE timestamp > now() - interval '30 days'
GROUP BY minute
ORDER BY minute DESC;
Calidad de lo que exportas
Cada agente que generas pasa por una validación automatizada antes de entregártelo —schema n8n 1.x/2.x, typeVersions, expresiones y conexiones— para que importe limpio en tu instancia, sin los errores típicos de un JSON armado a mano.
Validación de Workflows n8n
Cómo Industrial Nodes verifica cada workflow antes de entregártelo.
Cuando exportas o despliegas, Industrial Nodes valida automáticamente el workflow contra la especificación de n8n (1.x/2.x) — schema, typeVersions, expresiones y conexiones — para que importe limpio sin que revises nada a mano. No tienes que correr ninguna herramienta.
Exit codes
0: validación exitosa, sin issues críticos1: errores críticos detectados (workflow no importable o con bugs)2: solo warnings (modo--stricttratará esto como fallo)
Qué valida
- Estructura root:
name,nodes,connectionsrequeridos settings.executionOrder = 'v1'(legacy 'v0' detectado como warning)versionIdcon formato UUID v4- Cada nodo: id único, name único, type contra whitelist, typeVersion contra whitelist por tipo
- Connections: source y target deben existir en
nodes[] - Credentials: shape
{id, name}, genericAuthType válido - Expressions: prefijo
=mandatory,$('NodeName')referencia nodos existentes - 15 node types canónicos n8n 1.x
Tabla de node types n8n 1.x soportados (2026)
| Type | typeVersion actual | Versions válidas | Docs |
|---|---|---|---|
n8n-nodes-base.webhook | 2 | [1, 1.1, 2] | Docs |
n8n-nodes-base.httpRequest | 4.4 | [1, 2, 3, 4, 4.1, 4.2, 4.3, 4.4] | Docs |
n8n-nodes-base.code | 2 | [1, 2] | Docs |
n8n-nodes-base.switch | 3 | [1, 2, 3] | Docs |
n8n-nodes-base.if | 2 | [1, 2] | Docs |
n8n-nodes-base.merge | 3 | [1, 2, 2.1, 3] | Docs |
n8n-nodes-base.wait | 1.1 | [1, 1.1] | Docs |
n8n-nodes-base.scheduleTrigger | 1.2 | [1, 1.1, 1.2] | Docs |
n8n-nodes-base.respondToWebhook | 1.5 | [1, 1.1, 1.2, 1.3, 1.4, 1.5] | Docs |
n8n-nodes-base.splitInBatches | 3 | [1, 2, 3] | Docs |
n8n-nodes-base.executeWorkflow | 1.2 | [1, 1.1, 1.2] | Docs |
n8n-nodes-base.formTrigger | 2.2 | [1, 2, 2.1, 2.2, 2.3] | Docs |
n8n-nodes-base.manualTrigger | 1 | [1] | Docs |
n8n-nodes-base.emailReadImap | 1 | [1] | Docs |
n8n-nodes-base.workflowTrigger | 1 | [1] | Docs |
Variables de Entorno (.env.example)
32+ variables organizadas en 9 categorías. Copia .env.example a .env y completa solo las categorías que tu agente realmente use.
n8n Core
| Variable | Descripción | Dónde obtenerla | Requerida |
|---|---|---|---|
WEBHOOK_URL | URL base de tu instancia n8n | Tu dominio n8n (ej: https://n8n.tudominio.com) | Sí |
EXECUTIONS_TIMEOUT | Timeout global de ejecuciones (segundos) | Valor recomendado: 3600 | Opcional |
NODE_FUNCTION_ALLOW_BUILTIN | Módulos Node.js permitidos en Code nodes | Valor: crypto,buffer,url | Opcional |
Supabase (REQUIRED)
| Variable | Descripción | Dónde obtenerla | Requerida |
|---|---|---|---|
SUPABASE_URL | URL del proyecto Supabase | Supabase Dashboard → Settings → API → Project URL | Sí |
SUPABASE_KEY | Service role key de Supabase | Supabase Dashboard → Settings → API → service_role (secret) | Sí |
SUPABASE_STORAGE_BUCKET | Nombre del bucket de storage | Crear en Supabase Storage. Default: lex-content | Opcional |
LLM Providers (al menos uno)
| Variable | Descripción | Dónde obtenerla | Requerida |
|---|---|---|---|
OPENAI_API_KEY | API key de OpenAI (GPT-4o, Whisper, DALL-E, embeddings) | platform.openai.com/api-keys | Sí (recomendado) |
ANTHROPIC_API_KEY | API key de Anthropic (Claude) | console.anthropic.com | Alternativa |
GOOGLE_AI_API_KEY | API key de Google AI (Gemini) | aistudio.google.com | Alternativa |
Media APIs (Content Pipeline)
| Variable | Descripción | Dónde obtenerla | Requerida |
|---|---|---|---|
ELEVENLABS_API_KEY | Voz IA / TTS premium para voiceover | elevenlabs.io → Profile → API Key | Opcional |
FREESOUND_API_KEY | Efectos de sonido gratuitos | freesound.org | Opcional |
EPIDEMIC_SOUND_API_KEY | Música de fondo premium | Epidemic Sound Partner API | Opcional |
ARTLIST_API_KEY | Música y SFX premium | Artlist Enterprise API | Opcional |
PIXABAY_API_KEY | Imágenes/videos stock gratuitos | pixabay.com/api | Opcional |
PEXELS_API_KEY | Imágenes/videos stock gratuitos | pexels.com/api | Opcional |
UNSPLASH_API_KEY | Fotografía stock premium | unsplash.com/developers | Opcional |
SHUTTERSTOCK_API_KEY | Stock media premium | shutterstock.com/developers | Opcional |
Image Generation
| Variable | Descripción | Dónde obtenerla | Requerida |
|---|---|---|---|
STABILITY_API_KEY | Stable Diffusion API (miniaturas, banners) | platform.stability.ai | Opcional |
REPLICATE_API_TOKEN | Modelos open-source via API | replicate.com | Opcional |
NANO_BANANA_API_KEY | GPU serverless para modelos custom | Banana.dev / Fal.ai dashboard | Opcional |
DALL_E_API_KEY | DALL-E 3 (usa OPENAI_API_KEY si es la misma) | Misma que OPENAI_API_KEY | Opcional |
Notificaciones
| Variable | Descripción | Dónde obtenerla | Requerida |
|---|---|---|---|
OWNER_EMAIL | Email del creador para alertas | Tu email | Recomendado |
OWNER_PHONE | Teléfono del creador para alertas SMS | Tu número personal | Opcional |
SENDGRID_API_KEY | API key de SendGrid para emails | app.sendgrid.com | Opcional |
SLACK_WEBHOOK_URL | Webhook de Slack para notificaciones | Slack App → Incoming Webhooks | Opcional |
TELEGRAM_BOT_TOKEN | Token del bot de Telegram | @BotFather en Telegram | Opcional |
TELEGRAM_CHAT_ID | Chat ID para notificaciones Telegram | @userinfobot o API getUpdates | Opcional |
RESEND_API_KEY | Alternativa a SendGrid | resend.com | Opcional |
Storage & Video Cloud
| Variable | Descripción | Dónde obtenerla | Requerida |
|---|---|---|---|
GOOGLE_CLOUD_STORAGE_BUCKET | Bucket GCS para clips procesados | Google Cloud Console → Storage | Opcional |
R2_BUCKET | Bucket Cloudflare R2 | Cloudflare Dashboard → R2 | Opcional |
R2_ENDPOINT | Endpoint de Cloudflare R2 | Cloudflare R2 → Settings | Opcional |
SHOTSTACK_API_KEY | API de renderizado de video cloud | dashboard.shotstack.io | Sí (si n8n Cloud) |
CREATOMATE_API_KEY | Alternativa a Shotstack para video | creatomate.com | Opcional |
Búsqueda Web (Content Research)
| Variable | Descripción | Dónde obtenerla | Requerida |
|---|---|---|---|
TAVILY_API_KEY | Búsqueda web IA para research | tavily.com | Opcional |
SERPAPI_KEY | Google Search API wrapper | serpapi.com | Opcional |
BRAVE_API_KEY | Brave Search API | brave.com/search/api | Opcional |
.env a Git. Asegúrate de que .gitignore lo excluya. En n8n, configura las variables en Settings → Variables.Endpoint /health
Health check público para monitoreo de uptime y estado del pipeline de contenido.
URL del Endpoint
GET {{WEBHOOK_URL}}/webhook/lex-health
Response Payload (200 OK - Healthy)
{
"status": "healthy",
"overall_status": "healthy",
"timestamp": "2026-04-11T12:00:00.000Z",
"checks": {
"env_vars": { "status": "ok", "missing": [] },
"circuit_breaker": { "status": "CLOSED", "fail_count": 0 },
"openai_ping": { "status": "ok", "latency_ms": 120 },
"supabase_ping": { "status": "ok", "latency_ms": 45 },
"video_api": { "status": "ok", "provider": "shotstack" }
},
"version": "1.0",
"uptime_seconds": 86400
}
Response Payload (503 - Degraded/Unhealthy)
{
"status": "degraded",
"overall_status": "degraded",
"timestamp": "2026-04-11T12:05:00.000Z",
"checks": {
"env_vars": { "status": "ok", "missing": [] },
"circuit_breaker": { "status": "OPEN", "fail_count": 5 },
"openai_ping": { "status": "timeout", "latency_ms": null },
"supabase_ping": { "status": "ok", "latency_ms": 50 },
"video_api": { "status": "ok", "provider": "shotstack" }
},
"version": "1.0",
"uptime_seconds": 86400
}
Códigos HTTP
| Código | Estado | Significado |
|---|---|---|
200 | healthy | Todos los checks pasan. Pipeline operativo. |
503 | degraded | Al menos un check falla pero el pipeline sigue operando con limitaciones. |
503 | unhealthy | Checks críticos fallan. El pipeline no puede procesar videos. |
Query SQL para Monitoreo
-- Últimas 24h de health checks
SELECT timestamp, overall_status, checks
FROM system_health_log
WHERE timestamp > now() - interval '24 hours'
ORDER BY timestamp DESC
LIMIT 100;
-- Uptime % últimos 30 días
SELECT
ROUND(
100.0 * COUNT(*) FILTER (WHERE overall_status = 'healthy') / COUNT(*),
4
) AS uptime_pct
FROM system_health_log
WHERE timestamp > now() - interval '30 days';
Integración con Servicios de Monitoreo
| Servicio | Configuración |
|---|---|
| Uptime Robot | New Monitor → HTTP(s) → URL: {{WEBHOOK_URL}}/webhook/lex-health → Interval: 5 min → Alert on 503 |
| Pingdom | Add Check → HTTP → URL del health endpoint → Check interval: 1 min → Alert contacts |
| Healthchecks.io | New Check → Cron: */5 * * * * → Ping URL desde n8n Schedule Trigger cada 5 min |
| Better Stack | Monitors → New → HTTP → URL + Expected status 200 → Alertas por Slack/Email |
Despliegue a Producción
Checklist paso a paso para poner tu pipeline de contenido en producción.
Checklist de Despliegue
- Clonar/instalar n8n:
npx n8n(local) o desplegar en n8n Cloud, Railway, o Docker. Verificar que sea n8n 1.x+. - Importar workflow JSON: En n8n, ir a Workflows → Import from File → seleccionar el JSON exportado por el configurador.
- La validación ya ocurrió: el wizard verifica cada workflow automáticamente al exportarlo, así que puedes importarlo directo. Si editaste el JSON a mano, re-expórtalo desde el wizard para re-validarlo.
- Configurar credenciales en n8n: Settings → Variables → agregar cada variable del
.env.example. Mínimo:OPENAI_API_KEY,SUPABASE_URL,SUPABASE_KEY,SHOTSTACK_API_KEYoCREATOMATE_API_KEY. - Ejecutar SQL setup en Supabase: Ejecutar los scripts SQL de tablas necesarias (
system_health_log,audit_log,generated_content_log, etc.) en el SQL Editor de Supabase. - Configurar Google Drive (opcional): Si usas Drive como fuente de video, configurar OAuth2 en n8n: Credentials → New → Google OAuth2 API.
- Activar workflow: En n8n, toggle "Active" en la esquina superior derecha del workflow.
- Test request: Enviar un video de prueba al webhook:
curl -X POST {{WEBHOOK_URL}}/webhook/lex-content-agent-trigger \ -H "Content-Type: application/json" \ -d '{"video_url":"https://example.com/test-video.mp4"}' - Verificar /health:
Debe retornarcurl {{WEBHOOK_URL}}/webhook/lex-health{"status":"healthy"}. - Configurar monitoreo: Conectar Uptime Robot, Pingdom o Healthchecks.io al endpoint
/health. - Backup del workflow: Guardar una copia del JSON en un repositorio Git.
Superprompts Industriales Copy-Paste
Prompts production-ready para cada campo del configurator-content. Copia, personaliza los {{PLACEHOLDERS}} y pega en el configurador.
Campo: Estilo de Comunicación del Creador (f_creatorStyle)
PERFIL DE COMUNICACIÓN DEL CREADOR:
NOMBRE: {{NOMBRE_CREADOR}}
PLATAFORMAS: {{PLATAFORMAS}} (ej: YouTube, TikTok, Instagram)
NICHO: {{NICHO}} (ej: finanzas personales, fitness, tecnología)
TONO Y ENERGÍA:
- Nivel de energía: {{NIVEL_ENERGÍA: ej: Alto y motivacional / Calmado y reflexivo / Intenso y directo}}
- Vocabulario: {{VOCABULARIO: ej: Usa jerga técnica / Lenguaje casual con slang / Formal pero accesible}}
- Muletillas frecuentes: "{{MULETILLA_1}}", "{{MULETILLA_2}}", "{{MULETILLA_3}}"
- Frases de apertura típicas: "{{FRASE_APERTURA}}"
- CTAs habituales: "{{CTA_HABITUAL}}"
ESTRUCTURA DE CONTENIDO:
- Hook típico: {{TIPO_HOOK: ej: Pregunta provocativa / Dato impactante / Historia personal}}
- Duración promedio de clips: {{DURACIÓN_CLIPS}} segundos
- Ritmo de edición: {{RITMO: ej: Cortes rápidos cada 2-3s / Tomas largas de 10-15s / Mixto}}
EJEMPLOS DE TÍTULOS QUE USA:
1. "{{EJEMPLO_TÍTULO_1}}"
2. "{{EJEMPLO_TÍTULO_2}}"
3. "{{EJEMPLO_TÍTULO_3}}"
TEMAS QUE NUNCA TOCA: {{TEMAS_PROHIBIDOS}}
AUDIENCIA TARGET: {{AUDIENCIA}} (ej: Hombres 25-35, emprendedores digitales)
Cuanto más detallado sea el perfil, mejor replicará el LLM el estilo del creador en títulos, descripciones y guiones.
Campo: Descripción del Preset Personalizado (cp_desc)
PRESET: {{NOMBRE_PRESET}}
INSPIRADO EN: {{CREADOR_REFERENCIA}} (ej: MrBeast, Alex Hormozi, Marques Brownlee)
PROPÓSITO: {{PROPÓSITO}} (ej: clips virales para TikTok, highlights de podcast, tutoriales cortos)
ESTILO VISUAL:
- Ritmo de corte: {{RITMO_CORTE: ultra_aggressive / fast / medium / organic / luxury}}
- Zoom: {{ZOOM: ej: Sí, intensidad 1.3x en puntos clave / No zoom}}
- Subtítulos: {{ESTILO_SUBTITULOS: ej: Bold centered, 2 palabras por línea, amarillo con outline negro}}
- Transiciones: {{TRANSICIONES: ej: Hard cut / Swipe / Fade / Glitch}}
ESTILO DE AUDIO:
- Música de fondo: {{MUSICA: ej: Lo-fi hip hop suave / Épica cinematográfica / Sin música}}
- Energía musical: {{ENERGIA_MUSICA: low / medium / high / cinematic}}
- SFX: {{SFX: ej: Whoosh en transiciones, pop en texto, risas enlatadas / Minimal / Ninguno}}
OUTPUT ESPERADO:
- Plataforma principal: {{PLATAFORMA}} (ej: TikTok 9:16, YouTube Shorts 9:16, Instagram Reels)
- Duración target: {{DURACION_MIN}}-{{DURACION_MAX}} segundos
- Cantidad de clips por video: {{NUM_CLIPS}}
Este preset se convierte en el JSON técnico que controla todos los parámetros de edición del pipeline.
Campo: Prompt de Entrenamiento del Preset (cp_prompt)
Eres un editor de video profesional especializado en contenido {{NICHO}} para {{PLATAFORMA}}.
Tu tarea es analizar la transcripción de un video largo y detectar los mejores momentos para convertir en clips cortos virales.
CRITERIOS DE SELECCIÓN DE CLIPS:
1. HOOK FUERTE: Los primeros 3 segundos del clip deben capturar atención inmediata. Busca:
- Afirmaciones impactantes o contraintuitivas
- Preguntas retóricas poderosas
- Datos o estadísticas sorprendentes
- Inicio de una historia intrigante
2. CONTENIDO DE VALOR: El clip completo debe entregar:
- Una idea completa (no cortar a mitad de explicación)
- Información accionable o entretenimiento puro
- Conexión emocional (humor, inspiración, sorpresa, controversia)
3. CIERRE NATURAL: El clip debe terminar en un punto de resolución o CTA orgánico
FORMATO DE OUTPUT (JSON):
{
"clips": [
{
"start_time": "MM:SS",
"end_time": "MM:SS",
"hook": "Primeras palabras del clip",
"topic": "Tema principal del clip",
"viral_score": 1-10,
"emotion": "{{EMOCION: humor/inspiración/sorpresa/educativo/controversia}}",
"suggested_title": "Título SEO optimizado para {{PLATAFORMA}}",
"suggested_hashtags": ["#tag1", "#tag2", "#tag3"]
}
]
}
REGLAS:
- Detectar máximo {{MAX_CLIPS}} clips
- Duración de cada clip: {{DURACION_MIN}}-{{DURACION_MAX}} segundos
- Priorizar clips con viral_score >= 7
- NO incluir introducciones genéricas ("Hola chicos, bienvenidos...")
- NO incluir secciones de sponsors o anuncios
- Los títulos deben usar el estilo de {{CREADOR}}: {{ESTILO_TÍTULOS}}
Este es el prompt más crítico del pipeline. Define cómo el LLM detecta y recorta los clips virales.
Campo: Instrucciones LLM del Pipeline (pipeLogicCustom)
CONTEXTO: Eres el motor de IA del pipeline de producción de contenido de {{NOMBRE_CANAL}}.
MÓDULO ACTUAL: {{MÓDULO: ej: Detección de clips / Generación SEO / Guión de voiceover / Análisis de engagement}}
INSTRUCCIONES ESPECÍFICAS:
{{INSTRUCCIONES_MÓDULO}}
REGLAS GLOBALES:
- Idioma de output: {{IDIOMA_OUTPUT}}
- Tono: Debe coincidir con el estilo de {{NOMBRE_CREADOR}} ({{TONO_BREVE}})
- Si el input está vacío o corrupto, retornar JSON con "error": "input_invalid" en lugar de inventar contenido
- Tiempo máximo de procesamiento esperado: {{TIMEOUT_SEGUNDOS}}s
- Si el contenido del video es inapropiado o viola guidelines de la plataforma, marcar como "flagged": true
FORMATO DE RESPUESTA:
Siempre JSON válido. Sin texto antes o después del JSON. Sin markdown code fences.
{{SCHEMA_JSON_ESPERADO}}
Personaliza por cada nodo del pipeline que use LLM.
Campo: Template de Notificación (f_notifTemplate)
RESUMEN DE PRODUCCIÓN - {{NOMBRE_CANAL}}
Video procesado: "{{TÍTULO_VIDEO}}"
Duración original: {{DURACIÓN_ORIGINAL}}
Fecha de procesamiento: {{FECHA}}
CLIPS GENERADOS: {{NUM_CLIPS}}
{{LISTA_CLIPS:
1. "{{TÍTULO_CLIP_1}}" ({{DURACIÓN_1}}s) - Score viral: {{SCORE_1}}/10
2. "{{TÍTULO_CLIP_2}}" ({{DURACIÓN_2}}s) - Score viral: {{SCORE_2}}/10
...
}}
ASSETS ENTREGADOS:
- {{NUM_CLIPS}} clips editados con subtítulos y efectos
- {{NUM_CLIPS}} miniaturas generadas
- {{NUM_CLIPS}} archivos SRT de subtítulos
- {{NUM_CLIPS}} sets de títulos + descripciones + hashtags SEO
ALMACENAMIENTO:
- Google Drive: {{LINK_CARPETA_DRIVE}}
- Publicación programada en Buffer: {{ESTADO_BUFFER}}
PRÓXIMOS PASOS:
1. Revisar clips en {{LINK_CARPETA_DRIVE}}
2. Aprobar o ajustar títulos/descripciones
3. Confirmar programación de publicación
¿Necesitas reprocesar algún clip? Responde con el número del clip.
Las variables con doble llave son inyectadas por el workflow automáticamente.
Campo: Prompt de SEO (seo_prompt — nodo interno del pipeline)
Eres un experto en SEO de {{PLATAFORMA}} especializado en el nicho de {{NICHO}}.
Genera el paquete SEO completo para el siguiente clip de video:
TRANSCRIPCIÓN DEL CLIP:
{transcript}
ESTILO DEL CREADOR: {{ESTILO_CREADOR}}
PLATAFORMA TARGET: {{PLATAFORMA}}
GENERA (JSON):
{
"title": "Título optimizado (max {{MAX_CHARS_TITULO}} chars). Debe ser {{ESTILO_TÍTULO: ej: provocativo y con números / educativo y directo / clickbait moderado}}",
"description": "Descripción de {{MAX_CHARS_DESC}} chars con keywords naturales. Incluir CTA: {{CTA_ESTÁNDAR}}",
"hashtags": ["30 hashtags ordenados por relevancia. Mezcla de: {{NUM_TRENDING}} trending + {{NUM_NICHO}} de nicho + {{NUM_BRAND}} de marca"],
"thumbnail_prompt": "Prompt para DALL-E 3: miniatura {{ESTILO_MINIATURA: ej: cara sorprendida con texto bold / producto en primer plano / antes/después}}. Texto overlay: máx 4 palabras en {{IDIOMA}}. Colores: {{PALETA_COLORES}}.",
"best_posting_time": "Hora óptima basada en la audiencia de {{ZONA_HORARIA}} para {{PLATAFORMA}}",
"content_category": "Categoría de la plataforma más relevante"
}
REGLAS:
- NO usar emojis en el título (baja CTR en YouTube)
- Hashtags en {{IDIOMA}}, sin espacios dentro del hashtag
- Description debe incluir al menos 3 keywords de cola larga
- Thumbnail prompt debe producir imagen que contraste con el feed típico de {{PLATAFORMA}}
La variable {transcript} es inyectada automáticamente. NO cambiar.
Campo: Prompt de Voiceover (voiceover_prompt — nodo interno)
Eres un guionista de voiceover para contenido de {{NICHO}} en {{PLATAFORMA}}.
A partir de la siguiente transcripción de clip, genera un voiceover narrado que:
1. Mantenga el mensaje core del clip original
2. Adapte el lenguaje al estilo de {{NOMBRE_CREADOR}}: {{ESTILO_BREVE}}
3. Sea natural para TTS (sin abreviaturas, sin símbolos, números escritos como palabras)
4. Dure aproximadamente {{DURACIÓN_TARGET}} segundos al ser narrado (~150 palabras/minuto)
TRANSCRIPCIÓN ORIGINAL:
{transcript}
GENERA (JSON):
{
"voiceover_script": "El guión completo, listo para TTS",
"estimated_duration_seconds": número,
"emotion_markers": ["Lista de emociones para modular la voz TTS"],
"pause_points": ["Puntos donde insertar pausa de 0.5s para naturalidad"]
}
REGLAS:
- Máximo {{MAX_PALABRAS}} palabras
- Idioma: {{IDIOMA}}
- NO incluir instrucciones de dirección ("(pausa)", "(énfasis)") dentro del script
- Las pause_points van en array separado con timestamps relativos
Usado cuando el módulo de voiceover está activo en el pipeline.
Campo: Prompt de Miniatura (thumbnail_prompt — nodo interno)
Genera una miniatura profesional para un video de {{PLATAFORMA}} sobre {{NICHO}}.
TÍTULO DEL VIDEO: {title}
RESUMEN: {summary}
ESTILO VISUAL:
- Tipo: {{TIPO_MINIATURA: ej: Cara con expresión exagerada + texto / Producto en acción / Antes y después / Dato impactante}}
- Paleta de colores: {{COLORES: ej: Rojo y amarillo sobre fondo oscuro / Azul corporativo / Colores neón}}
- Texto overlay: Máximo 4 palabras, fuente {{FUENTE: bold sans-serif / handwritten / impact}}, tamaño grande
- Composición: {{COMPOSICION: ej: Regla de tercios, sujeto a la izquierda / Centrado / Split screen}}
REGLAS:
- Resolución: 1280x720 (16:9) para YouTube, 1080x1920 (9:16) para TikTok/Reels
- Alto contraste para legibilidad en móvil
- NO incluir texto pequeño que no se lea en thumbnail
- Estilo consistente con la marca de {{NOMBRE_CANAL}}
- NO generar caras reales de personas (usar ilustración si necesario)
Las variables {title} y {summary} son inyectadas por el pipeline.
Campo: Prompt de Detección de Highlights (highlight_prompt — nodo interno)
Analiza la siguiente transcripción de un video de {{DURACIÓN}} minutos sobre {{TEMA}} y detecta los {{MAX_CLIPS}} mejores momentos para clips cortos.
TRANSCRIPCIÓN CON TIMESTAMPS:
{transcript_with_timestamps}
CRITERIOS DE DETECCIÓN:
1. ENGAGEMENT HOOK (peso 40%): ¿Los primeros 3 segundos capturan atención?
- Pregunta retórica = +3 puntos
- Dato sorprendente = +4 puntos
- Afirmación contraintuitiva = +5 puntos
- Historia personal = +3 puntos
2. VALOR STANDALONE (peso 30%): ¿El clip tiene sentido sin contexto?
- Idea completa = +5 puntos
- Requiere contexto previo = -3 puntos
- Tip/consejo accionable = +4 puntos
3. CIERRE NATURAL (peso 20%): ¿El clip termina en un punto satisfactorio?
- Conclusión clara = +4 puntos
- Corte abrupto = -3 puntos
- CTA orgánico = +3 puntos
4. SHAREABILITY (peso 10%): ¿La gente lo compartiría?
- Opinión polarizante = +3 puntos
- Humor = +4 puntos
- Relatabilidad = +3 puntos
OUTPUT (JSON):
{
"highlights": [
{
"start": "HH:MM:SS",
"end": "HH:MM:SS",
"score": 1-10,
"hook_text": "Primeras 10 palabras",
"category": "{{CATEGORÍAS: educativo/humor/inspiracional/controversial/storytelling}}",
"confidence": 0.0-1.0
}
]
}
FILTROS:
- Solo clips de {{DURACION_MIN}}-{{DURACION_MAX}} segundos
- Excluir secciones de: sponsors, outros, "like y suscríbete", silencios > 3s
- Mínimo {{DISTANCIA_MINIMA}} segundos entre clips (evitar solapamiento)
La variable {transcript_with_timestamps} es generada por Whisper. NO modificar.
Campo: Prompt de Traducción/Localización (localization_prompt — nodo interno)
Traduce y localiza el siguiente contenido de video de {{IDIOMA_ORIGEN}} a {{IDIOMA_DESTINO}} para la audiencia de {{REGIÓN_TARGET}}.
CONTENIDO ORIGINAL:
- Título: {title}
- Descripción: {description}
- Subtítulos: {srt_content}
- Hashtags: {hashtags}
REGLAS DE LOCALIZACIÓN:
1. NO traducción literal. Adaptar expresiones idiomáticas al equivalente local.
2. Mantener el tono {{TONO}} del creador original.
3. Si hay referencias culturales específicas, adaptar al equivalente en {{REGIÓN_TARGET}}.
4. Los hashtags deben ser los trending en {{IDIOMA_DESTINO}} para {{PLATAFORMA}}, no traducciones directas.
5. Los subtítulos SRT deben respetar el timing original (no cambiar timestamps).
6. Números y unidades: convertir a sistema local si aplica (ej: millas a km).
OUTPUT (JSON):
{
"title": "título localizado",
"description": "descripción localizada",
"srt": "contenido SRT localizado con timestamps originales",
"hashtags": ["hashtags localizados"],
"cultural_notes": ["notas sobre adaptaciones culturales realizadas"]
}
Activar solo si el pipeline tiene módulo de localización. Las variables son inyectadas automáticamente.
