Communitygithub.com

Analyse de Créateur (Teardown)

Déconstruit le format vidéo d'un créateur de contenu court à partir de ses données réelles. Récupère un profil TikTok ou YouTube Shorts (ou des liens Instagram Reels) avec les vues, likes et sauvegardes, transcrit mot pour mot les meilleures vidéos, mesure le rythme, les pauses et les tics de langage, cartographie chaque vidéo en séquences temporelles, et génère un teardown.md, une page teardown.html et un style.json.

Qu'est-ce que Analyse de Créateur (Teardown) ?

Cette compétence d'agent AI est conçue pour analyser et déconstruire le format d'un créateur de contenu court (TikTok, YouTube Shorts, Instagram Reels) en se basant sur des données réelles, pas sur des impressions. Elle va bien au-delà d'une simple observation : elle télécharge et transcrit les vidéos, extrait des métriques objectives (vues, likes, rythme de parole, pauses, tics de langage, types de plans, mouvements de caméra, incrustations, graphismes, palette, sons), puis compare les vidéos les plus performantes avec un groupe témoin pour isoler ce qui fait vraiment la différence. Le résultat est un dossier complet (teardown.md, teardown.html, style.json) qui permet à un autre outil d'édition de reproduire le style du créateur. La compétence fonctionne sur macOS, Windows et Linux, utilise des scripts Python et des modèles locaux (Whisper pour la transcription, analyse vidéo avec OpenCV, OCR pour les sous-titres) et peut optionnellement intégrer ElevenLabs pour une transcription plus fidèle des tics de langage. Elle est particulièrement utile pour les créateurs de contenu, les marketeurs et les analystes de tendances qui veulent comprendre et reproduire les mécanismes du succès d'un créateur.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Conz-Wilts/ai-editor/tree/HEAD/.claude/skills/creator-teardown

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 Analyse de Créateur (Teardown) ?

Chemins : ${CLAUDE_SKILL_DIR} désigne le dossier contenant ce SKILL.md. Sous Windows, utilisez py partout où ces commandes disent python3.

Chaque question pour l'utilisateur va dans la zone de question : appelez l'outil AskUserQuestion (2 à 4 options, la recommandée en premier). Uniquement dans un agent sans cet outil, posez des questions numérotées en texte.

Résultat

creator-teardowns/<handle>/ : teardown.md (l'analyse), teardown.html (la page que l'utilisateur regarde), look.md (ce que Claude lit), style.json (chaque mesure, pour éditer dans ce style), ainsi que les fichiers par vidéo listés dans ${CLAUDE_SKILL_DIR}/references/outputs.md. Un plan d'édition va dans edit-plans/<name>/. Vérification de correspondance d'un montage dans ce style : scripts/match.py (references/outputs.md "Vérification de correspondance").

D'abord : diagnostic

python3 "${CLAUDE_SKILL_DIR}/scripts/fetch.py" doctor

Exécutez-le avant la première analyse dans une session. Prêt. signifie OK. S'il affiche Pas prêt, ou si l'utilisateur demande d'installer ou de configurer la compétence, suivez ${CLAUDE_SKILL_DIR}/references/setup.md. La clé ElevenLabs est facultative. Ne la demandez jamais dans le chat : l'utilisateur la sauvegarde avec setkey dans son propre terminal.

VPY="${CLAUDE_SKILL_DIR}/scripts/run.py" ; python3 "$VPY" ci-dessous (py sur Windows) exécute un script avec le Python de l'environnement virtuel où que AI_EDITOR_HOME le place.

Pipeline

Mode rapide (appelé par le start, setup ou style-edit de ai-editor)

Quand une autre compétence a besoin seulement du style.json, exécutez exactement : Étape 1 list, les commandes de l'Étape 2 avec --top 5 (5 plus 2 témoins et 2 supplémentaires ; liens collés : tous), les quatre de l'Étape 3b, puis les quatre de l'Étape 3c, puis arrêtez-vous. Les parties de l'Étape 0 ne posent de question que si l'appelant ne l'a pas déjà fait. Sautez metrics.py, les passes rédigées de l'Étape 3 et les Étapes 4-6. Environ 3 minutes par créateur sur un Mac 14 cœurs (2-3 min mesurées ; les vidéos supplémentaires ajoutent environ 1 min au pire), deux fois plus sur un portable 8 cœurs. Dites-le d'abord.

Étape 0 : Demander, une fois

