Communitygithub.com

atlantis-mk/remotion-video-template

Crea automáticamente videos de voz en off estilo infografía oscura a partir de un tema: guion, locución con Doubao, storyboard, animación Remotion, renderizado, portada y texto de publicación. Soporta horizontal y vertical.

¿Qué es remotion-video-template?

Este skill automatiza completamente la producción de videos informativos con estilo infográfico oscuro y locución en off. Recibe un tema del usuario y, en una secuencia fija de 10 pasos (verificación de entorno, definición del tema, redacción del guion, locución, storyboard, obtención de assets, scaffolding del proyecto, auto-verificación, renderizado y generación de textos de publicación), produce el video final en MP4, su portada y los textos para varias plataformas. Está diseñado para ejecutarse en Claude Code, Cursor o Codex, usando solo herramientas de línea de comandos y scripts de Python/Node.js. El skill es auto-contenido: lee su configuración desde un archivo `.env` local, no requiere dependencias de pip/npm adicionales para sus scripts principales, y se asegura de que ningún dato (como claves API) se filtre en la salida. Utiliza Remotion para las animaciones, Doubao (ByteDance) para la locución, y valida cada artefacto intermedio con esquemas JSON. El flujo completo no requiere intervención del usuario más allá del tema inicial y la confirmación de la clave API.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/atlantis-mk/remotion-video-template/tree/HEAD/.agents/skills/remotion-infographic-video

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Video de Locución con Infografía

Ubicación y Estructura de Entrega (Arquitectura v1.11)

  • La raíz del repositorio de entrega debe contener AGENTS.md (cómo usar esta plantilla); este skill está fijo en .agents/skills/remotion-infographic-video/.
  • tests/ está en la raíz del repositorio (junto a .agents/), pertenece a la puerta de desarrollo/CI, no es parte del runtime del skill y no se copia al «instalar solo el skill».
  • .env solo está en el directorio de este skill, no en la raíz del repositorio.

Preparación Antes de Usar (Copiar y Usar)

  1. Copiar:
    • Uso completo del repositorio: Clona/copia la raíz del repositorio de entrega y ábrelo (incluye AGENTS.md raíz y tests/).
    • Instalar solo el skill: Copia .agents/skills/remotion-infographic-video/ a la misma ruta en el proyecto destino (incluye scripts/ y su lib/).
    • El paquete del skill no necesita instalación con pip / npm; scripts/ solo usa la biblioteca estándar de Python. Una vez configurado .env, se pueden ejecutar los pasos 0–5.
  2. Configurar .env: En el directorio de este skill ejecuta cp .env.example .env, edita .env y completa:
    • Obligatorio: DOUBAO_TTS_API_KEY= (escribe la clave después del signo igual, sin comillas)
    • Opcional: DOUBAO_SPEAKER= (el tono de voz predeterminado se encuentra en VOICE)
    • .env está ignorado por .gitignore, no pegues la clave en el chat y no cambies a otro motor de locución.
  3. Requisitos del Entorno (instalar manualmente, los scripts no lo hacen): Node 18+, Python 3, ffmpeg, ffprobe, conexión a internet.
  4. Comenzar la Creación: Cuando el usuario diga «comenzar a crear» o una intención equivalente:
    • Primero ejecuta python3 scripts/check_env.py (se puede usar --skill-dir <ruta absoluta de este skill>; por defecto es el directorio actual).
    • Código de salida 3: Indica que se debe completar DOUBAO_TTS_API_KEY en .agents/skills/remotion-infographic-video/.env (o en la ruta absoluta de este skill .env). Espera a que el usuario responda «listo» y vuelve a ejecutar; antes de eso no se hace locución ni se crea el proyecto.
    • Si pasa: Si el mensaje ya contiene un tema, ve directamente a los pasos fijos; de lo contrario, solo pregunta una vez por el tema (se puede indicar «vertical»; por defecto horizontal 1920×1080, vertical 1080×1440, reglas en LAYOUT). El nombre de la plataforma no afecta el tamaño del lienzo.

Reglas Estrictas

  • La clave se lee solo del .env en el directorio de este skill (en el repositorio de entrega es .agents/skills/remotion-infographic-video/.env) de DOUBAO_TTS_API_KEY; no permitas que el usuario pegue la clave en el chat, no cambies de motor de locución, no muestres la clave en ninguna salida.
  • No publicar, no subir: solo producir el video final, la portada y los archivos de texto.
  • Los números deben tener fuente; los números en pantalla llevan una marca de fuente; los íconos ilustrativos deben indicar «ilustrativo».
  • La última línea de stdout de cada script es un resumen JSON; manejar según el código de salida: 3 falta clave (indica completar .env, detener), 4 error de autenticación (detener), 5 corregir artefacto anterior, 6 solo re-ejecutar ítems fallidos, 7 entrar en modo de reparación.

