Communitygithub.com

engaging-monologue

Erstelle ein 16:9 FringeLines „Engaging-Monologue“-Video aus einer Solo-Aufnahme – mit Jump Cuts, Punch-Ins, einem Portrait-Bild-in-Bild, serifenbasierter Kinetic-Typografie, Diagrammen (Pyramide, Vergleich, Roadmap, Schritte, große Zahl) und B-Roll-Karten auf einer Papier-Leinwand, plus Callout-Karten, Lower Thirds, Chips, einem CTA-Pill und einer grünen Endkarte – alles wortgenau auf den Sprachfluss abgestimmt.

Was ist engaging-monologue?

Dieses Skill erstellt aus einer einzelnen Talking-Head-Aufnahme (16:9) ein komplettes YouTube-Erklärvideo im Stil der von Ali Abdaal inspirierten FringeLines v2.1 Vorlage. Es analysiert den gesprochenen Text, erstellt automatisch Jump Cuts zwischen Weit- und Nahaufnahmen (mit Gesichtsverfolgung), und wechselt zwischen zwei Layouts: Vollbild-Sprecher mit Overlays (Lower Thirds, Callout-Karten, Chips, CTA-Pill) und einer Papier-Leinwand, bei der der Sprecher in ein rundes Portrait-Bild-in-Bild (PiP) rechts übergeht. Auf dieser Leinwand erscheinen wortgenau synchronisierte Kinetic-Sätze, Diagramme (Pyramide, Vergleich, Roadmap, nummerierte Schritte, große Statistiken) und B-Roll-Karten. Jedes Textelement wird Wort für Wort mit dem gesprochenen Wort eingeblendet – beginnend unscharf und blass, dann scharf werdend mit farblicher Hervorhebung der Schlüsselphrasen. Die Diashows werden schrittweise aufgebaut, wenn die entsprechenden Begriffe im Voiceover fallen. Der Workflow besteht aus den Schritten: Aufnahme in den Inbound-Ordner legen, Schneiden (inklusive Entfernung von Füllwörtern und Stotterern, Wechsel zwischen Weit- und Nahaufnahme), Erstellung einer Beat-JSON-Datei (manuell oder durch Claude) und Rendern via Remotion. Die Ausgabedatei wird auf -14 LUFS normalisiert und durchläuft eine QA-Prüfung auf Timing, Textplatzierung und Gesichtsausrichtung. Das Skill eignet sich ideal für YouTube-Erklärvideos, Solo-Kommentare, Newsletter-zu-Video-Konvertierungen und „One idea, told well“-Stücke.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/qdevery/fringe-lines-video/tree/main/.agents/skills/engaging-monologue

In Ihrer bevorzugten KI fragen

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

Dokumentation

Engaging Monologue (16:9)

Referenz: Ali Abdaal, „How I‘d Create Content in 2026 (If I Had To Start Over)“ (youtu.be/A8PxRHQrLJ8, 16 min, 1080p). Die Bewegungsästhetik ist von diesem Video übernommen. Das Design entspricht dem FringeLines v2.1 Kit: My Drive/FringeLines Design System files/Fringe Lines Design system v2_1/ und die Tokens in …/handoff/fringelines-tokens.css.

Was die Referenz ausmacht

