Que fait ai-ugc-video-pipeline ?
Les vidéos marketing courtes avec présentateur IA (talking-head + séquences produit réelles + sous-titres) présentent un ensemble spécifique de modes de défaillance qui ne se manifestent qu'à la lecture du fichier final sur un véritable appareil — pas dans ffprobe, pas dans un script qui saute dans la timeline. Ce pipeline sécurisé les détecte avant la livraison, ainsi que les deux bugs audio faciles à réintroduire même lorsqu'on les connaît.
Quand l'utiliser
- Production d'une vidéo marketing/produit courte (verticale, 9:16) avec présentateur IA.
- Remontage ou itération d'une vidéo existante.
- Tout pipeline qui assemble des séquences talking-head générées par IA + des captures d'écran réelles + des sous-titres générés via ffmpeg.
Ordre des phases non négociable — chaque phase verrouille la suivante
- PRÉPARATION (ne dépensez rien tant que ce n'est pas vert). Recherchez le paysage actuel des modèles pour votre générateur de présentateur/voix (les prix et les points de terminaison de ces API évoluent tous les mois — vérifiez auprès de la documentation en direct du fournisseur avant d'engager des dépenses). Rédigez quelques variantes de script, faites-en choisir une par un juge textuel, préparez votre matériel de référence visage/voix (avec un consentement réel et documenté pour l'identité utilisée), capturez les séquences produit réelles que vous compositerez, et rédigez une grille d'évaluation ainsi qu'un plafond budgétaire strict avant de dépenser le moindre centime.
- CALIBRER. Générez d'abord un court clip bon marché pour valider le cadrage et l'acceptation de l'identité avant de vous engager dans des prises longues. Si le cadrage est incorrect, corrigez l'image de référence que vous fournissez au modèle, pas le choix du modèle.
- GÉNÉRER. Prises minimales et réfléchies. Ne faites un A/B entre fournisseurs/modèles que lorsque vous avez la preuve que l'un d'eux est sous-performant — ne multipliez pas les requêtes au hasard. Arrêtez la génération une fois que les scores plafonnent ; limitez les itérations payantes (par exemple, arrêtez après 2 sauf si les scores continuent de monter).
- ASSEMBLER. Utilisez le filtre concat de ffmpeg, pas le démuxeur, pour l'assemblage final (voir les bugs audio ci-dessous pour la raison). Chaque reconstruction reçoit un nouveau nom de fichier — n'écrasez jamais le fichier existant, afin de pouvoir toujours faire un diff avec la dernière bonne version.
- VÉRIFIER. Exécutez vos portes de validation média (ci-dessous) et une vérification préalable textuelle/honnêteté sur chaque script/sous-titre/élément de copie. Pas de livraison si une porte échoue.
- LIVRER. Remettez le fichier à un humain pour approbation finale, avec un court document de notes/évaluations. La publication sur une plateforme est toujours une décision humaine — ne publiez jamais automatiquement. Si le présentateur est une ressemblance synthétique réaliste, utilisez l'option de divulgation de contenu IA de la plateforme, même si une divulgation dans la vidéo a été faite séparément par choix délibéré.
Les deux bugs audio qui passeront inaperçus si vous ne les surveillez pas
- La piste audio d'un segment est plus courte que sa piste vidéo (la voix off se termine avant la fin du clip vidéo). Lors d'un concat par copie de flux, la timeline audio dérive et s'arrête prématurément au milieu du fichier final. Correctif : ajoutez un padding audio à chaque segment pour qu'il corresponde à la durée vidéo, et normalisez chaque segment au même taux d'échantillonnage/même nombre de canaux avant la concaténation.
- Même avec le padding, le démuxeur concat peut laisser de minuscules sauts de temporisation de paquets (~0,1 s) dus à l'arrondi de la durée audio. Les outils qui décodent en continu (ffmpeg, un outil de transcription) passent ces sauts sans problème et ne signalent rien — mais certains lecteurs réels arrêtent la lecture audio au premier saut, de sorte qu'un fichier qui « réussit » votre vérification automatisée peut être cassé pour un véritable spectateur. Correctif : effectuez l'assemblage final avec un filtre concat en un seul passage (pas le démuxeur) avec un rééchantillonnage audio forcé sur une timeline continue et sans espace.
La sonde qui détecte les deux : analysez les horodatages des paquets audio du fichier final pour détecter tout saut supérieur à ~50 ms. Validez le média comme le ferait un vrai lecteur — un décodage continu + une transcription complète — pas en cherchant des horodatages et en échantillonnant, ce qui peut silencieusement se resynchroniser autour exactement du saut que vous essayez de détecter.
Protocole de juge — les juges LLM hallucinent sur les médias, recoupez-les
- Évaluez par rapport à un proxy de compression modéré et fixe (une compression trop agressive exagère les artefacts et fausse les scores en défaveur du format, pas du contenu).
- Recoupez toute affirmation d'un juge concernant l'audio avec une sonde déterministe (une transcription + l'analyse des sauts de paquets ci-dessus) avant d'agir. Un juge qui qualifie quelque chose de « défaut » peut avoir raison OU tort pour la mauvaise raison — ne lui faites pas confiance ni ne le rejetez sur la base d'une impression ; effectuez d'abord la vérification déterministe, puis décidez.
- Pour les comparaisons A/B : même piste audio, critères fixes/pinnés, ordre cohérent et imposez une sortie structurée stricte — les opinions libres des juges sont plus difficiles à exploiter et plus faciles à rationaliser.
- Attendez-vous à ce qu'un juge soit dur. Livrez sur la base de preuves (chaque porte déterministe verte + l'approbation d'un humain réel), jamais sur le seul verdict d'un juge.
Portes d'honnêteté et de sécurité — codez-les, ne faites pas une simple vérification d'ambiance
Exécutez une vérification préalable automatisée sur chaque script/sous-titre/élément de copie avant livraison :
- Aucune affirmation fabriquée concernant les capacités ou les résultats du produit.
- Aucune utilisation non consentie du visage ou de la voix de quiconque — obtenez et documentez un consentement réel avant de générer avec la ressemblance d'une personne réelle, et vérifiez la politique d'utilisation de votre fournisseur de génération pour la génération basée sur l'identité.
- Aucune affirmation présentée comme un résultat réel d'utilisateur alors qu'elle a été générée/simulée.
- Les noms de marques ou de produits qui ne doivent pas être divulgués restent hors des scripts, des sous-titres et des notes de publication.
- La publication elle-même est toujours une étape distincte, contrôlée par un humain — le travail du pipeline s'arrête à « prêt pour révision », jamais à « publié ».
Discipline budgétaire
Tenez un registre courant (estimation vs réel par génération) par rapport à un plafond strict que vous avez fixé lors de la phase PRÉPARATION, et arrêtez la génération une fois que les scores plafonnent plutôt que de continuer à dépenser au-delà des rendements décroissants. Budgétiser à l'avance et s'arrêter sur la base de preuves plutôt que de « juste une prise de plus » est ce qui rend ce pipeline abordable.
Comment l'utiliser
Installation : copiez ce dossier dans ~/.claude/skills/ai-ugc-video-pipeline/ pour un usage personnel, ou .claude/skills/ai-ugc-video-pipeline/ dans un dépôt de projet. Vous brancherez votre propre fournisseur de génération de présentateur/voix et votre outil de capture d'écran — cette compétence fournit la méthodologie de sécurisation et les correctifs durement acquis contre les modes de défaillance, pas une intégration spécifique à un fournisseur.
Invocation :
Guide-moi à travers la phase PRÉPARATION de ai-ugc-video-pipeline pour une vidéo
démo de produit de 30 secondes — aide-moi à rédiger les variantes de script et le
registre budgétaire avant de générer quoi que ce soit.
Ma vidéo assemblée a un son qui s'arrête en cours de route sur certains lecteurs
mais joue correctement dans ffplay. Utilise la section sur les bugs audio de
ai-ugc-video-pipeline pour diagnostiquer et corriger le problème.