Sautez ce que le message répond déjà. Un appel de boîte de question :

  1. Quels créateurs ? Le nom ou les liens qu'ils ont nommés (Recommandé) / Je vais en coller d'autres. Plusieurs est normal : les gens aiment les sous-titres d'un créateur et le rythme d'un autre. Le style de chaque créateur est un format unique.
  2. Avec plus d'un créateur : quelle partie de qui ? Pas encore sûr (Recommandé) : redemandez après l'Étape 3b, avec le look.md de chaque créateur pour comparer ; ou les sous-titres, le rythme (coupures, zooms, mouvements), le visuel (graphismes, cadrage du visage, cartes), le son.

Étape 1 : Obtenir les vidéos

python3 "${CLAUDE_SKILL_DIR}/scripts/fetch.py" list <handle> --platform tiktok --limit 40   # ou youtube
python3 "${CLAUDE_SKILL_DIR}/scripts/fetch.py" list <name> --urls picks.txt   # liens collés, un par ligne

Affiche un tableau classé (vues, x médiane) et écrit videos.json ; * marque 3x la médiane.

Instagram : list <handle> --platform instagram lit les nouvelles Reels avec les vues via la connexion instagram.com de l'utilisateur dans son navigateur (envoyé uniquement à instagram.com). Sans connexion : il se ferme avec 1 code et une phrase ; dites-la, ou mettez 6+ liens de Reels dans picks.txt pour --urls (classés par likes ; dites-le).

Étape 2 : Télécharger et transcrire les gagnantes et un groupe témoin

python3 "$VPY" "${CLAUDE_SKILL_DIR}/scripts/visual.py" download <handle>
python3 "${CLAUDE_SKILL_DIR}/scripts/fetch.py" transcribe <handle>

--top N télécharge et transcrit N plus 2 vidéos témoins (les 2 les plus proches de la médiane ; --control change les 2) plus 2 supplémentaires pour la vérification du format (--spare), toutes de la durée habituelle du créateur quand il y en a assez. Liens collés : tous. La valeur par défaut --top 8 donne 12 vidéos ; --top 5, l'exécution rapide, en donne 9 ; passez-le aux deux commandes. Les deux affichent le nombre d'abord. --ids <id>,<id> sélectionne des vidéos exactes. Les vidéos proches de la médiane sont le groupe témoin : un mouvement qui apparaît dans la vidéo à 500 000 vues et dans celle à 3 000 vues est une habitude du créateur, pas la raison du succès de la première. Gardez-en au moins 2.

Chaque script de mesure travaille sur plusieurs vidéos à la fois (CT_JOBS=1 désactive cela sur un petit portable).

Dites le temps d'abord (téléchargement plus transcription, environ 10 s par vidéo sur un Mac 14 cœurs). Whisper (gratuit, local) est le défaut ; avec une clé ElevenLabs transcribe utilise Scribe, qui garde chaque tic de langage (0,22 $ par heure audio ; donnez l'estimation avant 10+ vidéos). Si les comptes de tics de langage reposent sur les transcriptions Whisper, dites-le dans l'analyse.

Étape 3 : Mesurer, puis analyser

python3 "${CLAUDE_SKILL_DIR}/scripts/metrics.py" <handle>

Écrit metrics.json (mots par minute par tiers, pauses, tics de langage, longueur des phrases, je/tu/nous, phrases répétées), le tout à partir des horodatages des mots.

