Je ne vais pas te montrer du contenu créé par l'IA. Je vais te montrer du contenu réaliste que l'IA monte à ta place, avec toi qui valides à trois endroits précis. La différence entre les deux, c'est exactement la différence entre une vidéo qu'on regarde et une vidéo qu'on scrolle.
Le piège du 100 % automatisé
La promesse que tu vois partout, c'est « 50 vidéos par jour en pilote automatique ». C'est un piège, et il est facile à comprendre : quand tu automatises de bout en bout, tu noies les réseaux de contenu moyen en espérant qu'un truc sorte. Tu paies ça deux fois — en tokens, et en image de marque.
Ma position est différente. L'IA fait 80 % du travail : elle écrit le script, elle génère la voix, elle découpe, elle propose le montage, elle sélectionne les plans. Toi tu fais les 20 % restants : tu valides, et de temps en temps tu dis « attends, cette dernière phrase elle est bizarre, change-la ».
Ça prend quelques minutes. Et ces quelques minutes font toute la différence entre un contenu qui passe pour humain et un contenu qui pue l'IA à trois mètres.
C'est aussi pour ça que ce workflow est utile si tu n'es pas à l'aise devant la caméra. Tu n'as pas besoin de te filmer pour exister. Tu as besoin d'un pipeline qui transforme une idée en vidéo verticale exploitable, à partir de médias déjà existants et gratuits.
Étape 0 : dessiner le workflow avant d'écrire une ligne de code
Avant de se lancer à corps perdu dans le code, on définit le workflow. J'utilise Excalidraw, mais n'importe quoi fait l'affaire — une feuille A4 marche aussi.
Une convention simple, et c'est elle qui porte tout le sens :
- Losange = intervention humaine (validation, décision)
- Rectangle = l'IA ou le système
Rien qu'en dessinant ça, tu vois immédiatement où tu gardes la main et où tu lâches. Si ton schéma n'a que des rectangles, tu es en train de construire une machine à contenu fade.
Le pipeline complet
1. Idée (humain) → interface : saisir l'idée,
les guidelines de montage, la durée
2. Génération du script (IA) → à partir de cible.md + viralmaster.md
3. Validation du script (H) → voir le script, valider ou corriger
4. Génération de la voix (IA) → ElevenLabs ou TTS local (Piper)
5. Validation de la voix (H) → écouter, régénérer si besoin
6. Transcription mot à mot → Whisper local, un timecode par mot
7. Découpage en "beats" (IA) → regrouper les mots en petits blocs
8. Proposition de montage (IA)→ à partir de monteur.md
9. Validation du montage (H) → interface en cartes : 1 carte = 1 beat
10. Recherche de médias → mots-clés EN → API Pexels → 4 propositions
11. Sous-titrage automatique → groupes de 3 mots, centré
12. Rendu (Remotion) → 2 fichiers exportés
Trois losanges. Trois endroits où tu reprends la main. C'est le cœur du truc.
Le détail qui compte : les fichiers de contexte
À l'étape 2, l'IA ne génère pas « un script » dans le vide. Elle génère un script à partir de deux fichiers markdown que tu lui donnes :
cible.md— ton avatar, ce que ta chaîne vise, à qui tu parlesviralmaster.md— tes guidelines de script : le hook, le rythme, « toutes les X secondes il se passe quelque chose », la structure
Le deuxième fichier doit fonctionner pour 80 % de tes cas. Les 20 % restants, tu les ajustes à la main. Et surtout : trouve le tien, adapté à ta niche. Un pattern générique produit des scripts génériques, c'est mécanique.
Pourquoi les "beats"
Whisper te sort un timecode par mot. C'est précis, mais inexploitable tel quel pour du montage — tu ne vas pas changer de plan à chaque mot.
Donc on regroupe : quelques mots, jusqu'à une virgule, un point, une respiration. Chaque groupe = un beat. Ensuite tu peux dire « ces trois beats-là, je mets cette vidéo par-dessus », ou « sur le beat 1 je zoome, sur le beat 5 je dézoome ».
C'est le seul moyen de sélectionner des moments à partir du texte, sans jamais ouvrir une timeline.
Vibe coder l'outil : capture d'écran → Claude Code
Méthode volontairement bourrine, et qui marche : capture d'écran du schéma, projet vide, nouvelle session Claude Code, on colle l'image.
Le prompt :
Ton objectif est de coder cette interface le plus simplement possible.
N'hésite pas à me poser toutes les questions dont tu as besoin
pour clarifier ce schéma et ce que tu vas faire.
Pas besoin de persistance.
Pose-moi les questions techniques à trancher pour réaliser ça.
La dernière ligne est la plus importante. Tu ne demandes pas du code, tu demandes les arbitrages. Un schéma simple + une demande de clarification, ça s'en sort très bien.
Les questions techniques à trancher
Claude revient avec une liste. Voilà comment je réponds, et pourquoi.
Quelle stack ? Il propose Next.js, Vite + React + Express, ou Python + HTML. Je réponds par une contrainte, pas par une techno :
Ce projet n'a pas vocation à aller sur Internet. Il reste sur mon ordinateur. Donc : le plus efficace.
Ça change absolument tout. Pas d'auth, pas de déploiement, pas de gestion de secrets, pas de scaling. Le périmètre s'effondre. C'est la décision qui fait la différence entre un outil livré en une session et un projet qui traîne trois mois.
J'ajoute un indice : je préfère Python, parce que la majorité des librairies IA sont en Python. Il existe des passerelles pour exécuter du Python depuis du JS, mais autant s'éviter la couche.
Quel moteur de rendu vidéo ? Remotion. Tu écris ta vidéo en code, tu la rends en programmatique.
Quel LLM ? Claude. OpenAI marche aussi, peu importe.
Comment obtenir les timings ? Whisper en local. Attention : ça consomme. Sur un vieux MacBook Intel 16 Go c'est lent, mais ça passe. Si un jour tu veux déployer ça sur un petit serveur, c'est le premier truc qui va coincer.
Quel format ? Une seule phase : vertical.
Quel média par beat ? Vidéo uniquement, pour simplifier. On pourrait mixer photo animée (zoom lent + léger mouvement) et vidéo — c'est là que ça devient intéressant visuellement — mais pas en V1.
Quel style de sous-titres ? Groupes de trois mots, centré. Recommandation par défaut, on ne se casse pas la tête.
La modif à faire immédiatement : SQLite + logs
Claude sort une interface qui tourne. Avant de tester quoi que ce soit, une chose s'impose.
Le pipeline a 12 étapes. Si ça casse à l'étape 9, tu ne veux pas relancer les étapes 2 et 8 — celles qui appellent l'API d'Anthropic. Sinon tu repaies à chaque tentative.
Rajoute un moyen de persister chaque script dans une base de données.
Utilise SQLite.
Le but : si j'ai une erreur dans mes étapes, pouvoir reprendre à l'étape
où il y a eu le problème — j'ai le temps entre-temps de corriger le code.
Ajoute aussi un endroit avec un maximum de logs pour voir les erreurs.
SQLite, pour ceux qui ne savent pas : c'est une base de données qui tient dans un simple fichier sur ton disque. Pas de serveur à installer, pas de config. C'est la manière la plus simple de persister de la donnée, point.
Cette modif prend deux minutes et t'économise des dizaines d'euros d'appels API sur une semaine de mise au point. C'est typiquement le réflexe que personne n'a en vibe coding, et qui fait la différence entre un outil utilisable et un truc qu'on abandonne parce que « ça coûte cher ».
Ce qui casse au premier test (et c'est normal)
Premier passage complet : la voix est générée en local avec Piper, le script est bon… et impossible de passer à l'étape suivante. Il manque un écran.
Le retour à Claude est littéralement une phrase :
Une fois la voix générée, je n'ai rien dans l'interface qui me permette
de la valider et de passer à l'étape d'après.
Il ajoute l'étape d'approbation, et le bouton pour régénérer la voix. Fin de l'incident.
C'est exactement ça, le rythme de travail : tu lances, tu butes, tu décris le blocage en langage naturel, tu relances. Pas de debug héroïque. Le schéma de départ sert de référence partagée — c'est pour ça qu'on l'a dessiné.
Le rendu : deux fichiers, pas un
Au téléchargement, on veut deux exports :
- La vidéo avec les plans Pexels et les animations
- Une vidéo transparente contenant uniquement les sous-titres
Pourquoi ? Parce que tu récupères les deux dans ton logiciel de montage et tu positionnes les sous-titres comme tu veux, tu ajoutes tes incrustations, ton branding, l'écran de ton produit à la fin. Tu ne subis pas la mise en page du rendu automatique.
Cinq secondes de réflexion au moment de l'arbitrage, des heures gagnées après.
Les limites, honnêtement
Le catalogue Pexels est limité. L'avantage : c'est gratuit et libre de droits. L'inconvénient : dès que ton sujet devient précis, tu ne trouves plus rien de pertinent. Pour illustrer « un dev qui galère sur son écran », tu envoies computer ou hacker en mots-clés et tu prends la meilleure des quatre propositions. Pour illustrer un concept métier spécifique, oublie.
Deuxième limite : Whisper en local, c'est lent sur une machine modeste. Acceptable pour un usage perso, bloquant pour un usage industrialisé.
Aller plus loin : le mélange qui ne se voit pas
Deux extensions qui changent la perception du résultat.
ElevenLabs pour la voix. Tu peux cloner la vraie tienne. Une voix familière sur un montage automatique, ça ne se lit plus comme de l'IA. Autre embranchement possible : tu enregistres toi-même le script et tu l'uploades — le reste du pipeline ne change pas d'un iota, puisque Whisper travaille sur le fichier audio quel qu'en soit l'origine.
Seedance (API de génération vidéo) pour les plans introuvables. Le truc malin : il est beaucoup plus facile de trouver une photo pertinente sur Pexels qu'une vidéo. Tu pars d'une photo réaliste — ou d'une photo de ton propre produit — et tu la transformes en plan animé.
Et c'est là qu'est le vrai compromis :
Entrelace du Pexels réaliste, de courts plans IA et des images de ton produit. Ce mélange paraît infiniment moins IA que les vidéos 100 % générées qu'on voit passer.
Pourquoi les vidéos 100 % IA se voient autant ? Parce que générer 30 secondes de vidéo coûte cher. Donc les gens baissent la qualité pour tenir le budget. Et ça se voit. C'est aussi bête que ça.
Ce que ce projet dit vraiment
Deux choses, et elles dépassent largement la création de contenu.
La première : ton problème n'est pas technique, il est de périmètre. Ce pipeline a 12 étapes et se code en une session parce qu'on a dit « ça reste sur mon ordinateur ». Pas d'auth, pas de déploiement, pas de multi-utilisateur. La contrainte la plus forte du projet est aussi celle qui l'a rendu faisable. Quand un truc ne sort jamais, c'est presque toujours ça : personne n'a tranché ce qui ne sera pas fait.
La seconde : l'IA ne tue pas la qualité, elle la rend rare. On est au pic du contenu fade. Tout le monde a accès aux mêmes modèles, aux mêmes prompts, aux mêmes templates. Résultat : saturation, puis indifférence. Et derrière l'indifférence, il y a une prime au concret — à ce qui a visiblement été touché par une main humaine.
Ce workflow ne te fait pas gagner du contenu. Il te fait gagner du temps de montage, pour que tu puisses mettre tes 20 % là où ils se voient : le script, la voix, le choix des plans, la dernière phrase qui sonne faux.
Concrètement, en une heure tu sors une vidéo de pub pour ton produit. Tu la testes en organique. Tu gardes la structure et tu fais varier les accroches. Et quand une accroche prend, là tu peux pousser.
Ce qui suppose évidemment une chose : que le produit dont tu parles soit en ligne. Un pipeline de contenu magnifique pointant vers une app qui tourne sur ton localhost, c'est un groupe qui répète depuis trois ans sans jamais jouer en live.
Récap de la stack
| Étape | Outil |
|---|---|
| Schéma du workflow | Excalidraw |
| Génération du code | Claude Code |
| Stack applicative | Python (+ interface web locale) |
| Script & découpage | Claude API |
| Voix | Piper (local) ou ElevenLabs |
| Timecodes mot à mot | Whisper (local) |
| Médias | API Pexels (clé API requise) |
| Rendu vidéo | Remotion |
| Persistance | SQLite |
| Extension vidéo générative | Seedance (optionnel) |
Une clé API Pexels est nécessaire pour faire tourner le montage. Le reste s'installe en local.
Le code complet de l'outil de montage est ici : récupère-le