Léonard Noth
ENFRDE
← Projekte

Atelier

Die langweilige Hälfte des Videoschnitts, automatisiert

Eine lokale Creator-Suite: aufnehmen, per KI schneiden, anordnen und rendern. Vom Rohmaterial zum Endschnitt, ohne eine Timeline anzufassen.

Rolle
Gestalter & Entwickler
Umfang
Produktdesign · Desktop-App · KI-Pipeline · Video-Rendering · Markensystem
Gebaut mit
Next.js, TypeScript, Tailwind CSS, Remotion, Electron, SQLite, ffmpeg, ElevenLabs, OpenAI
Team
Allein
Zeitraum
2025 bis heute
Ergebnis
Vom Rohmaterial zum gerenderten 1080p-Schnitt, ohne eine Timeline zu öffnen. Vier Räume, fünf lokale Datenbanken, nichts hochgeladen, kein Abo.

Das Problem

Ein Video allein zu machen heisst, vier Abos zu bezahlen und den mühsamen Teil von Hand zu erledigen: Stillen schneiden, die Wiederholungen suchen, wieder dieselben Bauchbinden setzen. Ich wollte ein Werkzeug für die ganze Schleife, auf meiner eigenen Maschine, bei dem ich nur die API-Aufrufe bezahle und das Material den Laptop nie verlässt.

Meine Rolle

Allein. Gestaltung, Umsetzung und das Markensystem, aus dem die Videokomponenten ihre Werte lesen.

Lesen als
Das Wesentliche in zwei Minuten

Der Systementwurf

  1. Brainstorm

    Eine Frage pro Sitzung. Ich schreibe Ideen auf, markiere die guten, verwerfe die schlechten, und jede KI-Runde liest alles, was bereits entschieden ist.

  2. Planung

    Eine Folge wandert über sechs Spalten (Idee, Recherche, Skript, Dreh, Schnitt, veröffentlicht), sodass das Entstehende einen Zustand hat.

  3. Aufnahme

    Kamera und wahlweise ein ausgewählter Bildschirm oder ein Fenster, aufgezeichnet als zwei synchrone Dateien.

  4. Verstehen

    Das Material normalisieren, wortgetreu mit Zeitmarken pro Wort transkribieren und die Schnitte vorschlagen.

    • Stillen findet eine Regel, kein Modell. Deterministisch und kostenlos
    • Das Modell sieht immer nur Wörter und gibt Wortindizes zurück statt Zeitstempel
    • Ein zweiter Durchgang liest nur die überlebenden Wörter, denn ein korrekter Schnitt kann trotzdem eine kaputte Naht hinterlassen
  5. Komponieren und rendern

    Ein Modell schlägt den visuellen Schnitt gegen ein Register meiner eigenen Komponenten vor; ich korrigiere per Klick; eine Komposition treibt Vorschau und Export.

    • Jedes KI-Layout wird normalisiert, gekachelt und begrenzt, Lücken werden gefüllt, damit die Timeline nie halb leer ist
    • Vorschau und finales Rendering laufen über denselben Code, also ist das, was ich freigebe, genau das, was herauskommt
Plattformdienste
  • Next.js in einer Electron-Hülle

    Jeder Raum ist eine Route; das Desktop-Fenster ist eine dünne Hülle, keine zweite Anwendung

  • Fünf lokale SQLite-Datenbanken

    Eine pro Modul, damit ein neuer Raum nicht am Schema eines anderen scheitert

  • Abgekoppelte Worker-Prozesse

    Lange Schritte laufen ausserhalb des Webservers und schreiben ihren Fortschritt in eine Job-Tabelle, sodass ein Rendering ein Neuladen übersteht

  • ffmpeg

    Normalisiert das Material auf konstante Bildrate und extrahiert das Audio, das die Transkription bekommt

  • ElevenLabs Scribe

    Wortgetreue Transkription mit Zeitmarken pro Wort; die Füllwörter, die sie behält, sind genau das, was die Schnittstufe braucht

  • Remotion

    Eine Komposition rendert sowohl die Vorschau in der App als auch den finalen 1080p-Export

Zentrale Entscheidungen

Die Pipeline dort teilen, wo der Determinismus endet

statt · Die ganze Timeline einem Modell übergeben und es jeden Schnitt entscheiden lassen

Stille zu erkennen ist Arithmetik über Wortabstände: deterministisch, kostenlos, korrekt per Konstruktion. Eine Wiederholung zu erkennen ist semantisches Urteil: probabilistisch und pro Aufruf bezahlt. Die Grenze genau dort zu ziehen schützt die Invariante, dass Timing nie von einem Modell erschlossen wird, und begrenzt Kosten und Fehlerrisiko auf die eine Stufe, die wirklich Urteilsvermögen braucht.

