Communitygithub.com

lalimi/claude-reelsmith

Crée un voice-over reel complet (Instagram Reels / TikTok / Shorts, 1080×1920, 25–70 s) à partir d’un seul fichier reel.json — vos propres clips et photos, une voix-off, des sous-titres avec mots d’accentuation, des cartes d’accroche et de fin, des tampons, des incrustations, des transitions et effets de motion, une piste musicale, un mix à −14 LUFS, une fiche QA des zones de sécurité, une couverture et une légende.

Qu'est-ce que claude-reelsmith ?

Cette compétence transforme un script approuvé et les fichiers sources du créateur en un reel vidéo professionnel prêt à être publié sur Instagram Reels, TikTok ou YouTube Shorts. Le format est 1080×1920, d’une durée de 25 à 70 secondes. Le processus est entièrement piloté par un fichier `reel.json` unique qui décrit le script, les segments vidéo, la voix-off, les effets, la musique, les cartes et les sous-titres. Le nom de l’outil est `reelsmith`, et son moteur se trouve dans `$(reelsmith root)/engine/`. Le flux de travail typique comprend : préparation du script, import de la voix-off (fichier local ou ElevenLabs), sélection du contenu via des fiches de contact, plan d’édition des effets, construction pas à pas avec vérification intermédiaire (images de contrôle et fiche QA), puis rendu final. Les effets incluent : cover story, orbit text, doodle boil, glass type, checklist, headline wall, passage noir et blanc → explosion de couleur, photo montage, transitions zoom et whip. La sortie est un fichier MP4, une image de couverture et un texte de légende, le tout mixé à −14 LUFS avec une marge de sécurité.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/lalimi/claude-reelsmith/tree/HEAD/skills/reel-builder

Demander à votre IA préférée

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

Documentation

Constructeur de reel

Moteur : $(reelsmith root)/engine/ (build.py, template.html, music.py, pull_vo.py, capcut.py, fonts/). Un dossier par reel : <reel-dir>/reel.json → <reel-dir>/out/reel.mp4. Si reelsmith indique qu’il n’est pas configuré, exécutez reelsmith setup une fois.

