Tutoriel
Faire monter automatiquement des vlogs par Claude Code : un processus reproductible
Pieter Levels a confié des rushes de voyage à Claude Code, qui en a fait un montage d'environ 10 minutes. Décomposons les outils utilisés et la manière de construire ce processus soi-même.
La méthode décrite ici provient d'un test partagé par Pieter Levels (@levelsio) sur X en novembre 2026, publication originale : https://x.com/levelsio/status/2116959423117857026 . Sa réponse complémentaire sur la chaîne d'outils : https://x.com/levelsio/status/2116961807315169718 . Voici notre décomposition de son partage et nos explications pour le reproduire.
Pieter Levels a confié à Claude Code les rushes filmés avec un DJI pour qu'il en fasse un vlog d'environ 10 minutes ; lui n'a fait que quelques ajustements, et n'a découvert qu'après coup quels outils avaient été réellement utilisés.
Ce retour mérite d'être décortiqué, car il transforme un « montage vidéo par IA » vague en un processus d'ingénierie reproductible.
Ce qu'il a réellement fait
L'ordre de toute la chaîne est le suivant :
- Transcription : conversion de l'audio en texte horodaté avec mlx-whisper
- Extraction d'images : capture d'images à intervalle fixe, assemblées en une grille visuelle
- Séparation des locuteurs : le modèle ECAPA de SpeechBrain identifie qui prononce chaque phrase
- Décision : Claude lit simultanément la transcription et la grille visuelle, et décide quels segments conserver
- Sortie : génération d'une liste de montage JSON, et non un montage vidéo direct
- Rendu : découpe et assemblage avec ffmpeg selon la liste
- Compléments : OpenCV avec YuNet pour les vignettes de visages, Pillow pour le titre d'ouverture
L'essentiel se joue aux étapes 4 et 5. Le modèle ne « monte pas la vidéo » : il « lit deux jeux de données structurées et produit une décision de montage ».
Pourquoi cette conception fonctionne
Peut-on donner directement la vidéo au modèle ? Techniquement oui, mais le coût deviendrait incontrôlable. Une heure de rushes, calculée image par image, représente un nombre de tokens astronomique.
Ce processus réalise deux compressions :
Première compression côté audio. Une heure de parole devient environ dix mille caractères de texte, que le modèle lit pour un coût dérisoire. Les horodatages sont conservés, il sait donc où se trouve chaque phrase dans la vidéo.
Seconde compression côté image. Des images extraites à intervalle régulier sont assemblées en grille, une seule image montre ainsi plusieurs instants. Le modèle juge sur l'image si « ce passage montre une marche » ou « s'il y a un paysage », sans avoir besoin des images consécutives.
Après ces deux compressions, des heures de rushes deviennent une entrée que le modèle peut lire d'un coup, et le coût de décision tombe dans une fourchette acceptable.
Pour le construire soi-même, l'ordre compte
Étape 1 : soigner d'abord la transcription
Séparer la piste audio et la convertir en texte horodaté. La qualité de cette étape conditionne toutes les décisions suivantes.
Pour un vlog essentiellement parlé, la précision de la transcription détermine directement si le modèle peut repérer la frontière « ce passage est terminé ». Sur des rushes au fond sonore bruyant, la transcription perd des mots et les segments découpés par le modèle ont tendance à s'arrêter au milieu d'une phrase.
Étape 2 : concevoir correctement le format de la liste de montage
Ne demandez pas au modèle de produire du langage naturel du type « conserver de 00:12 à 01:47 », mais un JSON à schéma fixe :
{
"segments": [
{"start": 12.4, "end": 107.2, "reason": "到达民宿,介绍房间"},
{"start": 340.1, "end": 402.8, "reason": "海边日落延时"}
],
"total_duration": 596.1
}
Avec un format fixe, le script peut le consommer directement, sans analyser du langage naturel. Le champ reason indique pourquoi chaque segment est conservé, ce qui facilite la relecture humaine.
Étape 3 : confier le rendu à ffmpeg
Le modèle ne produit que la décision ; la découpe et l'assemblage reviennent à ffmpeg. Chaque maillon peut ainsi être débogué séparément : si la décision de montage est mauvaise, on modifie le prompt ou on change de modèle ; si l'image est mauvaise, on vérifie les paramètres ffmpeg.
Un exemple minimal de découpe puis d'assemblage selon la liste :
# 按清单逐段切割
ffmpeg -ss 12.4 -to 107.2 -i input.mp4 -c copy seg_01.mp4
# 拼接
printf "file 'seg_01.mp4'\nfile 'seg_02.mp4'\n" > list.txt
ffmpeg -f concat -safe 0 -i list.txt -c copy out.mp4
-c copy n'effectue pas de réencodage : le gain de vitesse est de plusieurs ordres de grandeur. À condition que les paramètres d'encodage des segments soient identiques, il faut donc d'abord les uniformiser avant la découpe.
Étape 4 : confier la décision au modèle
Il suffit de brancher HiAPI à cette étape. La configuration de Claude Code est décrite dans Claude Code et Codex connectés à HiAPI : une fois la clé configurée, l'inférence exécutée dans Claude Code passe par Opus 5.5 (entrée 2,02 $, sortie 10,08 $ par million de tokens).
Pour une heure de rushes, la transcription et quelques dizaines de grilles visuelles représentent environ vingt à trente mille tokens en entrée. Au tarif d'entrée d'Opus 5.5, une décision complète coûte de quelques centimes à un dixième d'euro. Comparé au temps de travail d'un montage manuel d'une heure, cet ordre de grandeur ne laisse pas place à l'hésitation.
Réutilisable en changeant de scénario
Avec la même structure, il suffit de changer la source d'entrée pour obtenir un autre produit :
| Scénario | Entrée | Objectif de montage |
|---|---|---|
| Extrait de podcast | Audio long + transcription | Sélectionner des idées autonomes |
| Compte rendu de réunion | Capture d'écran + transcription | Conserver décisions et actions à faire |
| Montage fin de cours | Vidéo de cours | Supprimer les pauses et répétitions |
| Compilation d'interviews | Multi-caméras | Réorganiser par thème |
Les prompts diffèrent pour chaque catégorie, mais la structure « transcription → compression → décision → rendu » reste identique.
Les pièges rencontrés
Décalage des horodatages. Selon l'outil, la base des horodatages de transcription peut varier de quelques dizaines de millisecondes, et le début du segment coupé avale alors des mots. La solution consiste à calibrer d'abord sur un court extrait.
Le modèle tend à conserver trop de choses. Au premier essai, le montage n'est souvent pas assez tranchant et la sortie dépasse la durée cible. Indiquez clairement la durée cible dans le prompt et précisez qu'en cas de dépassement il faut refaire la sélection.
Le point de coupe tombe au milieu d'une phrase. Si l'on ne donne que les horodatages, le modèle peut couper au milieu. Fournissez-lui aussi les frontières de phrases de la transcription pour qu'il choisisse selon ces frontières.
Le réencodage prend du temps. Quand les paramètres d'encodage des segments diffèrent, -c copy échoue et retombe sur un réencodage, qui prend très longtemps sur une heure de rushes. L'uniformisation des paramètres est une étape indispensable.
Questions fréquentes
Faut-il obligatoirement Claude Code ?
Pas nécessairement. Tout modèle capable de lire de longs textes et de produire du JSON selon un schéma peut assurer cette étape de décision. L'avantage de Claude Code est qu'il écrit lui-même les scripts, exécute ffmpeg, observe les résultats et ajuste, ce qui vous épargne le temps de chaîner manuellement le processus.
Peut-on faire tourner mlx-whisper sans puce Apple ?
Non, mlx est un framework Apple. Sur une machine non Apple, remplacez-le par faster-whisper ou whisper.cpp, la logique reste la même.
Combien de temps prend tout le processus ?
La transcription des rushes domine : environ d'une dizaine de minutes à plusieurs dizaines pour une heure de rushes sur une puce de la série M, selon la taille du modèle. L'étape de décision prend quelques minutes. Le rendu avec -c copy est rapide.
Le montage est-il directement utilisable ?
Selon Levels lui-même, il a fallu quelques ajustements. Le processus automatique résout la partie la plus chronophage : « extraire dix minutes de plusieurs heures de rushes ». Pour le rythme des détails et les transitions, un ajustement humain reste plus rapide.
Conclusions clés
Ce qui fait fonctionner ce processus n'est pas l'intelligence du modèle, mais la transformation de la vidéo en données que le modèle peut se permettre de lire. La transcription compresse l'audio, la grille d'images extraites compresse l'image, le modèle ne fait que choisir les segments, et le rendu revient à ffmpeg. Pour le reproduire, commencez par « convertir les rushes en texte horodaté » ; le reste est du travail d'ingénierie.
Sources
- Partage original : Pieter Levels (@levelsio), https://x.com/levelsio/status/2116959423117857026
- Complément sur la chaîne d'outils (réponse de l'auteur) : https://x.com/levelsio/status/2116961807315169718
- La décomposition du processus, les exemples de code et les remarques de cet article ont été compilés par HiAPI et ne proviennent pas de l'auteur original
Articles similaires
Voir tous les articles →-
Tutoriel
Cas pratiques Recraft Creative Upscale : agrandissement de paysages et d'aquarelles
Examinez les variations de texture de la cabane, du lac et de la petite ville à l'aquarelle, distinguez le résultat complet de l'aperçu et vérifiez les détails redessinés.
-
Tutoriel
Clé API OpenAI invalide : dépannage des erreurs 401, des variables d'environnement et de la configuration du projet
Distinguez les erreurs 401, 403 et 429 d'OpenAI, vérifiez les variables d'environnement ainsi que les paramètres d'organisation et de projet, puis validez les identifiants avec une requête en lecture seule.
-
Tutoriel
Guide complet des prompts Kling 4.0 : 6 scènes à copier-coller pour générer des vidéos
Produit e-commerce, cuisine, paysage de voyage, scène de vie, plan vide avec son et image vers vidéo : chaque scène a son rendu réel, son prompt complet et un lien de préremplissage en un clic.