Communitygithub.com

dengyie/onevideo

Verwenden Sie diese Fertigkeit, wenn der Benutzer ein vertontes Video wünscht – Datenerklärungen, Dokumentationen, kurze vertikale Clips – basierend auf einem Thema, Artikel oder Datensatz. Es führt eine gestaffelte, mit Toren versehene Pipeline aus (Recherche → Konzept → Skript → Storyboard → Assets → Stimme → Komposition → Rendern → Überprüfung → Veröffentlichung) mit belegten Fakten, satzgenauem TTS-Timing, Remotion-Rendering, automatischer Qualitätskontrolle und einem Veröffentlichungsset.

Was ist onevideo?

OneVideo ist eine umfassende KI-gestützte Videoproduktionsfertigkeit, die den gesamten Workflow von der Idee bis zur Veröffentlichung in zehn klar definierte Phasen unterteilt. Es richtet sich an Entwickler und KI-Agenten-Nutzer, die erklärende Videos, Dokumentationen oder kurze Vertikalclips aus Daten, Artikeln oder anderen Quellen erstellen möchten. Die Fertigkeit arbeitet mit einem strengen, gate-basierten System: Jede Phase (Recherche, Konzept, Drehbuch, Storyboard, Asset-Erstellung, Sprachsynthese, Komposition, Rendering, Qualitätssicherung und Veröffentlichung) erzeugt überprüfbare Artefakte und erfordert menschliche Freigabe, bevor sie fortgesetzt werden kann. OneVideo unterstützt Plattformen wie Claude Code, Cursor und andere KI-Umgebungen und nutzt Remotion für das Rendering, satzgenaues TTS-Timing, automatische QC mit visuellen Modellen und eine strukturierte Asset-Verwaltung. Es stellt strenge Anforderungen an Quellenangaben, Lizenzen und Datenintegrität, um professionelle Ergebnisse zu gewährleisten.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/dengyie/one-video/tree/HEAD

In Ihrer bevorzugten KI fragen

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

Dokumentation

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

  1. onevideo status zeigt den Status jeder Phase und welches Regie-Dokument als nächstes zu lesen ist. Wenn Sie eine Phase betreten, lesen Sie zuerst das entsprechende stages/<id>.md, dann handeln Sie.
  2. Kreativphasen (research, proposal, script, storyboard) werden von Ihnen als JSON / Markdown geschrieben, dann onevideo validate ausgeführt, das Produkt dem Benutzer gezeigt, und nach Bestätigung onevideo approve <stage>. Genehmigen Sie nicht für den Benutzer, es sei denn, der Benutzer hat es ausdrücklich autorisiert.
  3. Nicht-kreative Phasen werden von der CLI ausgeführt: tts, music, assets fetch, depth, timeline, render, qc; Sie können auch build verwenden, um bis zur QC zu laufen (fehlende Assets werden automatisch heruntergeladen, mit dem depth-Tool werden automatisch Tiefenkarten und Helligkeitsraster erstellt). publish erfordert, dass die Überprüfung genehmigt wurde.
  4. 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).
  5. Das Storyboard wird nach der Bewegung-Engine geschrieben, nicht als eine Seite pro Karte: Lesen Sie zuerst references/motion-rules.md, referenzieren Sie examples/spacex-motion. Reale Aufnahmen verwenden den Protagonisten (footage mit Zeitlupen-/Zeitraffer, Titel auf das Motiv gelegt), digitale Elemente fliegen in canvas kontinuierlich durch, jedes Szenario hat shots, Hooks und Schlussfolgerungen haben pro Satz ein word-Schlüsselwort, bei Musik schreiben Sie music.offset: "auto". onevideo timeline gemeldete 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.
  6. Nach dem Rendern muss onevideo qc ausgeführt werden, und jedes Bild in out/qc/frames/ angesehen werden, um sicherzustellen, dass die Bilder in Ordnung sind, bevor approve review ausgefü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.json den Eintrag generate, um Bilder zu generieren (variants: 2–4 für mehrere Optionen, das visuelle Modell wählt nach brief eines aus, alle Alternativen bleiben in public/assets/<id>.take<k>.*; wenn Sie mit der Auswahl nicht einverstanden sind, überschreiben Sie mit pick), oder generieren Sie Videos (kind: "video", from: <Bild-ID> um ein Standbild als erstes Frame zu animieren). Bei fehlgeschlagener Generierung wird auf url / query desselben 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 sheet legt 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 look bittet dann ein visuelles Modell, das Video nach Schnittstandards zu prüfen; das Ergebnis wird in out/qc/look.json geschrieben, jede Anmerkung mit Zeitstempel und Szenario. Es ist nur eine zweite Meinung: Bestätigen Sie zuerst im Kontaktbogen oder in stills, 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 mit handoff --lock "…" und lassen sie danach in Ruhe.
  • Übergabe: Vor dem Wechsel der Konversation oder der Übergabe an einen Unter-Agenten führen Sie onevideo handoff aus. Es schreibt den aktuellen Stand der Phasen, festgelegte Parameter, Asset-Qualitätskontrolle, die letzten Render-Versionen, Ansichtsmeinungen und ausstehende Warnungen in plan/handoff.md und 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 zuerst plan/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 facts von plan/research.json auffindbar 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 an api.mangoqwq.com gesendet; für einen anderen baseUrl muss ein dediziertes keyEnv konfiguriert werden. Die Provider-Konfiguration in ~/.zcode wird nur bei explizitem ONEVIDEO_ZCODE_PROVIDER=1 gelesen.
  • Wenn ein bereits genehmigtes Produkt geändert wird, zeigt die Phase „stale" an; das Produkt muss erneut dem Benutzer vorgelegt und per approve genehmigt werden. Nach einer Änderung des Skripts muss tts erneut ausgeführt werden; sonst schlägt das Timings-Gate fehl und das Rendern wird blockiert. Bearbeiten Sie timeline.json nicht 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

Verwandte Skills