Communitygithub.com

eduramza/shorts-factory

Verwandelt ein langes Video (Transkript + Metadaten) in optimierte vertikale Kurzvideos (Shorts/TikTok/Reels) für die Retention mit der Hook → Storytelling → Payoff-Struktur. Wählt Abschnitte aus, bewertet, ordnet den Hook um, definiert Schnitte, Untertitel, Zooms, Musik und Effekte und gibt eine Edit Decision List (EDL) im JSON-Format zurück.

Was ist shorts-factory?

Diese Skill „Retention Shorts (Hook → Storytelling → Payoff)“ ist ein spezialisiertes Werkzeug für KI-Agenten, um aus langen Videoinhalten – wie Vorträgen, Tutorials oder Storytelling-Videos – kurze, vertikale Clips zu generieren, die speziell für die Kurzvideo-Plattformen YouTube Shorts, TikTok und Instagram Reels optimiert sind. Basierend auf der viralen Technik des Kanals „O Milionário“, konzentriert sich die Skill auf die Maximierung der Retentionsrate – also den Prozentsatz der Zuschauer, die das Video bis zum Ende ansehen. Sie segmentiert automatisch das Originaltranskript, bewertet Kandidatenabschnitte nach Kriterien wie Hook-Potenzial, Spannung und Payoff, und erstellt eine detaillierte Edit Decision List (EDL). Diese EDL enthält nicht nur die zeitlichen Schnitte, sondern auch Vorschläge für dynamische Untertitel, Zoom-Bewegungen, Soundeffekte und Musikwechsel – alles mit dem Ziel, die visuelle Cadence unter 4 Sekunden zu halten. Die Skill unterstützt verschiedene Video-Längen-Modi (viral, balanced, authority) und bietet erweiterte Funktionen wie Cold Open (Umstellen des stärksten Satzes an den Anfang) und A/B-Varianten. Sie ist als system-Prompt für KI-Editoren wie Claude Code, Cursor oder Codex konzipiert und arbeitet auf Basis von Transkripten mit Zeitstempeln, Szenenwechseln und Sprechererkennung. Die Ausgabe erfolgt stets als valides JSON, das direkt in automatisierte Schnitt-Pipelines eingespeist werden kann. Die Skill betont ethische Richtlinien: Keine Zitate werden erfunden, keine Bedeutung verfälscht und die Urheberrechte müssen durch den Nutzer gewährleistet sein.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/eduramza/shorts-factory/tree/HEAD/skills/retention-shorts

In Ihrer bevorzugten KI fragen

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

Dokumentation

Skill: Retention Shorts (Hook → Storytelling → Payoff)

0. Ursprung und methodische Ehrlichkeit

Basis: Video „DIESE TECHNIK HAT MEINE SHORTS MIT 30 MILLIONEN AUFRUFEN VIRAL GEMACHT“ (Kanal O Milionário, ID iPpt_INjn8A). Mit [VIDEO] markierte Punkte stammen von dem, was der Autor lehrt. Mit [EXT] markierte Punkte sind technische Erweiterungen dieses Systems: vernünftige Heuristiken, aber nicht durch das Video belegt. Sie müssen mit echten Retentionsdaten kalibriert werden (siehe Abschnitt 10).

1. Zentrales Prinzip [VIDEO]

  • Entscheidend für die Viralisierung eines Kurzvideos ist die Retentionskurve: Je mehr Menschen bis zum Ende zuschauen, desto mehr verbreitet die Plattform das Video.
  • Ziel: Die Retentionskurve so gerade wie möglich, ohne Abfälle halten. Wichtig ist, dass der Zuschauer bis zum Ende kommt.
  • Drei obligatorische Teile: Hook (Aufhänger), Storytelling (Erzählung), Payoff (Belohnung).
  • Das Drehbuch/die Erzählung ist „der Motor des Autos“: Schöner Schnitt ohne Erzählung hält nicht.
  • Dauer: Videos bis ~15 s neigen dazu, mehr zu explodieren, weil es einfacher ist, sie ganz anzuschauen. Längere Videos sind schwieriger zu viralieren, aber sie bauen ein treues Publikum auf. Wenn die Nische längere Videos erfordert, verwende die gleichen drei Schritte.

2. Dauer-Modi [VIDEO + EXT]

ModusZieldauerWann verwenden
viral12–20 s (max. 25)Reichweite maximieren. Standard.
balanced20–40 sInhalt mit minimalem Kontext.
authority40–75 sTreues Publikum aufbauen, tiefergehender Inhalt.

Der Benutzer wählt den Modus. Überschreite niemals die Grenze des Modus, selbst wenn der Abschnitt gut ist: Kürze, indem du tote Teile entfernst.

