name: video-editor description: Erstelle kurze Videos aus Rohmaterial mit FFmpeg: Afterparty- und Gig-Reels, Shout-Outs, Gesprächsclips mit Gig-Aufnahmen, Reise- oder Vlog-Geschichten und jede Mischform. Ein JSON-Editing-Plan steuert framescharfe Schnitte, 16:9-zu-9:16-Neurahmung, Bewegungen, Grading, Text, Logos, Musik und Sprachducking; ein Prüfer blockiert wiederverwendetes Material, Letterboxing und Text unter der App-UI; kennt jedes Ziel (Reel, Story, Karussell, Feed, TikTok, Shorts, YouTube) und gestaltet wie ein gerahmtes Quadrat in einem 9:16-Reel; Gemini protokolliert Aufnahmen und kritisiert Renderings. Einsetzbar für jeden Mehrfachschnitt, Neu-Schnitt oder um aus diesem Material ein Reel/Aftermovie/Clip zu machen.
Video-Editor
Verwandelt einen Ordner mit Clips in ein fertiges Kurzvideo. Der Agent ist der Redakteur: Er entscheidet über die Geschichte und schreibt einen Schnittplan, und die Skripte führen die mechanischen Teile exakt aus, sodass Schnitte auf den Beat fallen, sich nichts zufällig wiederholt und nichts letterboxed wird.
Lies zuerst LOCAL.md, falls vorhanden: Es enthält das Python dieser Maschine, die Markendatei und die Medienordner. Der Besitzer, Markenschriften, Logos und das Standard-Aussehen befinden sich in einer Markendatei (~/.video-editor/brand.json, siehe references/brand.md), niemals in den Skripten.
Einzelne Clips, die nur einen Trimm oder einen einfachen Zuschnitt benötigen, Untertitel auf einem Clip und das Veröffentlichen gehören zur sozialen Fähigkeit der Installation (für XNP: xnp-social). Diese Fähigkeit erstellt den Schnitt; jene Fähigkeit prüft, untertitelt, plant und veröffentlicht ihn.
Es gibt keine Liste von Videotypen
Jede Anfrage ist eine Mischung. Suche nicht nach einer passenden Vorlage. Entscheide stattdessen vier Dinge aus dem Briefing, pro Abschnitt, falls das Video zur Hälfte seinen Charakter ändert:
- Die Wirbelsäule: Was den Takt vorgibt.
Musik: Schnitte auf Takte und Beats, Aufnahmen nach Energie ausgewählt, der Drop ist der Höhepunkt (
lenin"2bar","1beat"). Sprache: Die Wörter bestimmen die Länge, das Bild schneidet an Satzenden, Musik duckt unter der Stimme (audio_dbauf dem sprechenden Shot, Längen in Sekunden). Geschichte oder Chronologie: Ankunft, Aufbau, Moment, Nachglühen; Schnitte auf Aktion und Ortswechsel, Musik ist eine Begleitung. Eine Mischung wechselt die Wirbelsäule pro Abschnitt: ein 6-sekündiger Shout-Out auf Sprache, dann Gig-Material auf den Beat; oder eine Reisegeschichte in Chronologie mit einem Beat-Schnitt-Montage beim Gig. - Ziel und Gestaltung. Wohin es geht (Reel, Story, Karussell, Feed, TikTok, Shorts, YouTube) und wie dieser Raum genutzt wird: Vollbild, ein gerahmtes Quadrat oder 4:5-Bild auf einem gestalteten Hintergrund, oder beides wechselnd pro Aufnahme. Wähle aus dem Material und dem Zweck, nicht aus Gewohnheit; ein Panoramamoment, den ein 9:16-Zuschnitt ruinieren würde, könnte ein gerahmtes Reel, ein Karussell oder eine 16:9-Zusammenfassung erfordern. Lies references/formats.md, um zu erfahren, was jede Plattform mit dem Bild macht und wann welches Design passt. Die Länge folgt dem Ziel und dem Material.
- Muss-Haben. Genannte Personen, die erscheinen und erkennbar sein müssen, ein Logo, ein Datum, ein Dankeschön, ein bestimmter Moment, eine Textzeile. Frage nur, wenn das Briefing wirklich eine offen lässt.
- Ton-Schichten. Nur Musik; Musik plus Publikum oder Atmosphäre kurz eingeblendet; Sprache mit Musik darunter; nur Sprache. Sprache bekommt Untertitel (siehe Untertitel unten).
Schreibe dann den Plan, mit gesetztem "destination", sodass Leinwand, Sicherheitsbereich und Längenbeschränkung folgen. references/examples.md zeigt vier ausgearbeitete Briefings (Afterparty-Reel, Shout-Out, Shout-Out in Gig-Material, Reisegeschichte) als Überlegungen, nicht als nachzuahmende Typen. references/craft.md enthält die Schnittregeln, die für alle gelten.
Arbeitsablauf
Skripte sind in scripts/; führe sie mit dem Python aus LOCAL.md aus, mit PYTHONUTF8=1 PYTHONIOENCODING=utf-8, FFmpeg und ffprobe im PATH. Arbeite in einem Projektordner außerhalb der Fähigkeit (src/, audio/, log/, proxy/, out/, review/, edit.json).
- Briefing. Wer und was ist im Material, wie jede Person zu erkennen, das Ereignis, der Zweck, die vier obigen Entscheidungen. Schreibe es in
brief.txt; Gemini liest es. - Protokolliere das Material.
gemini.py log WORKDIR src/*.mp4 --context brief.txt --ratio 9:16schreibtlog/NAME.jsonpro Clip: Momente mit wem wo (x als Bruchteil für Zuschnitt), Aktion, Emotion, Energie, Ton, Sprache, Qualität, ob ein 9:16-Fenster die Personen hält, das beste Zentrum des Zuschnitts und eine Verwendung (Opener, Höhepunkt, Reaktion...). Etwa ein US-Cent pro Clip. Protokolle sind Anhaltspunkte: bestätige Gesichter, Zentren des Zuschnitts und "beste Momente" auf Einzelbildern, bevor du darauf aufbaust. - Ansicht.
sheet.pyerstellt beschriftete Kontaktabzüge in einem FFmpeg-Durchlauf:--every 2durch einen Clip,--times, Kandidatenvergleich mita.mp4@3 [email protected],--crop 9:16 --cx 0.4, um eine Quelle so zu sehen, wie sie eingerahmt wird,--grid 10für die Zuschnittsplanung. Lies das Bild selbst; bitte den Besitzer nie, hinzusehen. - Plan. Schreibe
edit.json(references/edit-format.md). Jeder Shot benennt einen anderen Moment; gib jedem eine Notiz, warum er da ist. - Prüfung.
validate.py edit.json(render.py führt es ebenfalls aus und verweigert bei Fehlern). Fehler: dasselbe Material zweimal verwendet, eine Quelle zu kurz, unbekannte Bewegung, boxedfitohne Erlaubnis, Text in den UI-Zonen der Plattform, fehlende Dateien, Musik zu kurz. Warnungen: Shots aus demselben Clip weniger als 2s auseinander, ähnlich aussehende Shots, Off-Beat-Schnitte, schwarze Ränder innerhalb der eingerahmten Quelle, Logos nahe den UI-Zonen. Lese jede Warnung und entscheide; unterdrücke sie nicht einfach. - Entwurfs-Render.
render.py edit.json --out out/v1-draft.mp4 --draft(halbe Größe, schnell). Dannsheet.py out/v1-draft.mp4 --plan edit.json --out review/v1.pngzeigt Anfang, Mitte und Ende jedes Shots: überprüfe Bildausschnitt, Köpfe, Textplatzierung und dass jeder Shot das ist, was die Notiz sagt. - Voll-Render.
render.py edit.json --out out/v1.mp4. Langsame Voreinstellung, etwa 5 Minuten für 30 Sekunden 4K-Quellen; render.py prüft dann Größe, Länge, Ton, schwarze Balken pro Shot, schwarze Einzelbilder und dasmax_mbdes Plans. - Kritik.
gemini.py review out/v1.mp4 --context brief.txt --plan edit.json --out review/v1.json(unter einem Cent). Behandle jede Notiz als Behauptung: Überprüfe sie an Einzelbildern oder dem Plan, bevor du etwas änderst. Es hat bereits korrekten Text als "unsicher" und ein korrektes Datum als "Tippfehler" bezeichnet. Seine echten Entdeckungen waren sich wiederholende Shots, eine Hand, die eine Schlüsselgeste blockiert, ein Telefon im Bild, ein Blitz, der als Glitch gelesen wurde. - Iteriere mit neuen Versionsnummern; überschreibe niemals eine ausgelieferte Datei. Behalte
edit.jsonpro Version (Kopie inedit-v2.json), damit jede Version neu gerendert werden kann. - Liefere so aus, wie LOCAL.md es sagt, beschreibe den Schnitt in Worten (Shot für Shot, was der Text sagt, wo die Musik ihren Höhepunkt hat), und übergebe die Datei an die soziale Fähigkeit zur Überprüfung, Untertitelung und Veröffentlichung. Veröffentlichen benötigt immer die ausdrückliche Zustimmung des Besitzers.
Untertitel
Sprachuntertitel sind Aufgabe der sozialen Fähigkeit: Rendere zuerst den Schnitt, führe dann ihren Untertitel-Helfer aus (für XNP: xnp-social/scripts/captions.py transcribe auf dem fertigen Render, damit die Wortzeiten mit dem Schnitt übereinstimmen), befolge den obligatorischen Genehmigungsschritt, und brenne sie dann ein. Wenn bereits eine genehmigte .srt oder .ass für die endgültige Timeline existiert, brennt die captions.file des Plans sie während des Renderings ein.
Ehrliche Grenzen
Die Ähnlichkeitsprüfung ist ein Bild-Hash plus mittlere Farbe: Sie erfasst denselben Moment zweimal, nicht "dieselbe Person aus demselben Winkel" in verschiedenen Momenten. Diese semantische Prüfung kommt von den Gemini-Protokollen und der Überprüfung sowie vom Lesen des Kontaktabzugs. Es gibt keine automatische Beat-Erkennung: Gib den BPM und einen Startpunkt auf einem Downbeat an (music.start), dann ist das Raster exakt. Es gibt keine Gesichtsverfolgung: Schwenks und Zentren des Zuschnitts kommen aus den Protokollen und Abzügen. Geminis Zeitcodes können bei langen Clips abweichen; die Proxys tragen einen eingebrannten Zeitcode, um sie ehrlich zu halten, und log warnt, wenn Momente nach dem Clip liegen.
Dateien
scripts/common.py Plan-Lader, Zeitberechnungen, Probe, Marke, Gradings. scripts/render.py der Ein-Durchlauf-Renderer. scripts/validate.py der Prüfer. scripts/sheet.py Kontaktabzüge. scripts/gemini.py Protokollierung und Überprüfung. Referenzen: formats.md, edit-format.md, craft.md, examples.md, brand.md.