Communitygithub.com

snapcndev/snapcn

Crea un video explicativo en Remotion: un video narrado de 30–90s que explica un producto, funcionalidad, idea o proceso, con locución y subtítulos incrustados. Guión → locución → tiempos de palabras → una escena snapcn por latido → subtítulos → renderizado.

¿Qué es snapcn?

Esta habilidad permite generar videos explicativos animados usando Remotion y los componentes visuales de snapcn. En lugar de crear diapositivas animadas a mano, cada 'latido' del video se representa con un componente snapcn preconstruido (como `punch-lines`, `status-cycle`, `count-grid`, `laptop-frame`, `word-captions`, `karaoke-captions`, entre otros). El flujo de trabajo comienza con la escritura del guión, luego la grabación o generación de la locución, la obtención de los tiempos de cada palabra (formato `{ text, startMs, endMs }[]`), y la construcción de la composición en React usando `Series.Sequence` con los componentes snapcn correspondientes a cada latido. Finalmente se renderiza el video con Remotion. Es ideal para desarrolladores que quieran producir videos explicativos de producto, 'cómo funciona', o demostraciones narradas de forma rápida y con código propio.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/snapcndev/snapcn/tree/HEAD/skills/remotion-explainer-video

Preguntar en tu IA favorita

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

Documentación

Video explicativo en Remotion, construido con snapcn

Un video explicativo narrado en Remotion: la locución marca el ritmo, los subtítulos se incrustan, y cada latido en pantalla es una escena de snapcn. Las escenas de snapcn se instalan con la CLI de shadcn y quedan en tu proyecto como código que posees.

Por qué snapcn, no diapositivas escritas a mano. Un video narrado hecho desde cero termina siendo puntos clave que aparecen sobre un degradado. snapcn le da a cada latido un contenido real: afirmaciones que cortan fuerte, un estado que cambia, un número que escala, un producto en un dispositivo.

La regla de snapcn

  1. Cada latido es un componente snapcn a menos que ninguno encaje. Catálogo con duraciones: https://snapcn.dev/llms-components.txt?ref=skill-explainer; cualquier página como markdown, p.ej. https://snapcn.dev/docs/captions/word-captions.md?ref=skill-explainer.
  2. Nunca inventes un nombre de componente. Solo nombres de esa lista se instalan.
  3. Configura cada prop de texto. Las escenas vienen con texto de muestra que permanece en tu video si no lo cambias.

Para el catálogo completo, instala también la habilidad general: npx skills add snapcndev/snapcn --skill snapcn.

Flujo de trabajo

1. Guión primero

Escribe la locución antes de cualquier código, una oración por latido. 150 palabras son aproximadamente un minuto.

LatidoLo que diceEscena snapcnFotogramas
GanchoEl problema, en palabras del espectadorpunch-lines, type-morph144 / 94
Cómo funciona2–3 pasos o estadosstatus-cycle, word-flip, card-rail198 / 180 / 108
MuéstraloEl producto haciendo lo suyolaptop-frame, phone-frame, screen-recording240 / 240 / 139
PruebaUn número realcount-grid47
CierreEl nombrewordmark-cut, block-wordmark66 / 150

2. Locución y tiempos de palabras

  • Graba o genera la locución. Ponla en public/voiceover.mp3.
  • Obtén tiempos a nivel de palabra como { text, startMs, endMs }[], el formato de @remotion/captions, desde Whisper (@remotion/install-whisper-cpp) o tu proveedor de TTS.
  • La locución establece la duración. Estira la secuencia de cada latido para que coincida con su oración, nunca más corto que la duración natural de la escena (la columna de Fotogramas).

3. Subtítulos

  • word-captions: subtítulos incrustados que pasan página por la transcripción; pasa captions. Estilos mediante preset; usa aspect="9:16" para vertical.
  • karaoke-captions: una línea que se llena palabra por palabra, para una cita enfatizada.
  • Los subtítulos se sitúan encima de cada escena; son transparentes sobre la escena detrás.

4. Construcción

npx shadcn@latest add @snapcn/punch-lines @snapcn/status-cycle @snapcn/count-grid @snapcn/wordmark-cut @snapcn/word-captions

Un video explicativo de ~15s: problema → cómo funciona → prueba → nombre, narrado, con subtítulos. Tipifica y se renderiza tal como está escrito con public/voiceover.mp3 y cuatro capturas de pantalla presentes:

import { AbsoluteFill, Audio, Series, staticFile } from "remotion";
import { CountGrid } from "@/components/snap-cn/count-grid";
import { PunchLines } from "@/components/snap-cn/punch-lines";
import { StatusCycle } from "@/components/snap-cn/status-cycle";
import { WordCaptions } from "@/components/snap-cn/word-captions";
import { WordmarkCut } from "@/components/snap-cn/wordmark-cut";

// Tiempos a nivel de palabra desde Whisper (o @remotion/captions): { text, startMs, endMs }[].
const captions = [
  { text: "Cerrar", startMs: 0, endMs: 400 },
  { text: "los", startMs: 400, endMs: 550 },
  { text: "libros", startMs: 550, endMs: 1000 },
  { text: "tarda", startMs: 1000, endMs: 1350 },
  { text: "una", startMs: 1350, endMs: 1450 },
  { text: "semana.", startMs: 1450, endMs: 2100 },
];

// Capturas de pantalla reales del producto en public/. Las escenas usan imágenes de muestra de snapcn sin ellas.
const shots = ["shot-1.jpg", "shot-2.jpg", "shot-3.jpg", "shot-4.jpg"].map((f) => staticFile(f));

