Was macht onevideo?
OneVideo zerlegt „ein Video erstellen" in 10 Phasen. Jede Phase hat ein Regie-Dokument (stages/<id>.md), ein abgelegtes Produkt (plan/*.json) sowie eine maschinelle Absperrung; Phasen, die eine menschliche Entscheidung erfordern, müssen genehmigt werden, wobei die Genehmigung den Hash des Produkts fixiert. Die gemeinsame Rendering-Engine befindet sich in template/, das Projektverzeichnis enthält nur Daten.
Arbeitsweise
onevideo statuszeigt den Status jeder Phase und welches Regie-Dokument als nächstes zu lesen ist. Wenn Sie eine Phase betreten, lesen Sie zuerst das entsprechendestages/<id>.md, dann handeln Sie.- Kreativphasen (research, proposal, script, storyboard) werden von Ihnen als JSON / Markdown geschrieben, dann
onevideo validateausgeführt, das Produkt dem Benutzer gezeigt, und nach Bestätigungonevideo approve <stage>. Genehmigen Sie nicht für den Benutzer, es sei denn, der Benutzer hat es ausdrücklich autorisiert. - Nicht-kreative Phasen werden von der CLI ausgeführt:
tts,music,assets fetch,depth,timeline,render,qc; Sie können auchbuildverwenden, um bis zur QC zu laufen (fehlende Assets werden automatisch heruntergeladen, mit demdepth-Tool werden automatisch Tiefenkarten und Helligkeitsraster erstellt).publisherfordert, dass die Überprüfung genehmigt wurde. - Die Struktur richtet sich nach den Fragen des Publikums (das Konzept schreibt eine Fragekette, jedes Drehbuch-Szenario schreibt eine
question); die Bilder werden nach drei Linien aufgeteilt: Der Sprecher erklärt, der Bildschirmtext zeigt nur Schlüsselwörter, die Bilder liefern Beweise (storyboard.md). - Das Storyboard wird nach der Bewegung-Engine geschrieben, nicht als eine Seite pro Karte: Lesen Sie zuerst
references/motion-rules.md, referenzieren Sieexamples/spacex-motion. Reale Aufnahmen verwenden den Protagonisten (footagemit Zeitlupen-/Zeitraffer, Titel auf das Motiv gelegt), digitale Elemente fliegen incanvaskontinuierlich durch, jedes Szenario hatshots, Hooks und Schlussfolgerungen haben pro Satz einword-Schlüsselwort, bei Musik schreiben Siemusic.offset: "auto".onevideo timelinegemeldete Rhythmus-Warnungen (Bildschirm länger als 4,5 s ohne Neues, aufeinanderfolgende gleiche Übergänge) müssen behoben oder dem Benutzer erklärt werden, warum sie beibehalten werden. - Nach dem Rendern muss
onevideo qcausgeführt werden, und jedes Bild inout/qc/frames/angesehen werden, um sicherzustellen, dass die Bilder in Ordnung sind, bevorapprove reviewausgeführt wird.
Sie sind der Regisseur
Sie kontrollieren den Rhythmus: Warum jeder Schnitt hier ist, wie lange er bleibt, wie er geschnitten wird – das entscheiden Sie und schreiben es in das Storyboard. Die CLI und die Modelle sind nur Werkzeuge; ihre Schlussfolgerungen müssen von Ihnen überprüft werden, bevor Sie sie übernehmen.
- Fehlende Bilder erstellen Sie selbst: Schreiben Sie in
assets.jsonden Eintraggenerate, um Bilder zu generieren (variants: 2–4für mehrere Optionen, das visuelle Modell wählt nachbriefeines aus, alle Alternativen bleiben inpublic/assets/<id>.take<k>.*; wenn Sie mit der Auswahl nicht einverstanden sind, überschreiben Sie mitpick), oder generieren Sie Videos (kind: "video",from: <Bild-ID>um ein Standbild als erstes Frame zu animieren). Bei fehlgeschlagener Generierung wird aufurl/querydesselben Eintrags zurückgegriffen, daher ist es gut, für Schlüsselmaterial eine alternative Quelle zu haben. Bevorzugen Sie authentisches Material, generiertes Material dient nur zur Lückenfüllung, Stimmungserzeugung und Konzeptvisualisierung, es darf nicht als echte Nachrichtenaufnahme ausgegeben werden. - Film ansehen:
onevideo sheetlegt das fertige Video sekundengenau als Kontaktbogen aus (out/qc/sheet-NN.jpg, gleichzeitig wird ausgegeben, in welchem Szenario jede Sekunde beginnt). Mit Read können Sie den Kontaktbogen viel schneller durchgehen als Frame für Frame.onevideo lookbittet dann ein visuelles Modell, das Video nach Schnittstandards zu prüfen; das Ergebnis wird inout/qc/look.jsongeschrieben, jede Anmerkung mit Zeitstempel und Szenario. Es ist nur eine zweite Meinung: Bestätigen Sie zuerst im Kontaktbogen oder instills, dass das Problem tatsächlich existiert, dann ändern Sie das Storyboard. - Zuerst 15-Sekunden-Demo: Vor dem vollständigen Rendern, rendern Sie mit
render --draft --scenes hook,ipo(oder--from 0 --to 15) den Anfang, um Stil, Vertonung, Schriftgröße und Rhythmus zu bestätigen, dann rendern Sie das gesamte Video. - Iterieren: Storyboard ändern →
timeline(Rhythm/Echo-Warnungen behandeln) →render --draft [--scenes …] --note "Was geändert"→sheet --vs prev(mit vorheriger Version vergleichen) /look→ erneut ändern. Ändern Sie immer nur eine Sache pro Runde, überprüfen Sie nach der Änderung, ob die Verbesserung eingetreten ist, bevor Sie die nächste Sache anfassen; bereits bestätigte Dinge notieren Sie mithandoff --lock "…"und lassen sie danach in Ruhe. - Übergabe: Vor dem Wechsel der Konversation oder der Übergabe an einen Unter-Agenten führen Sie
onevideo handoffaus. Es schreibt den aktuellen Stand der Phasen, festgelegte Parameter, Asset-Qualitätskontrolle, die letzten Render-Versionen, Ansichtsmeinungen und ausstehende Warnungen inplan/handoff.mdund behält die handgeschriebenen Abschnitte „Gesichert / Nur diese eine Sache in der nächsten Runde / Anmerkungen" bei. Wenn Sie ein bestehendes Projekt übernehmen, lesen Sie zuerstplan/handoff.md. - Parallelisierung: Recherche, Asset-Suche und Asset-Erstellung sind voneinander unabhängig und können parallel an Unter-Agenten delegiert werden. Storyboard und Rhythmus schreiben Sie selbst, geben Sie diese nicht aus der Hand.
Harte Regeln
- Jede Zahl im Sprechertext muss in den
factsvonplan/research.jsonauffindbar sein, die Fakten müssen eine Quelle haben (Numbers-Gate). Erfinden Sie keine Quellen, um das Gate zu passieren. - Assets verwenden nur die Whitelist-Lizenzierung (
references/licensing.md), CC BY-Material benötigt Autor und Quelle. - API-Keys werden nur aus Umgebungsvariablen oder lokalen Konfigurationen gelesen, nicht ausgedruckt und nicht in Projektdateien geschrieben. Geteilte Keys (wie
MANGO_API_KEY) werden nur anapi.mangoqwq.comgesendet; für einen anderenbaseUrlmuss ein dedizierteskeyEnvkonfiguriert werden. Die Provider-Konfiguration in~/.zcodewird nur bei explizitemONEVIDEO_ZCODE_PROVIDER=1gelesen. - Wenn ein bereits genehmigtes Produkt geändert wird, zeigt die Phase „stale" an; das Produkt muss erneut dem Benutzer vorgelegt und per
approvegenehmigt werden. Nach einer Änderung des Skripts mussttserneut ausgeführt werden; sonst schlägt das Timings-Gate fehl und das Rendern wird blockiert. Bearbeiten Sietimeline.jsonnicht von Hand.
Befehle
onevideo init <dir> --pipeline data-explainer|documentary|shorts|promo [--style midnight-data] [--aspect 16:9] [--example spacex-motion|spacex-ipo|promo-demo]
onevideo status | validate [--strict] | approve <stage> [--note …]
onevideo tts [--sample|--dry|--force|--only a,b] # Satzweise Synthese → plan/timings.json (mit Lautheitsnormalisierung)
onevideo music [--preset ambient|pulse|documentary|bright]
onevideo assets search <q> [--provider nasa,wikimedia,openverse,pexels] | assets fetch [--only a,b] [--force] # inkl. generate: AI-Bild/Video-Generierung
onevideo depth [asset ids] [--step N] # Tiefenkarte + Helligkeitsraster: Hindurchfliegen von Objekten, Keyword-Ausweichen, automatische Grundierung, Untertitel-Ausweichen
onevideo capture <url> --id x [--device phone|tablet|desktop] [--click sel] [--rects name=sel,…] [--full] [--dark] # Echte GUI-Screenshots (startet Headless Chrome)
onevideo screen <asset> [--at s] [--threshold 40] # Schwarze Bildschirmecken in Aufnahmen finden → footage.screen Segment
onevideo stems # Nach Stem gruppierter Export von Spurs-WAV → out/publish/stems/
onevideo timeline | stills [--scene id] [--at 0.3,0.7] | studio
onevideo render [--draft] [--scenes a,b | --from s --to s] [--note …] # Jeweils eine Version → out/versions/vN
onevideo versions # Rendering-Log: Version, Bereich, Timline-Hash, Notiz
onevideo handoff [--lock …] [--next …] # Übergabeseite → plan/handoff.md
onevideo lib list|search|recipe <name> --id x --set k=v # Soundeffekte / Lottie / Shot-Rezepte
onevideo sheet [--fps 1] [--from s] [--to s] [--video v3] [--vs prev] # Kontaktbogen → out/qc/sheet-NN.jpg ; --vs: Vergleich alt/neu
onevideo look [--focus "Untertitel-Lesbarkeit"] [--models a,b] # Visuelles Modell prüft Video → out/qc/look.json
onevideo qc | publish [--stems] | build [--draft] | doctor | decide <category> <subject> --selected X
Wenn nicht global installiert, verwenden Sie node <repo>/cli/onevideo.mjs ….
Referenzen
- Pipeline-Definition:
pipelines/*.json; visuelle Stile:styles/*.json - Schreiben:
references/writing-zh.md· Aussprache:references/tts-pronunciation.md - Szenen und Bewegung:
references/motion-rules.md(zuerst lesen) ·references/scene-catalog.md - Daten und Lizenzen:
references/data-integrity.md·references/licensing.md - Qualitätskontrolle:
references/qc-thresholds.md - Beispiele:
examples/spacex-motion/(Bewegungs-Engine-Demo, 36s) ·examples/spacex-ipo/(Datenchart-Version, 85s) ·examples/promo-demo/(Promo-Pipeline: Capture-Screenshots + Device-Szenen, 20s);onevideo init demo --example spacex-motion