Communitygithub.com

screen-recording-demos

Graba demostraciones limpias de productos y aplicaciones web: grabación scripteada del navegador con Playwright, pulido del cursor y zoom, cambios de velocidad, recorte de tiempos muertos y sincronización con la narración. Úsalo cuando el usuario quiera un recorrido, tutorial, demo de UI o video de lanzamiento de una aplicación web, o una grabación repetible.

¿Qué es screen-recording-demos?

Esta habilidad permite crear demostraciones de productos y tutoriales de aplicaciones web de forma profesional y repetible mediante grabaciones scripteadas. A diferencia de las grabaciones manuales, los scripts se pueden reutilizar cuando la interfaz cambia, ahorrando tiempo y garantizando consistencia. Soporta Playwright para aplicaciones web, grabadores de sistema operativo (OBS, Game Bar, Screenshot de macOS), Remotion para animaciones sin errores, y herramientas de línea de comandos como asciinema. Incluye técnicas para mejorar la calidad visual: tamaño de ventana fijo 1920×1080, zoom ligero, pausas deliberadas, cursor inyectado, enmascaramiento de datos sensibles, y postproducción con ffmpeg para recortar, acelerar o hacer zoom suave. También guía en la sincronización con narración, ajustando la velocidad de cada escena para que las acciones coincidan con el guion de voz. Es ideal para desarrolladores que necesitan grabar demos de productos, tutoriales, o videos de lanzamiento de manera eficiente y profesional.

Compatible con~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/iamaanahmad/agents-video-editing-skills/tree/HEAD/skills/screen-recording-demos

Preguntar en tu IA favorita

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

Documentación

Grabación de Pantalla y Demos

Una grabación scripteada es repetible. Cuando la interfaz cambia, vuelves a ejecutar el script en lugar de volver a grabar manualmente.

Elige el método

SituaciónMétodo
Aplicación web que puedes abrir en un navegadorGrabación scripteada con Playwright
Aplicación de escritorio o flujo de trabajo en pantalla completaGrabador del sistema operativo (OBS Studio, Windows Game Bar, macOS Screenshot)
El código fuente de la aplicación está disponible y se desea un resultado pulido y sin fallosReconstruir las pantallas como componentes estáticos en Remotion (ver remotion-programmatic-video)
CLIGrabador de terminal (asciinema, VHS) o un componente de terminal animado

Grabación con Playwright (Python)

pip install playwright && playwright install chromium
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch()
    ctx = browser.new_context(
        viewport={"width": 1920, "height": 1080},
        record_video_dir="recordings/",
        record_video_size={"width": 1920, "height": 1080},
    )
    page = ctx.new_page()
    page.goto("https://example.com")
    page.wait_for_load_state("networkidle")
    page.wait_for_timeout(800)                       # permite que el visulizador lea
    page.get_by_role("button", name="Iniciar sesión").click()
    page.get_by_label("Correo electrónico").type("[email protected]", delay=60)   # escritura visible
    page.wait_for_timeout(1200)
    ctx.close()                                      # el video se finaliza al cerrar
    browser.close()

La salida es WebM. Convierte:

ffmpeg -i recordings/xyz.webm -c:v libx264 -crf 18 -pix_fmt yuv420p -r 30 out/demo.mp4

Haz que se vea bien

  • Datos de demo: usa una cuenta de demo preestablecida con datos realistas y no sensibles. Nunca grabes datos reales de clientes, tokens o correos electrónicos.
  • Ventana: viewport fijo de 1920×1080, oculta las barras de marcadores y notificaciones, zoom ligero (110 a 125 por ciento) para que el texto sea legible en un teléfono.
  • Ritmo: pausa de 0.5 a 1 segundo después de cada acción. Escribe con un retardo. Evita saltos instantáneos.
  • Cursor: Playwright no dibuja un cursor. Inyecta un cursor DOM pequeño, o agrega uno en postproducción (Remotion o una superposición).
  • Determinismo: espera con expect(locator).to_be_visible() en lugar de pausas fijas, luego añade pausas deliberadas para los visulizadores.
  • Secretos: difumina o enmascara campos en el script de la página (page.add_style_tag) antes de grabar.

Postproducción

# Recortar tiempo muerto: mantener de 12 s a 41 s
ffmpeg -ss 12 -i demo.mp4 -t 29 -c:v libx264 -crf 18 out/trimmed.mp4

# Acelerar esperas aburridas (p. ej., 4x de 20 s a 30 s) requiere un corte; lo más simple es cortar, acelerar, reensamblar
# Hacer zoom en una región: recortar y luego escalar (x:y:w:h en píxeles de origen)
ffmpeg -i demo.mp4 -vf "crop=960:540:480:270,scale=1920:1080" out/zoom.mp4

Para un zoom/pan animado suave que siga el cursor, usa Remotion (interpolate en scale y translate).

Sincronizar con narración

  1. Escribe primero el guion (video-planning), graba la voz en off (voiceover-tts).
  2. Graba la pantalla, luego ajusta la velocidad por escena para que cada acción coincida con su frase. Calcula velocidad = segundos_grabados / segundos_narración.
  3. Usa las recetas de velocidad de ffmpeg-essentials, o reajusta el tiempo dentro de la composición.

Lista de verificación

  • Sin datos personales, claves API ni URLs internas visibles.
  • Texto legible a 1080p escalado a una pantalla de teléfono.
  • Sin indicadores de carga de más de 1 segundo de duración.
  • Audio de la máquina silenciado a menos que se desee.

Individual skills in this repo

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

iamaanahmad/captions-subtitles

Create, edit, translate and burn in captions and subtitles - transcribe speech with Whisper, write SRT/VTT/ASS files, style them, and hard-burn word-highlight captions for Shorts, Reels and TikTok. Use for any captioning, subtitle, transcript or accessibility request.

iamaanahmad/ffmpeg-essentials

Core FFmpeg and ffprobe recipes for trimming, joining, converting, resizing, compressing, speed changes, fades, audio extraction and GIF conversion. Use for any direct media transformation task, or when a video will not play, has odd dimensions, or is out of sync.

iamaanahmad/motion-design-craft

Motion design rules for programmatic and edited video - durations, easing, springs, staggering, read time for on-screen text, beat grids, transitions and visual hierarchy, plus the defaults that make a video look AI-generated. Use when animating scenes, choosing timings, or reviewing a video that feels off.

iamaanahmad/moviepy-python-video

Compose and edit video in pure Python with moviepy 2.x - overlay text, lower thirds and captions on footage, cut and join clips, add audio, build short single-file build.py videos without Node. Use when the user wants Python-based video editing or deterministic text over AI-generated video.

iamaanahmad/remotion-programmatic-video

Build videos as React code with Remotion - compositions, sequences, springs, interpolation, audio sync, data-driven props, studio preview and rendering to MP4. Use for explainers, product demos, release notes, data charts, branded templates, or any video that should be reproducible from code.

iamaanahmad/voiceover-tts

Generate and time narration with text-to-speech (ElevenLabs, OpenAI TTS, Kokoro, Piper) or prepare a recorded voice - script prep, per-scene audio files, pacing, pronunciation, cleanup and loudness. Use when the user needs a voiceover, narration, dubbing, or voice cloning guidance.

Skills relacionados