Gemessen am Video mit 1 Frame alle 2 s, plus dichten Samples an den Übergängen.

  • Etwa 55 % reines Talking Head. Eine statische Kamera, halbnah. Jump Cuts alle ~5 s (Median): etwa 122 Schnitte in 16 min. Jeder Schnitt wechselt zwischen Weit- und Nahaufnahme, sodass die Schnitte als beabsichtigt wirken.
  • Zwei Layouts, nie mehr:
    1. Vollbild-Sprecher mit darübergelegten Elementen: Name-Lower Thirds, eine farbige Callout-Karte oben links mit einem winzigen Label-Pill, weiße Serifensätze am unteren Bildrand, kleine farbige Chips in der Nähe des Kopfes und ein Sponsor/CTA-Pill in der unteren Mitte.
    2. Papier-Leinwand. Der Sprecher verkleinert sich zu einem Portrait-PiP (abgerundete Ecken, weißer Rahmen, rechte Seite, ca. 400×560), während auf einer warmen, gebrochen-weißen Seite mit einem leichten Farbverlauf eine Grafik aufgebaut wird. Die Leinwand trägt Kinetik-Sätze, nummerierte Roadmap-Karten, Pill-Diagramme, Pyramiden sowie Screenshots oder B-Roll in abgerundeten Karten mit einer Bildunterschrift darunter.
  • Keine durchgehenden Untertitel. Der Bildschirmtext ist ausgewählt. Ein Satz nach dem anderen, Wort für Wort im Takt der Sprache eingeblendet. Jedes Wort beginnt blass und unscharf, wird dann scharf. Die Schlüsselphrase ändert die Farbe.
  • Diagramme bauen Stück für Stück auf, während die Begriffe genannt werden. Pills erscheinen mit einem kleinen Überschwung. Pyramidenschichten fallen von oben ein.
  • Die Kamera bewegt sich innerhalb der Grafiken. Die 5-Karten-Roadmap kehrt zu jedem Kapitel zurück, zoomt in die aktive Karte und verwischt die anderen.
  • Ausblendungen erfolgen unscharf anstatt durch einen harten Schnitt. Der Vollbild↔PiP-Wechsel ist ein schneller, sanfter Morph von etwa 0,4 s.
  • Rhythmus: alle 10–20 s eine neue visuelle Idee, ein Betonungsmoment (schwarz-weiß) pro Abschnitt und ein Lower Third beim ersten Auftreten jeder Person.
  • Sound: sanfte Whooshes bei Layoutwechseln und leichte Pop-Geräusche beim Einblenden von Elementen, stets leise unter der Stimme.

Wie es auf FringeLines abbildet (nicht davon abweichen)

ReferenzFringeLines-Version
Warme Serife mit korallenfarbenen HighlightsInstrument Serif für alle Display-Texte. Das Highlight ist eine kursive Phrase, tintenblau #1A4F6B auf Papier oder weiß auf Video. Orange #D4622A nur für die eine Zahl, die zählt ([7 AM], die Statistik).
Abgerundete Sans in PillsArchivo 500–600 für Pills, Chips, Listenelemente, Stack-Labels
Labels in KapitälchenIBM Plex Mono 600, Großbuchstaben, +0.14em, ≥ 22 px: Eyebrows, Label-Pills, Quellen, Meta
Korallen-/Roter-Verlauf-CalloutsKit-Verläufe: Grün (Standard), Blau (zweite Idee), Orange (Warnung oder „Fehler“)
Pastell-Roadmap-KartenGrün, Blau und Orange Washes, ein monochromatisches Zahlen-Badge und ein gestrichelter oranger Verbinder
Cremepapier + SwooshPapier #F7F7F5 mit einem blassen, grün getönten Swoosh
SchlagschattenKeine. Flache Oberflächen, 2 px Haarlinien #E3E5DF, ein weißer Rahmen auf dem PiP, Radius 16–18
Sponsor-PillWeißer CTA-Pill (fringelines.co / Newsletter) mit einem orangefarbenen Mono-„Link in description“-Tab
Kanal-OutroGrüne Endkarte, das Clip-Slides-Cover: Mono-Eyebrow, orange Linie, serifenbetonte Überschrift mit einer kursiven Phrase, Archivo-Sub, ● fringelines.co

Die Kit-Regeln gelten weiterhin:

  • eine Idee pro Bildschirm;
  • ein Orange pro Bildschirm;
  • Grün ist die Standardfarbe, Blau der Vergleich;
  • jede Statistik hat eine source;
  • nichts unter 22 px.

