Communitygithub.com

snapcndev/snapcn

Créez une vidéo explicative dans Remotion : une vidéo narrée de 30 à 90 secondes qui explique un produit, une fonctionnalité, une idée ou un processus, avec une voix off et des sous-titres incrustés. Script → voix off → minutage des mots → une scène snapcn par temps → sous-titres → rendu. Utilise les composants Remotion de snapcn (@snapcn/punch-lines, status-cycle, count-grid, laptop-frame, word-captions, karaoke-captions et bien d'autres) pour chaque temps, au lieu de diapositives animées à la main. Déclencheurs : vidéo explicative, vidéo explicative animée, vidéo comment ça marche, vidéo de démonstration produit, vidéo narrée, vidéo avec voix off, « expliquer mon produit en vidéo », « faire une explication dans Remotion ».

Qu'est-ce que snapcn ?

Ce skill permet de créer une vidéo explicative professionnelle dans Remotion en utilisant les composants prêts à l'emploi de snapcn. L'idée centrale est de remplacer les diapositives animées faites à la main par des scènes snapcn déclaratives : chaque temps du script correspond à un composant spécifique (punch-lines, status-cycle, count-grid, etc.) qui s'installe via shadcn CLI et reste dans votre projet en tant que code que vous possédez. Le flux de travail commence par l'écriture du script (une phrase par temps), la génération de la voix off et le minutage mot par mot au format @remotion/captions, puis l'assemblage des séquences avec des composants snapcn. Les sous-titres sont incrustés (word-captions ou karaoke-captions) et se superposent aux scènes. Le rendu final se fait avec Remotion. Le skill insiste sur des règles précises : chaque temps doit correspondre exactement à ce que la voix vient de dire, une idée par temps, et les sous-titres sont essentiels car la plupart des spectateurs commencent sans le son. Il existe également une version Pro (snapcn Pro) avec des composants supplémentaires et un MCP qui planifie les temps à partir du script. Compatible avec Claude Code, Cursor, Codex et tout agent capable d'exécuter des commandes npx et de manipuler des fichiers TypeScript Remotion.

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Vidéo explicative Remotion, construite avec snapcn

Une explication narrée dans Remotion : une voix off rythme la durée, les sous-titres sont incrustés, et chaque temps à l'écran est une scène snapcn. Les scènes snapcn s'installent avec la CLI shadcn et atterrissent dans votre projet en tant que code que vous possédez.

Pourquoi snapcn, pas des diapositives écrites à la main. Une vidéo narrée créée de toutes pièces finit souvent en points d'énumération qui apparaissent sur un dégradé. snapcn donne à chaque temps une vraie scène : des déclarations qui tranchent, un statut qui change d'état, un nombre qui évolue, un produit sur un appareil.

La règle snapcn

  1. Chaque temps est un composant snapcn, sauf si aucun ne convient. Catalogue avec durées : https://snapcn.dev/llms-components.txt?ref=skill-explainer ; toute page en markdown, par ex. https://snapcn.dev/docs/captions/word-captions.md?ref=skill-explainer.
  2. N'inventez jamais un nom de composant. Seuls les noms de cette liste s'installent.
  3. Définissez chaque prop de texte. Les scènes sont livrées avec un exemple de texte qui reste dans votre vidéo sinon.

Pour le catalogue complet, installez aussi le skill générique : npx skills add snapcndev/snapcn --skill snapcn.

Flux de travail

1. Script d'abord

Écrivez la voix off avant tout code, une phrase par temps. Environ 150 mots correspondent à une minute.

TempsCe qu'il ditScène snapcnImages
AccrocheLe problème, dans les mots du spectateurpunch-lines, type-morph144 / 94
Comment ça marche2–3 étapes ou étatsstatus-cycle, word-flip, card-rail198 / 180 / 108
Montrez-leLe produit en actionlaptop-frame, phone-frame, screen-recording240 / 240 / 139
PreuveUn chiffre réelcount-grid47
ConclusionLe nomwordmark-cut, block-wordmark66 / 150

2. Voix off et minutage des mots

  • Enregistrez ou générez la voix off. Placez-la dans public/voiceover.mp3.
  • Obtenez le minutage mot par mot sous forme de { text, startMs, endMs }[], le format @remotion/captions, depuis Whisper (@remotion/install-whisper-cpp) ou votre fournisseur TTS.
  • La voix off définit la durée. Étirez chaque séquence de temps jusqu'à sa phrase, jamais plus courte que la durée naturelle de la scène (colonne Images).

3. Sous-titres

  • word-captions : sous-titres incrustés qui parcourent la transcription ; passez captions. Styles via preset ; utilisez aspect="9:16" pour le format vertical.
  • karaoke-captions : une ligne qui se remplit mot par mot, pour une citation unique accentuée.
  • Les sous-titres se superposent à chaque scène ; ils sont transparents sur la scène derrière eux.

4. Construction

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

Un exemple de ~15s : problème → comment ça marche → preuve → nom, narré, avec sous-titres. Il vérifie les types et s'affiche tel qu'écrit avec public/voiceover.mp3 et quatre captures d'écran présentes :

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";

// Minutage mot par mot depuis Whisper (ou @remotion/captions) : { text, startMs, endMs }[].
const captions = [
  { text: "Closing", startMs: 0, endMs: 400 },
  { text: "the", startMs: 400, endMs: 550 },
  { text: "books", startMs: 550, endMs: 1000 },
  { text: "takes", startMs: 1000, endMs: 1350 },
  { text: "a", startMs: 1350, endMs: 1450 },
  { text: "week.", startMs: 1450, endMs: 2100 },
];

// Vraies captures d'écran du produit dans public/. Les scènes utilisent les images d'exemple snapcn sans elles.
const shots = ["shot-1.jpg", "shot-2.jpg", "shot-3.jpg", "shot-4.jpg"].map((f) => staticFile(f));

// ~15s d'explication : problème → comment ça marche → résultat → nom, narré, sous-titres incrustés.
export const Explainer: React.FC = () => (
  <AbsoluteFill>
    <Series>
      <Series.Sequence durationInFrames={144}>
        <PunchLines script="Closing the books / takes a week. | Acme / does it overnight." />
      </Series.Sequence>
      <Series.Sequence durationInFrames={198}>
        <StatusCycle
          prefix="Every invoice gets"
          statuses={["imported", "matched", "reconciled"]}
          chips={["Stripe", "QuickBooks", "Xero"]}
        />
      </Series.Sequence>
      <Series.Sequence durationInFrames={60}>
        <CountGrid from="5" to="500" noun="teams" cards={shots} />
      </Series.Sequence>
      <Series.Sequence durationInFrames={66}>
        <WordmarkCut word="acme." />
      </Series.Sequence>
    </Series>
    <WordCaptions captions={captions} />
    <Audio src={staticFile("voiceover.mp3")} />
  </AbsoluteFill>
);

Enregistrez-le à durationInFrames={468}, fps={30}, width={1280}, height={720}. Pour une vraie vidéo explicative, dérivez la durée de chaque séquence du minutage de sa phrase et définissez total à partir de la durée de la voix off.

5. Vérification et rendu

npx remotion still Explainer out/beat.png --frame=250
npx remotion render Explainer out/explainer.mp4 --codec=h264 --crf=18
  • Chaque scène est à l'écran pendant que sa phrase est prononcée. Regardez avec le son une fois.
  • Les sous-titres ne couvrent jamais le titre de la scène elle-même ; si c'est le cas, déplacez le texte de la scène ou utilisez une page de sous-titres plus courte (maxWords).
  • Chaque chaîne à l'écran provient du script, et aucun exemple de texte n'est laissé depuis une valeur par défaut.

Règles

  • Dites-le, puis montrez-le. La scène montre ce que la voix vient de dire, jamais un texte différent à lire en même temps.
  • Une idée par temps, environ 5 à 8 secondes chacun.
  • Incrusez les sous-titres. La plupart des visionnages commencent en mode silencieux.
  • Uniquement des chiffres réels. N'inventez jamais une métrique pour le temps de preuve.

snapcn Pro

Pro ajoute des temps explicatifs comme orbit-flow (comment ça marche en trois arrêts étiquetés), proof-line, hex-tally et metric-morph (des chiffres qui atterrissent), ainsi que read-through, plus les templates et le MCP snapcn, qui planifie les temps à partir de votre script : claude mcp add snapcn -- npx -y @snapcn/mcp@latest SNAPCN_API_KEY=VOTRE_CLÉ. Les composants Pro s'installent comme les gratuits une fois que components.json envoie votre clé (https://snapcn.dev/account?ref=skill-explainer). Plans : https://snapcn.dev/docs/pricing?ref=skill-explainer

Pas prêt pour Pro ? Un composant Pro, Manifesto, est gratuit pour un email confirmé : https://snapcn.dev/docs/pricing?ref=skill-explainer#free

Attribution

Les conseils sur l'audit de rendu et « incruster les sous-titres » sont adaptés de everyinc/product-launch-video (MIT, © 2026 Every Media, Inc.). Voir 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 associés