Communitygithub.com

Fldicoahkiin/demo-video-skill

Produce un video demo o de producto cinematográfico a partir de una aplicación en vivo, completamente automatizado, con el aspecto de Screen Studio / Cap: auto-zoom en clics, cursor elástico con desenfoque de movimiento, fondo de pantalla acolchado con esquinas redondeadas y sombra.

¿Qué es demo-video-skill?

Este skill transforma una aplicación web en ejecución en un video demo pulido con interacción real grabada, narración local por TTS, subtítulos sincronizados con palabras y una pista musical ambiental. Soporta tres motores de grabación: Cap CLI (nativo en macOS, con el look de Screen Studio), charmbracelet VHS (para demos de herramientas CLI) y Playwright (modo headless, cursor sintético). La narración se genera localmente con Kokoro TTS y los subtítulos se sincronizan automáticamente mediante Whisper. La composición final se realiza con HyperFrames HTML, combinando clips, voz, subtítulos y música en un único MP4. Es ideal para grabar demostraciones, tutoriales de productos, videos de hackathon o lanzamientos, siempre que se quiera un video profesional y reproducible.

Compatible con~Claude Code~Codex CLI✓Cursor
npx skills add Fldicoahkiin/demo-video-skill

Preguntar en tu IA favorita

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

Documentación

Demo Video Studio

Convierte una aplicación web en funcionamiento en un video demo pulido: interacción real grabada (no diapositivas, no simulaciones) + narración local por TTS + subtítulos sincronizados con palabras + una pista musical de fondo discreta, compuesta de forma determinista con HyperFrames.

Cuándo usar

Al hacer cualquier video demo / tutorial / producto / lanzamiento / hackathon de una aplicación web, especialmente cuando se deba mostrar el producto real funcionando con narración y subtítulos. Graba una URL desplegada o un servidor de desarrollo local.

Pipeline