Exécutez d'abord l'Étape 3b, pour que les passes sautent les vidéos que format.json a exclues. Ensuite chargez ${CLAUDE_SKILL_DIR}/references/analysis-framework.md et exécutez ses passes. Pour la passe 1, lancez un agent video-analyst par vidéo, tous dans un seul message (ils s'exécutent en même temps) : donnez à chacun le chemin absolu creator-teardowns/<handle>/ et un id. Chacun renvoie une carte de séquences JSON ; fusionnez-les dans les tableaux. Sans outil Agent, lisez vous-même transcripts/<id>.timed.txt, une vidéo à la fois. Ne lisez jamais transcripts/<id>.json ou metrics.json en entier :

  1. Carte de séquences + minutage. Chaque vidéo divisée en séquences étiquetées avec des secondes et des nombres de mots.
  2. Profil vocal/vocabulaire. Longueur des phrases, personne, commandes, phrases récurrentes et les mouvements que l'utilisateur ne dirait pas.
  3. Passe visuelle. Toujours : Étape 3b. C'est ce qui permet à l'utilisateur de monter sa propre vidéo dans ce style.
  4. Événements de cartes, seulement si la demande couvre les cartes et graphismes du créateur, ou si un plan d'édition est à venir. Écrit events.json dans la forme décrite dans ${CLAUDE_SKILL_DIR}/references/edit-plan.md. scripts/strip.py nécessite ffmpeg, numpy et pillow.

Ne sautez pas les minutages : "l'accroche arrive à 0:03 et dure 14 mots, les éléments font 8-11 s chacun" est un format que quelqu'un peut filmer ; "accroche, puis liste, puis conclusion" ne l'est pas.

Étape 3b : La passe visuelle (mesurée, pas d'images à lire pour vous)

python3 "$VPY" "${CLAUDE_SKILL_DIR}/scripts/visual.py" measure <handle>
python3 "$VPY" "${CLAUDE_SKILL_DIR}/scripts/look.py" measure <handle>
python3 "$VPY" "${CLAUDE_SKILL_DIR}/scripts/format_check.py" check <handle>

Ensuite, la passe feuille (4 ci-dessous), puis python3 "$VPY" "${CLAUDE_SKILL_DIR}/scripts/lookpass.py" merge <handle>.

Exécutez-les après transcribe (look.py fait correspondre le texte OCR aux paroles prononcées).

  1. visual.py : les coupures et leurs types, longueurs des plans, zooms, panoramiques et tremblements.
  2. look.py : OCR 3 images par seconde et visages YuNet : les sous-titres (emplacement, taille, mots, casse, couleurs, poids, entrée), le cadrage du visage, la part des graphismes, la palette, la personnalité des mouvements. Environ 40 s par vidéo.
  3. format_check.py : un style est UN format, pas un mélange de tout ce qu'il publie. Il groupe les vidéos par cadre, visage, sous-titres, longueur des plans et durée ; un groupe majoritaire de 3+ est conservé, le reste est déplacé dans video/left-out/ (format.json dit pourquoi ; references/look-pass.md). Dites à l'utilisateur sa première ligne quand il y a des différences ("Utilisation de 4 sur 6 : 2 ressemblent à un format différent.") ; si c'est mixte, demandez plus de vidéos d'un type.
  4. La passe feuille : un appel Agent avec model: "haiku" lit sheets/<id>.jpg pour chaque vidéo conservée (une feuille 3 x 3 chacune, créée par visual.py) et écrit video/<id>.look-ai.json selon l'invite de lookpass.py : police, style graphique, transitions, ce qui n'est pas générique. Jamais un nombre. Description exacte dans references/look-pass.md. lookpass.py merge les intègre dans style.json.

Lisez ensuite look.md (moins de 48 lignes). N'ouvrez pas les images ou les feuilles. Chaque champ est dans ${CLAUDE_SKILL_DIR}/references/look-pass.md. Les nombres dans style.json viennent du code ; ne les modifiez jamais à la main. Là où look.md et les mots du modèle diffèrent (dites "mouvement : percutant" mesuré, "fluide" nommé), c'est le mesuré qui l'emporte et l'analyse mentionne les deux.

Pas de moteur OCR (le diagnostic dit facultatif) : captions reste non mesuré et look.md le dit. Installez-le (le diagnostic affiche la ligne) plutôt que de lire les feuilles vous-même.

Étape 3c : La passe profonde et la page

python3 "$VPY" "${CLAUDE_SKILL_DIR}/scripts/graphics.py" measure <handle>
python3 "$VPY" "${CLAUDE_SKILL_DIR}/scripts/sound.py" measure <handle>
python3 "$VPY" "${CLAUDE_SKILL_DIR}/scripts/report.py" build <handle>

Chaque mesure affiche une ligne de résumé et le fichier écrit (--json affiche le bloc complet ; pas nécessaire : look.md a les nombres). Exécutez-les après l'Étape 3b (graphics.py masque l'orateur avec les visages de look.py). Ils ajoutent chaque graphisme (recadré, son type, où il se trouve, comment il entre et sort avec une courbe d'assouplissement GSAP adaptée), les types de coupures et les mouvements de caméra (visual.py), les effets sonores et la musique, les 3 premières secondes de chaque vidéo, les gagnantes par rapport au groupe témoin, et un scan des "tells" IA dans le look du créateur. Champs, méthodes, plafonds et coût : ${CLAUDE_SKILL_DIR}/references/teardown-page.md. Après graphics.py measure, exécutez la passe des types haiku dans cette référence (sinon les types restent la supposition du code), puis sound.py et report.py.

Ensuite, ouvrez creator-teardowns/<handle>/teardown.html pour l'utilisateur (open sur Mac, start sur Windows, xdg-open sur Linux) et proposez de le publier comme artefact. Ne lisez pas la page ou ses images vous-même : look.md a les nombres. Dites à l'utilisateur en deux ou trois lignes ce que les gagnantes font différemment (les lignes Gagnantes : dans look.md, avec n) et tout "tell" IA de niveau BAN dans leur look.

Ensuite, demandez dans la boîte de question (la page montre seulement les preuves ; elle n'a rien à cocher), une question à sélection multiple : "Quelles parties de @ votre montage doit-il copier ?" Options : sous-titres, rythme, types de graphismes, mouvement d'entrée, disposition, son (au plus 4 options par question : divisez en deux questions si nécessaire), chaque option décrite par une ligne mesurée de look.md (ex. "glisse en 0,25 s avec dépassement"). Si un "tell" BAN se trouve dans une partie qu'ils sélectionnent, dites-leur avant qu'ils confirment. Sauvegardez la réponse :

python3 "${CLAUDE_SKILL_DIR}/scripts/editplan.py" blend <handle>-mine --from <handle> \
    --take captions,pace,graphics,entrances,layout,sound    # seulement les parties choisies

style-edit lit creator-teardowns/<handle>-mine/style.json ; une partie laissée de côté utilise sa valeur par défaut. report.py build et editplan.py blend affichent la compétence du style (skill edit-like-<handle> -> <path>, avec ai-editor installé) : dites son nom à l'utilisateur. Les retours sur ce style modifient cette compétence.

Étape 3d : Plusieurs créateurs (quand l'utilisateur en a nommé plus d'un)

Suivez ${CLAUDE_SKILL_DIR}/references/blend.md : Étapes 1 à 3b par créateur, look.md côte à côte, puis editplan.py blend.

Étape 4 : Rédiger l'analyse

Remplissez ${CLAUDE_SKILL_DIR}/references/teardown-template.md dans creator-teardowns/<handle>/teardown.md. Chaque vidéo reçoit une ligne de statistiques, une transcription textuelle, un tableau de séquences avec minutage, les motifs à garder et les motifs à rejeter.

Étape 5 (facultative) : Transformer en compétence

Demandez si le format mérite d'être conservé. Si oui, suivez ${CLAUDE_SKILL_DIR}/references/skill-handoff.md (la compétence de format, à côté de la propre compétence du style).

Étape 6 (facultative) : Planifier la vidéo de l'utilisateur dans le style du créateur

Quand l'utilisateur transmet sa propre vidéo, suivez ${CLAUDE_SKILL_DIR}/references/edit-plan.md. Cela nécessite le events.json du créateur provenant de la passe visuelle ; cela ne fait pas de rendu.

Si un script s'arrête

messageaction
diagnostic Pas prêt : ...suivez references/setup.md pour chaque ligne qu'il liste
yt-dlp n'a rien retourné / 0 vidéos analyséeslisez l'indice qu'il affiche : mettez à jour yt-dlp (le diagnostic montre comment), ou demandez des liens vidéo individuels et utilisez --urls
Le profil Instagram échouedites sa phrase : connectez-vous à instagram.com dans Chrome, ou 6+ liens de Reels (Étape 1 "Instagram")
... Corrigez la clé, puis relancez (transcription)la clé ElevenLabs est erronée : l'utilisateur la resauvegarde avec setkey dans son propre terminal, ou abandonnez-la et utilisez Whisper
aucune vidéo dans ... Exécutez download d'abordexécutez visual.py download <handle>
téléchargement échec : <ids> (exit 1)relancez avec les --ids qu'il affiche ; s'ils échouent encore, dites que l'échantillon est plus petit et continuez
yt-dlp introuvableexécutez fetch.py doctor et corrigez ce qu'il liste
certaines vidéos ne parviennent pas à être transcritesréessayez avec --ids, puis dites lesquelles ont échoué ; ne comblez jamais le vide

Règles strictes

  • Des chiffres réels ou rien. Chaque affirmation sur ce qui fonctionne cite le nombre de vues à côté. Ne dites jamais qu'une vidéo "est devenue virale" sans le nombre.
  • Transcriptions textuelles uniquement. Ne résumez jamais une vidéo qui n'a pas été transcrite.
  • La structure est copiée, la voix ne l'est pas. Chaque analyse indique ce qu'il faut rejeter.
  • Groupe témoin médian. Au moins deux vidéos de performance moyenne transcrites, sinon l'analyse ne peut pas séparer le format des habitudes du créateur.
  • N'inventez jamais une ligne de transcription, une statistique ou une citation pour une carte. Si la transcription a échoué, réessayez avec --ids, puis dites qu'elle a échoué.
  • Ne demandez jamais la clé ElevenLabs dans le chat.
  • Uniquement des nombres mesurés dans style.json. pace et zoom viennent de visual.py ; captions, face, graphics et motion de look.py ; seulement les mots (look, font_match) du modèle.
  • Lisez look.md, pas les images. Ouvrez une image seulement pour trancher une question que look.md ne peut pas répondre, et dites laquelle. L'utilisateur reçoit teardown.html ; Claude reçoit look.md.
  • Gagnantes par rapport au témoin : dites n. Ne qualifiez jamais une différence de prouvée ; "chaque gagnante" signifie seulement qu'il n'y a pas de chevauchement dans cet échantillon.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

Conz-Wilts/ai-editor

Turns one long video or podcast (a local file or a YouTube link) into the best 3-5 short vertical clips, each cut and styled in the user's profile style. Transcribes once, splits the talk into candidate clips at sentence boundaries inside the chosen length, scores every candidate in code (speech rate, loudness, laughter, numbers and names said), shows the shortlist on one page with a preview of each, then trims, cuts and style-edits each pick as its own edit. Use when the user says "clip this video", "make shorts from my podcast", "find the best clips", "cut this into TikToks", "turn this YouTube video into reels", "repurpose this long video", or drops a long video (over about 3 minutes) or a YouTube link and wants short clips. Not for editing one short take (that is start or cut), and not for measuring someone else's style (that is creator-teardown).

Conz-Wilts/ai-editor

Cuts raw talking-head footage into a clean jump cut. Takes one take or several joined (mp4 or mov, any aspect, 4K phone footage is fine), transcribes it word by word, removes retakes, false starts, fillers and dead pauses, and renders cut.mp4 at the source resolution plus words.json timed to the cut. The user approves the cut on a page with the whole transcript and every removed word struck through. Use when the user says "cut my video", "just cut it", "remove my mistakes", "cut out the retakes", "remove the pauses", "clean up this take", "jump cut this", "tighten this clip", or asks only for the cut of a raw take; start calls it for a full edit. Runs before style-edit. Not for a general request to edit a video or to make it look like a creator (that is start), not for adding captions, zooms or cards (style-edit), and not for analysing someone else's videos (creator-teardown).

Conz-Wilts/ai-editor

Generates new footage with Higgsfield and puts it on the edit's timeline. Prices every generation first, asks the user with the dollar amount (and, for their own footage, whether it may be uploaded to Higgsfield), then submits, waits, downloads into the edit's generated/ folder and adds the result to the timeline's Generated track. Covers motion transfer on a clip of the user's video (their moves onto a character or styled look), b-roll from a sentence (text to video), a still brought to life (image to video) and stills for cards (text to image). Use when the user says "generate b-roll", "make a shot of", "AI b-roll", "generate a clip", "use Higgsfield", "motion transfer", "put my moves on", "restyle this part with AI", or asks for footage they did not film. Not for animated diagrams or motion graphics (motion), not for real screenshots and logos (overlays, logo-pack), and not for the cut (cut).

Conz-Wilts/ai-editor

For the editor's maintainers. Turns what users corrected into lasting fixes in this repo, for every user, enforced by code and tests rather than notes. Reads the suggestions users marked "would help everyone" (~/.ai-video-editor/suggestions.jsonl), taste rules said twice (taste.py report), preview corrections (edits/*/corrections.jsonl), review-page notes (*/review.json) and open GitHub issues labelled feedback; groups repeats; for each item the maintainer accepts, writes the general rule into PRINCIPLES.md and the skill that owns it, adds or tightens the check that enforces it, adds a test that fails before and passes after, and runs the full test set. Use when the maintainer says "improve the editor", "turn feedback into fixes", "process suggestions", "what are users complaining about", "go through the feedback issues". Not for one user's own preferences (that is taste), and not for editing a video.

Skills associés