Communitygithub.com

niruvai/storytelling

Bearbeitet einen Talking-Head-Clip zu einem Storytelling-Reel. Drei einfache Bildkarten laufen oben über das Video, mit einem fetten schwarzen Titel und einem kleinen weißen Untertitel darunter – alles synchron auf einer durchgehenden Aufnahme mit einfachen TikTok-Untertiteln (weiß, schwarz umrandet, 1 bis 3 Wörter).

Was ist storytelling?

Dieses Skill verwandelt einen 9:16 Talking-Head-Clip in ein Storytelling-Reel, wie es auf TikTok oder Instagram üblich ist. Es platziert drei animierte Karten (z. B. Statistik, Coverbild, Kommentare) oben auf dem Video, dazu einen fetten schwarzen Titel und einen kleinen weißen Untertitel – alles erscheint gleichzeitig innerhalb der ersten 0,3 Sekunden. Der Clip wird durchgehend abgespielt (keine Jump Cuts), und die Untertitel im TikTok-Stil (weiß mit schwarzer Umrandung, 1–3 Wörter) werden automatisch aus dem Transkript generiert. Das Skill unterstützt sowohl Englisch als auch Bengalisch (Bangla) und erfordert ffmpeg, Node, eine Groq Cloud API für die Transkription sowie die niruvai/kit-Umgebung. Der Workflow umfasst fünf Schritte: Clip auswählen, Transkript erstellen, Spezifikation schreiben, bauen und das Ergebnis prüfen.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/niruvai/claude-editing-skills-bangla/tree/main/skills/storytelling

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

/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

  1. Clip. Ein beliebiger 9:16 Talking-Head-Clip.
  2. 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 als end. 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.
  3. 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.
  4. Build. Führe "$PY" "$SKILL_DIR/build.py" <spec.json> aus.
  5. 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.
  6. Ü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, image plus text (*Wort* wird gelb, \n bricht die Zeile). Es driftet langsam.
  • stat: label, value, unit und ein Ring.
    • Der value zä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.
  • 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- oder stat-Karte, anstatt Personen zu erfinden.

Verwandte Skills