Pasos Fijos

  1. Verificación previa: python3 scripts/check_env.py. Código de salida 3: sigue la indicación anterior para completar .env y vuelve a ejecutar.
  2. Definir tema: Determinar topic, slug, tamaño del lienzo, escribir <slug>/job.json (si no se indica tamaño, por defecto horizontal); cuando el usuario nombre una plataforma, escribir platforms, de lo contrario usar las plataformas predeterminadas según PUBLISH.
  3. Redactar guion: Escribir script.md (## Sxx Nombre de sección + - [01] Texto {context: … | rate: 0 | pause: 300}) y sources.md (bloque json al final). Ejecutar python3 scripts/validate.py sources <slug>/script.md <slug>/sources.md; los números sin fuente deben eliminarse o añadir fuente.
  4. Locución: Si hay disponible una herramienta MCP de locución (tts_synthesize) con la misma entrada y salida, usarla; de lo contrario ejecutar python3 scripts/tts_doubao.py <slug>/script.md --out-dir <slug>/voice; ambos producen un timeline.json que se valida con el mismo Schema (assets/schemas/): python3 scripts/validate.py timeline <slug>/voice/timeline.json. Las oraciones fallidas se re-ejecutan con --only.
  5. Storyboard: Escribir storyboard.json (cada oración debe estar cubierta por al menos un plano, las transiciones de sección y las entradas de plano toman valores de enumeración). Ejecutar python3 scripts/validate.py storyboard <slug>/storyboard.json --timeline <slug>/voice/timeline.json.
  6. Assets: Usar python3 scripts/fetch_asset.py con add para registrar cada asset, prune para eliminar assets no utilizados; no usar assets sin autorización clara.
  7. Crear proyecto: python3 scripts/scaffold_project.py --job <slug>/job.json --out <slug>/project genera el proyecto. Escribir las escenas de cada sección según los ejemplos (assets/example/). Luego ejecutar python3 scripts/build_timeline.py --timeline <slug>/voice/timeline.json --storyboard <slug>/storyboard.json --subtitles <slug>/voice/subtitles.json --manifest <slug>/assets-manifest.json --project <slug>/project. Dentro del proyecto ejecutar npm ci.
  8. Auto-verificación: bash scripts/check_project.sh <slug>; si falla, leer check/report.json, reparar y re-ejecutar, máximo 3 veces. Si sigue fallando, detener e informar.
  9. Renderizado: bash scripts/render.sh <slug> produce el video final (<slug>/out/video.mp4) y la portada (<slug>/publish/cover_<W>x<H>.png), con verificación automática.
  10. Textos de publicación y entrega: Según PUBLISH, para cada plataforma destino escribir un conjunto de publish/<plataforma>/title.txt, description.txt. Las etiquetas se escriben por plataforma en publish/<plataforma>/tags.txt (una por línea). Ejecutar python3 scripts/validate.py publish <slug>, python3 scripts/validate.py deliverable <slug>, python3 scripts/validate.py leak <slug>. Luego usar python3 scripts/fetch_asset.py credits-diff --manifest <slug>/assets-manifest.json --slug-dir <slug> para verificar atribuciones.

Resumen de Reglas de Estilo

  • Los valores de color, tamaño de fuente y efectos de movimiento solo provienen de assets/tokens.json, el color de fondo base es #070A0F; el código de escena no debe escribir valores de color (STYLE).
  • Entrada unificada con resorte. 5 tipos de transiciones de sección, 3 tipos de entrada de plano, usando los valores de enumeración del storyboard (MOTION).
  • Solo se usan los 15 componentes del registro; los que no estén en la lista se escriben nuevos dentro del proyecto usando tokens + useLayout() (COMPONENTS).
  • Solo cuatro capas: background / scene / hud / subtitle, sin pantalla de créditos final; la duración del video = duración de la locución.
  • Lo aleatorio solo se genera con random(seed), prohibido Math.random.
  • El diseño se deriva del ancho y alto del lienzo; solo src/layout/presets.ts en src/ puede contener dimensiones del lienzo (LAYOUT).
  • Formato del guion según SCRIPT, parámetros de locución según VOICE, autorización y atribución de assets según ASSETS.

Prohibiciones

  • No publicar ni subir a ninguna plataforma.
  • No filtrar claves: no mostrar, no escribir en artefactos, no permitir que el usuario pegue claves en el chat, no cambiar a otro motor de locución.
  • No usar assets sin autorización clara; atribuciones, descripciones y títulos no deben contener enlaces.
  • No inventar datos: los números sin fuente no entran en el guion ni aparecen en pantalla.
  • No hacer preguntas al usuario entre la definición del tema y la entrega, ni solicitar ningún asset.

Entrega

Devolver de una sola vez el contenido de deliverable.json: ruta del video final y duración, tamaño del lienzo, portada, títulos y descripciones por plataforma, etiquetas, atribuciones de assets, directorio de salida y notas.

Skills relacionados