Wortindizes als Vertrag mit dem Modell, nie Zeitstempel

statt · Das Modell direkt nach Zeitbereichen fragen

Ein halluzinierter Zeitstempel ist eine plausible Zahl, die an der falschen Stelle schneidet und lautlos versagt. Ein ungültiger Wortindex scheitert an der Validierung, bevor er das Material berührt. Die Zuordnung von Index zu Zeit bleibt in meinem Code, und der schlimmste Fehlerfall, ein stiller Fehlschnitt, wird zu einer lauten, behebbaren Ablehnung.

Ein zweiter Prüfdurchgang über den montierten Schnitt

statt · Ein einziger, besser geprompteter Schnittdurchgang

Einzeln korrekte Schnitte können sich trotzdem zu einer doppelten Formulierung oder einer kaputten Naht zusammensetzen: lokale Korrektheit garantiert keine korrekte Sequenz. Der Prüfdurchgang liest nur die überlebenden Wörter, also den Schnitt, wie ihn das Publikum hören wird, und behält die Ursprungsindizes, damit seine Korrekturen im selben Koordinatensystem landen. Ein zusätzlicher Modellaufruf kauft eine Prüfung, die der erste Durchgang an sich selbst nicht leisten kann.

Den Wipe-Übergang löschen statt die Korrektur zu pflegen

statt · Die fertige, funktionierende Korrektur ausliefern

Die Korrektur unterdrückte den Wipe überall dort, wo eine Kapitelkarte den Fluss ohnehin bricht. Die Funktion blieb also nur unter einer Schutzregel akzeptabel, die jede künftige Änderung am Schnitt hätte respektieren müssen. Ein Standardverhalten, das eine Regel braucht, um nicht hässlich zu sein, hat negativen Wert: der Wipe sah schlechter aus als gar kein Übergang, also flog die Funktion einen Commit später raus, und die Regel gleich mit.

In der Praxis

Der Hub. Vier Räume in einem Fenster, und eine fünfte Karte bewusst leer gelassen. Die Architektur ist darauf gebaut, einen weiteren Raum aufzunehmen.
Der Hub. Vier Räume in einem Fenster, und eine fünfte Karte bewusst leer gelassen. Die Architektur ist darauf gebaut, einen weiteren Raum aufzunehmen.
Der Kanal-Schreibtisch. Die Identität einmal setzen, und jeder Raum liest sie, inklusive der Farben und Schriften, mit denen die Videokomponenten rendern.
Der Kanal-Schreibtisch. Die Identität einmal setzen, und jeder Raum liest sie, inklusive der Farben und Schriften, mit denen die Videokomponenten rendern.

Atelier ist eine Produktionssuite für einen Creator, der allein arbeitet. Sie nimmt Kamera und Bildschirm als zwei synchrone Dateien auf, transkribiert sie wortgetreu, schlägt mit einem LLM, das das Transkript liest, Schnitte vor, plant den visuellen Schnitt und rendert das Ergebnis serverseitig mit Remotion.

Alles läuft auf meiner Maschine: vier Räume (Kanal, Brainstorm, Planung, Schnitt) über lokale SQLite-Datenbanken, verpackt in Electron. Kein Abo, kein Upload, und das Material verlässt den Laptop nie.

Was ich gelernt habe

  • Das interessante Engineering ist nicht die KI. Es ist jede Stelle, an der ihre Ausgabe aufgefangen wird. Indizes statt Zeitstempel, Layouts vor dem Rendern normalisiert, Lücken gefüllt, damit die Timeline immer vollständig ist.
  • Vorschau und Export über denselben Code laufen zu lassen, ist die Entscheidung, auf der alles andere ruht. Wenn sie auseinanderlaufen können, gibt man eine Sache frei und veröffentlicht eine andere.
  • Das Werkzeug zu bauen hat mir mehr darüber beigebracht, was Kreative brauchen, als alles Gelesene, und das meiste davon ist, dass der langweilige Teil verschwindet, nicht dass der clevere Teil noch cleverer wird.
  • Kommentare schreiben über das, was kaputtging, nicht über das, was der Code tut. Die nützlichen in diesem Repo halten einen Rundungsfehler von einem Frame fest, der bei jedem Schnitt ein schwarzes Blinzeln erzeugte.

Was es nicht leistet

  • Es ist für einen Creator gebaut, der allein arbeitet, und das Markensystem setzt die Identität einer einzigen Person voraus.
  • Es läuft nur auf macOS, und das Rendering ist so schnell wie ein einzelner Laptop.