Communitygithub.com

infofilm

Créez un film d'information explicatif narré (généralement 5 à 15 minutes) sur un sujet réel — fonctionnement d'un système, événements passés ou à venir — sous forme de documentaire à cartes des années 1950, avec une mascotte mimée, un narrateur zélé, des pauses publicitaires chantées et des infographies dessinées en code qui apparaissent en synchronisation avec le texte prononcé.

Qu'est-ce que infofilm ?

Le skill infofilm permet de générer automatiquement des vidéos explicatives de type documentaire rétro-futuriste, en s'inspirant des actualités filmées des années 1950. Le processus complet est automatisé : recherche documentée avec sources primaires, rédaction d'un script fact-checké, synthèse vocale via ElevenLabs avec horodatage par caractère, génération de musiques (thème, génériques, jingles) via Suno, création d'illustrations par Gemini, et assemblage vidéo avec Remotion où les infographies codées apparaissent exactement au mot prononcé. Le film final est livré en master audio −14 LUFS avec sous-titres SRT. Le skill respecte des règles strictes : ne jamais inventer un fait, demander l'approbation de l'utilisateur avant chaque dépense payante (voix, images, musique), et maintenir une satire impartiale visant les systèmes et non les personnes ou partis. Il est conçu pour fonctionner avec Claude Code et nécessite un environnement Node.js, Python, ffmpeg et des clés API pour les services externes.

Compatible avec✓Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/fltman/infofilm/tree/HEAD/skills/infofilm

Demander à votre IA préférée

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

Documentation

infofilm : films explicatifs infographiques

Un film réalisé avec ce skill est un jeu de cartes didactiques disposées sur une table bleu marine. Chaque carte comporte une bande de titre, une fenêtre d'image et une bande de légende. Une illustration générée par IA joue dans la fenêtre, et des infographies dessinées en code apparaissent par-dessus au mot exact qui les nomme. Un narrateur de type actualités porte le sens, et une mascotte mime l'action sans jamais parler. Des pauses publicitaires chantées et une ballade finale donnent son rythme au film.

Chaque nombre, titre et étiquette est dessiné en code à partir d'une base de faits. Les images ne portent jamais de texte.

Le modèle dans template/ est un film complet et fonctionnel : une démo d'une minute sur les années bissextiles. Déployez-le, puis remplacez la démo par votre film pièce par pièce. Le film se rend à chaque étape : les scènes sans composant affichent leur carte, et les scènes sans narration obtiennent une durée estimée. Ainsi, vous pouvez toujours visualiser l'ensemble avant de dépenser de l'argent.

Règles absolues (elles priment sur la commodité)

  1. Argent : demander d'abord. ElevenLabs, la génération d'images et les téléchargements Suno coûtent de l'argent réel ou des quotas. Avant chaque lot payant, indiquez ce que c'est, le nombre d'éléments et le coût estimé ; --dry-run l'affiche. Attendez un accord. Cet accord ne couvre que ce lot, sauf si l'utilisateur a donné une approbation permanente (« vous avez le feu vert pour les images, la voix et la musique »). Consignez chaque approbation et coût dans notes/log.md.
  2. Ne jamais deviner un fait.
    • Toute affirmation et tout nombre proviennent de notes/research.md, qui cite des sources primaires. Tout nombre à l'écran provient de video/src/data.ts, qui cite la section de recherche.
    • Les événements récents doivent être vérifiés par rapport aux sources primaires. Si quelque chose ne peut pas être vérifié, il reste en dehors du film, ou la scène attend ; voir « Scènes qui attendent » dans references/script.md.
  3. Le texte et les nombres sont dessinés en code, jamais par le modèle d'image. Les invites d'image interdisent le texte, et chaque image est inspectée de toute façon.
  4. L'utilisateur écoute, pas Whisper. Ne transcrivez jamais la parole générée pour la vérifier ; Whisper entend plus d'erreurs qu'il n'y en a. Donnez plutôt à l'utilisateur une page d'écoute.
  5. Satire impartiale. L'ironie vise le système, la machine et le spectacle, jamais un parti, un groupe ou une personne. Traitez les camps de manière identique dans la taille, la logique des couleurs et l'animation. Pas de vraies personnes ou logos dans les images.
  6. Diacritiques corrects partout (å ä ö é ü …), y compris dans les invites aux sous-agents. Dites-le explicitement à chaque sous-agent.
  7. Lire les mots de l'utilisateur littéralement. « Dystopique », « rétro » ou « Fallout-ish » sont des ambiances, pas des listes d'accessoires. Lorsqu'un mot de style peut signifier plusieurs choses, montrez des propositions et confirmez avant de construire dessus (voir references/style.md).

