Communitygithub.com

Noahnocap/ai-video-skill

Crée des Reels Instagram / TikToks / Shorts prêts à publier en 1080x1920 à partir d'une seule instruction. Il écrit le script (ou utilise celui de l'utilisateur), génère la voix off, anime chaque scène dans un style de motion design éprouvé, révise ses propres images et exporte un mp4. Utilisez-le dès que l'utilisateur demande un reel, un short, un TikTok, une vidéo explicative, une vidéo sans visage, une vidéo animée pour les réseaux sociaux, ou dit /ai-video.

Qu'est-ce que ai-video-skill ?

Cette compétence transforme une simple instruction en une vidéo sociale complète et prête à publier (Reel Instagram, TikTok, Short YouTube) au format 1080x1920, sans intervention manuelle. Elle est idéale pour les créateurs de contenu, les marketeurs et toute personne souhaitant produire rapidement des vidéos animées de qualité professionnelle avec un minimum d'effort. La compétence fonctionne avec des agents d'IA comme Claude (Code, Desktop), Cursor, Codex et d'autres assistants de codage. Elle orchestre un pipeline complet : rédaction du script (ou utilisation d'un script fourni), génération de la voix off via ElevenLabs ou OpenAI, animation des scènes en utilisant des styles visuels distincts (Classique, 3D, Illustré), et exportation du fichier mp4 final. L'utilisateur n'a besoin que d'une instruction unique (sujet, angle, style souhaité) ; la compétence déduit les détails manquants, pose au maximum une question de clarification, et produit une vidéo cohérente et engageante. Elle inclut des mécanismes de révision automatique pour garantir la qualité, comme la vérification des images clés et des transitions, ainsi qu'un mode de construction parallèle pour accélérer la production sur les plans d'abonnement compatibles (Max, API, Team).

Compatible avec✓Claude Code✓Codex CLI✓Cursor
npx skills add https://github.com/Noahnocap/ai-video-skill/tree/HEAD

Demander à votre IA préférée

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

Documentation

Compétence de création vidéo IA

Vous (Claude) êtes le monteur. Ce dossier vous offre un moteur de reel éprouvé, trois styles visuels (Classique, 3D explicatif, Illustré), les règles de script et de rythme du créateur, ainsi que les outils pour la voix, le rendu, la révision et l'exportation. Vous écrivez le script et le code des scènes ; les outils font le gros du travail.

SKILL_DIR ci-dessous désigne le dossier dans lequel se trouve ce fichier (dans l'espace de travail AI Video, c'est <workspace>/skill). Exécutez chaque outil depuis n'importe où avec des chemins absolus, par ex. node "$SKILL_DIR/tools/reel.mjs" ....

0. Première utilisation sur cet ordinateur : vérification de la configuration (2 minutes)

Exécutez node "$SKILL_DIR/tools/doctor.mjs". Il vérifie Node, ffmpeg, Python, le navigateur sans tête, la clé ElevenLabs et la voix choisie, et affiche la solution exacte pour tout élément manquant. Guidez l'utilisateur à travers chaque correction une par une, en termes simples (il peut ne pas être technique). Détails dans SETUP.md.

  • Étapes d'installation que vous pouvez exécuter vous-même (avec l'accord de l'utilisateur) : npm install et npm run browser dans SKILL_DIR, pip3 install numpy.
  • Clés API : l'UTILISATEUR colle sa clé dans le fichier nommé par le docteur. Ne lui demandez jamais de coller une clé dans le chat, n'imprimez ni ne journalisez jamais une clé.
  • Voix : si aucune voix n'est sauvegardée, aidez-le à en choisir une (section 3). Faites-le une fois ; elle est sauvegardée pour tous les futurs reels.
  • Plan IA : demandez une fois quel plan il utilise (Claude Pro, Claude Max, API, Team, Codex, Cursor) ; vous ne pouvez pas le détecter vous-même. Sauvegardez-le : node "$SKILL_DIR/tools/doctor.mjs" --set-plan <max|pro|api|team|codex|cursor|other>. Sur Max, API ou Team, dites-lui : "votre plan exécute les générateurs de scènes en parallèle, la production vidéo est donc beaucoup plus rapide". Sur tout autre plan, demandez aussi une fois : "Meilleure qualité (le processus complet, mais cela pourrait épuiser rapidement vos limites d'utilisation) ou Bonne qualité (une construction plus légère qui correspond mieux à vos limites) ?" et sauvegardez-le : node "$SKILL_DIR/tools/doctor.mjs" --set-quality <best|good>. Il peut changer à tout moment ("utiliser la meilleure/bonne qualité"). Voir "Modes d'effort" ci-dessous.
  • Presenteur (classique et illustré uniquement) : si ~/.config/ai-video/config.json n'a pas encore de "presenter" et que le reel est classique ou illustré, demandez une fois une photo de lui (ou "pas de présentateur") et construisez son apparence (guides/presenter.md). Sauvegardé dans sa configuration. Si l'utilisateur a dit de ne pas poser de questions, utilisez le présentateur par défaut du template (engines/classic/template/reel.json) et mentionnez à la livraison qu'il peut avoir sa propre apparence (ou aucune) la prochaine fois.

