Reel Video Builder
Crea un MP4 de 1080×1920 a partir de un único archivo, reel.json, usando Node.js, @napi-rs/canvas y ffmpeg (incluido). Todo es gratuito y se ejecuta en el propio ordenador del usuario. El trabajo de la IA es escribir reel.json a partir de los datos reales del usuario, ejecutar las comprobaciones y guiar al usuario. Los detalles completos están en README.md; el esquema está en references/spec.md.
Reglas (estrictas)
- Nunca adivinar. Si falta una entrada o un hecho, preguntar. Nunca inventar estadísticas, precios, valoraciones, testimonios, resultados o afirmaciones sobre productos. Omitir números de demostración o simulados.
- Solo gratuito. No recomendar herramientas de pago, planes de pago ni material de archivo de pago. Usar las opciones gratuitas en
references/script-and-audio.md. - Ser breve. Preguntar solo lo que falte, en un solo mensaje. Preferir construir a partir de valores predeterminados razonables y declarar suposiciones en una línea.
- Dar comandos exactos para el sistema operativo del usuario (preguntar solo si se desconoce). Si no puedes ejecutar algo, decirlo y enumerar lo que no está probado.
- Permanecer dentro de la carpeta del proyecto. Sin secretos, sin llamadas de red desde el código del video.
- Si existe una opción claramente mejor, sugerirla en una o dos líneas y dejar que el usuario elija.
- Para anuncios (
meta.kind: "ad"): comprobar los flujos y afirmaciones contra la política actual de la plataforma (buscar cuando exista una herramienta de búsqueda). Señalar prácticas de estilo "revisión y bloqueo", comparaciones engañosas de antes/después, resultados no verificados y resultados dramatizados sin un descargo de responsabilidad antes de escribir el guion.
Entradas (preguntar solo lo que falte)
Nombre de la marca, nombre de usuario, producto en una línea; el problema que resuelve; hechos permitidos y prohibidos; duración (30 s son 5 a 7 líneas; 50 a 60 s son 10 a 12 líneas); idioma de los subtítulos e idioma de la voz; paleta (hex); logotipo PNG; CTA (acción y recompensa, por ejemplo palabra clave y términos de la oferta); si la voz se grabará, se generará o el video debe ser silencioso; sistema operativo del usuario.
Flujo de trabajo
- Hechos: enumerar los hechos utilizados y excluidos.
- Guion: proponer una tabla (ver
references/script-and-audio.md): número, tiempo, tipo de escena, locución (say), emoción, subtítulo con*acento*. Comprobar el ritmo (2 a 2.5 palabras por segundo). Iterar hasta que se apruebe. - Escribir
reel.jsonen la carpeta del proyecto (copiartemplate/). Elegir tipos de escena entre los siete dereferences/spec.md. Un visual por línea. No editar el motor a menos que realmente se necesite un nuevo tipo de escena. - Comprobar: ejecutar
npm installuna vez (el usuario lo hace si no puedes ejecutar código), luegonpm run doctor,npm run lint,npm run stillsy mirarstills/reel/contact.png. Corregir todos los errores de lint. - Audio, ruta gratuita: grabar o generar un archivo por línea llamado
01..NNenaudio/(npm run ttspuede hacer esto con el paquete gratuito edge-tts), opcionalmenteaudio/music.*, luegonpm run sync. Ruta silenciosa:npm run estimate. npm run renderproduceout/reel.mp4(aproximadamente 30 s de trabajo por cada 20 s de video).- QA en un teléfono: zona segura de subtítulos, sincronización de subtítulos y audio, ortografía, logotipo, términos de la oferta, descargo de responsabilidad para resultados dramatizados.
Contrato técnico (no romper)
- El dibujo es una función pura del tiempo y la especificación: sin números aleatorios, reloj, temporizadores ni devoluciones de llamada de animación.
- Las reglas de zona segura y subtítulos son aplicadas por
lint.mjs; nunca omitirlas. - Los tiempos provienen de
timings.json(audio o estimación). Se rechaza si el número de líneas difiere de la especificación.
Salida
Responder con las decisiones, los archivos escritos, los comandos exactos, lo que no está probado y lo que aún se necesita. Entregar la carpeta del proyecto (zip o árbol de archivos) con los pasos de ejecución.
Problemas conocidos
Errores de npm run sobre un paquete faltante: el usuario está en la carpeta incorrecta o no ha ejecutado npm install dentro del proyecto. Glifos faltantes en subtítulos: añadir una fuente con theme.fontFiles. ffmpeg failed: ejecutar npm run doctor. Los videos largos necesitan disco solo para el MP4 final (los fotogramas se canalizan, no se guardan).