Contenido de la documentación

Cómo se produce un video

De una idea escrita a un archivo listo para publicar hay nueve pasos. El primero lo da una persona; los otros ocho los da el worker sin que nadie esté delante.

El recorrido

Flujo de producción
idea → guion → TTS → escenas → subtítulos → render → música → miniatura → almacenamiento

Cada paso alimenta al siguiente con algo concreto, y el orden no es negociable: sin los tiempos de la voz no hay escenas que sincronizar, y sin el archivo subido no hay video que mostrar.

Paso a paso

  1. La idea entra en la cola. Un video creado con guion queda en READY_TO_GENERATE. Sin guion queda como IDEA y espera a que alguien lo promueva.
  2. El worker lo reclama. Sondea la cola cada cinco segundos y toma el más antiguo con FOR UPDATE SKIP LOCKED, así que pueden correr varios workers sin pisarse. Al arrancar, re-encola lo que quedó en GENERATING: solo puede ser de un worker que murió a mitad.
  3. Voz. edge-tts sintetiza el guion con la voz configurada. Lo que importa no es el audio: devuelve los tiempos de cada palabra, y sobre esos tiempos se monta todo lo demás.
  4. Escenas. Si el video trae un proyecto diseñado, se usa tal cual. Si no, se arma un layout automático con título, narración y subtítulos.
  5. Subtítulos. De los cues salen las capas de texto, de tres a cinco palabras cada una, en la franja baja que el diseño deja libre a propósito.
  6. Render. Playwright abre /editor en Edge o Chromium, carga el proyecto en window.autoreel y exporta H.264 con WebCodecs. Es la misma página que vería cualquiera: el editor no es un modo especial.
  7. Música. Todos los videos llevan fondo. Si el proyecto no trae pista, entra el instrumental del repositorio a volumen 0.12. La narración va a 1.25 con un limitador que atrapa los picos.
  8. Miniatura. Se diseña y se renderiza como una pieza propia, desde el título o desde un diseño explícito. Solo si ese render falla se cae al frame del video.
  9. Subida, y recién ahí listo. El MP4 sube al almacenamiento antes de marcar el video como READY. En ese orden: READY es lo que le dice a la web que ya se puede ver.

Por qué subir antes de marcar READY

Marcar el video como listo y subirlo después abre una ventana -corta, pero real- en la que alguien abre su video y recibe un 404, porque la web busca el archivo en un sistema de archivos que no es el suyo.

Cuánto tarda

Medido el 22 de septiembre de 2026 con un short vertical de 19 segundos, 44 capas de diseño y 18 de subtítulo:

EtapaTiempo
Voz (edge-tts)3.7 s
Diseño de las escenas (plantilla)0.0 s
Subtítulos0.0 s
Render 1080 x 19207.6 s
Total11.3 s

Son 0.4x tiempo real: el video sale antes de lo que se tarda en verlo. Un short de 60 segundos ronda los 35 segundos de máquina. El cuello de botella de publicar no es la producción.

Estados de un video

Máquina de estados
IDEA → READY_TO_GENERATE → GENERATING → READY → PUBLISHED
                        ↘ FAILED
EstadoQué significa
IDEAExiste, pero no tiene guion o no se ha pedido generar
READY_TO_GENERATEEn la cola, esperando a un worker
GENERATINGUn worker lo tiene tomado
READYEl MP4 está subido y se puede ver y descargar
FAILEDFalló la producción. Se vuelve a encolar con la ruta de render
PUBLISHEDMarcado como publicado. Subirlo sigue siendo manual