① grabar    uno de tres motores (abajo)                    → out/*.mp4|webm
② narrar    escribir VO por escena → Kokoro TTS (local)    → narración/*.wav
③ transcribir Whisper marcas de tiempo a nivel de palabra  → *.transcript.json
④ subtitular agrupar en frases + corregir nombres de marca → subtítulos.js
⑤ música    ffmpeg cama ambiental (mezclada baja bajo la voz) → música/cama.wav
⑥ componer  HyperFrames HTML una línea de tiempo: clips+voz+subtítulos+música → MP4

① tiene tres motores — elige según el objetivo (references/screen-studio-look.md):

ObjetivoMotorAspecto
App web/escritorio, macOSCap CLI — scripts/record-cap.mjsScreen Studio nativo: auto-zoom desde clics reales, cursor elástico + desenfoque de movimiento, fondo de pantalla / redondeo / sombra, renderizado por GPU
Herramienta CLIVHS cinta → mp4terminal estilizado (relleno, margen, borde redondeado, barra de ventana), determinista
Headless / CI / LinuxPlaywright — scripts/record.mjscursor sintético + ondas; escribe <scene>.events.json (marcas de tiempo + coordenadas) para cualquier composición posterior de zoom

Sea cual sea el motor de grabación, su salida es solo el clip que alimenta ②–⑥ — la grabación y la composición permanecen independientes: vuelve a grabar una escena, o vuelve a ejecutar la narración, sin rehacer la otra. Una pista GIF generada por código (escenas HTML renderizadas directamente a MP4, sin grabación) es una ruta opcional para páginas de documentación.

Flujo de trabajo

  1. Elige el motor CON el usuario — nunca en silencio. Mira el proyecto real (¿app web? ¿CLI? ¿escritorio? ¿esta máquina tiene sesión GUI? ¿necesita ejecutarse en CI?), luego presenta las opciones de motor con pros/contras para este proyecto específico y deja que el usuario elija. Por ejemplo, para una app web en Mac: "Cap CLI da el aspecto de Screen Studio de forma nativa pero necesita permiso de grabación de pantalla y una calibración inicial; Playwright funciona en cualquier lugar y regraba escenas individuales rápido pero no tiene auto-zoom; VHS no aplica aquí." Detalles del motor: references/screen-studio-look.md.
  2. Entiende el producto primero. Lee su README / docs demo. Escribe un Flujo de Demo antes de tocar las herramientas: problema → recorrido del producto → evidencia → conclusión. Elige la ruta de clics recomendada y el resultado visible que cada escena debe alcanzar. Consulta references/templates.md.
  3. Graba. Copia scripts/record.mjs, configura APP y SIZE, reemplaza scenes con tu coreografía (deslizar → pausar → actuar → mantener). Graba a escala de dispositivo 1:1. node scripts/record.mjs [scene]. Motor + ejemplo práctico: references/recording.md.
  4. Narrar → subtitular. Escribe un assets/narration/NN-*.txt por escena con voz de narrador (le hablas a un espectador, no lees un README — esto es un arte diferente al copy de marketing; el skill de marketing proporciona el tema/gancho/storyboard, este skill escribe las palabras habladas). Luego: bash scripts/tts.sh && bash scripts/transcribe.sh && node scripts/build-captions.mjs. Edita PHRASE_FIX en build-captions.mjs para tus nombres de marca. La voz es intercambiable por contrato: la narración es un wav por escena (narration/NN-*.wav) — reemplaza cualquier wav con una toma humana, un doblaje de 剪映, u otro TTS, vuelve a ejecutar transcripción+subtítulos, recomponer; nada más cambia. Kokoro (local, Apache-2.0) es el predeterminado y tiene voces en mandarín; edge-tts es una alternativa gratuita en línea. Guía: references/narration-and-captions.md.
  5. Componer & renderizar. Empieza desde references/composition-skeleton.html (un clip + pista de subtítulos + audio), amplía la línea de tiempo, luego npx hyperframes render . --resolution landscape --fps 30 --crf 17 --quality high. Renderiza 1:1 (1080p creado → 1080p de salida) — nunca aumentes a 4K, suaviza la interfaz. references/composition.md.
  6. Control de calidad antes de enviar. ffprobe la duración/audio, muestrea 1–2 fotogramas (no negros, no vacíos), subtítulos dentro del fotograma, narración sin cortes, la página de resultado clave realmente visible. Corrige el flujo/temporización, luego vuelve a renderizar.

Inicio rápido

# dependencias del sistema
brew install node ffmpeg
npx playwright install chromium

# entorno virtual de Python para TTS local + transcripción (una vez)
python3 -m venv .ttsvenv && .ttsvenv/bin/pip install kokoro-onnx soundfile
export PATH="$(pwd)/.ttsvenv/bin:$PATH"

# 1) grabar  2) narrar  3) subtitular  4) componer+renderizar
node scripts/record.mjs
bash scripts/tts.sh && bash scripts/transcribe.sh && node scripts/build-captions.mjs
npx hyperframes render . --resolution landscape --fps 30 --crf 17 --quality high --output out/demo.mp4

La primera ejecución de TTS descarga ~340 MB (Kokoro), la primera transcripción ~466 MB (Whisper small.en); ambos se almacenan en caché en ~/.cache/hyperframes/.

Reglas ganadas con esfuerzo

  • La interacción real supera a las diapositivas — graba el producto realmente ejecutándose.
  • 1:1, nunca escalado 2× — grabar a 2× DPR y renderizar a 4K suaviza cada clip de interfaz. Crea y renderiza a 1080p.
  • Composición determinista — nada de Date.now(), Math.random() o red en el HTML; HyperFrames busca fotogramas, por lo que el movimiento debe ser reproducible.
  • Cursor visible + mantener en resultados — desliza deliberadamente, pausa en el punto culminante.
  • VO, no documentos — la narración sigue la imagen; no es el README leído en voz alta.
  • Video ≥ narración — alarga el tiempo del clip para que los visuales nunca terminen antes que la voz.

Dependencias

Node 22+, FFmpeg, Playwright (Chromium), y el CLI de HyperFrames (npx hyperframes, instala sus skills con npx skills add heygen-com/hyperframes). El TTS/Whisper local necesita Python + kokoro-onnx. Por motor (opcional): la ruta Cap necesita cap (curl -fsSL https://cap.so/install-cli.sh | sh) + clicclick (brew install cliclick) + permiso de grabación de pantalla; la ruta de terminal necesita vhs (brew install vhs). Todo gratuito — tabla de licencias en references/screen-studio-look.md. Consulta references/composition.md para la configuración de HyperFrames.

Referencias

Skills relacionados