Bestandteile

  • Vorlage: pipeline/remotion/src/Monologue.tsx, die Monologue-Komposition mit 1920×1080 / 30 fps. Sie verwendet das Gesichts-Tracking aus ShortV2.tsx.
  • Build: pipeline/build_monologue.py, das zwei Schritte hat, cut und render.
  • Arbeitsordner: work/monologue/<slug>/ enthält clip.mp4, props.json, transcript.txt, beats.json und faces.json.
  • Ausgabe: out/monologue/<slug>.mp4, normalisiert auf −14 LUFS.
  • Ausgearbeitetes Beispiel: work/monologue/morning-loop-test/beats.json, ein 62 s langer Clip von Quinn aus der Oct-30-Folge.

1. Aufnahme besorgen

Eine Ein-Kamera-16:9-Aufnahme mit gutem Audio, eine Person, etwa 1–15 min. Legen Sie sie in inbox/monologue/<slug>/take.mp4.

Um einen Solo-Abschnitt aus einer Folge zu extrahieren, muxen Sie die Kamera mit dem Studio-Sound-Track. Die Offsets aus dem Descript-XML holen Sie mit build_short.xml_offsets; sehen Sie, wie morning-loop-test erstellt wurde:

ffmpeg -ss <t0-videoOffset> -t <dur> -i Quinn.mp4 -ss <t0-audioOffset> -t <dur> -i studio-sound-Quinn.m4a -map 0:v -map 1:a … take.mp4

2. Schneiden

~/.shorts-skill/bin/python pipeline/build_monologue.py cut --slug <slug> --src inbox/monologue/<slug>/take.mp4 \
    [--range 12.0:95.5 --range 120:180] [--replace "gtm=>GTM" --replace "quick=>Quick"]

Was der Cut-Schritt tut:

  1. Transkribiert die Aufnahme mit Whisper (wird in words-src.json gecached).
  2. Entfernt Füllwörter, Stotterer und lange Pausen mit demselben Planer wie bei den Shorts.
  3. Alterniert den Punch-In (1.0 / 1.12, zentriert auf das Gesicht) bei jedem Jump Cut.
  4. Schreibt transcript.txt, mit word@seconds auf der geschnittenen Zeitleiste.

--replace korrigiert nur die Wörter, die zur Steuerung der Einblendungen verwendet werden; es wird nichts automatisch untertitelt.

3. work/monologue/<slug>/beats.json schreiben

Lesen Sie transcript.txt und planen Sie die Beats dagegen.

