Communitygithub.com

andyluu98/VideoMotion

Ensambla las imágenes para un proyecto VideoMotion que ya tiene voz y segmentación: descarga las fuentes del estilo, escribe colores, asigna cada escena a un agente vm-canh que se ejecuta en paralelo, ensambla, verifica técnicamente, renderiza, combina audio y subtítulos. Se usa en el paso 7 de /videomotion, o cuando el usuario dice 'reensamblar escena', 'render', 'exportar video', 'corregir imagen de la escena X'.

¿Qué es VideoMotion?

Esta skill automatiza el ensamblaje visual y la exportación final de un proyecto VideoMotion, partiendo de un storyboard ya dividido en escenas con guion, voces y línea de tiempo. Primero prepara los recursos visuales según el estilo definido (fuentes de Google Fonts, colores con contraste accesible, fondo continuo si corresponde). Luego lanza en paralelo agentes `vm-canh` (o un agente genérico con instrucciones detalladas) para que cada escena se renderice de forma independiente, optimizando el tiempo de procesamiento. Tras el ensamblaje, ejecuta una verificación técnica automatizada con Hyperframes y corrige errores hasta que todas las comprobaciones pasen. Finalmente renderiza el video sin audio, combina la pista de audio original con `mix.py`, y exporta el archivo final junto con los subtítulos en formato SRT. Es ideal para completar la etapa 7 del flujo `/videomotion` o responder a comandos como "render", "exportar video" o "reensamblar escena X".

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/andyluu98/VideoMotion/tree/HEAD/skills/vm-dung

Preguntar en tu IA favorita

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

Documentación


name: vm-dung description: Ensambla las imágenes para un proyecto VideoMotion que ya tiene voz y segmentación: descarga las fuentes del estilo, escribe colores, asigna cada escena a un agente vm-canh que se ejecuta en paralelo, ensambla, verifica técnicamente, renderiza, combina audio y subtítulos. Se usa en el paso 7 de /videomotion, o cuando el usuario dice 'reensamblar escena', 'render', 'exportar video', 'corregir imagen de la escena X'.

Ensamblaje y exportación de video

Las variables VV, PY son como en la skill videomotion. HF es npx -y [email protected]. La entrada está en <du-an>: storyboard.json, words.json, timeline.json, mix.wav.

1. Preparación según el estilo

  1. Fuente de la etiqueta style (línea Google Fonts en la etiqueta): "$PY" "$VV/tools/fonts.py" <du-an> "VT323" "Be Vietnam Pro:400,700" produce fonts/ y fonts.css.
  2. theme.css: variables :root de la paleta de colores de la etiqueta: --bg, --ink, --accent, color secundario, --cap-bg, --cap-ink (subtítulos con contraste 4,5:1).
  3. Si el estilo tiene un fondo continuo en todo el video (mapa, papel, pizarra, cuadrícula): escribir compositions/_nen.html (id _nen), las escenas mantienen el fondo transparente.
  4. "$PY" "$VV/tools/assemble.py" <du-an>: crea index.html, copia las fuentes, crea archivos placeholder para las escenas que aún no existen.
  5. "$PY" "$VV/tools/packets.py" <du-an>: empaqueta las tareas checks/packets/<id>.md para cada escena.

2. Asignación paralela de escenas

Envía todas en un solo mensaje, cada escena a un agente, tipo de agente videomotion:vm-canh (declarado con model: sonnet, effort: medium: siempre es la Sonnet más reciente). Instrucción breve:

Ensambla la escena <id>. Paquete de tareas: <du-an>/checks/packets/<id>.md. Plantilla: $VV/templates/scene.html. Escribe el archivo correcto <du-an>/compositions/<id>.html.

Si no hay agente vm-canh disponible (skill instalada sin plugin u otra herramienta): usar un agente genérico con model: "sonnet", effort: "medium", indicándole que lea primero $VV/agents/vm-canh.md. Si la herramienta no soporta agentes hijos, ensamblar secuencialmente según ese archivo.

Si hay menos de 3 escenas, ensamblarlas directamente sin delegar.

3. Ensamblaje y verificación técnica

"$PY" "$VV/tools/assemble.py" <du-an>
cd <du-an> && npx -y [email protected] check

Corregir hasta que aparezca Check passed, 0 errores (si hay errores en el archivo de una escena, corregir ese archivo). La advertencia timeline_track_too_dense de los subtítulos es normal. No se necesita hoja de aprobación ni revisor; si el usuario quiere una vista previa, usar npx -y [email protected] preview --background.

4. Renderizado y combinación de audio

"$PY" "$VV/tools/assemble.py" <du-an> --no-audio
cd <du-an> && npx -y [email protected] render --output renders/raw.mp4 > renders/render.log 2>&1
"$PY" "$VV/tools/audio/mix.py" srt <du-an>
"$PY" "$VV/tools/audio/mix.py" final <du-an> --video <du-an>/renders/raw.mp4 --name <slug>-<ddmmyyyy>
"$PY" "$VV/tools/assemble.py" <du-an>

El render se ejecuta en segundo plano (aproximadamente 2 segundos de máquina por cada segundo de video). --no-audio es obligatorio: mix.py final combina el mix.wav original sin pérdida. El último comando assemble devuelve el index.html con audio para vista previa.

5. Verificación final

ffprobe renders/<nombre>.mp4: comprobar dimensiones correctas, flujo de audio presente, duración igual al total en words.json. Extraer un fotograma del centro del video con ffmpeg y revisarlo visualmente. Entregar renders/<nombre>.mp4 y phude.srt.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

Skills relacionados