Communitygithub.com

oyi77/1ai-skills – Vidéo de lancement produit avec HyperFrames

Créez des vidéos de lancement produit à partir d'une URL, d'un brief ou d'un script en utilisant HyperFrames (HTML → MP4). Idéal pour les vidéos de lancement, visites guidées de sites, clips sociaux et vidéos promotionnelles. Durée jusqu'à ~3 min (idéal 30-90s). Enseigne le pipeline de production HyperFrames : planifier → écrire HTML → animer → ajouter des médias → linter → prévisualiser → rendre.

Qu'est-ce que 1ai-skills – Vidéo de lancement produit avec HyperFrames ?

Cette compétence permet à un agent IA de créer des vidéos de lancement produit professionnelles en écrivant des compositions HTML qui sont rendues en MP4 déterministe par le pipeline HyperFrames. Elle est idéale lorsque l'utilisateur souhaite produire une vidéo promotionnelle à partir d'une URL produit, d'un brief ou d'un script, sans nécessiter de logiciel de montage vidéo complexe. La compétence couvre l'ensemble du flux de production : initialisation du projet, planification du storyboard, écriture du HTML de composition avec des attributs temporels, intégration d'animations déterministes (GSAP ou CSS), ajout de médias (images, vidéos, audio), linting, prévisualisation avec rechargement à chaud (HMR) et rendu final en MP4. Elle prend en charge les formats 9:16 (pour TikTok/Reels/Shorts) et 16:9, et inclut des mécanismes anti-contournement pour garantir des rendus fiables. Cette compétence est optimisée pour les plates-formes agent-native comme Claude Code, Cursor ou Codex, et exploite le fait que les LLMs excellent dans l'écriture de code HTML.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/oyi77/1ai-skills/tree/HEAD/content/hyperframes-product-launch-video

Demander à votre IA préférée

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

Documentation

Aperçu

Cette compétence assemble une vidéo de lancement produit — plan héro, mises en avant des fonctionnalités, minutage — sous forme de composition HyperFrames. Utilisez-la lorsqu'une nouvelle version nécessite une vidéo d'annonce courte et personnalisable. Elle rend le MP4 final à partir des ressources produit que vous fournissez.

HyperFrames — Vidéo de lancement produit

Créez des vidéos de lancement produit en écrivant des compositions HTML qu'HyperFrames transforme en MP4 déterministe. Le pipeline vidéo natif pour les agents : les LLMs écrivent du HTML (leur langue maternelle), HyperFrames rend des vidéos image par image via un Chrome sans tête + FFmpeg.

Quand utiliser

  • L'utilisateur souhaite une vidéo de lancement produit à partir d'une URL, d'un brief ou d'un script
  • L'utilisateur souhaite une visite guidée de site / démonstration présentant les visuels du produit
  • L'utilisateur souhaite un clip social (TikTok/Reels/Shorts) avec des légendes animées et une identité de marque
  • L'utilisateur souhaite une vidéo marketing/promo avec des superpositions animées et de la musique
  • L'utilisateur dit « fais-moi une vidéo » et fournit une URL ou une description du produit

Quand NE PAS utiliser

  • L'utilisateur souhaite du contenu avec de vraies personnes / UGC / en studio (nécessite une caméra, pas du HTML)
  • L'utilisateur souhaite du direct / live shopping (nécessite l'ingestion RTMP)
  • L'utilisateur souhaite une interview face caméra (utilisez hyperframes-embedded-captions ou hyperframes-talking-head-recut)
  • L'utilisateur souhaite une vidéo explicative sans produit/URL (utilisez hyperframes-faceless-explainer)
  • L'utilisateur souhaite une présentation/diaporama (utilisez hyperframes-slideshow)

Flux de travail

0 · Initialiser le projet

npx hyperframes init ma-video-lancement
cd ma-video-lancement

Ceci crée la structure du projet avec index.html, package.json et la CLI HyperFrames configurée.

1 · Planifier la vidéo

  • Entrée : URL du produit, brief ou script
  • Sortie : Storyboard de 3 à 6 scènes avec minutage (total idéal 30-90s)
  • Budget : titre ≤2s, outro ≤3s, scènes centrales ≈8-12s chacune
  • Choisir un langage visuel : parcourir hyperframes.heygen.com/design pour les modèles frame.md

2 · Écrire le HTML de composition

Le contrat de composition :

<!doctype html>
<html lang="fr">
  <body>
    <div
      id="main"
      data-composition-id="intro"
      data-start="0"
      data-duration="15"
      data-width="1080"
      data-height="1920"
      data-fps="30"
    >
      <div
        class="clip"
        data-start="0"
        data-duration="5"
        data-track-index="0"
      >
        <!-- Contenu de la scène -->
      </div>
    </div>
  </body>
</html>