3. Entscheidungspipeline (in dieser Reihenfolge vorgehen)

Schritt 1: Kandidaten segmentieren

  • Eingabe: Transkript mit Wort-Zeitstempeln, Szenenwechsel, Stille, Sprecher.
  • Generiere Kandidatenfenster, die an Satzgrenzen beginnen und enden (niemals mitten in einem Satz oder Gedanken). Generiere 3× mehr Kandidaten als die angeforderte Anzahl.
  • Jeder Kandidat muss in sich geschlossen sein: Ein Zuschauer ohne Kontext muss ihn ohne den Rest des Videos verstehen können. Wenn er auf vorherigen Kontext angewiesen ist, verwerfe ihn oder bereite eine Kontext-Untertitel vor (Abschnitt 6).

Schritt 2: Jeden Kandidaten bewerten (0–100)

KriteriumGewichtWas zu bewerten ist
Hook-Potenzial25Gibt es einen Satz oder Moment, der in den ersten 3 s klar, direkt, schnell ist und eine Belohnung verspricht [VIDEO]?
Spannung/Erzählung25Gibt es Konflikt, etwas, das schiefgeht, Hindernis, offene Frage oder Spannung [VIDEO]? Gibt es eine Lösung?
Payoff20Liefert das Ende das, was der Hook versprochen hat (Ergebnis, Enthüllung, Emotion, Schlussfolgerung) [VIDEO]?
In sich geschlossen15Ergibt allein Sinn? [EXT]
Dichte/Rhythmus10Wenig Geschwafel, wenige Pausen, alle paar Sekunden neue Information [EXT]
Emotion/Neuheit5Überraschung, Humor, starke Meinung, eindrucksvolle Zahl [EXT]

Regeln:

  • Hook < 12/25 oder Payoff < 8/20 → verwerfen, unabhängig von der Gesamtpunktzahl.
  • Zeige dem Benutzer die Punktzahl pro Kriterium und eine einzeilige Begründung für jedes.
  • Sortiere nach Punktzahl. Vermeide überlappende Schnitte (> 30% Überlappung): Behalte den besten.

Schritt 3: Die Hook → Storytelling → Payoff-Struktur abbilden

Markiere für den ausgewählten Kandidaten auf der Zeitachse:

  • HOOK (0–3 s) [VIDEO]: klar, direkt, schnell, mit Versprechen. Keine Begrüßung, kein „Hallo Leute“, kein „also“, keine Vorstellung.
  • STORYTELLING (Mitte) [VIDEO]: Abfolge von Spannungsbeats. Jeder Beat ist einer der Typen: conflict (etwas geht schief), solution (was man tut), suspense („aber bevor… etwas passierte“). Die Erzählung sollte einen Moment haben, in dem die Geschichte „unterbrochen“ wird und Neugier erzeugt.
  • PAYOFF (letzte 3–5 s) [VIDEO]: Liefert die vom Hook versprochene Belohnung.

Wenn der ursprüngliche Abschnitt nicht mit einem starken Hook beginnt, wende die Cold Open-Technik an [EXT]:

  1. Lokalisiere im eigenen Abschnitt den stärksten Satz (das Versprechen, das Ergebnis oder den provokativsten Satz).
  2. Setze diesen Satz an den Anfang (0–3 s) als Hook, kehre dann zur chronologischen Reihenfolge zurück.
  3. Tue dies nur, wenn der Satz allein Sinn ergibt und der Payoff klar bleibt. Verfälsche die Bedeutung nicht: Es ist verboten, die Bedeutung des Gesagten zu verändern.

Schritt 4: Hook-Engineering [VIDEO + EXT]

  • Generiere 3 Varianten des Hook-Textes auf dem Bildschirm (Eröffnungstitel), jeweils mit ≤ 8 Wörtern:
    • Ergebnisversprechen („Das 5€-Geschenk, das Oma zum Weinen brachte“).
    • Neugierücke („Ich hatte nur 5€ und…“).
    • Widerspruch/Provokation.
  • Der Text muss wahrheitsgemäß zum Inhalt sein (kein Clickbait, den der Payoff nicht einlöst).
  • Er muss in ≤ 2 s lesbar sein.

Schritt 5: Rhythmus-Bereinigung [EXT]

  • Entferne Stille > 0,35 s, Zögern („ähm“, „also“, „quasi“), Wiederholungen und falsche Ansätze.
  • Behalte Mikropausen von 0,1–0,2 s vor einer Enthüllung (Spannung), wo die Pause eine Funktion hat.
  • Schneide nicht mitten in einer Silbe: Verwende Schnittpunkte mit Audio-Nulldurchgang und Crossfade von 30–60 ms.
  • Wenn das Ergebnis über der Grenze des Modus liegt, entferne zuerst die Beats mit der geringsten Spannung aus der Mitte, niemals den Hook oder den Payoff.

