Communitygithub.com

GuilhermeGongora/VideoEditor

Erstellt ein vertikales Erklärvideo (Shorts/TikTok/Reels) im 3D-Clean-Stil des Kanals Scientia, komplett und veröffentlichungsbereit – inklusive Recherche, Skript, Sprachausgabe, 3D-Szenen mit Remotion + Three.js, zwei Thumbnails, Rendering und Qualitätskontrolle.

Was ist VideoEditor?

Dieses Skill für KI-Agenten (z. B. Claude Code) automatisiert die Erstellung professioneller, vertikaler Erklärvideos im Stil des YouTube-Kanals Scientia. Es führt eine aktuelle Websuche durch, schreibt ein Skript, generiert eine Sprachausgabe, erstellt 3D-Szenen mit Remotion und Three.js, rendert das Video, erstellt zwei Thumbnail-Optionen und liefert eine Post-Beschreibung mit Quellenangaben und Hashtags. Der Benutzer gibt nur das Thema ein. Es unterstützt die benutzerdefinierte „Annäherung“-Vorlage mit etwa 60 s Dauer, 7 Szenen und einem klaren Aufbau (Hook, logische Abfolge, praktische Schlussinfo). Enthält Qualitätsregeln wie keine Call-to-Action im Video, keine Multilingual-Stimmen, und ein bestimmtes Kamerasetup. Entwickelt für den Einsatz auf dem lokalen Rechner des Benutzers, mit Git-Commit nach Fertigstellung jeder Videodatei und optionaler Google-Drive-Kopie.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/GuilhermeGongora/VideoEditor/tree/HEAD/.claude/skills/novo-explicativo

In Ihrer bevorzugten KI fragen

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

Dokumentation

3D-Erklärvideo

Komplette Lieferung, ohne Benutzernachfrage: out/<slug>.mp4 (endet mit Markenschluss) + thumbs/<slug>-1.png und -2.png + out/<slug>-legenda.txt (Post-Text mit Quellen und Hashtags). Auf dem Rechner des Benutzers kopiert npm run explicar alles auch auf Google Drive (G:\Mein Laufwerk\Scientia\Posts\<Datum> · <slug> · <Titel>\: video.mp4, thumb-1/2.png, legenda.txt, fontes.txt). Falls „Laufwerk nicht gefunden“ erscheint, zeige dem Benutzer die vom Skript ausgegebenen Mount-Befehle. Der Benutzer gibt nur das Thema ein; unterbreche nicht für Entscheidungen, die du selbst treffen kannst.

QUALITÄTSREFERENZ (Entscheidung des Benutzers, 16.10.2026): das Video über kontaktloses Bezahlen. videos/aproximacao/roteiro.json + src/explicativo/videos/Aproximacao.tsx. LIES BEIDE, BEVOR du anfängst, und kopiere das Rezept aus references/referencia.md. Die Videos im „Ludificando“-Stil (grauer Hintergrund mit Regalen, Unschärfe, vielen Figuren, 80–90 s) wurden ABGELEHNT – verwende sie nicht. Lies dann references/ganchos.md (vor dem Skript) und references/estilo.md + references/biblioteca.md (vor den Szenen). references/ludificando.md ist nur eine Ideenquelle, keine Regel.

1. Recherchieren (obligatorisch)

  • Alles Aktuelle (Gesetz, Zahl, Amt, Frist) stammt aus einer JETZT durchgeführten Websuche, mit 2+ vertrauenswürdigen Quellen (Agência Brasil, Senat/Abgeordnetenhaus, IBGE, g1, Folha …). Keine Zahlen aus dem Gedächtnis.
  • Notiere die Quellen in fontes im Skript. Falls Quellen widersprechen, verwende die offiziellere und weise darauf hin.
  • Trenne Fakten von Prognosen/Meinungen („Das DIEESE berechnet …“, „Der CNI sagt …“).

2. Skript → videos/<slug>/roteiro.json