Attributs clés :

  • data-composition-id : identifiant unique de la composition
  • data-start / data-duration : minutage en secondes
  • data-width / data-height : dimensions de la zone d'affichage (1080×1920 pour 9:16)
  • data-fps : fréquence d'images (30 par défaut)
  • class="clip" : marque les éléments temporisés
  • data-track-index : ordre des couches (plus élevé = au-dessus)

3 · Câbler les animations déterministes

Utilisez GSAP (recommandé), les keyframes CSS, ou WAAPI. Toutes les animations doivent être déterministes (même image au même moment, à chaque rendu).

Modèle GSAP (recommandé) :

const tl = gsap.timeline({ paused: true });
tl.to("#title", { opacity: 1, y: 0, duration: 0.8, ease: "power4.out" }, 0.5);
tl.to("#image", { scale: 1, opacity: 1, duration: 1.2, ease: "power3.out" }, 1.0);
window.__timelines = { main: tl };

Modèle keyframes CSS :

@keyframes fadeInUp {
  from { transform: translateY(40px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}
.animate-in {
  animation: fadeInUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

4 · Ajouter des médias

  • Images : téléchargez dans le dossier public/, référencez via staticFile() ou chemin relatif
  • Fonds vidéo : placez dans assets/, bouclez via data-loop
  • Audio/BGM : ajoutez via <audio data-start="0" data-duration="15" src="./bgm.mp3">
  • Voix off : générez via TTS, alignez les sous-titres sur les timings des mots

5 · Linter et vérifier

npx hyperframes check        # valider le contrat de composition
npx hyperframes lint         # vérifier les erreurs courantes

Corrigez toutes les erreurs avant de continuer. Les avertissements sont acceptables mais doivent être examinés.

6 · Prévisualiser

npx hyperframes preview      # ouvre Hyperframes Studio avec HMR

Vérifiez 3 à 4 temps forts via __player.seek(time) sur la page brute de la composition. Vérifiez :

  • Les animations se déclenchent au bon moment
  • Pas de flashs blancs aux coupures (fond de scène opaque)
  • Sous-titres visibles et lisibles
  • Niveaux audio équilibrés

7 · Rendre

npx hyperframes render --output video-lancement.mp4

Vérifiez le résultat :

ffmpeg -ss 3 -i video-lancement.mp4 -frames:v 1 frame-3s.png  # vérifier les sous-titres
ffmpeg -ss 15 -i video-lancement.mp4 -frames:v 1 frame-15s.png # vérifier la scène

Tableau anti-contournement

RationalisationRéalité
« Je vais juste utiliser un éditeur vidéo »Les éditeurs GUI ne sont pas natifs pour les agents ; le HTML est ce que les LLMs écrivent le mieux
« Je vais sauter l'étape de lint »Le lint détecte les erreurs de contrat de composition qui cassent les rendus
« Je vais utiliser Remotion à la place »Remotion nécessite une logique React ; le HTML est plus simple pour les agents
« Je vais ajouter des animations de remplissage »Les oscillations inutiles sont interdites — chaque phase doit être active (voir hyperframes-cut-the-curve)
« Je vais centrer le contenu à 42% pour laisser de la place aux sous-titres »Les sous-titres sont une superposition — centrez sur le vrai centre (y = H/2)
« Je vais utiliser un fondu enchaîné entre les scènes »Les fondus enchaînés n'ont pas de porteuse — utilisez cut-the-curve pour les limites par défaut
« Je vais écrire un seul gros fichier HTML sans scènes »Les scènes sont l'unité de composition — chaque scène a son propre wrapper clip
« Je vais sauter la prévisualisation et rendre directement »La prévisualisation détecte les erreurs de timing qui gaspillent du temps de rendu

Exemple de code

<!doctype html>
<html lang="fr">
  <head>
    <meta charset="utf-8" />
    <style>
      * { margin: 0; padding: 0; box-sizing: border-box; }
      html, body { width: 100%; height: 100%; overflow: hidden; background: #0a0a0a; }
      #main {
        position: relative;
        width: 1080px;
        height: 1920px;
        overflow: hidden;
      }
      .scene {
        position: absolute;
        inset: 0;
        opacity: 0;
        transition: opacity 0.5s ease;
      }
      .scene.active { opacity: 1; }
      .hook-bg {
        background: linear-gradient(135deg, #ff6b35 0%, #f7931e 100%);
        display: flex;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        padding: 80px;
        text-align: center;
        color: white;
        font-family: system-ui, sans-serif;
      }
      .hook-text {
        font-size: 72px;
        font-weight: 800;
        line-height: 1.1;
        transform: translateY(40px);
        opacity: 0;
      }
      .animate-in {
        animation: fadeInUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
      }
      @keyframes fadeInUp {
        from { transform: translateY(40px); opacity: 0; }
        to { transform: translateY(0); opacity: 1; }
      }
    </style>
  </head>
  <body>
    <div
      id="main"
      data-composition-id="pub-produit"
      data-start="0"
      data-duration="15"
      data-width="1080"
      data-height="1920"
      data-fps="30"
    >
      <div class="scene hook-bg" data-start="0" data-duration="5" data-track-index="0">
        <h1 class="hook-text animate-in" data-start="0.5" data-duration="4">
          Nom du produit
        </h1>
      </div>
    </div>
    <script>
      // Activation des scènes via IntersectionObserver ou minutage manuel
      const scenes = document.querySelectorAll('.scene');
      scenes.forEach(scene => {
        const start = parseFloat(scene.dataset.start);
        const duration = parseFloat(scene.dataset.duration);
        setTimeout(() => scene.classList.add('active'), start * 1000);
        setTimeout(() => scene.classList.remove('active'), (start + duration) * 1000);
      });
    </script>
  </body>
</html>

Vérification

  • La composition passe npx hyperframes check avec 0 erreur
  • Toutes les scènes ont data-start, data-duration, data-track-index
  • Les animations sont déterministes (non dépendantes de l'horloge murale)
  • La prévisualisation montre un minutage correct sur 3 temps forts ou plus
  • Le MP4 rendu n'a ni flashs blancs, ni images figées, ni sous-titres manquants
  • Les niveaux audio sont équilibrés (application de la réduction du volume de la voix off si nécessaire)
  • La résolution de sortie correspond à la cible (1080×1920 pour 9:16, 1920×1080 pour 16:9)

Individual skills in this repo

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

oyi77/1ai-skills

Turn a weekly changelog .md into a finished branded changelog video using HyperFrames. Use when the user provides a changelog/digest markdown and wants the weekly video, or says 'changelog video'. Self-contained — fonts, background, lexicon, and scripts ship in the skill. Produces square 1080, ~45-60s videos with animated brand mock-UIs.

oyi77/1ai-skills

The transition technique catalog for HyperFrames videos — five velocity-matched SEAMS (zoom-through, inverse zoom-through, cut-the-curve, waterfall cut, rack-focus blur-cut) plus in-scene techniques (waterfall entry, nudge curve). Covers partial-travel velocity matching, Z scale-sign rule, size-scaled blur, the 10/65/25 slide ratio, and the 2-3 transition budget. Read before authoring any transition, text-beat handoff, or kinetic text entry.

oyi77/1ai-skills

Add captions/subtitles to talking-head or launch videos using HyperFrames. Use when the user wants embedded captions, verbatim caption rails, or cinematic text behind the subject. Covers the drop/rail/embed caption model, the overlay law (captions are NOT a reserved band), matte occlusion for embedded climaxes, and word-timestamp alignment from TTS output.

oyi77/1ai-skills

Turn arbitrary text — an article, notes, a topic, a brief — into a faceless explainer video using HyperFrames. Use when the user wants a topic explainer, concept breakdown, how-to, or listicle with no product/website to capture. Every visual is invented per scene (typography, abstract graphics, diagrams, data-viz). Not a video built from a website (use hyperframes-product-launch-video).

oyi77/1ai-skills

The fallback HyperFrames workflow for anything that doesn't fit other skills — longer multi-scene pieces, brand/sizzle reels, title cards, static loops, freeform compositions. Input- and length-agnostic. Also the home of companion mode (co-create with the full toolbox). Use when no other HyperFrames skill matches, or when the user wants a freeform video.

oyi77/1ai-skills

Create short, unnarrated, design-led motion graphics (~under 10s) using HyperFrames. Use when the user wants kinetic type, stat/chart hits, logo stings, lower-thirds, animated tweets/headlines, or transparent overlay motion graphics. MP4 or transparent overlay output. Teaches seek-safe keyframe authoring and the 2-3 transition budget rule.

oyi77/1ai-skills

Turn a music track into a beat-synced HyperFrames video — lyric, slideshow, or kinetic promo. Use when the user provides an audio file, a video to pull audio from, or a mood brief for generated music. Music drives pacing. Teaches beat-map extraction, section-based scene planning, and audio-reactive visuals.

oyi77/1ai-skills

The Video Production Manager — manages ALL video production under 1ai-content. Delegates to HyperFrames, Remotion, AI video, and FFmpeg based on the task. Has memory via 1ai-hub brain, follows 1ai-rules, and reports to Content Director. Use when the user says 'make a video', 'create video', 'edit video', 'video strategy', or needs any video production work.

oyi77/1ai-skills

Agent skill at content/video/gen/SKILL.md

oyi77/1ai-skills

Use when track portfolio company KPIs, variances, returns analysis. Use when user says "monitor portfolio", "track KPIs", "portfolio returns".

oyi77/1ai-skills

Use when go-to-market planning — launch sequencing, channel strategy, audience building, PR outreach. Use when planning product launches, building launch checklists, or coordinating multi-channel campaigns.

oyi77/1ai-skills

Use when portfolio manager — capital allocation, risk management, and performance metrics tracking for trading strategies.

Skills associés