Schritt 6: Schnittplan [VIDEO + EXT]

Elemente, die das Video empfiehlt, damit der Zuschauer „die Zeit nicht vergehen spürt“ [VIDEO]:

  1. Dynamische Untertitel: Wort für Wort, Hervorhebung des gesprochenen Wortes.
  2. Zooms und schnelle Schnitte: Immer muss etwas passieren.
  3. Musikwechsel zwischen Szenen: Erzeugt das Gefühl von mehreren Dingen gleichzeitig.
  4. Spannungs-Soundtrack im Spannungsabschnitt, um den Wunsch zu erzeugen, das Ende zu sehen.

Vorgeschlagene Betriebsparameter [EXT], anpassbar:

  • Visuelle Kadenz: Ein visueller Wechsel (Zoom, Schnitt, Framewechsel, Hervorhebung, B-Roll) alle 1,5–3,5 s. Niemals länger als 4 s ohne Wechsel.
  • Zooms: Punch-in 105–115% bei Betonungswörtern; langsamer Zoom (100→108%) in Spannungsabschnitten; Zurücksetzen beim nächsten Schnitt. Wechsle die Richtung, um Ermüdung zu vermeiden.
  • Untertitel: 1–3 Wörter auf einmal, ≤ 2 Zeilen, aktives Wort in einer auffälligen Farbe, Position im unteren Drittel (außerhalb der App-Interface-Zone: unteren Rand von ~20% und seitlichen Rand von ~6% einhalten). Emoji nur, wenn es das Wort verstärkt.
  • Musik:
    • Beat 1 (Hook und Anfang): mittlere Energie, startet bei 0 s.
    • Spannungs-Beat: Spannungs-Soundtrack, Lautstärke steigt leicht, Bässe präsenter.
    • Payoff: Auflösung (Abfall der Spannung oder Swell + 0,2 s Stille vor der Enthüllung).
    • Musikwechsel: nur an Beat-/Szenengrenzen, mit Crossfade von 200–400 ms.
    • Stimme immer über der Musik: Ducking von −14 bis −18 dB unter der Sprache.
  • SFX: Whoosh bei Schnitten/Zooms, Hit bei Enthüllungen, Risers vor dem Payoff. Max. 1 SFX alle ~2 s.
  • B-Roll/Unterstützungsbild: Wenn etwas Konkretes genannt wird (Objekt, Ort, Zahl), zeige es für 1–2 s.
  • Diskreter Fortschrittsbalken (optional): Verstärkt die Erwartung, bis zum Ende zu kommen.

Schritt 7: Videoende [EXT]

  • Der Payoff sollte der letzte relevante Moment sein. Schneide unmittelbar nach dem letzten Satz (≤ 0,3 s Puffer).
  • Optional, Loop-Modus: Wenn das Ende visuell oder verbal an den Hook anknüpfen kann, halte den letzten Frame nahe am ersten.
  • Kein „Danke fürs Zuschauen“ oder Call-to-Action, der das Ende bricht. Falls CTA, verwende dezenten Text über dem Payoff.

4. Anti-Patterns (ablehnen oder korrigieren)

  • Mit Begrüßung, langem Kontext oder „heute spreche ich über“ eröffnen.
  • Hook, der etwas verspricht, das der Payoff nicht einlöst.
  • Abschnitt, der mitten in einem Gedanken endet.
  • Mehr als 4 s ohne visuellen Wechsel.
  • Laute Musik, die mit der Stimme konkurriert.
  • Untertitel außerhalb des sicheren Bereichs oder unlesbar.
  • Schnitte, die den Sinn der Rede verändern.
  • Zu langes Video für den gewählten Modus.
  • Effekte, die nicht der Retention dienen (Dekoration).

5. Ausgabeformat: Edit Decision List (EDL) in JSON

Die Ausgabe muss nur gültiges JSON sein, gemäß dem folgenden Schema.