Le pipeline

Travaillez à travers ces phases dans l'ordre. Les étapes ⛔ sont des portes : arrêtez-vous et obtenez la décision de l'utilisateur avant de continuer.

0 · Lancement

  • Confirmez le sujet, le public, la langue, la durée (par défaut environ 12 minutes) et l'objectif. Vérifiez ELEVENLABS_API_KEY et OPENROUTER_API_KEY dans l'environnement, Chrome avec l'extension claude-in-chrome et une connexion Suno, ainsi que node, pnpm/npm, ffmpeg et python3 avec numpy et elevenlabs.
  • Déployez :
    <skill>/scripts/new_film.sh <dir> --slug mon-film --title "Mon Film" --lang fr --locale fr-FR
    
    Cela copie le modèle, installe Remotion, synthétise les effets sonores, construit une première timeline et vérifie les types.
  • Conservez les décisions dans notes/log.md, avec les dates et qui a décidé.
  • Les rendus ont besoin d'espace. Vérifiez df -h et pointez OUTDIR vers un grand disque lorsque le disque système a moins d'environ 20 Go de libre.

1 · Recherche → notes/research.md

  • Écrivez des sections numérotées (## 2.3 · Le seuil), un fait ou un groupe par section, chacune avec sa source primaire : législation, statistiques officielles, pages de l'autorité elle-même.
  • Marquez tout ce qui est incertain. Pour un événement récent, enregistrez la date à laquelle les faits sont valides.
  • Voir references/script.md.

2 · Apparence et distribution ⛔

  • Réutilisez le style maison (crème, bleu marine et encre dorée ; rétro-futurisme 1957 ; Bowlby One SC + Jost + Lobster) ou proposez des alternatives. Rendez la même petite infographie dans 3 à 7 styles pour que l'utilisateur compare l'équivalent.
  • Choisissez la mascotte : un Monsieur Tout-le-monde silencieux avec un geste signature (la mascotte maison soulève son chapeau). Évitez les gestes qui appartiennent à des mascottes célèbres, comme un clin d'œil avec un pouce levé.
  • Générez d'abord le portrait de référence (kind: "ref"), puis une feuille de modèle, et faites-les approuver avant de créer une image de scène.
  • ⛔ L'utilisateur choisit le style, la mascotte, le geste et les polices. Détails : references/style.md et references/images.md.

3 · Script → script/script.md ⛔

  • Structure : un thème d'ouverture, 2 à 4 parties, une pause publicitaire entre les parties, et une ballade de clôture. Chaque scène est une carte de 15 à 40 s.
  • Le budget mots est de minutes × environ 127 mots par minute pour un narrateur d'actualités.
  • Épelez les nombres dans la narration ; les cartes montrent les chiffres exacts.
  • Évitez les mots liés à une date comme « lundi ». Le film survit à la semaine.
  • Révision avant que quiconque ne paie. Faites vérifier le script et la recherche par un sous-agent indépendant par rapport aux sources primaires, en triant ses conclusions en DOIT, DEVRAIT et POURRAIT. Corrigez tout ce qui est classé DOIT. Les révisions ont permis de détecter des erreurs dans la recherche elle-même.
  • ⛔ L'utilisateur approuve le script. Format et fabrication : references/script.md.

4 · Narrateur ⛔

  1. Concevez 3 essais avec voice/design_voice.py preview <tag> (demandez d'abord), et laissez l'utilisateur en choisir un. Sauvegardez-le avec create.
  2. Faites une lecture test de 2 scènes représentatives et laissez l'utilisateur approuver le rythme et la prononciation.
  3. Lisez tout : python3 voice/narrate.py --dry-run, puis demandez, puis exécutez.

Modifiez une scène plus tard et seule cette scène est facturée à nouveau. Détails et pièges : references/voice.md.

5 · Musique (Suno, interface web officielle, via Chrome)

Vous avez besoin de ces signaux :

  • un thème d'ouverture d'environ 20 s, qui fonctionne à merveille en mode Parole comme une voix a cappella et en close harmony
  • un fond instrumental par partie, en boucle et atténué sous la voix
  • un jingle chanté pour chaque pause publicitaire
  • une ballade de clôture, généralement une reprise du thème.

Incitez avec des idiomes américains des années 1950 ; les mots de genre comme « schlager » entraînent la musique ailleurs. L'utilisateur aime les essais dans Suno, sauf s'il vous a confié le choix. Téléchargez le WAV via le menu de Suno, récupérez les paroles alignées pour les points de coupure, et écrivez music/cuts.json et video/src/lyrics.ts. Détails : references/music.md.

6 · Illustrations

  • Une image 21:9 2K par scène, film-Sxx dans art/shots.json, dessinée à partir de la référence de la mascotte. Coût : python3 art/gen.py --dry-run, puis demandez.
  • Regardez chaque image pour détecter du texte, des accessoires en double, des membres supplémentaires et la mauvaise tenue, et régénérez les mauvaises.
  • Exécutez python3 tools/sync_art.py puis python3 tools/build_timeline.py. Détails : references/images.md.

7 · Scènes (Remotion)

  • Construisez deux scènes en or vous-même : les scènes qui portent les infographies centrales du film. Faites-les atteindre le niveau requis et enregistrez-les dans golden.ts, en remplaçant TheYear/TheRule de la démo.
  • Ensuite, répartissez le travail entre 2 à 3 sous-agents constructeurs parallèles avec video/CONTRACT.md (remplissez ses lignes {{…}}). Chaque constructeur a son propre registre de groupe et vérifie avec des fiches de contact.
  • Les constructeurs peuvent commencer avant que la narration n'existe, car les signaux suivent les mots estimés puis se déplacent automatiquement vers les vrais. Si le script change pendant leur travail (une révision arrive), envoyez à chaque constructeur les modifications exactes pour ses scènes avec SendMessage.
  • Révisez vous-même la fiche de chaque scène.
  • Détails : references/scenes.md.

8 · Rendu et livraison

  • Exécutez tools/render.sh. Il reconstruit la timeline, vérifie les signaux, vérifie les types, effectue le rendu, applique le loudnorm en deux passes à −14 LUFS / −1 dBTP, et écrit le SRT.
  • Vérifiez le volume par segment et vérifiez par échantillonnage les images du mp4, puis ouvrez le film pour l'utilisateur.
  • Détails : references/render.md.

9 · Révisions

  • Texte modifié : racontez à nouveau seulement cette scène, puis reconstruisez la timeline. Les signaux suivent les mots automatiquement.
  • Image modifiée : régénérez l'image, synchronisez, reconstruisez.
  • Musique modifiée : éditez cuts.json.

Les corrections visuelles ne coûtent rien d'autre qu'un nouveau rendu ; seules les nouvelles narrations, images ou téléchargements coûtent de l'argent.

Carte du modèle

CheminQuoi
film.jsontitre, slug, langue, locale, jingles de partie et fonds, musique d'intro/après scène, modèle TTS, outDir
script/script.mdle manuscrit : ## Sxx · nom, <!-- title: -->, <!-- facts: -->, > visual:, narration
notes/research.md, notes/log.mdla base de faits ; décisions et coûts
voice/design.json + design_voice.py (conception vocale), narrate.py (narration + horodatage), listen.py (page d'écoute), voice.json
music/suno/*.wav, cuts.json, tools/beats.py (tempo), tools/suno_lines.py (paroles alignées → lignes)
art/style.json (l'apparence, la liste de ce qui ne doit pas apparaître), shots.json, gen.py, img/
tools/build_timeline.py, cues.py, lint_cues.py, make_srt.py, sync_art.py, art_sheet.py, unframe.py, make_sfx.py, render.sh
video/src/theme.ts, fonts.ts, timing.tsx (useScene, cue), data.ts, lyrics.ts, Music.tsx, primitives/ (Card, Bits, Film, Jingle, Hemicycle), scenes/
video/tools/stills.mjs (fiche contact des images choisies), review.mjs (N images par scène, nombreuses scènes)

Pièges connus, avec leurs correctifs : references/pitfalls.md.

Skills associés