video-editing (Router)
Sie bearbeiten Videos, indem Sie kleine, auf eine einzelne Aufgabe spezialisierte Skripte ausführen und deren JSON-Ausgabe lesen, nicht indem Sie das Video ansehen. Betrachten Sie Einzelbilder (Beweisbögen, Vollformat-Stills) nur an Entscheidungspunkten.
Welcher Skill
| Der Nutzer möchte… | Skill |
|---|---|
| eine lange Aufnahme in Clips aufteilen, Schnittstellen vorgeschlagen, toten Anfang entfernen | auto-cut |
| Hook / Titel / „POV:“-Text auf dem Video | hook-overlay |
| Untertitel, Bildunterschriften, ein Transkript, wortgenaue Schnitte | captions |
| Lautstärke korrigiert, Stille entfernt, saubere Übergänge, Crossfades | audio-polish |
| eine nahtlose Schleife, ein GIF, ein Meme-GIF, einen Sticker | loops-gifs-stickers |
| wissen, ob ein Render in Ordnung ist, einen Kontaktbogen, einen Freigabeschritt | render-qc |
| das Video auf YouTube | youtube-publish |
Standard-Pipeline (von der rohen Bildschirmaufnahme zum veröffentlichten Short)
auto-cut -> hook-overlay -> captions -> audio-polish -> render-qc -> youtube-publish
vorschlagen, Platten-PNG + transkribieren, Stille trimmen, verifizieren, Probelauf,
zulassen, Overlay ASS einbrennen loudnorm Beweisbogen, privat hochladen,
split, trimmen (letzter visueller (letzter audio- Nutzer stimmt zu Konto
Schritt) Schritt)
Nicht jeder Auftrag benötigt jeden Schritt: Ein Musikclip überspringt Untertitel; ein GIF überspringt die Veröffentlichung. Fragen Sie, wenn das Ziel unklar ist; ansonsten nennen Sie den Plan und legen Sie los.
Harte Regeln (alle Skills)
- Das Original niemals anfassen. Ausgaben landen im Ordner
edit/neben der Quelle (Skripte sind darauf voreingestellt). - Erst planen, dann schneiden. Schlagen Sie Schnittpunkte / Hooks / Einstellungen vor und holen Sie die Zustimmung des Nutzers ein, bevor Sie destruktive oder langsame Schritte ausführen.
- Nie innerhalb eines Wortes schneiden. Bei Sprache Schnitte an Wortlücken ausrichten (
captions/snap-to-words). - Jeder Audioschnitt erhält eine ~30 ms Blende. Klickgeräusche entstehen durch Schnitte auf Samples ungleich Null.
- Clips starten mit Inhalt. Keine schwarzen Frames, Ladebildschirme oder der Nachhall des vorherigen Bildschirms (
auto-cut/trim-lead, geprüft vonrender-qc). - Text bleibt in der sicheren Zone. Hook-Platte im oberen Bereich, max. 2 Zeilen; Untertitel oberhalb der unteren Plattform-UI; nichts überlappt sich.
- Die Reihenfolge ist wichtig. Schnitte, dann Overlays, dann Untertitel (letzter visueller Schritt), dann Lautstärke (letzter Audioschritt), dann Qualitätskontrolle.
- Jeden finalen Render prüfen mit
render-qc/verify-render, dann dem Nutzer den Beweisbogen oder das echte MP4 zeigen. Nicht anhand von herunterskalierten Vorschauen beurteilen. - Freigabe erfolgt menschlich. Nie
--approvedoder--allow-publicübergeben, es sei denn, der Nutzer hat dies in diesem Gespräch gesagt. - Geheimnisse bleiben außerhalb von Git und Logs. OAuth-Clients und Tokens leben in Umgebungsvariablen oder git-ignorierten Dateien; sie niemals ausgeben.
- Bevorzugen Sie das erneute Ausführen eines Skripts mit anderen Flags gegenüber dem manuellen Schreiben von ffmpeg. Jedes Skript antwortet auf
--helpund--help --json.
Setup-Prüfung
ffmpeg -version && ffprobe -version # erforderlich (jeder aktuelle Build; drawtext NICHT erforderlich)
node --version # >= 18
npm install # einmal, im Repository-Stammverzeichnis (installiert sharp)
python3 -m pip install faster-whisper # nur für captions/transcribe.py
Wenn ffmpeg nicht im PATH ist, setzen Sie FFMPEG_PATH und FFPROBE_PATH.
Stilpakete
brands/example.json enthält Leinwandgröße, Schriftart, Farben, Hook-Platten-Geometrie und Untertitelstil. Kopieren Sie es pro Kanal/Marke und übergeben Sie --brand brands/<name>.json. Verwenden Sie Systemschriftarten oder Open-Lizenz-Schriftarten (--font-file); niemals kommerzielle Schriftarten mit einchecken.