{
  "clip_id": "string",
  "mode": "viral|balanced|authority",
  "source": { "start": 0.0, "end": 0.0 },
  "scores": {
    "total": 0,
    "hook": 0, "tension": 0, "payoff": 0,
    "self_contained": 0, "density": 0, "emotion": 0,
    "rationale": { "hook": "", "tension": "", "payoff": "" }
  },
  "structure": {
    "hook":    { "start": 0.0, "end": 3.0, "technique": "native|cold_open", "text_overlay_options": ["", "", ""], "chosen_overlay": 0 },
    "beats":   [ { "start": 0.0, "end": 0.0, "type": "conflict|solution|suspense", "note": "" } ],
    "payoff":  { "start": 0.0, "end": 0.0, "note": "" }
  },
  "segments": [
    { "id": "s1", "src_start": 0.0, "src_end": 0.0, "out_start": 0.0, "role": "hook|body|payoff", "speed": 1.0 }
  ],
  "cuts_removed": [ { "src_start": 0.0, "src_end": 0.0, "reason": "silence|filler|repeat|low_tension" } ],
  "reframe": { "mode": "auto_face|split|center|manual", "keyframes": [ { "t": 0.0, "cx": 0.5, "cy": 0.4, "scale": 1.0 } ] },
  "captions": { "style": "string", "words": [ { "t0": 0.0, "t1": 0.0, "text": "", "emphasis": false } ] },
  "effects": [
    { "type": "zoom_punch|zoom_slow|shake|flash|overlay_text|broll|sticker|freeze", "t0": 0.0, "t1": 0.0, "params": {}, "reason": "" }
  ],
  "audio": {
    "voice": { "normalize_lufs": -14, "denoise": true },
    "music": [ { "track_id": "", "t0": 0.0, "t1": 0.0, "mood": "energetic|suspense|resolve", "gain_db": -16, "ducking": true, "fade_in": 0.2, "fade_out": 0.3 } ],
    "sfx": [ { "id": "", "t": 0.0, "gain_db": -10 } ]
  },
  "retention_forecast": { "curve": [ { "t": 0.0, "pct": 100 } ], "risk_points": [ { "t": 0.0, "why": "" } ] },
  "qa": { "passed": true, "violations": [] },
  "duration_out": 0.0
}

JSON-Regeln:

  • Alle Zeiten in Sekunden, relativ zum Originalvideo (src_*) oder zum endgültigen Video (out_*, t0, t1, t).
  • segments beschreiben den endgültigen Schnitt in Anzeigereihenfolge (enthält den Cold Open, falls verwendet).
  • Jeder effect benötigt einen reason, der mit der Retention zusammenhängt (z. B. „vermeidet 4 s ohne Änderung bei 12–16 s“).
  • retention_forecast ist eine heuristische Schätzung, keine Messung. Kennzeichne dies in der Benutzeroberfläche.

6. Fehlender Kontext

Wenn der Ausschnitt Kontext erfordert, den er selbst nicht erklärt, füge in den ersten 3 s einen kurzen overlay_text (≤ 8 Wörter) hinzu oder verwerfe den Kandidaten.

7. QA-Checkliste (vor Rückgabe ausführen)

  1. Haben die ersten 3 s einen klaren Hook und ein Versprechen?
  2. Gibt es mindestens 1 Spannungs-Beat und eine Auflösung?
  3. Liefert der Payoff das Hook-Versprechen?
  4. Dauer innerhalb des Modus?
  5. Kein Abschnitt > 4 s ohne visuellen Wechsel?
  6. Kein Schnitt mitten in einem Wort/Gedanken?
  7. Untertitel im sicheren Bereich, ≤ 3 Wörter auf einmal?
  8. Musik mit Ducking unter der Stimme und Wechsel nur an Szenengrenzen?
  9. Bedeutung des Originals erhalten?
  10. Ende schneidet direkt nach dem Payoff?

Wenn ein Punkt fehlschlägt, korrigieren und erneut bewerten (bis zu 2 Iterationen). Wenn es weiterhin fehlschlägt, qa.passed=false mit den Verstößen zurückgeben.

8. Sicherheits- und Integritätsregeln

  • Erfinde niemals Aussagen oder Fakten, die nicht im Transkript stehen.
  • Verändere niemals die Bedeutung einer Aussage durch Umordnung.
  • Der Hook-Text muss wahrheitsgemäß zum Inhalt sein.
  • Generiere keine Schnitte von Inhalten, die der Benutzer nicht zu besitzen oder zu lizenzieren erklärt hat.

9. A/B-Varianten [EXT]

Wenn angefragt, generiere bis zu 3 Varianten desselben Schnitts, wobei jeweils eine Variable geändert wird (Hook-Text, Cold-Open-Reihenfolge oder Untertitel-Stil). Dokumentiere, welche Variable geändert wurde.

10. Kalibrierung mit echten Daten [EXT]

Die Gewichte und Parameter dieser Skill sind Startpunkte. Das System sollte:

  • Für jeden veröffentlichten Clip die tatsächliche Retentionskurve aufzeichnen (wenn der Benutzer sie von YouTube Studio/TikTok importiert).
  • Die tatsächliche Kurve mit retention_forecast und die Punktzahl mit dem Ergebnis vergleichen.
  • Anpassungen der Gewichte vorschlagen, wenn ≥ 30 Clips mit Daten vorliegen.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Verwandte Skills