Communitygithub.com

Editar criativo

Fabrique en lot des créations vidéo pour offres (annonces 9:16 pour Meta/TikTok). Crée le dossier de l'offre, écrit des scripts (accroche + corps), génère la narration (voix neurale gratuite, ElevenLabs ou audio personnel), coupe le b-roll au rythme de la parole, applique une bande d'accroche, des sous-titres mot-à-mot (boîte violette ou mot jaune), des effets sonores et une bande-son, puis exporte le tout prêt dans `01_prontos`.

Qu'est-ce que Editar criativo ?

Le skill "Editar criativo" est un outil puissant de création vidéo en masse, conçu pour produire des annonces 9:16 (Meta, TikTok) à partir d'une offre. Il automatise toute la chaîne : création de la structure de dossiers, génération de scripts d'accroche et de corps, création de narration vocale (voix neuronales gratuites Microsoft Edge, ElevenLabs, ou audio existant), montage vidéo avec b-roll, sous-titres mot-à-mot, effets sonores et musique de fond. Le résultat est une exportation prête à l'emploi dans un dossier dédié. Il propose trois modes de fonctionnement : créations neuves (nouveaux angles), modélisation d'une création qui fonctionne déjà (réplication de sa structure avec du contenu original), et variations d'accroche sur une création validée (remplacement uniquement des premières secondes). Le skill gère l'organisation des médias (b-roll depuis Pexels/Pixabay ou fichiers utilisateur), l'écriture de scripts en portugais (Brésil ou Portugal), le choix du style de sous-titres et la configuration de la narration. Conçu pour le terminal avec Python 3.10+ et FFmpeg, il s'intègre parfaitement à l'écosystème Claude Desktop, Cursor ou Codex. Il est déclenché par des expressions comme "editar criativo" ou "édite meu criativo", et guide l'utilisateur via des questions claires pour paramétrer la production. Son objectif est de permettre un volume élevé de créations optimisées pour la conversion, en respectant les politiques publicitaires et en maximisant l'automatisation.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/matheuserick038-crypto/editar-criativo/tree/HEAD

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait Editar criativo ?

Kit dans kit/ (à côté de ce fichier). Tous les scripts sont en Python 3.10+ et utilisent ffmpeg/ffprobe. Sous Windows, exécutez avec python (pas python3). Si ffmpeg n'est pas dans le PATH de la session, les scripts le trouvent automatiquement via le PATH utilisateur.

KIT = <dossier de ce SKILL.md>/kit

1. Offre et dossiers

Découvrez le nom de l'offre (demandez s'il n'est pas venu dans la demande). Racine par défaut : ~/Documents/Ofertas (sous Windows, %USERPROFILE%\Documents\Ofertas).

python "$KIT/criar_oferta.py" "Velas de Natal"

Crée (ou complète, sans rien effacer) la structure :

DossierContenu
_workfichiers temporaires (nettoyés à la fin)
01_prontoscréations finales .mp4 + lote_XX_resumo.csv
02_brutosb-roll et vidéos de référence
03_apresentadoraenregistrements UGC / présentatrice
04_imagensphotos du produit, captures d'écran de la page
05_audiosnarrations (<id>.mp3 + <id>.palavras.json)
06_efeitos9 effets sonores du kit + musica*.mp3 optionnels (bande-son)
07_roteiroslots de scripts .json
08_validadoscréations qui vendent déjà (base pour modélisation/variation)

Lisez oferta.json. Si produto/publico/promessa sont vides, demandez à l'utilisateur (ou lisez la page de vente s'il vous donne le lien) et remplissez — les scripts en dépendent.

2. Les quatre questions (un seul appel AskUserQuestion)

  1. Mode — "Que faisons-nous ?"
    • Créations neuves — tester de nouveaux angles et scripts
    • Modélisation de créations — vidéos de zéro avec la structure d'une création qui vend/déjà performe (de l'utilisateur ou du marché)
    • Variations de validées — réutiliser la vidéo validée elle-même et ne changer que l'accroche

