Communitygithub.com

yyert123/remotion-narration

Transformez un script vidéo en voix off par scène pour Remotion en une seule commande : un MP3 par scène avec une voix sauvegardée ou clonée, des durées converties en durationInFrames, des sous-titres mot par mot au format Caption de Remotion, et un fichier SRT.

Qu'est-ce que remotion-narration ?

Cette compétence (ou skill) pour agent IA permet de générer automatiquement une narration vocale complète pour des projets Remotion à partir d’un script textuel. Elle découpe le script en scènes, produit un fichier audio MP3 distinct pour chaque scène grâce au service Miragea (voix sauvegardée ou clonée à partir d’un clip audio référencé), calcule les durées réelles de chaque piste audio et les convertit en `durationInFrames` selon la fréquence d’images (FPS) définie. En sortie, elle livre un fichier JSON structuré avec les frames de début et de fin, les fichiers audio associés, et un tableau de sous-titres mot par mot au format `Caption[]` de Remotion (texte, startMs, endMs, timestampMs, confiance), ainsi qu’un fichier SRT classique. L’agent peut réutiliser les scènes déjà générées si le script est modifié, et reprendre là où il s’est arrêté si la génération est interrompue. La compétence s’applique à tout projet basé sur Remotion ou tout outil de vidéo en React/code nécessitant une synchronisation parfaite entre voix et images.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/yyert123/miragea-skills/tree/HEAD/remotion-narration

Demander à votre IA préférée

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

Documentation

Narration Remotion

Écrit tout ce dont une composition Remotion a besoin pour être pilotée par sa voix off : audio par scène, durées exactes, frames de début et sous-titres. Les longueurs des scènes proviennent de l’audio réel, donc rien ne dérive.

Quand l’utiliser

  • L’utilisateur dispose d’un script (Markdown, texte ou JSON) et d’un projet Remotion et souhaite une narration.
  • Les scènes doivent durer exactement le temps de leur voix off ; les sous-titres doivent suivre la voix mot pour mot.

Étapes

  1. Assurez-vous que MIRAGEA_API_KEY est défini (ne l’affichez jamais). Choisissez la voix :

    • --voice VOICE_ID – une voix sauvegardée dans le compte Miragea de l’utilisateur, ou
    • --ref-url https://… – un extrait public de la voix à cloner (avec le consentement de l’utilisateur), accompagné de --ref-text "mots exacts dans l’extrait" pour le tarif réduit 1x.
  2. Écrivez le script. Chaque ## Titre (ou paragraphe séparé par une ligne vide) devient une scène :

    ## intro
    Découvrez Retake, le moyen le plus rapide de corriger une erreur de voix off.
    ## demo
    Tapez le bon mot. Retake ré-énonce la phrase et l’insère.
    
  3. Générer dans le dossier public/ du projet Remotion :

    python3 scripts/narrate.py script.md --voice VOICE_ID --out public/narration --fps 30
    
  4. Utilisez public/narration/narration.json dans la composition (voir examples/Narrated.tsx) : totalFrames pour durationInFrames, les startFrame / durationInFrames de chaque scène pour une <Sequence>, staticFile('narration/' + scene.file) pour <Audio>, et scene.captions (tableau Caption[] Remotion : text, startMs, endMs, timestampMs, confidence) avec la fonction createTikTokStyleCaptions() de @remotion/captions pour des sous-titres animés.

  5. Modifiez le script et relancez librement : les scènes inchangées sont réutilisées depuis le manifeste sans coût ; si une exécution s’interrompt en cours de route, les scènes terminées sont conservées et la prochaine exécution reprend.

Options

OptionDéfautSignification
--fps30Fréquence d’images pour les calculs de frames
--pad0.4Secondes de respiration après chaque scène
--captions mirageaouiSynchronise les sous-titres à partir de l’audio généré (précis ; +3 points/s)
--captions estimateGratuit : répartit les mots par longueur
--modelexpressivestandard suit la voix de référence plus fidèlement
--speed1.00,25–4

Les scènes de plus de 2000 caractères sont automatiquement découpées aux fins de phrases et jointes.

Dépannage

  • choose a voice → passez --voice ou --ref-url. Les URL de référence doivent être publiques, faire moins de 1 024 caractères et être servies directement (les fichiers bruts GitHub, les objets publics S3/R2 fonctionnent ; les redirections signées peuvent ne pas marcher).
  • 401/402/429 → clé, solde, limite de taux. Relancer est toujours sans risque.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Skills associés