/storytelling
┌──────────────────────┐
│ [4:12] [cover] [comments] │ drei Karten, alle gleichzeitig
│ I made this carousel │ schwarzer Titel, 1–2 Zeilen
│ in a few minutes │
│ and it's doing well │ kleiner weißer Untertitel
│ (face) │ eine durchgehende Aufnahme, leicht herangezoomt
│ entire carousel │ TikTok-Untertitel
└──────────────────────┘
Erste Verwendung
Das Verzeichnis dieses Skills ist das „Basisverzeichnis“, das Claude Code beim Laden anzeigt.
SKILL_DIR="<Basisverzeichnis dieses Skills>" # der Pfad, den Claude Code als „Basisverzeichnis für dieses Skill“ ausgegeben hat
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"
Bangla-Clips. Wenn die sprechende Person auf Bengalisch spricht, muss REEL_LANGUAGE=bn gesetzt sein, bevor der erste words-Aufruf erfolgt (exportieren oder dem Befehl voranstellen), damit Whisper auf Bengalisch transkribiert und nicht übersetzt. Schreibe auch sämtliche Bildschirmtexte (Titel, Beschriftungen, Einträge) auf Bengalisch und verankere die Zeiten an den bengalischen Wörtern, genau wie words sie ausgibt. Bengalisch ist auf gleicher Schriftgröße breiter als Englisch, halte daher Überschriften bei 2–4 Wörtern und überprüfe das Kontaktblatt auf Überläufe. Whisper schreibt bengalische Wörter oft falsch (z. B. „ধাকার মেওর“ statt „ঢাকার মেয়র“): Lies vor dem Schreiben der Spezifikation die Wörter des gewählten Abschnitts und korrigiere falsche Schreibweisen direkt in <clip>.transcript.json (ändere nur word, behalte start/end bei), führe dann words erneut aus, damit Untertitel und Anker die korrigierten Wörter verwenden. Wenn ein langer Sprachabschnitt in words fehlt, lösche das Transkript und führe words erneut aus; der Transkribierer prüft übersprungene Abschnitte erneut. Falls der Clip nicht 9:16 ist (z. B. ein quadratisches 1080x1080-Handyvideo), prüfe das erste Bild: Ein gerader Beschnitt kann das Gesicht über den gesamten Bildschirm ziehen und die Bilder verdecken; informiere den Benutzer und schlage eine 9:16-Aufnahme vor.
GROQ_API_KEY muss gesetzt sein, um zu transkribieren. Erfordert ffmpeg und Node.
Schritte
- Clip. Ein beliebiger 9:16 Talking-Head-Clip.
- Words. Führe
"$PY" "$KIT/reel.py" words <video>aus. Es gibt einen Satz pro Zeile mit[ends …]aus (wenn sein letztes Wort endet), verwende das alsend. Wähle einen EINZIGEN durchgehenden Abschnitt von 4 bis 8 Sekunden, der eine kleine Geschichte erzählt oder einen Beweis zeigt. Setze keine Stücke zusammen, da die Sprungschnitte hier merkwürdig wirken. - Spec. Schreibe
<clip>.storytelling.json(siehe unten). Pfade in einer Spezifikation sind relativ zur Spezifikationsdatei. Die drei Karten sind die Geschichte in Bildern: die Mühe, das Ding und das Ergebnis. - Build. Führe
"$PY" "$SKILL_DIR/build.py" <spec.json>aus. - Check. Betrachte
<out>.sheet.jpg:- Die Karten und der Titel lassen die oberen 220 px frei.
- Die Untertitel bedecken nicht den Mund (verschiebe
caption_top, Standard 1385). - Der Titel passt auf seine Zeilen.
- Übergib den mp4-Pfad.
Spezifikation
{
"video": "my-clip.mp4", "start": 42.3, "end": 47.8,
"zoom": 1.3,
"cards": [
{"type": "stat", "label": "ZEIT AUFGEWENDET", "value": "4:12", "unit": "Minuten"},
{"type": "cover", "image": "my-photo.jpg", "text": "die besten *KI-Tools*
die man verwenden kann
wenn man *jung und broke* ist"},
{"type": "comments", "title": "Kommentare", "rows": [["sarah.creates", "KARUSSELL"], ["mike.builds", "KARUSSELL!!"]]}
],
"title": ["I made this carousel", "in a few minutes"],
"subtitle": "and it's doing extremely well"
}
cards benötigt genau 3 Einträge, jeder davon:
image:{"src": "photo.jpg"}, ein quadratisches Foto.cover: ein Karussell-Cover,imageplustext(*Wort*wird gelb,\nbricht die Zeile). Es driftet langsam.stat:label,value,unitund ein Ring.- Der
valuezählt hoch, wenn es eine Zahl ist ("250","10,000") oder eine Zeit ("4:12"). ring(0 bis 1) gibt an, wie voll der Ring wird.
- Der
comments: bis zu 4[handle, text]-Zeilen.text:{"big": "3×", "small": "mehr Saves"}.
Die anderen Felder:
title: 1 oder 2 Zeilen, jede maximal etwa 22 Zeichen.subtitle: eine kurze Zeile.zoom: wie stark die Aufnahme herangezoomt wird. Standard 1,3; 1 für keinen Zoom.
Geschmack
- Alles erscheint gleichzeitig, im ersten Drittel einer Sekunde. Niemals nacheinander.
- Der Titel erzählt die Geschichte in einem Atemzug. Der Untertitel ist die Belohnung.
- Karten zeigen echte Dinge: den eigenen Beitrag des Nutzers, Zahlen, Screenshots. Kommentarzeilen und Handles müssen echt sein, die der Nutzer dir gegeben hat. Wenn er keine hat, verwende eine
text- oderstat-Karte, anstatt Personen zu erfinden.