reelsmith new reels/my-reel            # dossier avec src/, vo/ et un reel.json modèle
reelsmith sheet reels/my-reel/src/*    # fiches de contact → choisissez `ss` pour chaque segment
reelsmith build reels/my-reel --stills # ~1 min : images, timings des mots, sous-titres, out/qa_sheet.jpg
reelsmith stills reels/my-reel 0.5,7.8,21.3   # images de contrôle supplémentaires
reelsmith build reels/my-reel          # rendu complet (~4–5 min pour 60 s)

Exécutez toujours --stills en premier : lisez la liste imprimée des sous-titres et regardez out/qa_sheet.jpg (rouge = zones UI Reels/TikTok ; rien d’important ne doit se trouver dans le rouge). Corrigez reel.json, puis construisez. Vérifiez les lignes de volume imprimées à la fin (−14 LUFS ±1, crête ≤ −1 dB). Regardez ensuite les images du MP4 final autour de chaque effet et transition avant de le remettre.

Workflow (temps du créateur ≈ 10 min par reel)

  1. Script : compétence reel-script → le créateur approuve. Marquez les mots d’accentuation avec <em>…</em> ; conservez les nombres tels quels pour l’affichage.
  2. Voix : soit l’enregistrement du créateur (vo/vo.mp3) soit ElevenLabs (voir docs/voice.md) : texte TTS = script sans balises, nombres épelés en toutes lettres, noms de marques écrits phonétiquement. Sur le plan gratuit, générez dans l’interface web ElevenLabs (Claude dans Chrome peut le piloter), puis reelsmith voice <reel-dir> récupère les 2 prises les plus récentes dans vo/ avec leurs durées. Transcrivez les deux, conservez la plus propre comme vo/vo.mp3. Voix lentes : "speed": 1.07 dans vo.
  3. Séquences : compétence footage-scout — uniquement des clips récents (vérifiez used_footage.md), fiches de contact, vérification de la vie privée. Les durées des segments doivent additionner jusqu’à la fin de la voix + ~2 s.
  4. Plan d’édition : compétence reel-director choisit les 3–5 effets pour cette histoire et où placer les transitions.
  5. Écrivez reel.json → --stills → corrigez → construisez → livrez out/reel.mp4 + out/cover.jpg + out/caption.txt.
  6. Passage sonore optionnel dans CapCut : compétence reel-capcut (effets sonores de bibliothèque + musique choisie à l’oreille).

reel.json

{
  "vo": {"file": "vo/vo.mp3", "offset": 0.25, "speed": 1.07, "gaps": [[5.73, 0.8]]},
  "script": "Je réécris mon guide depuis trois mois et hier j’ai changé la police de la couverture <em>pour la quatrième fois</em>. …",
  "hook": {"tag": "le scénario du brouillon éternel", "lines": ["le guide est presque prêt.", "<em>depuis trois mois maintenant</em>"], "out": 5.55},
  "end": {"from": 55.6, "lines": ["depuis combien de temps", "<em>le vôtre attend-il ?</em>"], "lines_at": [55.75, 56.6],
          "sub": "dites-le moi en commentaire", "sub_at": "@comments", "handle": "@votrehandle", "handle_at": 58.6},
  "cover": {"from": 0, "to": 4.35, "title": "BROUILLON", "left": "No.4 · Octobre", "right": "@votrehandle", "top": 330},
  "cover_t": 2.0,
  "stamps": [{"seg": ["I", "J"], "text": "tanya · 2 ans dans les brouillons"}],
  "punch": [[3.02, 4.4], ["@mille", 9.0]],
  "segments": [
    {"id": "A", "clip": "src/night_desk.mp4", "ss": 9.5, "dur": 2.5, "crop": [0, 0.196, 0.75], "cut": true},
    {"id": "B", "clip": "src/keys.mp4", "ss": 1.3, "dur": 1.9, "move": "none"},
    {"id": "E", "clip": "src/phone_walk.mov", "ss": 0.8, "dur": 4.5, "cut": true, "in": "zoom"},
    {"id": "I", "clip": "src/cafe.mp4", "ss": 0.3, "dur": 3.2, "look": "bw"},
    {"id": "K", "clip": "src/walk.mov", "ss": 14.0, "dur": 4.95, "look": "burst"},
    {"id": "N", "clip": "src/breakfast.mov", "ss": 0.0, "dur": 3.45, "rate": 0.4},
    {"id": "Q", "clip": "src/meadow.mov", "ss": 13.2, "dur": 9.1, "move": "pull-out", "in": "zoom"}
  ],
  "caption": "…",
  "music": "synth"
}

Un exemple réel complet (ukrainien, 61 s, 17 segments, chaque effet ci-dessous) se trouve dans $(reelsmith root)/examples/chernetka/reel.json ; un exemple minimal dans examples/template/reel.json.

Voix et sous-titres

  • lang : langue Whisper de la voix-off ("uk", "en", …) ; omis = détection automatique (ou REELSMITH_LANG).
  • vo.gaps [vo_time, extra_s] : une pause de respiration insérée au point le plus silencieux proche de ce temps de la voix (accélérée) — place pour un montage photo. vo.speed : facteur atempo.
  • ancres "@word" : tout temps dans hook / end / doodles / glass / checklist / cover / orbit / wall / punch / subs_skip peut être "@thousand" (début de ce mot du script ; correspondance exacte d’abord, sinon préfixe), "@again#2" (2e occurrence), "@twice+0.3". Les mots mal entendus par Whisper reçoivent des temps interpolés — utilisez des secondes dans ce cas. out/words.json contient les temps réels après --stills.
  • subs / punch : omis = automatique à partir de script + timings des mots (5–7 mots, 1–2 lignes, mots d’accentuation en couleur d’accent italique, pas de point final, une ligne ne se termine jamais par "et/dans/de…" ; incrustations sur jusqu’à 4 phrases d’accentuation espacées d’au moins 3 s). Remplacez par "subs": [[a, b, "html"]], "punch": [[a, b]]. Les sous-titres sont masqués pendant que la carte d’accroche est affichée, sous les titres en verre et les listes de contrôle, et une fois la carte de fin commencée (subs_from / subs_until / subs_skip [[a, b]] pour ajuster).

Cartes et texte

  • hook : carte en papier visible depuis l’image 0 (at: [t…] révèle les lignes une par une, size, top). end : carte à partir de from, lignes à lines_at, sub, handle.
  • stamps : pastille mono en haut à gauche sur les segments listés (lieu, date, nom du personnage).
  • cover (cover story + cadre brisé) : en-tête de magazine ajusté à la largeur, les lettres tombent ; sur les segments avec "cut": true, la personne se tient devant le titre. Choisissez/recadrez un plan où le sommet de la tête se situe 40–80 px sous le haut de l’en-tête — jamais en travers des yeux. color pour l’en-tête, top pour le déplacer. cover_t ≈ 2 pour que out/cover.jpg montre la couverture finale.
  • glass (glass type) : {"from", "to", "lines", "at", "top"} titre en verre dépoli.
  • checklist : {"from", "to", "title", "items": [{"text", "sub", "at", "sub_at"}]} carte qui grandit élément par élément, cases cochées dessinées à at.
  • wall (headline wall) : {"from", "to", "items": [...], "every": 0.06} tuiles de noms de fichiers / titres qui s’empilent ; placez un titre en verre par-dessus.
  • orbit : {"from", "to", "seg", "text": "1000 ABONNÉS · ", "speed", "scale", "tilt", "lift"} anneau de texte autour de la tête sur un segment cut ; la moitié arrière passe derrière la personne. Idéal sur un selfie rapproché.
  • doodles (doodle boil) : {"kind": "text"|"circle"|"underline"|"strike"|"arrow", "at", "to", "x", "y", …} — text : text, size, rot, write ; circle/strike : w, h (strike n zigzags ; 3 maintient le mot lisible) ; underline : w ; arrow : x2, y2, bend ; color, width. Encre d’accentuation avec un halo crème, écrit de gauche à droite, vacillant toutes les 3 images. Conservez-les au-dessus de y ≈ 1000 pendant que la carte d’accroche est affichée, et hors des visages.

Segments

  • chemins : relatifs au dossier du reel, puis au répertoire courant, puis au dépôt. Les photos HEIC/JPG via img sont acceptables.
  • ss début dans le clip, dur secondes ; pos 0–1 cadrage horizontal pour les sources larges ; crop [x, y, size] = recadrage incrusté de l’image droite (reste net à partir de 4K) ; rate < 1 = ralenti lorsqu’une seule petite partie est utilisable.
  • cut : true = masques de personne macOS Vision pour ce segment (reelsmith masks, ~0,2 s/image, mis en cache). Nécessaire pour cover et orbit.
  • in : "zoom" (le plan sortant se précipite avec flou, le nouveau arrive depuis un zoom) ou "whip" (diapositive floue rapide, sans bords noirs). Utilisez sur 4–6 coupes clés, pas sur chaque coupe.
  • look : "" film chaud · "memory" zoom traversé fané pour les montages photos (date ajoute un tampon de date d’appareil photo orange) · "bw" noir et blanc (la musique s’étouffe) · "burst" gris → éclosion de couleur (la musique s’ouvre).
  • move : push (push-in lent par défaut) · tilt-up · pull-out · none.

Son et couleur

  • music : "synth" (une nappe lo-fi générée, façonnée par les looks — acceptable comme placeholder, les créateurs préfèrent généralement une piste réelle), un chemin vers un fichier audio dont vous avez les droits, ou null. Le son original du clip n’est jamais utilisé.
  • music_gain : par défaut 0,16 sous la voix (sidechain-ducked).
  • colors : {"accent": "#D4573A", "cream": "#F4EFE6", "ink": "#1F1A17"} (valeurs par défaut : beige / terre cuite).

Règles issues de retours réels

  • Les effets doivent être lisibles sur un téléphone au premier visionnage : grands, de couleur d’accentuation, animés. Des petits doodles crème et un panneau de verre faible étaient "où sont les effets ?".
  • Pas de flashs blancs répétés sur les coupes. Coupez le son original du clip. 3–5 techniques par reel, pas toutes.
  • Ne placez jamais de texte, cartes ou doodles en travers des yeux ; déplacez la carte ou recadrez le plan.
  • Vérifiez les écrans et arrière-plans des clips en pleine résolution : messages d’autres personnes, plaques d’immatriculation, noms de rues, tableaux de bord privés → sautez ces secondes.
  • Nouveau contenu à chaque reel (used_footage.md). Demandez avant d’utiliser des plans avec les visages d’autres personnes.

Individual skills in this repo

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

lalimi/claude-reelsmith

Finish a built reel in CapCut — upload the picture (everything baked in), the voice and music stems, place CapCut library sound effects on every effect and transition, push an editable CapCut Web draft, and let the creator swap music and sounds by ear before exporting. Uses the CapCut MCP connector bundled with this plugin. Use when asked for "sound effects from CapCut", "put it into CapCut", "editable draft", "change the music in CapCut", "капкат".

lalimi/claude-reelsmith

The director of a reel made from the creator's own footage — runs the whole job from idea to a post-ready MP4 + cover + caption and makes the creative calls (which story structure, which 3–5 effects go on which beat, where the transitions are, pacing, sound), then reviews the cut like a critic before handing it over. Use when someone says "make me a reel", "turn my clips into a reel", "edit this like a pro", "what do you think as a critic / director", "make it more alive", "add effects", "зроби рілс", "що скажеш як критик", or when a reel is being planned, reviewed or re-cut.

lalimi/claude-reelsmith

Write, analyse and plan short-video scripts (Instagram Reels, TikTok, YouTube Shorts, 30–60 s) in four proven viral structures — contrarian insight with a named archetype, series episode with a cliffhanger, humor hook + list of N factors, and "the scenario of …" confession. Use when the user asks to "write a reel script", "give me reel ideas", "analyse this viral reel", "break this reel down", "turn this transcript into a structure", "make one like this reel", pastes a reel transcript, or wants to edit a reel that has no script yet. Triggers in any language (e.g. "напиши сценарій для рілса"). Writes flowing spoken text in the creator's own language (English, Ukrainian, …), checks it against a checklist, and hands a montage plan to reel-builder, talking-head-edit or reel-director.

Skills associés