Relancez le docteur chaque fois qu'un outil échoue avec une erreur qui semble liée à la configuration.

1. Comprendre la demande (ne pas trop demander)

À partir d'une seule instruction, vous avez besoin de : sujet/angle, script ou non, style, mot-clé CTA, langue. Déduisez ce que vous pouvez ; posez au maximum UNE question courte uniquement si le sujet lui-même n'est pas clair. Valeurs par défaut :

  • L'utilisateur a collé un script → utilisez-le textuellement (corrigez uniquement les fautes de frappe évidentes ; ne l'"améliorez" jamais). Sinon, rédigez-le (section 2).
  • Style (voir guides/styles/) :
    • Classique (classic) : arguments, outils, conseils, listes, opinions, actualités business/IA/tech, tout ce qui est "voici comment / voici pourquoi". Le style par défaut.
    • 3D explicatif (explainer3d) : "comment fonctionne X en réalité" à propos d'une chose physique ou d'un système (gadgets, applications, voitures, le corps, réseaux, villes).
    • Illustré (illustrated : le moteur classique, même aspect papier, légendes et présentateur, mais le héros de chaque séquence est un dessin réaliste du sujet via guides/illustration.md, kits/illustrate.js et library/classic/illustrated/) : le script parle de choses réelles et nommables : une entreprise ou une chaîne, un magasin, un lieu ou un quartier, un produit, de la nourriture, un bâtiment, un véhicule, une application ou une vidéo sur un téléphone.
    • Histoires avec des personnes et des lieux (une petite entreprise et ses clients, un magasin, une rue, une équipe, une ville) : Illustré quand l'histoire parle de l'entreprise, du lieu ou du produit (la vraie vitrine, le comptoir, la nourriture, la carte, avec des petits personnages comme vie) ; 3D explicatif quand le but est de montrer comment un système se déplace dans ce lieu (livraisons, files d'attente, circulation, signaux). Lorsque l'utilisateur nomme un style ("3D", "dessiné", "illustré", "comme mon dernier reel"), celui-ci prime.
  • Mot-clé CTA : un mot mémorable lié au sujet (par ex. PLUGINS, COFFEE), en majuscules. Sauvegardé dans reel.json.
  • Langue : la langue du script. Définissez "language": "xx" dans reel.json (code ISO : ru, es, de, ar...) afin que la voix, les légendes, le CTA et le texte de l'interface utilisateur (fiches de commentaires, DM) l'utilisent ; rédigez vous-même les légendes/emphase si vous n'êtes pas sûr. Les polices latines, cyrilliques, grecques et vietnamiennes sont incluses ; pour d'autres écritures, exécutez python3 "$SKILL_DIR/tools/fonts.py" check <project> après l'étape de la voix.
  • Voix ↔ présentateur : si l'utilisateur se décrit (genre, âge) ou fournit une photo, assurez-vous que la voix sauvegardée correspond ; si ce n'est manifestement pas le cas (par ex. une voix masculine pour son présentatrice), mentionnez-le et proposez voices.py search pour en trouver une qui correspond (ou utilisez la sienne s'il insiste). Pour les scripts non anglais, préférez une voix étiquetée avec cette langue.

2. Script (passer si l'utilisateur en a fourni un)

Lisez guides/scripting.md et suivez-le exactement : accroche dans les 1,5 premières secondes, boucle de curiosité dans la deuxième ligne, enjeux concrets, produit/réponse nommé seulement après que le problème est ressenti, conversationnel (pas saccadé), 110-170 mots (≈ 32-50 s : durée ≈ mots / (3 × vitesse de la voix) s ; un script plus court demandé conserve l'accroche, la boucle et la récompense, compressé), se terminant par "Commentez MOT_CLÉ et je vous enverrai...". Écrivez-le dans <project>/script.txt. Montrez le script à l'utilisateur dans le chat avant de le vocaliser s'il a demandé à le relire ; sinon, continuez (il a demandé un reel terminé).

3. Projet + voix

node "$SKILL_DIR/tools/reel.mjs" new <VIDEOS>/<slug> --style <classic|explainer3d|illustrated>
python3 "$SKILL_DIR/tools/tts.py" <VIDEOS>/<slug>

<VIDEOS> = le dossier videos/ à côté de ce dossier de compétence lorsqu'il existe (l'espace de travail AI Video : <workspace>/videos/<slug>/), sinon ./videos/ dans le dossier actuel de l'utilisateur, sauf s'il dit autrement. <slug> est un nom de sujet court en kebab-case. --style illustrated scaffold un projet classique (reel.json "style": "classic", "look": "illustrated") ; tout ce qui dit "classique" ci-dessous s'y applique, plus guides/illustration.md. tts.py écrit audio/vo.mp3 (pauses resserrées, accélérées par la vitesse de la voix sauvegardée (×1,15 sauf si la voix a été sauvegardée avec un autre --speed), normalisation du volume) et build/words.json + build/word_index.txt (chaque mot avec son temps). Toute l'animation est calée sur ces mots.

  • Choisir une voix (première exécution, ou l'utilisateur demande de la changer) : python3 tools/voices.py search "<ce qu'il veut>" [--lang xx], donnez à l'utilisateur 3 liens de prévisualisation, puis voices.py add <owner> <voice_id> "<name>" et voices.py use <voice_id> --name "<name>". Son propre enregistrement : tts.py <project> --provider file --audio take.mp3. Voix OpenAI : voices.py provider openai.
  • Crédits : une génération vocale par reel. Si vous modifiez le script plus tard, régénérez ; pour les corrections de timing uniquement, utilisez --reuse (pas de nouveaux crédits).

4. Inventer les visuels, puis planifier les séquences (storyboard avant le code)

4a. Inventer (c'est ce qui distingue un reel artisanal d'un template). Lisez d'abord guides/mindset.md (le niveau d'exigence et les perspectives de réflexion : soyez très créatif, beau, jamais vide, bien animé, instantanément compréhensible). Ensuite, lisez guides/patterns.md (classique, illustré) ou guides/patterns_3d.md (explainer3d) et appliquez sa méthode d'invention à CE script :

  • Une métaphore centrale / un monde visuel qui porte toute l'idée (un objet physique, une machine ou un lieu dont le comportement EST l'argument), et 3 à 6 accessoires personnalisés pour les séquences. Ils doivent provenir des mots de ce script, pas des exemples : les exemples d'accessoires dans les guides et library/ montrent des techniques, ne les copiez jamais. Demandez-vous : "Cette image conviendrait-elle au reel de quelqu'un d'autre ?" Si oui, elle est générique : réinventez.
  • Sujets du monde réel (le script nomme une vraie entreprise, un lieu, un produit, de la nourriture, un bâtiment, un véhicule, ou montre une vidéo/application sur un téléphone) : dessinez-les comme dans la réalité, pas comme des icônes plates ou des cartes de visite : guides/illustration.md (classique et illustré : primitives kits/illustrate.js + exemples library/classic/illustrated/ ; une vidéo à l'écran JOUE toujours). La chose réelle est souvent le héros et la métaphore inventée agit sur elle.
  • Écrivez l'invention en haut de STORYBOARD.md : métaphore, pourquoi elle convient, les accessoires, et le moment "waouh" par section.

4b. Storyboard. Ouvrez build/word_index.txt. Divisez le script en séquences : une séquence par phrase ou idée, 1,5 à 5 s chacune. Lisez d'abord la section qualité du guide de style (et REGARDEZ ses bandes de référence). Ensuite, écrivez ce bloc pour CHAQUE séquence (pas de séquences d'une seule ligne) :

séquence NN · "<les mots>" (mot i0-i1, s-e)
  décor reste : les éléments déjà à l'écran qui restent (et où)
  chaque mot accentué ajoute/modifie : mot → ce qui entre ou change d'état (un par mot accentué, toutes les 0,4-0,8 s)
  continue de bouger : la vie immobile de chaque élément (tic-tac, balancement, roulement, frappe, clignement, flottement)
  présentateur : (classique) point de focalisation + son jeu par phrase · (3D) qui/quoi agit
  caméra : inclinaison/poussée/coupure/coupe sur quels mots · transition entrante
  accessoires personnalisés : lesquels de VOS accessoires inventés apparaissent (nouveau code à écrire)
  grands moments : claques, coupes, fouets, révélations : visez 1+ par seconde (le mouvement du reel le mesure sur le brouillon)

Règles (de guides/direction.md) : le décor se CONSTRUIT (chaque mot accentué ajoute ou modifie un élément, les précédents restent et continuent de bouger) avec EXACTEMENT UN point focal à la fois ; l'image a du sens sans le son ; rien de statique pendant plus de 1,2 s ; les grandes choses arrivent SUR le mot accentué ; la séquence d'accroche montre la récompense ou le conflit immédiatement, déjà complète.

5. Construire les scènes

Lisez guides/styles/<style>.md entièrement avant d'écrire du code (illustré : guides/styles/classic.md + guides/illustration.md) (niveau de qualité, aspect, jetons, API, contrat de scène, recettes). Le moteur vous donne COMMENT les choses bougent (ressorts, pendules, gravité, construction de décor, jeu du présentateur, caméra, frappe, nombres qui défilent, transitions) ; CE qui bouge, ce sont les accessoires que vous avez inventés en 4a, dessinés comme nouveau code dans le projet. Budget : les reels du créateur contiennent 50 à 110 lignes de code de scène personnalisé et 3 à 7 objets dessinés personnalisés par seconde de vidéo ; planifiez en conséquence.

  • Calez sur les mots avec l'assistant du style (wordAt('mot') / wi(index)), jamais en secondes codées en dur.
  • Prévisualisez chaque accessoire inventé seul avant de l'utiliser (une scène/séquence jetable montrant uniquement l'accessoire, rendue avec reel stills <project> <t> --only <id> ; explainer3d a aussi une page de présentation du kit). Nommez ce fichier de scène scenes/preview_<prop>.js (craft ignore scenes/preview*.js et scenes/props*.js, ne mettez donc jamais de vrai code de reel dans des fichiers nommés ainsi). Classique : listez-le dans SCENE_FILES mais jamais dans TIMELINE : une scène enregistrée qui n'est pas dans la timeline ne sera jamais rendue dans le reel ; supprimez-la de SCENE_FILES avant la finale.
  • Après CHAQUE reel stills / reel video, lisez la fin de la sortie : si elle liste "error while drawing frames", ces images sont cassées. Corrigez-les d'abord.
  • Mode parallèle : utilisez des sous-agents (Le mode un par un construit exactement les mêmes séquences avec le même brief par séquence, vous-même, l'une après l'autre) : un par 1 à 2 séquences, tous en parallèle, chacun recevant : guides/mindset.md (collez-le dans le brief), le chemin du guide de style, guides/patterns(_3d).md, guides/illustration.md quand sa séquence dessine un sujet du monde réel (classique), le bloc d'invention, ses lignes et mots de storyboard, et l'état de transition des scènes voisines. Chaque sous-agent rend ses images fixes avec --out <nom de sa séquence> (propre feuille, pas d'écrasement). Ensuite, révisez-les ensemble.

6. Réviser votre propre travail (obligatoire, c'est ce qui le rend professionnel)

Suivez guides/review.md. En résumé :

  1. node "$SKILL_DIR/tools/reel.mjs" stills <project> <t1> <t2> ... au milieu de chaque séquence et 0,1 s après chaque coupe (feuille : stills/sheet.jpg). REGARDEZ l'image de la feuille. Vérifiez chaque élément de la liste de contrôle de révision ; corrigez et refaites le rendu des images fixes jusqu'à ce que ce soit propre.
  2. node "$SKILL_DIR/tools/reel.mjs" video <project> (brouillon rapide en basse résolution, build/draft.mp4). Extrayez et regardez les images autour de chaque transition (ffmpeg -ss T -frames:v 1). Corrigez les pops, chevauchements, blancs.
  3. node "$SKILL_DIR/tools/reel.mjs" motion <project> et node "$SKILL_DIR/tools/reel.mjs" craft <project> : les deux doivent afficher PASS (craft = assez de travail original, aucun accessoire standard ne porte le reel). motion liste chaque étendue plate avec ses mots : donnez à chacune un événement de construction, un mouvement secondaire, un mouvement de caméra ou un jeu du présentateur, refaites le rendu du brouillon, relancez. Ne faites jamais le rendu final tant qu'il échoue. Si l'utilisateur interdit les rendus vidéo, sautez le brouillon (étape 2) et motion et vérifiez la densité sur les images fixes à la place (guides/review.md, "Exécutions avec images fixes uniquement" : quelque chose de nouveau sur chaque mot accentué, pas de fenêtre de 1,2 s où deux images fixes consécutives se ressemblent) ; craft s'exécute toujours, et dites à la livraison que le mouvement n'est pas vérifié.
  4. Avant la finale, regardez la feuille d'images fixes une fois de plus à travers les questions de guides/mindset.md (le plus créatif ? plein, beau, vivant ? un point focal clair ? le créateur le publierait-il ?). Si une réponse est "pas encore", améliorez d'abord.
  5. Finale : node "$SKILL_DIR/tools/reel.mjs" video <project> --final puis node "$SKILL_DIR/tools/reel.mjs" export <project> → out/<nom>.mp4 (1080x1920, 30 ips, H.264 + AAC, prêt pour Instagram). Un seul rendu à la fois (verrouillage intégré). Les brouillons d'abord, la finale une fois : c'est respectueux pour l'ordinateur de l'utilisateur.

7. Livrer

Donnez à l'utilisateur : le chemin vers out/<nom>.mp4, une légende de publication (2-3 lignes qui ajoutent du contexte, le mot-clé CTA, 3 à 5 hashtags pertinents), et un rappel que "Commentez MOT_CLÉ" nécessite une réponse automatique en DM configurée (ManyChat, ReplyRush, ou les automatismes d'Instagram) avec le lien promis. Voir guides/delivery.md. Proposez un cycle de modifications ("accroche plus rapide", "voix différente", "échanger la scène 3").

Modes d'effort (lisez agent_plan et quality depuis ~/.config/ai-video/config.json ; le docteur les affiche)

  • Vitesse : Max, API, Team = parallèle (un sous-agent pour 1 à 2 séquences, tous en même temps : production vidéo beaucoup plus rapide)
  • Sinon = un par un (vous construisez les séquences une par une ; plus lent mais sans consommation excessive du quota)
  • Qualité : best = vérifications complètes : images fixes de chaque séquence, brouillon vidéo, vérification du mouvement, vérification de l'artisanat. good = images fixes + artisanat uniquement (pas de brouillon vidéo ni de vérification du mouvement) ; sautez les étapes 2 et 3 de la révision ("Stills-only runs" dans guides/review.md). Le compteur de mots craft se base sur la qualité bonne.

Skills associés