Depth POV Erklärvideo
Erstellt ein etwa 10-minütiges Video "Warum du [TIER] nie treffen willst": Flat-Vector-Motion-Graphics animiert mit Remotion (alles bewegt sich; keine statischen Folien), vertont mit ElevenLabs Eleven v4, eine visuelle Idee pro Satz. Sprich den Benutzer immer auf Englisch an, unabhängig von der Sprache, in der er schreibt; Drehbuch, Beschriftungen und Aufforderungen sind ebenfalls in US-Englisch. Schreibe jedes JSON/TXT/.env als UTF-8 ohne BOM.
Schritt 0 – Arbeitsbereich auf D: (jedes Mal ausführen, fehlendes erstellen)
Root: D:\DepthPOV (falls D: nicht existiert, frage den Benutzer nach einem anderen Laufwerk).
D:\DepthPOV\.env
D:\DepthPOV\studio\ Remotion-Projekt (npx create-video@latest studio, Blank-Vorlage)
D:\DepthPOV\studio\src\lib\ gemeinsame visuelle Bibliothek (core.tsx, sets.tsx, art.tsx, ui.tsx)
D:\DepthPOV\tools\ voice.py stock.py stock_pick.py sfx.py
D:\DepthPOV\videos\<slug>\ facts.json script.txt script_tagged.txt beats.json timing.json stock.json packaging.md voice.mp3 out.mp4 FINAL\
D:\DepthPOV\assets\stock\ music\ sfx\ thumbnails\
D:\DepthPOV\brand\brand.json
Mit dieser Fertigkeit gebündelt (in den Arbeitsbereich kopieren, wenn fehlend, niemals neuere lokale Kopien überschreiben): scripts/*.py -> D:\DepthPOV\tools\; remotion-lib/lib/*.tsx und brand.ts -> studio\src\lib\; remotion-lib/stills.mjs -> studio\; remotion-lib/example-blue-whale/ ist ein komplettes, fertiges Video des Fertigkeitsautors (13 Kapiteldateien, ~66 persistente Szenen, Main.tsx, Thumb.tsx) zum Lesen als Referenzimplementierung, nicht zum Szene-für-Szene-Kopieren. Die Bibliothek übernimmt Kanalnamen, Akzentfarben und Charakterfarben aus studio\src\lib\brand.ts, das tools\sync_brand.py aus brand.json generiert; niemals einen Kanalnamen oder eine Farbe in einer Szene hartcodieren. Nach der Erstellung des Studios führe npx remotion add @remotion/media @remotion/google-fonts aus. Python benötigt requests.
Falls .env fehlt, erstelle es mit leeren Werten und STOP, und sage dem Benutzer, es im Editor zu öffnen und die Schlüssel einzufügen:
ELEVENLABS_API_KEY=
ELEVENLABS_VOICE_ID=
ELEVENLABS_MODEL_ID=eleven_v4
PIXABAY_API_KEY=
Der PIXABAY_API_KEY ist kostenlos: Melde dich bei pixabay.com an und kopiere den Schlüssel, der auf https://pixabay.com/api/docs/ angezeigt wird (ein Schlüssel deckt sowohl Videos als auch Fotos ab). Ignoriere zusätzliche Schlüssel, die eine ältere .env enthalten könnte. Gib niemals Schlüsselwerte aus. Überprüfe, ob Node.js LTS installiert ist; installiere Remotion-Agent-Fertigkeiten einmal mit npx skills add remotion-dev/skills und lade sie, bevor du Remotion-Code schreibst. Wenn der Benutzer "Retention" sagt, meint er Remotion. Erwähne einmal, dass Remotion nur für Einzelpersonen und sehr kleine Unternehmen kostenlos ist (/remotion-license).
Schritt 1 – Marke (nur beim ersten Durchlauf, in brand.json speichern; überspringen, wenn brand.json existiert)
Stelle diese Fragen nacheinander, eine Nachricht pro Frage, immer mit einer Empfehlung:
- Kanalname. Frage, ob der Benutzer bereits einen Namen hat. Falls nicht, schlage 8 Namen in 3 Stilen vor (geheimnisvoll, z. B. "Abyss Files", Entdecker, z. B. "Into The Deep", direkt, z. B. "Why You'd Never"): 1–3 Wörter, leicht auszusprechen, keine bestehenden großen Kanalnamen, keine Ähnlichkeiten mit "Depth Theory", funktioniert auch, wenn der Kanal später das Meer verlässt. Gib zu jedem einen passenden @-Handle. Sage dem Benutzer, er solle den Namen + Handle auf YouTube suchen, bevor er sich festlegt (Claude kann die Verfügbarkeit nicht bestätigen). Speichere channel_name, handle, tagline.
- Der "Du"-Charakter, empfehle einen:
- Taucher (orangefarbener Anzug, rote Stirnlampe) – Ozean; am nächsten an Depth Theory, am wenigsten eigenständig.
- Mini-U-Boot-Pilot – Tiefsee; das gesamte Video wird von einem runden Bullauge + HUD (Tiefe, Sauerstoff) eingerahmt. Empfohlen für einen reinen Ozean-Kanal.
- Floßüberlebender nach einem Schiffbruch – Meeresoberfläche; Draufsicht auf das Floß.
- Entdecker mit Stirnlampe – Dschungel, Höhlen, Flüsse, Eis; Lichtkreis im Dunkeln. Empfohlen, wenn der Kanal über den Ozean hinausgeht.
- Ranger / Feldbiologe – Landtiere; Fernglas + Feldnotizbuch.
- Zeitreisender – prähistorische Kreaturen; Jahreszahl (-66.000.000).
- Akzentfarbe + Schriftart, und der eigene Opener-Stil des Kanals (zeige 3 Beispiel-Cold-Open, der Benutzer wählt aus).
Speichere {channel_name, handle, tagline, character, look, signature_frame, accent {threat, safe, danger}, character_colors {suit, suit2, stripe, fins, fins_dark, lamp} (Flossen in einer Signalfarbe), font, opening_style} in brand.json, führe dann
python D:\DepthPOV\tools\sync_brand.pyaus, um studio\src\lib\brand.ts zu schreiben, und verwende es für jedes Video erneut. Die gebündelte Kunstbibliothek zeichnet den Taucher; für jeden anderen Charakter (U-Boot-Pilot, Entdecker, Ranger, Zeitreisender) erstelle eine neue Komponente in art.tsx mit denselben Anatomieregeln (references/visual-style.md). Verwende niemals Depth Theorys "Picture this."-Opener, dessen exakte Palette oder Taucherdesign. Verwende channel_name in: der kanalübergreifenden Rückrufzeile ("Wenn du schon eine Weile [channel_name] schaust..."), der CTA/Endscreen-Zeile, der Beschreibung und einem kleinen Logo in den letzten 10 s des Videos.
Schritt 2 – Fakten (vor dem Drehbuch)
Recherchiere das Tier im Web. facts.json: 25–35 Einträge {id, claim, number, unit, everyday_comparison, source_url, confidence}. Keine Superlative (größter/tiefster/einziger/je), es sei denn, eine abgerufene Quelle gibt dies an. Liste gängige Mythen und die Wahrheit.
Schritt 3 – Drehbuch (feste Struktur; lies zuerst references/script-patterns.md)
Verwende script-patterns.md für Abschnittslängen, Geräte und die Originalitätsregeln: Lerne den Rhythmus aus der Referenz, niemals die Wortwahl. Jedes Drehbuch wird von Grund auf aus den Fakten dieses Tieres geschrieben; wenn das Tier bereits in der Referenz behandelt wurde (Pottwal), vermeide die dort aufgeführten Blickwinkel.
- Cold Open 0:00–0:25. Zeile 1 ist IMMER der charakteristische Opener der Marke, kurz (unter 3 s), damit die Zuschauer ihn lernen: "Tauchlogbuch, Eintrag [n]. [Tiefe]. Luft: [PSI]." Zeile 2 fortlaufend ist der HOOK, noch innerhalb der ersten 7 s: Versetze den Zuschauer sofort in Gefahr – etwas berührt, greift, umkreist oder blockiert das Licht, eine haifischartige Form, ein Schatten, ein unsichtbares Ding – Präsens, unerklärt, und auf dem Bildschirm im selben Moment gezeigt (Silhouette, Tentakel, Schatten, Auge). Erst dann die Umgebung (Nachttauchgang, Leine, Tiefe unten), eine REGEL, der der Zuschauer vertraut, und ein sensorisches Zeichen, das sie bricht und sich auf einen zubewegt. Verbringe niemals die ersten 7 s mit ruhiger Szenerie oder Logistik. Pflanze das sensorische Detail für einen späteren Höhepunkt und greife die anfängliche Gefahr später wieder auf (die eigentliche Begegnung, das Nahe). Keine Einleitung.
- Umdeutung: Tiere, die die Leute normalerweise fürchten, eingestehen, dann drei Behauptungen für [TIER]; enden mit "...warum du nie einen treffen willst."
- Fünf Kapitel: GRÖSSE, NAHRUNG, WIE ES JAGT/WAHRNIMMT, GEHIRN/VERHALTEN, HAT ES JEMALS MENSCHEN ANGEGRIFFEN. Jedes endet mit einer Frage, die das nächste eröffnet. Jede Zahl erhält einen alltäglichen Vergleich.
- Auszahlung des gepflanzten Details um 3:30.
- "Was würdest du tatsächlich tun?": 4 Optionen, eine nach der anderen widerlegt, trockener Witz pro Option, Urteilszeile.
- Wendung 1: Es zielt fast nie auf Menschen ab. Wendung 2: Die eigentliche Gefahr geht in die andere Richtung.
- Rolle im Ökosystem. 8. Abschluss: Wiederhole die REGEL mit neuer Bedeutung. 9. CTA: Frage, welche Kreatur als nächstes behandelt werden soll, in den eigenen Worten des Kanals aus brand.json (niemals Depth Theorys "I do actually read them" kopieren). Stimme: zweite Person (35+ "du"), Sätze unter 20 Wörtern, 5–7 trockene metaphorische Witze, 1.600–1.800 Wörter bei ~170 wpm. Kein "let’s dive in", keine Emojis. Speichern als script.txt (keine Tags).
Schritt 4 – Szenen und Beats (lies zuerst references/visual-style.md)
Das Video hat etwa 60 persistente SZENEN, nicht eine Karte pro Satz. scenes.json: {scene_id, chapter, setting (deep|mid|surface-split|paper|radar|xray|black|stock), camera (drift|push-in|follow-dive|tilt|top-down|macro), cast (illustrierte Subjekte), beats:[...]}. Eine Szene dauert 6–20 s und deckt 2–6 Sätze ab; jeder Satz FÜGT ein Element zur Szene hinzu (Subjekt tritt ein, Maßlinie wird gezeichnet, Zähler läuft, Beschriftung erscheint, Stempel trifft, FX feuert), anstatt es zu ersetzen. Beat = {id, scene_id, text, add (was erscheint/ändert sich), label (0–5 Wörter oder leer; wiederholt nie die Erzählung), label_pos (top|under-subject|near:), accent, fact_ids, stock_query?}. Verwende das Referenz-Toolkit pro Satztyp: Zahl -> szeneninternes Diagramm (Maßlinie, Meter, Zähler, Symbolarray, Raster, Torte); Vergleich -> Objekt tritt neben das Subjekt ein (Bus fährt ein, Elefanten erscheinen); Geschichte -> Papier-/Sepia-Props und Oberflächensets; Witz -> Requisite oder Strichmännchen (Quittung, Formular, Whiteboard, Stempel, UI-Dialog); Gefahr -> rotes Label + Einschlag-FX; Wahrnehmung -> Radar-/Röntgen-Moduswechsel. Der "Du"-Charakter erscheint im Cold Open, in der Auszahlung, im Optionenkapitel und im Abschluss, immer winzig neben dem Tier.
Schritt 5 – Faktenkontrolle (blockierend)
Tabelle: Satz | fact_id | Quelle | OK/FIX für jeden Satz mit einer Zahl oder einem Superlativ. Behebe alle FIX-Zeilen und zeige die Tabelle dem Benutzer, bevor du ElevenLabs-Guthaben ausgibst.
Schritt 6 – Stimme (Eleven v4 + Audio-Tags)
- Erstelle script_tagged.txt durch Hinzufügen von v4-Audio-Tags, wie es ElevenLabs Auto-tag tun würde: [thoughtful], [curious], [uneasy], [dry], [whispers], [short pause], [long pause]. Max. ein Tag pro 2–3 Sätze; Flüstern/Pause um Enthüllungen und die Auszahlung herum; [dry] vor Witzen; kein Tag innerhalb eines Satzes, der eine Statistik enthält. Zeige dem Benutzer einmal pro Kanal eine 10-zeilige Stichprobe, um die Tag-Dichte zu genehmigen.
- Rufe
POST https://api.elevenlabs.io/v1/text-to-speech/{ELEVENLABS_VOICE_ID}/with-timestampsmit model_id aus .env (eleven_v4) auf. Begrenze auf 10.000 Zeichen pro Anfrage: Teile an Kapitelgrenzen auf (normalerweise 2 Anfragen), übergebe previous_text/next_text für Kontinuität, verknüpfe mit ffmpeg. - Falls with-timestamps für v4 abgelehnt wird, verwende den einfachen Endpunkt, dann ElevenLabs Forced Alignment (
POST /v1/forced-alignment) mit dem Audio + script.txt (Tags entfernt). - Ordne Wort-Timings Sätzen zu -> timing.json {beat_id, start_s, end_s, start_frame, end_frame} bei 30 fps.
Schritt 6b – Soundeffekte (ElevenLabs Sound-Effects, kein CapCut nötig)
Halte eine wiederverwendbare SFX-Bibliothek in D:\DepthPOV\assets\sfx\ bereit, generiert mit POST https://api.elevenlabs.io/v1/sound-generation {text, duration_seconds, prompt_influence 0.6} unter Verwendung desselben ELEVENLABS_API_KEY (tools/sfx.py; es werden nur fehlende Dateien generiert, sodass Guthaben nur einmal ausgegeben wird). Kernsatz: whoosh_soft, whoosh_deep, pop_soft, tick_ui, counter_roll, stamp, paper_slide, impact_heavy, splash_big, bubbles, sonar_ping, low_hum, whale_moan, heartbeat_slow, riser_tension, scan_beep, warning_beep, strike_line, gulp, boat_motor; füge bei Bedarf kreaturspezifische Sounds hinzu. Normalisiere Kopien auf -20 LUFS in studio/public/sfx/. Platziere jeden SFX auf der Aktion, zu der er gehört (Elementeingang, Zähler, Stempel, Einschlag, Szenenwechsel) mit <Sfx at=... vol=...> innerhalb der Szene, Lautstärke 0,3–0,6, nie mehr als einen pro Sekunde; die Stimme bleibt oben.
Schritt 7 – Archivmaterial (Ziel: 6–10 Clips, 3–6 s pro Clip, an emotionalen Höhepunkten; max. 8 % der Laufzeit)
Quellen, in dieser Reihenfolge (nur diese; niemals YouTube-/TikTok-Rips, Dokumentationsmaterial oder als "nur redaktionelle Nutzung" gekennzeichnet):
- Pixabay (automatisch, API). Ein PIXABAY_API_KEY dient für Videos (
https://pixabay.com/api/videos/?key=...&q=...) und Fotos (https://pixabay.com/api/?key=...&q=...). Max. 100 Anfragen/60 s; speichere jede Antwort 24 Stunden lang im Cache in assets/stock/_cache; keine Massen-Downloads. Werkzeuge: tools/stock.py, tools/stock_pick.py. - NOAA (manuell, am besten für die echte Art). NOAA hat keine Stock-Video-API. Claude findet die Clips (NOAA Fisheries-Artenseiten und Videogalerie, NOAA Ocean Exploration, NOAA Photo Library, NOAAs eigene Uploads auf Wikimedia Commons) und gibt dem Benutzer eine nummerierte Liste: direkter Seitenlink, was der Clip zeigt, welchen Slot er füllt, die genaue Credit-Zeile und die auszuwählende Datei (größtes MP4, idealerweise 1080p). Der Benutzer lädt sie in assets/stock//noaa/ herunter. Von NOAA-Mitarbeitern erstelltes Filmmaterial ist in der Regel gemeinfrei, aber lies jede Seite: Viele Wal-Clips wurden unter einer Forschungsgenehmigung oder von einem Auftragnehmer gedreht und erfordern eine Credit-Zeile wie "NOAA Fisheries, Genehmigung #XXXX" oder den Namen des Fotografen; wenn eine Seite die Wiederverwendung einschränkt, überspringe den Clip. Überprüfe nach dem Herunterladen IMMER den Anfangs- und den Abspann der Datei: NOAA Fisheries B-Roll-Vorspänne sagen "Alle Aufnahmen mit freundlicher Genehmigung von NOAA... Bitte crediten Sie NOAA Fisheries" plus etwaige Genehmigungsnummer (sicher); Lehrfilme (z. B. Ocean Today) listen im Abspann oft externe Mitwirkende wie Produktionsfirmen oder Bildagenturen, daher sind ihre Aufnahmen NICHT gemeinfrei und müssen abgelehnt werden; lehne auch Dateien mit eingebrannten Untertiteln oder Logos ab. Verwende nur die Segmente, deren Vorspann die Zielart nennt (B-Roll-Pakete mischen Arten) und schreibe "NOAA unterstützt diesen Kanal nicht" in die Beschreibung. Verwende niemals das NOAA-Logo.
- Pexels (manuelle Links). Die Ausstellung von API-Schlüsseln wurde bei der letzten Überprüfung (Nov 2026) pausiert, also durchsucht Claude pexels.com/videos (Claude im Chrome oder Websuche) und gibt dem Benutzer direkte Clip-Seitenlinks mit dem, was heruntergeladen werden soll (Full HD 1920x1080) in assets/stock//pexels/. Das manuelle Herunterladen einiger Clips für ein Video ist unter der Pexels-Lizenz in Ordnung (kommerzielle Nutzung erlaubt); kein Massen- oder Skript-Scraping. Wenn später ein PEXELS_API_KEY in .env erscheint, verwende stattdessen die API (Header
Authorization: <key>,GET https://api.pexels.com/v1/videos/search?query=...&orientation=landscape&size=medium&per_page=.., 200 Anfragen/Stunde). - Wikimedia Commons (manuell, gelegentlich). Nur Dateien mit einer klaren PD-/CC BY-/CC BY-SA-Lizenz; zeichne Autor + Lizenz auf. Platziere Clips dort, wo die Referenz sie platziert: direkt nach dem Cold Open (das echte Tier oder ein Taucher), bei "echten Welt"-Behauptungen (Auftauchen, Schule, Schiff, Walfang, Luftaufnahmen) und bei der Wendung/Ökologie; verteile sie (niemals 3 hintereinander). Suche für jeden Slot 3–5 Synonyme, behalte nur Treffer, deren Tags/Titel das Subjekt enthalten, extrahiere dann einen Frame pro Kandidat mit ffmpeg und SCHAUE ihn an; lehne falsche Arten ab (ein Buckelwal ist kein Blauwal) und themenfremde Aufnahmen. Ein Clip einer anderen Art darf nur für eine allgemeine Zeile ("große Wale") mit einem Bildschirmhinweis "(gezeigt: Buckelwal)" verwendet werden. Färbe Clips dunkler/kühler, um sie an die Palette anzupassen, 8-Frame-Weichzeichnen-Überblendung. Credits sind für jede Quelle obligatorisch. Jeder Clip zeigt einen kleinen Bildschirm-Credit unten links für seine Dauer und die genaue Quelle wird in die Videobeschreibung aufgenommen. Für NOAA-Clips ist der Credit-Text auf dem Bildschirm z. B. "NOAA Fisheries", für Pexels "Pexels / [Autor]" usw.
Schritt 8 – Timing (Mühelos, kein Automatisieren)
Wende die Beat-Timings an, passe, wo die Stimme eilt / trödelt, oder wo ein Element mehr Zeit braucht. timing.json: Liste aller Beats mit start_s, end_s, start_frame, end_frame.
Schritt 9 – Komponieren (Remotion, immer die Werkzeuge der Referenzbibliothek verwenden)
Jede Szene ist ihr eigener Unterordner in studio\src\<slug>\scenes\<chapter>\, importiert und aufgerufen von Main.tsx. Kein <Sequence>-Wrappen jeder Zeile; Szenen sind persistente Sets, in die Elemente eintreten und wieder austreten. Für jede Szene:
- Ein
<ArtDirection>-Wrapper, derscene.settingauf eine Hintergrundkomponente undscene.cameraauf eine Kamerafahrt abbildet. <Subject>- oder<Creature>-Komponenten mit Positions-/Größen-Props undentry/exit-Props.<MeasureLine>,<Counter>,<Label>,<Stamp>bei Zahlen.<Stack>für Symbolarrays.<UI>für Bildschirm-Dialoge und HUDs.<Sfx>mitatundvol.<StockClip>vonstudio\src\RemotionPixabayVideo.tsx(von Pixabay heruntergeladene, zwischengespeicherte Videos). Füge Emojis auf dem Bildschirm inlabelein, aber niemals in der Erzählung. Passe das gesamte Timing auf 30 fps an. Der Referenz-Blauwal hat 60+ persistente Szenen; strebe dieselbe Dichte an.
Schritt 10 – Verpacken & Ausgeben
Führe npx remotion render in D:\DepthPOV\studio\ aus, Ziel D:\DepthPOV\videos\<slug>\out.mp4.
Erstelle packaging.md mit: Titel, Beschreibung, Hashtags (5–8, forschungs-/kanalbezogen), NOAA-Erklärung (falls verwendet), Quellen-Credits, Verwendungszweck von Pixabay/NOAA/Pexels.
Erstelle aus dem ersten Frame des Videos ein Thumbnail + Textüberlagerung (Tiername in großer fetter Schrift + Kanalname).
Gib die Ausgabedatei aus: Pfad, Länge, Auflösung, Gesamtzahl der Szenen, Anzahl der Stock-Clips, Kapitel-Markierungen.