{"brand": "FringeLines", "beats": [
  {"type": "title",   "at": 0.2,  "end": 2.0,  "eyebrow": "FringeLines · Monologue", "text": "Der *Morgen-Loop*"},
  {"type": "name",    "at": 2.1,  "end": 5.4,  "text": "Quinn", "role": "Host · Fringe Lines"},
  {"type": "chips",   "at": 3.0,  "end": 7.4,  "items": [{"text": "GTM-Loops", "at": 3.1}, {"text": "Coding-Loops", "at": 5.1, "tone": "blue"}]},
  {"type": "text",    "at": 7.6,  "end": 11.3, "eyebrow": "Was ist ein Loop?", "text": "Ein Loop ist nur ein *definiertes Ziel* und es arbeitet dann *autonom*"},
  {"type": "callout", "at": 11.5, "end": 16.2, "label": "Der Aufbau", "tone": "green", "text": "Ich nutze Quick Desktop mit Routinen, die jederzeit ausgeführt werden"},
  {"type": "overlay", "at": 16.4, "end": 18.3, "text": "Normalerweise starte ich es um [7 AM]"},
  {"type": "stack",   "at": 22.4, "end": 36.4, "title": "Mein Kernteam · 4 Personen", "items": [{"text": „Account Executive“, "at": 25.6}, …]},
  {"type": "stat",    "at": 51.2, "end": 55.1, "kicker": „Mein reguläres Account-Team“, "value": 14, "text": Personen, mit denen ich regelmäßig interagiere", "source": „Quinns eigene Zählung · Fringe Lines, 30. Okt. 2026“},
  {"type": "end",     "at": 58.4, "end": 61.4, "text": „Den *Morgen-Loop* aufbauen“, "sub": „Die vollständige Anleitung gibt es in dieser Woche.“}
]}

Zeiten

  • Die Zeiten sind Sekunden auf dem geschnittenen Clip. end (oder hold) schließt einen Beat, und sein Ausblenden erfolgt über 0,3 s unscharf.
  • Text wird Wort für Wort synchron mit der Sprache eingeblendet. Jedes Wort in text wird mit dem Transkript innerhalb des Beat-Fensters abgeglichen.
    • Zitieren Sie den Sprecher wörtlich (leichte Kürzungen sind in Ordnung), damit die Synchronisation funktioniert.
    • Wenn es sich um eine Paraphrase handelt, wird die Einblendung gleichmäßig über die Beat-Dauer verteilt. Erzwingen Sie das mit "reveal": "even".
  • Standardmäßig werden Element-at-Zeiten gleichmäßig gestaffelt. Setzen Sie sie auf den Moment, in dem jedes Element gesagt wird, etwa 0,1 s vor dem Wort.

Auszeichnung

  • *kursives Highlight*: eine Phrase pro Bildschirm.
  • [Akzentzahl]: orange, eine pro Bildschirm, nur Zahlen.

Beat-Typen

Sprecher Vollbild (Overlays):

TypFelderVerwendung
titletext, eyebrow?Kaltstart-Titel über einem abgedunkelten Bild (erste 2–3 s)
nametext, role?Lower Third beim ersten Auftreten einer Person
overlaytextEin gesprochener Satz in weißer Serife unten: die Zeile, die im Gedächtnis bleiben soll
callouttext, label?, tone?, side?Farbige Karte oben links (oder rechts) mit einem Mono-Label-Pill: „Fehler #1“, „Der Aufbau“, „Regel“
chipsitems[{text, at, tone?}], side?, tone?2–3 kurze Tags, die neben dem Kopf erscheinen: innere Stimme, Namen, Optionen
ctatext, sub?Unterer Pill: der Newsletter, die Episode oder das Angebot. Einmal, meist in der Mitte des Videos
bw(keine)Schwarz-Weiß-Betonung des Sprechers; kombinieren Sie es mit einem overlay
media + "full": truesrc, video?, from?B-Roll randlos mit dem Sprecher im PiP

Papier-Leinwand (der Sprecher wechselt zum PiP):

TypFelderVerwendung
texttext, eyebrow?, align?Ein kinetischer Satz: Definitionen, die These, der „einzig wichtige …“-Satz
stackitems[{text, at, tone?}] (unten→oben), title?Pyramide oder Schichten: Grundlagen → Strategie → Nutzen, Team-Ebenen
comparetitle?, left{label, items}, right{label, items}, winner?A vs. B: Hobby vs. Einnahme, vorher vs. nachher. Der Verlierer verblasst gegen Ende
roadmapitems[{text}] (≤6), active?, zoom?Die Kapitel des Videos. Einmal am Anfang anzeigen, dann pro Kapitel wiederverwenden mit active = Kapitelindex und zoom = Zoom-Zeitpunkt
stepsitems[{text, at}], title?Eine nummerierte Liste mit feinen Linien: Spezialisten, Werkzeuge, Schritte
statvalue, prefix?, suffix?, decimals?, kicker?, text, sourceEine Zahl, die in Orange hochzählt; Quelle erforderlich
mediasrc, title?, meta?, video?, from?Ein Screenshot oder B-Roll in einer abgerundeten Karte mit einer Bildunterschrift (Titel + Mono-Meta-Zeile). Dateien kommen in den Arbeitsordner
endtext, eyebrow?, sub?, url?, tone?Die grüne Endkarte (2–4 s)

Paper-Beats, die weniger als 0,7 s voneinander entfernt sind, bleiben im PiP-Layout, damit der Sprecher nicht wechselt.

Pacing-Regeln (aus der Referenz)

  • Eröffnen Sie mit einem title und einem name, beide innerhalb der ersten 5 s.
  • Paper-Beats nehmen 35–45 % der Laufzeit ein. Gehen Sie nie länger als ~20 s ohne eine visuelle Änderung, und bleiben Sie nie länger als ~15 s auf Paper.
  • Wechseln Sie die beiden Layouts ab. Führen Sie nicht zwei callouts direkt hintereinander aus; setzen Sie ein text oder ein Diagramm dazwischen.
  • Eine Idee pro Beat. Halten Sie text-Beats auf ≤ 14 Wörter und Callouts auf ≤ 16.
  • Diagrammelemente erscheinen auf das Wort, nie alle auf einmal. Das erste Element eines Diagramms sollte innerhalb von ~1 s nach Start des Beats erscheinen; sonst beginnt der Beat später.
  • Abschnitte:
    • Zeigen Sie eine roadmap am Ende der Einleitung.
    • Verwenden Sie sie zu Beginn jedes Abschnitts mit gesetztem active.
    • Schließen Sie jeden Abschnitt mit einem overlay seiner Schlüsselzeile, mit bw für die wichtigste.
  • Höchstens ein cta pro 5 min, niemals in den ersten 30 s.
  • Beenden Sie die Karte. Sie kann über das letzte Wort hinaus laufen.

Ehrlichkeit

  • Zahlen auf dem Bildschirm müssen dem Gesagten entsprechen oder aus einer benannten Quelle in source stammen.
  • Screenshots von Inhalten anderer Personen müssen in meta mit Quellenangabe versehen sein.
  • Legen Sie dem Sprecher keine Worte in den Mund: Ein overlay- oder text-Beat, der kein Zitat ist, sollte als Label erkennbar sein, nicht als gesprochener Text.

4. Rendern

~/.shorts-skill/bin/python pipeline/build_monologue.py render --slug <slug> [--sfx-db -22]
  • Es verfolgt das Gesicht einmal (faces.json; löschen Sie sie, wenn Sie neu schneiden).
  • Die Renderzeit wächst mit der Videolänge; ein 1-min-Test dauerte auf dem Mac mini einige Minuten.
  • Soundeffekte: ein Whoosh bei jedem Layoutwechsel, ein Pop beim Erscheinen eines Elements, ein Aufbau in den Titel und die Endkarten. Erhöhen Sie --sfx-db auf Richtung −18 für mehr Energie.

5. QA (immer durchführen)

for t in 1.5 5 10 20 30 40 50 60; do ffmpeg -v error -y -ss $t -i out/monologue/<slug>.mp4 -frames:v 1 -vf scale=640:-1 /tmp/m_$t.png; done

Überprüfen Sie Folgendes:

  • Text: Kein Text verläuft unter dem PiP (der Papierbereich endet bei x = 1320). Stack-Labels passen in eine Zeile.
  • Highlights: Keine verirrten * oder [. Es gibt maximal ein Orange pro Bildschirm.
  • Gesichtsrahmung: Das Gesicht ist im PiP zentriert, und die Punch-Ins schneiden den Kopf nicht ab.
  • Einblendungs-Timing: Die Einblendungen erfolgen auf das gesprochene Wort. Wenn ein Beat lange Zeit blasse Wörter zeigt, ist sein at zu früh.
  • Lautstärke: ffmpeg -i out.mp4 -af ebur128 -f null - 2>&1 | grep " I:" sollte etwa −14 ergeben.

Melden Sie dem Benutzer:

  • die Laufzeit und die Beat-Liste (Zeit → Typ → Text);
  • was noch überprüft werden muss: Zahlen, Namen und Screenshot-Quellen;
  • jeden Beat, der auf eine gleichmäßige Einblendung zurückgefallen ist, weil der Text nicht wörtlich war.

Noch nicht gebaut

  • Eine 9:16-Version: Die Komposition ist nur 16:9. Für Hochformat schneiden Sie einen Short mit dem Skill editorial-short.
  • Auto-Planung: Das Schreiben von beats.json ist eine Ermessensentscheidung und wird daher manuell oder von Claude auf Basis der transcript.txt erstellt.

Individual skills in this repo

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

Verwandte Skills