Rezept der Annäherung: ca. 60 s, 7 Szenen, 18–30 Wörter pro Szene (insg. ~170–190 Wörter), EINE Idee pro Szene, logische Erklärungsabfolge (jede Szene führt zur nächsten: „Deshalb …“, „Dann …“, „Wenn jemand …“). chip = Kurzname des Kapitels in GROSSBUCHSTABEN („DIE ENERGIE“, „GANZ NAH“, „UND WENN ES JEMAND KOPIERT?“).

  • Hook = starke Zahl + Frage („Drei von vier Käufen … Aber wie kann eine Karte ohne Batterie etwas bezahlen?“). Letzte Szene = die praktische Information, die der Zuschauer mitnimmt (z. B. das Limit ohne PIN).
  • „Die beiden Seiten“ und „Vorsicht/Betrug“ kommen nur, wenn das Thema es VERLANGT (echte Kontroverse, echter Betrug) – sie sind nicht obligatorisch.
    1. Satz = der Hook, immer eine Frage (Benutzerregel), auf die die Person eine Antwort sehen will, mit dem starken Fakt darin oder direkt danach. Z. B.: „Wie kann eine Karte ohne Batterie bezahlen?“ Kein „Hallo“.
  • Kurze Sätze, wie mit einem Freund reden. Zahlen mit Ziffern schreiben („75 Stimmen“).
  • pronuncia für Wörter, die die Stimme falsch lesen könnte (Abkürzungen, „6x1“, Dezimalzahlen wie „26,8“).
  • Letzte Szene: ABSCHLUSS – die abschließende praktische Information / Antwort auf die Hook-Frage. Verboten (Benutzerregel): Kommentar, Like, „Speichern“, „Folgen“, „Kommentiere X, dann schicke ich dir …“ – weder im Text noch auf dem Bildschirm. Die Quellen stehen nur in der Post-Beschreibung. Nach dem letzten Satz kommt nur noch die Markenschlusssequenz (automatisch).
  • Sätze mit 6–14 Wörtern, ruhig gesprochen (die Sprachausgabe erfolgt Satz für Satz, mit Pause bei jedem Komma und Punkt).
  • Es gibt KEIN cta mehr im Skript: der Abschluss zeigt nur die Marke.
  • sons: Standardmäßig erzeugt es einen Impact im 1. Frame, Swoosh/Whoosh bei Szenenwechseln, „Pop“ bei Zahlenkarten, „Tick“ bei Notizen/Pillen und einen Anstieg beim Eintritt in den Abschluss. Keine Hintergrundmusik (die Referenz hat keine; füge nur "musica": "sfx/bed-scientia.mp3" hinzu, wenn der Benutzer darum bittet). Schreibe 2–3 acentos zu Schlüsselwörtern (in Maßen): "sons": {"acentos": [{"palavra": "75", "cena": "aprovado", "som": "sfx/ding.wav", "volume": 0.5}, {"palavra": "ausschalten", "cena": "liga", "som": "sfx/boom.wav", "volume": 0.5}, {"palavra": "Uhr", "cena": "agora", "som": "sfx/riser.wav", "pico": 1.49, "volume": 0.35}]}. Fertige Sounds in public/sfx/: boom (Schock), ding (Zahl/Enthüllung), pop (Knall), riser (Spannung, verwende pico), whoosh/swoosh. Das Wort ist das in der fala geschriebene (nicht das in pronuncia). Du kannst jeden Sound durch einen aus der Benutzerbibliothek ersetzen (public/soundeffects/catalog.md) – musica, transicao (Liste wechselt), aparecer, dado, abertura, final; null schaltet aus.
  • composicao = Name der Komponente (z. B. Escala6x1).
  • marca = "SCIENTIA · <Kurzes Thema>" (der Kanal heißt Scientia).
  • voz = { "principal": "masculina", "alternar": "nao" } – Setze KEINE velocidade im Skript (kommt aus voz.json, aktuell 1.08).
  • post = Instagram/TikTok-Beschreibung (wird zu out/<slug>-legenda.txt): { "gancho": "<starker Fakt + Frage> 📌", "pontos": [3 kurze Sätze, ohne Punkt, mit Zahlen], "fontes": ["Agência Senado", "IBGE", …nur die Namen], "hashtags": ["Thema", "Gegenstand", …bis 5, ohne #] } (#scientia wird automatisch hinzugefügt). Gleicher Ton wie das Video: was es für die Person ändert, ohne Meinung. Maximal ein Emoji.
  • thumb = Video-Thumbnail (siehe Schritt 6): { "titulos": [2 Optionen], "cena": "<Szenen-ID als Hintergrund>", "quadro": <Szenenframe>, "descer": 330, "zoom": 1.45 }.

3. Sprachausgabe

npm run narrar -- <slug> → public/explicativo/<slug>/narracao.wav + tempos.json (Zeit jedes Wortes, von der Stimme selbst). Neuronale Stimme von edge-tts (Internet); ohne Internet wird auf die lokale Kokoro-Stimme zurückgegriffen. Die KANAL-STIMME steht in voz.json (Engine, vom Benutzer gewählte Stimmen, Geschwindigkeit). Wähle oder tausche nie eigenmächtig Stimmen, Engine oder IDs aus – das ist Geschmackssache des Benutzers. Im Skript definiert das Feld voz nur:

  • "principal": "masculina" – immer. Die genehmigte Stimme des Kanals ist Antonio (Microsoft), die der 6x1- und Annäherungsvideos. Die weibliche Thalita Multilingual klang wie portugiesisches Portugiesisch (Urnen-Video) und wurde entfernt. Verwende nie „Multilingual“-Stimmen. Verwende nur eine weibliche Stimme, wenn der Benutzer es fordert.
  • "alternar": "cenas" – die Szenen wechseln sich zwischen den beiden Stimmen ab (Duo). Standard: "nao".
  • Falls der Benutzer sich über die Stimme beschwert: zeige npm run vozes (Microsoft) / npm run vozes -- eleven und npm run vozes -- usar <id> feminina|masculina.
  • Schreibe den Text fürs OHR – das verändert den Tonfall der synthetischen Stimme am meisten:
    • kurze Sätze (6–14 Wörter), Kommas an Stellen, an denen man atmet, keine Klammern oder Abkürzungen ohne pronuncia;
    • alle 2–3 Szenen eine rhetorische Frage („Und wer hat schon bezahlt?“) – die Stimme geht bei „?“ nach oben und gewinnt an Lebendigkeit;
    • Kontrast und Wendung: „Nur dass …“, „Aber Achtung:“, „Und noch mehr:“;
    • wichtige Zahl allein am Satzende („Das waren 75 zu 1 Stimmen.“) oder wiederholt („Elf Tage!“);
    • vermeide lange Sätze mit vielen Kommas und Aufzählungen mit 4+ Elementen (die Stimme klingt monoton).
  • Die Standard-Sprachausgabe ist die der Referenz: Satz für Satz, Pause von 0,12 s am Komma und 0,32 s am Punkt, 0,45 s zwischen Szenen, Antonio bei 1.08. Ändere nicht auf "estilo": "continuo" ohne Benutzerwunsch.
  • Zum Testen der ausdrucksstärkeren lokalen Stimme (Chatterbox auf der GPU des Benutzers): npm run vozes -- comparar <slug>.

4. Szenen → src/explicativo/videos/<Name>.tsx

  • Kopiere die Struktur von Escala6x1.tsx: eine Komponente pro Szene, CENAS_<NAME> und am Ende der Datei export const VIDEO = { id: "<Name>", roteiro: roteiro as Roteiro, cenas: CENAS_<NAME> }; (mit import roteiro from "../../../videos/<slug>/roteiro.json"). Das Video registriert sich selbst: Bearbeite NICHT Composicoes.tsx (dessen Bearbeitung verursacht Konflikte bei git pull).
  • Speichere das Video nach Fertigstellung auf GitHub: git add videos/<slug> src/explicativo/videos/<Name>.tsx + commit + push (damit das nächste git pull des Benutzers nicht hängt).
  • Helden-Objekt (wie das Kartenlesegerät + Karte): EIN oder ZWEI Objekte des Themas, gut gemacht und GROSS, die in fast allen Szenen vorkommen; jede Szene zeigt einen Teil/Zustand von ihnen (Licht leuchtet auf, Code auf dem Bildschirm, Schlüssel kommt heraus). Figur nur als Nebenrolle (0–1 pro Szene, nie im Zentrum).
  • Das Kit (three/Kit.tsx, ui/Kit.tsx) ist optional: verwende nur ein Teil, wenn die Szene es verlangt (z. B. Hemiciclo in einer Abstimmung). Fülle die Szene nicht mit Pillen/Linealen.
  • Wähle für jede Szene EINE visuelle Metapher für die Daten (siehe references/estilo.md): Stimmen → Stühle leuchten auf; Stunden → verschwindende Würfel; Personen → Figuren (1 Figur = X); Geld → Münzen/Gehaltsabrechnung; Frist → Tafeln auf einer Zeitlinie; Regel/Gesetz → Papier + Checkliste.
  • Synchronisiere mit der Sprache: w("Wort") gibt den Frame zurück, in dem das Wort gesprochen wird. Die visuelle Änderung erfolgt BEIM Wort (z. B. wechselt die Kartennummer, wenn die Stimme die Nummer sagt).
  • Kamera: cam(pos, look) interpoliert Anfangsposition → Endposition während der Szene (ease(f, 0, dur)).
  • Szenerie: Die Stage kommt bereits im dunklen Modus (schwarzer Hintergrund, Staub) – wie in der Referenz. Verwende NICHT cenario="estudio" noch acabamento (Unschärfe/Bloom) ohne Benutzerwunsch.
  • Kamera: Abstand 6–8 zum Objekt, Blick auf y ≈ 1; langsame Annäherung von 10–15 % in der Szene (wie in Aproximacao.tsx).
  • Bildausschnitt: Das Hauptobjekt belegt 40–70 % der Breite. Nie leeres Bild, winziges Objekt (feine Linie) oder ein Block, der den ganzen Bildschirm ohne Referenz einnimmt. Maßstab immer mit menschlicher Referenz (Figur daneben) oder bekanntem Objekt.
  • Baue Objekte des Themas aus einfachen Formen (Buch = dünne Kisten, Safe = Kiste + Zylinder, Handy = abgerundete Kiste mit dunklem Bildschirm, Waage = Zylinder) – konkreter Kontext fesselt mehr als abstrakte Blöcke.
  • Inhalt im mittleren Bereich des Bildschirms (y ≈ 450–1250 px). Oben = Marke/Chip/Karte; 1300+ = Untertitel und TikTok-Buttons. Nichts Wichtiges am rechten Rand (App-Symbole).
  • Notiere Quellen von Zahlen in Callout (sub="QUELLE: …").

5. Frames prüfen

npm run quadros -- <slug> → out/quadros/<slug>/grade.jpg (ein Frame am Ende jeder Szene). SCHAUE dir das Raster an. Prüfe: nichts abgeschnitten oder hinter dem Untertitel; lesbarer Text; Hauptobjekt groß genug; nichts über dem Karten-Chip; das Bild passt zum Satz. Passe Kamera/Maßstab an und wiederhole.

6. Thumbnail (Titelbild)

Schreibe 2 Titel in thumb.titulos (Zeilen mit \n, Hervorhebung zwischen *Sternchen*):

  • 3 Zeilen, maximal ~16 Zeichen pro Zeile; die letzte Zeile ist die hervorgehobene Frage/Neugier.
  • Einer mit dem starken Fakt/Zahl („75 zu 1 Stimmen.“), der andere mit der Frage, die die Person hat („Wann ändert es sich?“).
  • Wahrheitsgemäß: nichts versprechen, was das Video nicht zeigt.
  • Hintergrund: die schönste/lesbarste Szene (cena + quadro, in dem sie bereits aufgebaut ist). npm run thumb -- <slug> → thumbs/<slug>-1.png, -2.png. SCHAUE dir beide an, bevor du sie abgibst.

7. Rendern und ausliefern

npm run explicar -- <slug> → out/<slug>.mp4 + Thumbnails (3D-Rendering ohne GPU: ~6–10 min pro Minute Video im Codespace). Sieh dir 3–4 Frames des finalen mp4 an, überprüfe das Ende des Audios und liefere mit den Quellen aus. Zeige dem Benutzer: das Video, die 2 Thumbnails (sag, welches du posten würdest und warum) und füge die Beschreibung aus out/<slug>-legenda.txt ein, bereit zum Kopieren. Frage nach der Meinung und notiere seine Kommentare in notas-do-editor.md (Abschnitt „Explicativos“).

Individual skills in this repo

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

Verwandte Skills