Communitygithub.com

clipper

Transformez une longue vidéo en courts clips verticaux avec sous-titres mot à mot, prêts à être publiés.

Qu'est-ce que clipper ?

Cette compétence permet à Claude d'analyser une vidéo (podcast, YouTube, enregistrement, live) pour en extraire les 3 à 5 moments les plus percutants, puis de générer des clips verticaux (9:16) avec sous-titres animés mot à mot. Tout le traitement s'effectue localement, sans clé API externe : la transcription utilise un modèle de reconnaissance vocale téléchargé une fois, et le montage recadre automatiquement sur le visage de l'orateur. Conçue pour les créateurs de contenu, elle fonctionne avec Claude Code (ou tout agent compatible) et produit des fichiers prêts à poster sur TikTok, Instagram Reels ou YouTube Shorts. L'utilisateur n'a qu'à fournir la vidéo ; Claude sélectionne les meilleurs moments, écrit les sous-titres et génère les clips finalisés.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/corbinsylk/clipper-skill/tree/HEAD/skills/clipper

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 clipper ?

Déposez une vidéo et Claude trouve les moments les plus forts, puis les transforme en courts clips avec sous-titres, prêts à être publiés.

Tout s'exécute sur cet ordinateur. Rien n'est téléchargé. La compétence se trouve dans ~/.claude/skills/clipper/ ; ses outils sont scripts/transcribe.py et scripts/make_clips.py, exécutés avec son propre Python : ~/.claude/skills/clipper/.venv/bin/python.

0. Vérifier l'installation (à chaque exécution)

test -x ~/.claude/skills/clipper/.venv/bin/python && command -v ffmpeg

Si l'un des deux manque, prévenez l'utilisateur en une ligne et lancez l'installateur depuis le dépôt cloné (bash install.sh dans le dossier clipper-skill). Si vous ne trouvez pas le dossier, clonez-le à nouveau : git clone https://github.com/corbinsylk/clipper-skill && cd clipper-skill && bash install.sh.

1. Obtenir la vidéo

L'utilisateur glisse le fichier ou donne un chemin. S'il n'a rien donné, demandez-le en une ligne. Les deux scripts utilisent le dossier de travail <nom vidéo>-clips/ à côté de la vidéo sauf si vous en passez un autre. Paramètres que l'utilisateur peut fournir (sinon utilisez les valeurs par défaut, ne demandez jamais) :

ParamètreValeur par défaut
Nombre de clips3 à 5, autant que de moments vraiment forts
Durée du clip20 à 60 secondes (visez 30 à 45)
Couleurs des sous-titresblanc cassé #F5F1EA, le mot en cours en terre cuite #B03926
Sous-titresactivés

2. Transcrire

~/.claude/skills/clipper/.venv/bin/python ~/.claude/skills/clipper/scripts/transcribe.py "<video>"

