/storytelling
┌──────────────────────┐
│ [4:12] [couverture] [commentaires] │ trois cartes, toutes en même temps
│ J'ai fait ce carrousel │ titre en boîte noire, 1-2 lignes
│ en quelques minutes │
│ et il marche super bien │ petit sous-titre blanc
│ (visage) │ une prise continue, légèrement zoomée
│ carrousel complet │ sous-titres TikTok
└──────────────────────┘
Première utilisation
Le dossier de ce skill est le « Répertoire de base » que Claude Code affiche lorsqu'il le charge.
SKILL_DIR="<répertoire de base de ce skill>" # le chemin que Claude Code a affiché comme « Répertoire de base pour ce skill »
KIT=$(python3 -c 'import os,sys;print(os.path.realpath(os.path.join(sys.argv[1],"..","..","kit")))' "$SKILL_DIR")
PY="$KIT/.venv/bin/python"; [ -x "$PY" ] || bash "$KIT/setup.sh"
Clips en bengali. Si l'intervenant parle bengali, assurez-vous que REEL_LANGUAGE=bn est défini avant le premier appel à words (exportez-le, ou préfixez la commande) pour que Whisper transcrive en bengali au lieu de traduire. Rédigez également tout texte à l'écran (titres, étiquettes, éléments) en bengali, et ancrez les temps sur les mots bengalis exactement comme words les imprime. Le bengali s'étale plus large que l'anglais à taille égale, donc limitez les titres à 2–4 mots et vérifiez la planche contact pour les débordements. Whisper écrit souvent mal le bengali (ex. « ধাকার মেওর » pour « ঢাকার মেয়র ») : avant d'écrire le cahier des charges, lisez les mots du segment choisi et corrigez les fautes directement dans <clip>.transcript.json (modifiez uniquement word, conservez start/end), puis relancez words pour que les sous-titres et les ancres utilisent les mots corrigés. Si un long segment de parole manque dans words, supprimez la transcription et relancez words ; le transcodeur re-vérifie les segments ignorés. Si le clip n'est pas en 9:16 (par exemple une vidéo carrée 1080x1080), vérifiez la première image : un recadrage direct peut faire que le visage remplisse l'écran et cache les visuels, donc prévenez l'utilisateur et suggérez un enregistrement en 9:16.
GROQ_API_KEY doit être définie pour la transcription. Nécessite ffmpeg et Node.
Étapes
- Clip. N'importe quelle tête parlante en 9:16.
- Mots. Exécutez
"$PY" "$KIT/reel.py" words <video>. Cela imprime une phrase par ligne avec[se termine …](quand son dernier mot se termine), utilisez donc cela commeend. Choisissez UN segment continu de 4 à 8 secondes qui raconte une petite histoire ou montre une preuve. Ne reliez pas des morceaux, car les coupures brusques paraissent étranges ici. - Cahier des charges. Écrivez
<clip>.storytelling.json(ci-dessous). Les chemins dans un cahier des charges sont relatifs au fichier du cahier des charges. Les trois cartes sont l'histoire en images : l'effort, la chose et le résultat. - Construction. Exécutez
"$PY" "$SKILL_DIR/build.py" <spec.json>. - Vérification. Regardez
<out>.sheet.jpg:- Les cartes et le titre dégagent les 220 px du haut.
- Les sous-titres ne couvrent pas la bouche (déplacez
caption_top, 1385 par défaut). - Le titre tient sur ses lignes.
- Remettez le chemin du mp4.
Spécification
{
"video": "mon-clip.mp4", "start": 42.3, "end": 47.8,
"zoom": 1.3,
"cards": [
{"type": "stat", "label": "TEMPS PASSÉ", "value": "4:12", "unit": "minutes"},
{"type": "cover", "image": "ma-photo.jpg", "text": "les meilleurs *outils d'ia*\nà utiliser quand\ntu es *jeune et fauché*"},
{"type": "comments", "title": "Commentaires", "rows": [["sarah.creates", "CARROUSEL"], ["mike.builds", "CARROUSEL!!"]]}
],
"title": ["J'ai fait ce carrousel", "en quelques minutes"],
"subtitle": "et il marche extrêmement bien"
}
cards prend exactement 3, chacun étant :
image:{"src": "photo.jpg"}, une photo carrée.cover: une couverture de carrousel,imageplustext(*mot*devient jaune,\nsaute une ligne). Elle dérive lentement.stat:label,value,unitet un cercle.- La
values'incrémente si c'est un nombre ("250","10,000") ou une durée ("4:12"). ring(0 à 1) indique le remplissage du cercle.
- La
comments: jusqu'à 4 lignes[pseudo, texte].text:{"big": "3×", "small": "plus de sauvegardes"}.
Les autres champs :
title: 1 ou 2 lignes, chacune d'environ 22 caractères maximum.subtitle: une ligne courte.zoom: à quel point la prise est zoomée. 1,3 par défaut, 1 pour aucun.
Goût
- Tout apparaît en même temps, dans le premier tiers de seconde. Jamais un par un.
- Le titre est l'histoire en une respiration. Le sous-titre est la récompense.
- Les cartes montrent des choses réelles : la propre publication de l'utilisateur, des chiffres, des captures d'écran. Les lignes de commentaires et les pseudos doivent être réels, donnés par l'utilisateur. S'il n'en a pas, utilisez une carte
textoustatplutôt que d'inventer des personnes.