Attention — "améliore cette validée et crée des variations" : quand l'utilisateur envoie une création à lui qui vend et demande des variations/versions améliorées, le standard est Modélisation (vidéos totalement nouvelles, avec script et images neuves, en utilisant la validée uniquement comme référence de structure). N'utilisez "Variations de validées" (qui réutilise les images et l'audio de la vidéo envoyée) que si l'utilisateur demande explicitement de conserver la vidéo originale. 2. Quantité — "Combien de variations ?" 5 / 10 / 20 / 50 3. Sous-titres — "Quel style de sous-titres ?"

  • Alterner les deux (Recommandé) — alterne boîte violette et mot jaune entre les variations
  • Boîte violette — mot parlé dans une boîte violette
  • Mot jaune — mot parlé en jaune, sans fond
  1. Narration — "Comment faire la narration des nouvelles accroches et corps ?"
    • Générer avec voix gratuite (Recommandé) — voix neurales en portugais, sans frais
    • Générer avec ElevenLabs — utilise le compte de l'utilisateur et consomme des crédits
    • J'ai déjà les narrations — je place les audios dans 05_audios

Si l'utilisateur a déjà répondu à quelque chose dans la demande, ne redemandez pas.

ElevenLabs : la clé se trouve dans ~/.config/editar-criativo/.env (ELEVENLABS_API_KEY= et, optionnel, ELEVENLABS_VOICE_ID=). Si elle manque, proposez d'ouvrir le fichier dans le Bloc-notes pour que l'utilisateur la colle. N'imprimez jamais la clé et ne la mettez pas dans une commande shell.

3. Matériel visuel

Listez 02_brutos, 03_apresentadora et 04_imagens. Sources de matériel, dans cet ordre de préférence :

  1. Matériel de l'utilisateur (photos/vidéos du produit, enregistrement de la page) : toujours le meilleur.
  2. Banques gratuites (Pexels + Pixabay) — b-roll d'appui, utilisation commerciale autorisée :
    python "$KIT/buscar_midias.py" "<pasta_oferta>" "candle making" --qtd 6
    python "$KIT/buscar_midias.py" "<pasta_oferta>" "christmas candle" --tipo foto --qtd 4
    
    • Effectuez 3–5 recherches avec des termes en anglais qui couvrent ce que la narration montre (processus, ingrédients, résultat, scène d'utilisation, émotion). --listar affiche avant de télécharger.
    • Bibliothèque locale d'abord : tout téléchargement va dans ~/Documents/Ofertas/_biblioteca (videos/, fotos/, indice.json avec les tags de la banque + termes déjà cherchés). Chaque recherche regarde d'abord là et n'appelle l'API que pour ce qui manque — économise les requêtes. Les fichiers entrent dans l'offre par hardlink (sans occuper d'espace dupliqué). --sem-api utilise uniquement la bibliothèque ; --forcar-api ignore la bibliothèque. Pour cela, utilisez des termes en anglais cohérents entre les offres ("stretching", "back pain", "yoga mat"…).
    • Par défaut : préfère la verticale et complète avec l'horizontale (le kit recadre), vidéos jusqu'à 40 s, --qtd éléments nouveaux de chaque type. Les vidéos vont dans 02_brutos/, les photos dans 04_imagens/, les crédits dans 02_brutos/creditos.csv (colonne origem : bibliothèque ou banque).
    • Après le téléchargement, choisissez les médias appropriés pour chaque création dans midias/midias_baixo plutôt que de laisser le tirage au sort — un b-roll qui correspond à la parole convertit mieux.
    • N'utilisez pas de banque d'images pour simuler un témoignage : une personne reconnaissable ne peut pas sembler approuver l'offre.
    • Clés gratuites dans ~/.config/editar-criativo/.env (PEXELS_API_KEY, PIXABAY_API_KEY). Si elles manquent, le script avertit ; proposez d'ouvrir le fichier dans le Bloc-notes pour que l'utilisateur les colle. Fonctionne avec une seule. (En nov/2026, Pexels a suspendu l'émission de nouvelles clés ; l'utilisateur utilise uniquement Pixabay jusqu'à la réouverture.)
  3. Références de réseaux sociaux (pour modélisation/variation), avec des liens approuvés par l'utilisateur : python "$KIT/baixar.py" "<pasta_oferta>" <url1> <url2> ... --pasta 08_validados. Utilisez uniquement du matériel que l'utilisateur a le droit d'utiliser.

Enregistrement d'écran de l'application web / page : l'utilisateur enregistre (Win+Alt+R) et sauvegarde dans 02_brutos.

4. Scripts par mode

Écrivez en portugais du Brésil (ou du Portugal si l'offre est PT), ton UGC parlé, phrases courtes.

  • hook : 1 phrase, 6–14 mots, ≤ 3 s parlé. Brise le schéma, curiosité, douleur ou résultat.
  • gancho_tela : texte de la bande rouge, ≤ 7 mots, complète (ne répète pas) l'accroche.
  • body : 15–35 s parlés (~40–90 mots) : problème → mécanisme/démonstration → preuve → CTA.
  • cta_tela (optionnel) : texte court de la bande verte dans les 3 dernières secondes ("LIEN DANS LA DESCRIPTION").
  • Variez les angles dans le lot : douleur, curiosité, avant/après, preuve sociale, objection, démonstration, prix/ancrage, urgence saisonnière, "erreur courante", liste. Ne répétez pas la même ouverture.
  • Respectez les politiques publicitaires : pas de promesse de guérison, de revenu garanti, ou "vous êtes [attribut personnel]".

Créations neuves : N scripts avec des angles différents.

Modélisation de créations : la création de référence se trouve dans 08_validados (ou téléchargez-la par le lien). Transcription : python "$KIT/transcrever.py" "<arquivo>" — et, si la partie visuelle compte, regardez avec la skill watch. Cartographiez la structure (type d'accroche, blocs et durée de chacun, CTA) et écrivez N scripts avec la même structure pour cette offre. Ne copiez pas le texte. Aucun plan ni audio de la vidéo de référence n'entre dans les nouvelles vidéos.

Checklist de modélisation (notez dans le lot dans estrutura_modelada) :

  1. Durée et blocs de parole — ex. : accroche 0–3,5 s → présente le produit → bénéfices → CTA avec prix.
  2. Format visuel — plein écran ou divisé ; ce qui apparaît tout le temps (démonstration, présentatrice, écran).
  3. Éléments fixes qui vendent — reproduisez avec le kit :
    • bande avec nom + prix fixe en haut → faixa_fixa (entre après l'accroche, pour ne pas faire pub dès la 1ère seconde) ;
    • compteur sur l'exercice/étape ("12 reps", "8 x lado") → rotulos ;
    • style de sous-titres et genre de la voix → legenda et voz identiques à ceux de la validée.
  4. Prix et offre exactement comme dans la validée (c'est ce qu'elle vend), sauf demande contraire.
  5. Si la validée a un faible CTR et une bonne vente : le corps fonctionne et l'ouverture n'arrête pas le doigt. Gardez la structure du corps et investissez dans l'accroche : tension, test ("essaie de toucher le sol…"), nombre/compte ("117 exercices pour moins de 10 R$"), rupture de croyance. Bande d'accroche dès 0 s, images propres de l'accroche dans midias_gancho (pièces, squelette, salle de sport), coupes toutes les ~1,8 s, et encaixe: "desfoque" quand le b-roll est horizontal en plein écran.

Variations de validées (uniquement quand l'utilisateur veut conserver la vidéo originale) : transcrivez la création qui vend déjà, trouvez où se termine l'accroche originale (fin de la 1ère phrase, généralement 2–5 s) et écrivez N nouvelles accroches. Chaque création ne prend que hook (sans body) et "base": {"video": "08_validados/arquivo.mp4", "a_partir_de": <secondes>} — le kit monte une nouvelle accroche narrée + le corps original avec l'audio original.

  • Coupez à a_partir_de juste avant le 1er mot après l'accroche (sautez le silence — ex. : accroche se termine à 3,56 s, mot suivant à 4,16 s → 4,05). Utilisez transcrever.py pour avoir le temps de chaque mot.
  • Utilisez une voix du même genre que la narration originale (la jonction sonne étrange avec un changement de voix) et les mêmes sous-titres que la validée, si elle en a de similaires. Le kit égalise le volume de la nouvelle accroche à celui de la validée (LUFS) tout seul.
  • CTR faible avec bonne vente = le corps vend et l'ouverture n'arrête pas le doigt : changez uniquement les 3–6 premières secondes (accroche avec tension/teste/nombre, bande d'accroche dès 0 s, coupe toutes les ~1,3 s avec "ritmo": 1.3).

5. Lot de scripts

Enregistrez dans <oferta>/07_roteiros/lote_NN.json (prochain numéro libre) :

{
  "modo": "novos",
  "legenda": "variar",
  "narracao": {"motor": "edge", "voz": "pt-BR-AntonioNeural", "velocidade": "+8%"},
  "criativos": [
    {
      "id": "c01",
      "angulo": "curiosidade",
      "layout": "dividida",
      "hook": "Ninguém acredita que essa vela foi feita em casa.",
      "gancho_tela": "Ninguém acredita que foi feita em casa",
      "body": "Eu comecei com uma panela comum e um pote de vidro...",
      "cta_tela": "Link na bio",
      "midias": ["02_brutos/x.mp4", "04_imagens/y.jpg"],
      "midias_baixo": ["02_brutos/z.mp4"]
    }
  ]
}

Champs :

  • legenda : variar | caixa_roxa | palavra_amarela (par création aussi accepte legenda).
  • narracao.motor : edge (gratuit) | eleven | existente (lit 05_audios/<id>.mp3 et transcrit). Voix edge : pt-BR-AntonioNeural, pt-BR-FranciscaNeural, pt-BR-ThalitaMultilingualNeural, pt-PT-DuarteNeural, pt-PT-RaquelNeural. Alternez voix masculine/féminine entre créations avec "voz" dans la création.
  • layout : dividida (écran divisé avec ligne rouge, par défaut) | cheia.
  • midias / midias_baixo : optionnels. Sans eux, le kit tire au sort depuis 02_brutos, 04_imagens, 03_apresentadora (moitié en haut, moitié en bas). Choisissez manuellement quand il y a un média correspondant à la parole.
  • ritmo : secondes par coupe (par défaut 2.2). sfx : false désactive les effets. musica : false désactive la bande-son.
  • gancho_duracao : force la durée d'affichage de la bande d'accroche (par défaut : jusqu'à la fin de l'accroche parlée).
  • midias_gancho (plein écran) : médias utilisés uniquement pendant l'accroche ; le corps utilise seulement midias. Empêche que l'image d'impact de l'accroche (pièce, squelette) revienne au milieu de la vidéo. Le kit coupe toujours à la fin de l'accroche.
  • faixa_fixa : {"texto": "117 Exercícios de\nMobilidade e Estabilidade\nApenas R$ 9,90", "cor": "#F97316", "cor_texto": "#111111", "desde": "fim_hook", "y": 0.07, "tamanho": 66, "caixa_alta": false} — bande qui reste de la fin de l'accroche jusqu'à la fin (ou jusqu'à la fermeture). \n saute une ligne ; seul texto est obligatoire.
  • rotulos : ["12 reps", "8 x lado", "30 seg"] — étiquette petite sur chaque coupe après l'accroche, en cycle.
  • encaixe : corte (par défaut, recadre le centre) | desfoque — en plein écran, la vidéo horizontale apparaît dans une large bande sur elle-même floutée, sans perdre le mouvement (bon pour la démonstration d'exercice).

IDs : c01…cNN en créations neuves, m01… en modélisation, v01… en variations — uniques par offre, car 05_audios/<id> et 01_prontos/<id>.mp4 utilisent l'id. Dans les nouveaux lots, continuez la numérotation.

Montrez à l'utilisateur un court tableau (id, angle, accroche) et passez au rendu, à moins qu'il n'ait demandé de réviser avant.

6. Rendu

python "$KIT/montar.py" "<oferta>/07_roteiros/lote_NN.json"

Réseau : la voix gratuite (edge) et ElevenLabs nécessitent internet. Si le shell est en sandbox et que la narration échoue avec getaddrinfo failed / ClientConnectorDNSError, exécutez la commande hors sandbox. La voix gratuite échoue de manière intermittente ; le kit essaie déjà 5 fois avant d'abandonner cette création (les autres continuent).

Narre ce qui n'a pas encore de narration et monte tout dans 01_prontos/<id>.mp4 (1080×1920, 30 ips, H.264 + AAC), plus 01_prontos/lote_NN_resumo.csv. Les grands lots prennent du temps (≈20–60 s par création) : exécutez en arrière-plan. --ids c03,c07 refait seulement quelques-uns ; narrar.py --refazer --ids c03 régénère la voix.

7. Vérification et livraison

Extrayez 1 image de 2–3 créations et regardez avec Read : ffmpeg -ss 1.5 -i "01_prontos/c01.mp4" -frames:v 1 "_work/check_c01.jpg" Vérifiez : bande d'accroche lisible, sous-titres synchronisés et dans l'écran, coupes sans écran noir. Livrez : dossier 01_prontos, quantité, et le CSV pour nommer les annonces dans le Gestionnaire.

Skills associés