Du script à la vidéo | Automatiser la création grâce au LLM chaining
- Collaboration client
En janvier 2025, je décide d’apprendre à implémenter des services d’intelligence artificielle au sein de mes projets de programmation, avec pour objectif de renforcer mes compétences techniques pour décrocher une alternance en janvier 2026.
En juillet 2025, cette démarche se concrétise par une première collaboration client, autour d’un besoin clair : automatiser intégralement la production de vidéos YouTube. Ce contrat m’a permis de créer mon auto-entreprise de développement spécialisée en intelligence artificielle, et d’obtenir le Statut National d’Étudiant-Entrepreneur.
Pour répondre à cette problématique, j’ai conçu un système reposant sur le principe du LLM chaining, assimilable à une chaîne de production industrielle. À partir d’une donnée textuelle initiale, chaque étape du pipeline transforme l’information jusqu’à sa publication finale.
Pipeline
Le pipeline est orchestré en sept étapes clés programmées en Python.
- 1Extraire sujet
- 2Générer script
- 3Produire audio
- 4Sous-titrer
- 5Monter vidéo
- 6Créer miniature
- 7Publier vidéo
Extraction du sujet

Le processus débute par la récupération du sujet du jour. Pour automatiser cette entrée, j’ai conçu un programme utilisant la bibliothèque Pandas chargée d’extraire précisément, depuis un fichier Excel, le sujet associé à la date actuelle. Cela me permet de garantir que le pipeline dispose toujours d’une thématique à traiter.
Génération du script
Une fois le sujet récupéré, il doit être transformé en un script narratif. Le système injecte alors cette donnée dans un prompt structuré qu’il transmet à l’API GPT-4.1 d’OpenAI. Le script généré, qui constitue désormais la structure de la vidéo, est automatiquement sauvegardé dans un fichier texte pour les étapes suivantes.
Génération de la voix off
Maintenant que le script est généré, il faut produire la voix off de la vidéo.
Pour cela, j’ai choisi d’utiliser ElevenLabs, dont les modèles offrent un haut niveau de réalisme vocal, un large choix de langues et un coût compatible avec un pipeline automatisé.
L’API ElevenLabs génère la voix off en fonction des paramètres donnés (script, voice ID, model ID). L’audio est ensuite retourné sous forme encodée en base64. J’ajoute alors une étape de décodage pour obtenir un fichier binaire exploitable, ici un fichier MP3.
Récupération des sous-titres
Pour anticiper les besoins du montage, j’ai choisi de récupérer les sous-titres au moment même de la création de la voix off. En utilisant l’endpoint with-timestamps d’ElevenLabs, le système obtient un alignement temporel mot à mot. Ces données sont ensuite traitées pour former des segments lisibles, puis compilées dans un fichier .ass qui respecte les contraintes typographiques du client.
Montage vidéo
Pour offrir une flexibilité maximale au client, j’ai décliné l’étape de montage vidéo en deux formats distincts.
Le premier format repose sur un montage volontairement minimaliste : des paysages défilent en arrière-plan, avec des sous-titres superposés. L’objectif est de concentrer l’impact de la vidéo sur le message transmis plutôt que sur le contenu visuel.
Dans ce cadre, j’ai créé un système qui :
- Sélectionne aléatoirement les vidéos de fond en tenant compte de la durée de la voix off. La durée de chaque clip est analysée à l’aide de FFprobe.
- Concatène les clips avec des transitions en fondu.
- Superpose la voix off (MP3), les sous-titres (.ass) et une musique de fond.
- Ajoute une introduction ou une outro prédéfinie selon les besoins du client.
L’ensemble de ce traitement est automatisé à l’aide de FFmpeg.
Le second format propose une alternative au tournage vidéo classique, en reposant sur l’énonciation du script par un avatar IA.
Cette automatisation est basée sur l’API HeyGen, l’une des technologies les plus abouties en matière de génération d’avatars.
Le système fournit la voix off générée en amont (via ElevenLabs à l’étape 2) à la plateforme HeyGen, qui se charge de synchroniser automatiquement les mouvements de l’avatar avec l’audio. L’apparence de l’avatar est personnalisable à l’aide d’un avatar ID configuré en amont, permettant de choisir entre un avatar 3D animé ou une photo animée selon le format souhaité.
Création de la miniature
Pour créer la miniature de la vidéo, j’ai mis en place un processus utilisant des images de référence générées par Sora (OpenAI). À partir de cette base, j’utilise la bibliothèque Pillow pour appliquer des filtres visuels et superposer du texte adapté au contenu.
Génération du titre et de la description de la vidéo
Pour finaliser la vidéo, j’ai automatisé la génération du titre et de la description. À partir du sujet issu du fichier Excel, un prompt est construit et transmis à l’API GPT-4.1 d’OpenAI, qui produit directement les métadonnées de publication.
Mise en ligne sur YouTube
Maintenant que toutes les données ont été générées, on peut passer au dernier maillon du pipeline : la mise en ligne de la vidéo sur YouTube.
Pour cela, j’ai intégré l’API YouTube Data v3, accessible via une authentification Google OAuth 2.0. Le système téléverse ensuite automatiquement la vidéo finale en y associant la miniature, les métadonnées et la programmation de la publication.
Déploiement
Pour déployer le système, j’ai fait le choix d’une architecture conteneurisée basée sur Docker afin de garantir la portabilité et la reproductibilité des environnements.
Pour alléger l’image finale, j’ai mis en place un build multi-stage, séparant la phase de compilation des dépendances de celle dédiée à l’exécution.
Pour sécuriser les accès et assurer la persistance des données, j’ai monté les secrets et les fichiers de configuration via des volumes Docker.
J’ai ensuite hébergé l’ensemble du dispositif sur un serveur dédié Hetzner. Afin de simplifier le pilotage des services, j’utilise Docker Compose, qui me permet de gérer les dépendances entre services et de déclencher la mise en production aussi bien manuellement qu’automatiquement.
Enfin, j’ai mis en place un workflow GitHub Actions intégrant des cron jobs, permettant de déclencher automatiquement l’exécution du pipeline sur le serveur via SSH. Cela garantit une publication régulière du contenu créé, sans intervention manuelle.
Bilan

En répondant à un besoin client concret, ce projet a constitué une étape structurante dans mon parcours. Il m’a permis de consolider mes compétences en architecture de systèmes d’IA, en automatisation de pipelines complexes et en programmation Python, tout en m’initiant à des pratiques professionnelles de déploiement (Docker, CI/CD, orchestration).
Au-delà de l’aspect technique, cette expérience m’a confrontée aux réalités de la gestion de projet client : analyse du besoin, fiabilité des livrables et respect des contraintes de production.