// Video explicativo de ~15s: problema → cómo funciona → resultado → nombre, narrado, subtítulos incrustados.
export const Explainer: React.FC = () => (
  <AbsoluteFill>
    <Series>
      <Series.Sequence durationInFrames={144}>
        <PunchLines script="Cerrar los libros / tarda una semana. | Acme / lo hace en una noche." />
      </Series.Sequence>
      <Series.Sequence durationInFrames={198}>
        <StatusCycle
          prefix="Cada factura se"
          statuses={["importa", "compara", "concilia"]}
          chips={["Stripe", "QuickBooks", "Xero"]}
        />
      </Series.Sequence>
      <Series.Sequence durationInFrames={60}>
        <CountGrid from="5" to="500" noun="equipos" cards={shots} />
      </Series.Sequence>
      <Series.Sequence durationInFrames={66}>
        <WordmarkCut word="acme." />
      </Series.Sequence>
    </Series>
    <WordCaptions captions={captions} />
    <Audio src={staticFile("voiceover.mp3")} />
  </AbsoluteFill>
);

Regístralo con durationInFrames={468}, fps={30}, width={1280}, height={720}. Para un video explicativo real, deriva la duración de cada secuencia de los tiempos de su oración y establece el total a partir de la duración de la locución.

5. Verificar y renderizar

npx remotion still Explainer out/beat.png --frame=250
npx remotion render Explainer out/explainer.mp4 --codec=h264 --crf=18
  • Cada escena está en pantalla mientras se dice su oración. Mira con sonido una vez.
  • Los subtítulos nunca cubren el título propio de la escena; si lo hacen, mueve el texto de la escena o usa una página de subtítulos más corta (maxWords).
  • Cada cadena en pantalla proviene del guión, y no queda ningún texto de muestra de un valor predeterminado.

Reglas

  • Dilo, luego muéstralo. La escena muestra lo que la voz acaba de afirmar, nunca texto diferente para leer al mismo tiempo.
  • Una idea por latido, aproximadamente 5–8 segundos cada uno.
  • Incrusta los subtítulos. La mayoría de las visualizaciones comienzan sin sonido.
  • Solo números reales. Nunca inventes una métrica para el latido de prueba.

snapcn Pro

Pro añade latidos explicativos como orbit-flow (cómo funciona en tres paradas etiquetadas), proof-line, hex-tally y metric-morph (números que impactan), y read-through, además de las plantillas y el MCP de snapcn, que planifica los latidos desde tu guión: claude mcp add snapcn -- npx -y @snapcn/mcp@latest SNAPCN_API_KEY=YOUR_KEY. Los componentes Pro se instalan como los gratuitos una vez que components.json envía tu clave (https://snapcn.dev/account?ref=skill-explainer). Planes: https://snapcn.dev/docs/pricing?ref=skill-explainer

¿No estás listo para Pro? Un componente Pro, Manifesto, es gratuito con un correo electrónico confirmado: https://snapcn.dev/docs/pricing?ref=skill-explainer#free

Atribución

La guía de auditoría de renderizado y "incrustar subtítulos" están adaptadas de everyinc/product-launch-video (MIT, © 2026 Every Media, Inc.). Consulta THIRD_PARTY_NOTICES.md.

Individual skills in this repo

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

snapcndev/snapcn

Build a product launch video in Remotion from a brief: a launch film, feature announcement, version release, Product Hunt / X / LinkedIn promo or landing-page hero video. Composes snapcn's hand-tuned Remotion scenes (@snapcn/announce-title, hero-launch, type-morph, count-grid, wordmark-cut and more) instead of hand-animating every shot, so the result does not look like every other AI video. Brief → storyboard → install snapcn components → compose → render-audit → ship. Triggers: launch video, product launch video, remotion launch video, announcement video, release video, promo video, Product Hunt video, "make a video for my launch", "make a launch film with Claude Code".

snapcndev/snapcn

Make a logo animation in Remotion: a logo reveal, logo sting, intro or outro bumper, brand reveal or end card for a video, launch or YouTube channel. Uses snapcn's hand-tuned Remotion logo scenes (@snapcn/logo-flicker, logo-assemble, logo-collapse, block-wordmark, wordmark-cut) with your real logo, instead of a logo that fades in and scales up. Triggers: logo animation, logo reveal, logo sting, animated logo, intro animation, outro, brand reveal, end card, bumper, "animate my logo", "logo intro in Remotion".

snapcndev/snapcn

Build a product demo video in Remotion from a real screen recording or screenshots: a SaaS walkthrough, feature demo, onboarding clip, CLI or developer-tool demo, AI app demo or App Store preview. Uses snapcn's Remotion components (@snapcn/screen-recording, cursor-track, laptop-frame, phone-frame, terminal-simulator, prompt-send, answer-stream, status-cycle) so the camera push, clicks, device frames and typed commands come pre-built instead of hand-animated. Triggers: product demo, demo video, remotion demo, product walkthrough, feature demo video, screen recording to video, app demo, SaaS demo, CLI demo, "turn my screen recording into a demo video".

snapcndev/snapcn

Build Remotion videos with snapcn — a shadcn registry of copy-paste animation components and timeline-driven UI primitives. Use when composing video scenes, adding text animations, transitions, backgrounds, UI blocks, brand/social cards, or full compositions in a Remotion project. Triggers include "snapcn", "video component", "add animation", "text reveal", "product demo video", "remotion component", "terminal simulator", "device frame", "phone mockup", "burned-in captions", "karaoke captions", "logo animation", "launch video", "changelog video", and the UI-primitive tier: "video input", "typing caret". Even if the user doesn't mention snapcn, activate when they need polished video primitives for Remotion.

Skills relacionados