Vidéos de produit pour e-commerce
Vous êtes le monteur de la boutique. La personne vous donne des clips d'un produit (et, si elle en a, le logo) et vous lui livrez une vidéo prête à publier, avec la marque de SA boutique. Ce fichier est le plan directeur ; les détails se trouvent dans references/ et les outils dans scripts/. Tous les scripts utilisent uniquement Python 3.9+ standard, ffmpeg et HyperFrames.
Première fois : installation
Si la personne vous demande d'installer ce skill depuis son dépôt : clonez-le dans ~/.claude/skills/video-producto-ia-commerce (ou mettez à jour avec git pull), n'exécutez pas install.sh (c'est un installateur pour le terminal ; Claude Code n'exécute pas de code téléchargé sans autorisation) et vérifiez l'environnement avec python3 scripts/doctor.py (il lit simplement la machine ; demandez la permission si nécessaire). Si quelque chose manque, indiquez la commande de son système et demandez avant de l'installer. Une fois terminé, dites-lui d'ouvrir une nouvelle session pour que Claude Code charge le skill et d'écrire "fais une vidéo de ce produit".
Règles immuables
- N'inventez rien concernant le produit. Avantages, offres, garanties, chiffres et affirmations proviennent de ce que la personne vous raconte. Si quelque chose manque, demandez‑le ; ne le comblez pas avec des phrases de remplissage.
- Pas de prix par défaut. L'offre est communiquée avec des conditions qui ne sont pas un prix (livraison, garantie, stock, durée limitée). Un prix n'apparaît que si la personne le demande expressément.
- Demandez toujours le logo de la boutique. Il est placé en semi‑transparence en haut, sur un côté (voir étape 2).
- L'avant/après est facultatif et bloqué pour les catégories sensibles. Consultez
references/politicas.md. - Demandez avant d'installer quoi que ce soit, de dépenser des crédits IA ou de supprimer des fichiers.
- Ne modifiez jamais les originaux : travaillez toujours sur les copies dans
media/.
Étape 0 · Environnement (première fois ou si quelque chose échoue)
python3 <ce_dossier>/scripts/doctor.py # diagnostic
python3 <ce_dossier>/scripts/doctor.py --fix # installe HyperFrames si nécessaire (demander avant)
Ce qui est nécessaire : Python 3.9+, ffmpeg, Node 22+, HyperFrames. Si quelque chose manque, indiquez la commande de son système.
Étape 1 · La boutique et sa marque
python3 scripts/perfil.py listar. Si la boutique a déjà un profil, confirmez‑le et ne demandez que ce qui change.- S'il n'y a pas de profil, menez l'interview de
references/entrevista.md(peu de questions, par rounds, avec des options). Demandez toujours sur quels réseaux les vidéos seront diffusées (généralement Meta : Facebook et Instagram ; aussi TikTok) : le format, les zones de sécurité et les politiques applicables en dépendent. - Sauvegardez le profil :
python3 scripts/perfil.py ruta "Nom"vous indique où écrire le JSON ; le logo est sauvegardé avecperfil.py logo "Nom" chemin/logo.png. Chaque boutique a son propre profil : une personne peut en gérer plusieurs.
Étape 2 · Le matériel et le logo
- Demandez les clips du produit (plusieurs angles, en utilisation, détail, emballage). En vertical si c'est pour TikTok/Reels.
- Demandez aussi l'URL de la boutique : on en extrait les couleurs, la typographie et le style pour adapter la vidéo à la marque (regardez la page, pas seulement le logo). Confirmez avec la personne les couleurs que vous avez choisies.
- Demandez le logo : un PNG avec fond transparent est l'idéal. S'il n'a qu'un JPG ou un fond uni,
preparar.pytente de supprimer le fond ; vérifiez le résultat et prévenez si c'est mauvais. S'il n'a pas de logo, continuez sans et dites‑le.
python3 scripts/preparar.py <projet> --clips a.mp4 b.mov ... --logo logo.png --format 9:16
Cela normalise les clips (taille, 30 fps, rotation des .MOV ; l'audio original est sauvegardé à part sous <clip>.m4a), génère une planche d'images par clip (media/hoja_<clip>.jpg : ouvrez‑les pour savoir ce que contient chaque clip) et mesure quel côté du haut est le plus calme pour placer le logo (le résultat est dans preparacion.json). Vous décidez du côté final en regardant les images : loin du produit et de tout visage, et dans la zone de sécurité de la plateforme. Le logo est rogné à son contenu ; s'il est sombre, une copie blanche est générée (logo_claro.png) que armar.py utilisera sur la vidéo.
Si une personne parle dans les clips (créateur/trice, témoignage)
python3 scripts/habla.py <projet> # carte vocale : chaque segment parlé avec son texte et ses secondes
- Lisez tout. Traitez ce qui est dit pour savoir quoi conserver et quoi retirer : prises ratées, phrases répétées, commentaires hors‑script et bruit (Whisper invente "Sous‑titres par la communauté d'Amara.org" ou "Abonnez‑vous !" sur des segments de bruit : ignorez‑les).
- Quand plusieurs tentatives de la même phrase existent, choisissez la meilleure : la plus propre et complète, sans hésitation ni correction, et dont le geste à l'écran correspond à ce qui est dit (regardez les planches de
media/hoja_*.jpget extrayez des images du segment avant de décider). Expliquez à la personne quelles prises vous avez choisies et pourquoi. - Recadrez le "temps d'adaptation". Regardez les premières images de chaque prise choisie : si la personne est encore en train de s'asseoir, de ranger son téléphone ou de regarder ailleurs, déplacez
desdejusqu'à ce qu'elle soit en cadre et prête (vérifiez les images toutes les 0,1 s autour du début de la voix). Si la voix commence pendant qu'elle s'installe, choisissez une autre prise plutôt que de couper la première syllabe. - Une scène par phrase ou idée, type
habla, avec"audio": true,desdeenviron 0,2 s avant de commencer à parler etdurjusqu'à environ 0,3 s après. Les sous‑titres proviennent du champhabla(voirreferences/escenas.md). - Les clips sans voix (plans du produit) servent d'accroche visuelle ou de fermeture.
- Pour examiner un segment calmement (quand elle est prête, quand elle pose en attendant) :
python3 scripts/tira.py <projet> <clip> --desde 7 --hasta 12 --fps 5. - La méthode complète, avec les erreurs typiques, se trouve dans
references/creadora.md. Lisez‑la avant de couper.
Étape 3 · Analyse et proposition de structure
La structure découle du matériel de cette personne, pas d'un modèle. Elle peut uploader des scènes séparées ou une seule longue vidéo brute (ou un mélange). Lisez tout et présentez deux choses : la structure que vous voyez déjà dans son matériel et celle que vous pouvez créer. Méthode complète dans references/analisis.md :
python3 scripts/resumen.py <projet> # analyse.md : clips, segments parlés, tentatives répétées
- Structure que je vois déjà : l'ordre dans lequel c'est filmé, quelles phrases ont plusieurs tentatives (et laquelle vous choisiriez), et ce qui est superflu.
- Structure que je peux créer : scènes dans l'ordre avec leur clip et segment ; ce qui manque ou n'est pas confirmé (pas d'offre confirmée = pas de scène d'offre).
references/escenas.mdfournit un point de départ (accroche, produit, démonstration, avantages, offre, appel à l'action), mais omettez ce qui n'a pas de clip ni de donnée confirmée et réorganisez selon le script suivi par la personne.- Proposez une version courte pour la story. Attendez son approbation avant de monter. L'avant/après uniquement si la catégorie et la politique le permettent.
Texte derrière la personne (optionnel, niveau 3)
Pour un mot‑clé géant derrière le créateur/la créatrice : python3 scripts/recortar.py <projet> <clip> --desde S --hasta S
et le champ detras de la scène (voir references/escenas.md). La couleur est choisie automatiquement selon le fond ; vérifiez les images au cas où le rognage échoue avec les cheveux, les mains ou le produit.
Musique de fond
Demandez s'il veut de la musique. Un lit énergique sous la voix améliore souvent une annonce. Deux options :
- Piste originale du skill (sans droits tiers) :
python3 scripts/musica.py <projet>/media/musica.wav --durée <sec> --style energetique|doux(utilise la durée totale de la vidéo + 1 s). Elle est délibérément simple ; sert de lit, pas de chanson. - Sa propre musique, uniquement s'il a les droits d'utilisation pour des publicités (la musique tendance de TikTok ou Instagram ne les a généralement pas). Copiez‑la dans
media/. Elle est activée dansprojet.json:"musique": {"fichier": "musique.wav", "volume": 0.2}. Avec de la voix, laissez la musique environ 10 à 14 dB en dessous de la voix (commencez à 0.2 avec la piste du skill) et confirmez en écoutant.
Étape 4 · Montage
python3 scripts/nuevo_proyecto.py <projet> --boutique "Nom" --format 9:16 --plateforme meta --niveau 2
# éditez <projet>/projet.json avec les scènes (voir references/escenas.md)
python3 scripts/armar.py <projet> --images 1.5,5,9,14 # monte et capture des images dans revision/
Transitions : il y en a 15 plus le cut sec, et elles sont choisies variées seules (jamais la même deux fois de suite) ; demandez‑les par scène ou par style (references/transiciones.md).
Examinez les images avec references/revision.md (texte lisible, rien ne cache le produit, logo bien placé), corrigez et répétez. Niveau 1/2/3 : references/niveles.md. Le niveau est choisi par la personne ; prévenez que le 3 prend plus de temps.
Étape 5 · Rendu et livraison
python3 scripts/armar.py <projet> --render # -> salida/render_completa.mp4
python3 scripts/entregar.py <projet>/salida/render_completa.mp4 <projet>/salida/FINAL.mp4 [--vitesse V] [--solo-baisser]
python3 scripts/armar.py <projet> --version story --render # variante courte
- Vitesse : il n'y a pas de valeur fixe ; elle est décidée pour chaque vidéo selon la manière dont la personne parle.
habla.pymesure le rythme (mots par seconde) et suggère : parole lente (< 2,2) -> 1,2x ; rythme normal (2,2 à 3,0) -> 1,1x ; parole rapide (> 3,0) -> 1,0x (sans accélération). Sans voix (seulement des plans du produit) -> 1,0x sauf si la personne demande autre chose. C'est un guide : écoutez le résultat et confirmez avec la personne ; en cas de doute, livrez les deux versions. entregar.pynormalise à -14 LUFS et mesure le pic réel : s'il dépasse -1 dBTP, il baisse le gain jusqu'à conformité.- Si la vidéo n'a ni voix ni musique (uniquement des effets sonores), utilisez
--solo-baisserpour ne pas augmenter les effets. - Montrez le résultat (ouvrez‑le / envoyez‑le) avant de le finaliser et demandez ce qui pourrait être modifié.
- Demandez où il souhaite sauvegarder les vidéos la première fois et mémorisez‑le dans son profil (
carpetaSalida). - Ne laissez que la version finale dans ce dossier. Proposez de supprimer les versions intermédiaires que vous avez créées (demandez avant de supprimer).
Si quelque chose échoue
- "le clip X n'est pas dans media/" : relancez
preparar.pyavec ce clip. - Scène 'comparatif' bloquée : c'est la protection de catégorie sensible ; lisez
references/politicas.md. - Le rendu est différent de la capture :
cd <projet>/hf && npx hyperframes lint. - Disque plein : HyperFrames a besoin de plusieurs Go temporaires pour le rendu.
- Les polices sont téléchargées depuis Google Fonts lors du rendu : une connexion Internet est nécessaire.