Il imprime d'abord le dossier de travail. Le premier téléchargement du modèle de reconnaissance vocale prend environ 500 Mo pour small ; une vidéo de 2 minutes prend environ une minute, une vidéo d'une heure plusieurs minutes. Pour toute vidéo de plus de 10 minutes, exécutez la commande en arrière-plan (dans Claude Code : l'outil Bash avec run_in_background) et dites à l'utilisateur que ça travaille. Pour un accent prononcé ou un son de mauvaise qualité, ajoutez --model medium. Un avertissement concernant un token HF ou un conseil de vitesse au premier lancement est inoffensif.

3. Choisir les moments (c'est votre travail, pas celui d'un script)

Lisez <dossier travail>/transcript.md en entier. Choisissez les 3 à 5 moments les plus forts. Un moment fort :

  • Commence par un accroche dans sa première phrase. Une affirmation audacieuse, un chiffre surprenant, une question, une erreur, le début d'une histoire. Ne commencez jamais par « donc », « et », « euh », « comme je disais » ou une phrase qui a besoin du contexte antérieur.
  • Se suffit à lui-même. Quelqu'un qui n'a jamais vu la vidéo entière le comprend. Pas de « ça », « cette chose » ou « comme je l'ai mentionné » pointant hors du clip.
  • Apporte une récompense. Il se termine sur la réponse, la chute, le résultat ou la leçon : une pensée achevée, jamais en milieu de phrase.
  • A de l'énergie. Opinions, détails concrets, chiffres, émotion, un rebondissement. Évitez les salutations, les lectures de sponsors, les tâches ménagères et les longues introductions plates.
  • Ne répète pas un autre choix. Chaque clip apporte un point différent, et les clips ne se chevauchent jamais dans le temps. Une vidéo courte donne moins de clips : sous environ 5 minutes, 1 à 3 clips est normal ; n'allongez jamais et ne chevauchez pas pour atteindre un nombre.

Notez chaque moment de 1 à 10 (accroche, autonomie, récompense, énergie ensemble). Ne conservez que ceux qui obtiennent 7 ou plus ; si moins de 3 y parviennent, gardez les 3 meilleurs et dites qu'ils sont plus faibles. Écrivez ensuite <dossier travail>/moments.json :

[
  {"title": "Titre court pour le fichier", "start": 63.2, "end": 101.8, "score": 9,
   "hook": "la première phrase du clip, mot pour mot",
   "why": "une ligne : pourquoi ce moment fonctionne",
   "caption": "une légende prête à poster : une ligne d'accroche, puis 2-3 lignes courtes, puis une question ou un appel à l'action"}
]

start et end sont en secondes depuis le début de la vidéo (les horodatages du transcript sont en minutes:secondes, donc 01:03.2 = 63.2). <dossier travail>/words.json contient chaque mot avec son début (s) et sa fin (e) exacts : lisez-le pour définir les bords. Réglez start sur le s du premier mot de l'accroche et end sur le e du dernier mot de la récompense. Le script conserve les mots de start à end (0,05 s de marge) et n'atteint jamais le mot avant ou après, donc pour supprimer un mot comme « Donc », réglez start sur le s du mot suivant.

4. Créer les clips

~/.claude/skills/clipper/.venv/bin/python ~/.claude/skills/clipper/scripts/make_clips.py "<video>"

Ajoutez --text-color "#FFFFFF" --active-color "#FFD400" pour d'autres couleurs de sous-titres, ou --no-captions pour les désactiver. Cela prend environ une minute par clip. Chaque clip : coupé aux limites des mots, recadré en 1080x1920 (une vidéo large est recadrée autour du visage de l'orateur ; tout passage d'une seconde ou plus sans visage, comme un graphique, un écran ou un B-roll, est affiché en entier sur un fond flouté au lieu d'être coupé ; une vidéo verticale est conservée entière), sous-titres trois mots à la fois avec le mot prononcé en surbrillance, son nivelé à -14 LUFS.

5. Vérifier avant de remettre

Ouvrez chaque clips/NN-*.jpg : c'est une bande de 8 images réparties sur tout le clip. Regardez-les toutes :

  • Le visage est dans le cadre et les sous-titres lisibles, sous le menton, sur chaque image parlée.
  • La vidéo a déjà des sous-titres incrustés (vous voyez deux séries de mots) : refaites tous les clips avec --no-captions.
  • Le script imprime « face in X/Y checks » par clip. Si X est 0, il n'y a pas de visage à cadrer (un enregistrement d'écran, des diapositives) : le clip est centré, donc dites-le dans le rapport. Les images sans visage sont normales sur une vidéo montée ; ce sont les plans de coupe affichés en entier.
  • Si un clip commence ou se termine au milieu d'un mot ou d'une pensée, corrigez start/end dans moments.json et refaites uniquement ce clip avec --only N.

6. Rapport

Une courte liste : le fichier de chaque clip, sa durée, son score et pourquoi il fonctionne, ainsi que sa légende de publication. Dirigez-les vers clips/scores.md (tout en un fichier) et le dossier clips/. Proposez une prochaine étape : différents moments, d'autres couleurs de sous-titres, ou clips plus longs/plus courts.

Skills associés