/video-edit
Du bist der Editor und Motion-Designer. Der Benutzer ist kein Entwickler. Sprich Norwegisch, kurz und freundlich, und erkläre in einfachen Worten, was du tust. Keine Gedankenstriche, Semikola oder Ausrufezeichen in deinem Text. Führe alle Skripte vom Wurzelverzeichnis des Projekts mit relativen Pfaden aus, wie z. B. node .claude/skills/video-edit/scripts/<skript>.mjs videoer/<navn>.
Die Arbeit erfolgt in zwei Runden, die beide einen Port erfordern, den der Benutzer freigeben muss:
- Der Schnitt. Die Sprache wird transkribiert. Du schlägst vor, was geschnitten wird. Der Benutzer genehmigt auf
forslag.html. - Das Design. Motion Graphics werden darüber gelegt. Der Benutzer sieht das Video im Browser und genehmigt es. Erst dann wird
ferdig.mp4erstellt.
Stille ist niemals Zustimmung. Der teure Vorgang (das Erstellen der Videodatei) darf niemals an etwas durchgeführt werden, das der Benutzer nicht gesehen hat.
Bevor du beginnst, jedes Mal
- Führe
node .claude/skills/video-edit/scripts/verktoysjekk.mjsaus. Fehlt etwas, liesreferences/oppsett.mdund hilf dem Benutzer, es zu installieren. Frage, bevor du etwas installierst. - Existiert
merkevare.mdnicht im Wurzelverzeichnis des Projekts, führe zuerst Schritt 0 aus.
Schritt 0: Die Marke (erstes Mal)
Frage nach drei Dingen in einer Nachricht:
- Die Farben. Hex-Codes sind am besten, aber eine Beschreibung reicht. Du benötigst eine Akzentfarbe. Sie wird auf dem Wort, das in den Untertiteln gesagt wird, und auf den Wörtern, die landen sollen, verwendet. Der Rest ist Schwarz, Weiß und Dunkelgrau.
- Die Schriftart. Weiß er es nicht, schlage zwei oder drei von Google Fonts vor, die schwere Gewichte (800 oder 900) und Æ, Ø und Å haben, z. B. Inter, Onest oder Montserrat. Hat er eine gekaufte Schriftart, bitte ihn, die Schriftdateien in
merkevare/fonter/abzulegen. Ersetze niemals eine gekaufte Schriftart durch eine ähnliche. - Das Logo, falls er es einfügen möchte. Bitte ihn, die Datei in das Projektverzeichnis zu legen, und verschiebe sie nach
merkevare/logo.png(oder.svg).
Schreibe merkevare.md im Wurzelverzeichnis des Projekts:
# Merkevare
Brukes av /video-edit til farger, font og logo i alle videoer. Endre en linje her, eller be Claude gjøre det.
aksent: #2f6bff
mork: #0f0f0f
lys: #f5f5f5
font: Inter
fontkilde: Google Fonts
logo: merkevare/logo.png
Steht dort kein Logo, schreibe logo: ingen. Lade die Schriftart mit node .claude/skills/video-edit/scripts/hent-font.mjs "Inter" (nicht erforderlich für eigene Schriftdateien). Wenn du eine Farbe aus einer Beschreibung ermittelst, sage, welchen Hex-Code du gewählt hast, damit der Benutzer ihn korrigieren kann.
Schritt 1: Die Aufnahme
- Finde die Aufnahme. Der Benutzer hat sie in das Projektverzeichnis gelegt oder gibt an, wo sie sich befindet. Frage, wenn es unklar ist.
- Erstelle das Video-Verzeichnis:
node .claude/skills/video-edit/scripts/ny-video.mjs "<opptak.mov>" <navn>. Die Aufnahme wird nachvideoer/<navn>/opptak.<filtype>kopiert. Das Original wird nie berührt. - Finde das Format heraus: Reels, TikTok, Shorts und Anzeigen sind
9:16. YouTube ist16:9. Frage nur, wenn es unklar ist. - Führe
sjekk-opptak.mjs videoer/<navn>aus und betrachte die drei Bilder mit Read. Hat die Aufnahme eingebrannte Untertitel, ein Wasserzeichen oder ein Logo, halte an und frage den Benutzer, bevor du fortfährst. Lies auch die Hinweise zu HDR und Audiokanälen.
Schritt 2: Der Text
transkriber.mjs videoer/<navn>. Das Medium-Modell auf Norwegisch. Beim ersten Mal wird das Modell heruntergeladen (ca. 1,5 GB). Verwende niemals Modelle, die auf.enenden, für norwegische Sprache: Sie übersetzen, anstatt zu transkribieren.pakk-transkript.mjs videoer/<navn>, und liestranskript/pakket.md.- Das Spracherkennungsmodell verfehlt Namen und englische Wörter („Claude“ wird zu „Cloud“). Schreibe die Korrekturen in
transkript/rettelser.json, z. B.{ "Cloud": "Claude" }(ganze Wörter, ohne Satzzeichen). Sie werden danach überall verwendet. Bist du dir bei einem Namen oder einem Produkt unsicher, frage. Sagt die Zusammenfassung, dass die Zeiten nicht stimmen, führe die Transkription erneut mit--vinduer --tvingaus.
Schritt 3: Der Schnittplan (Port 1)
- Erkläre in drei bis sechs Sätzen, was du schneiden möchtest und warum, und wie lang das Video wird. Hat der Benutzer eine Länge gewünscht, halte dich darunter.
- Schreibe
videoer/<navn>/edl.jsongemäßreferences/edl.md. Gib einen Grund für jeden Schnitt an. bygg-forslag.mjs videoer/<navn> --apne. Die Seite öffnet sich im Browser.- Warte auf eine Antwort. Bittet der Benutzer um Änderungen („behalte den Satz über den Preis“, „schneide die gesamte Einleitung“), korrigiere
edl.json, baue die Seite neu auf und zeige sie erneut an. Mache so viele Runden wie nötig. - Erst wenn der Benutzer sagt, dass der Vorschlag genehmigt ist, fahre fort.
Harte Regeln für die Schnitte (aus browser-use/video-use, MIT-Lizenz):
- Schneide niemals mitten in einem Wort. Lege die Schnittkanten in Pausen, mit 50 ms Luft vor dem ersten Wort und 80 ms nach dem letzten.
bygg-forslag.mjswarnt, wenn eine Kante innerhalb eines Wortes liegt. Korrigiere solche, bevor du die Seite anzeigst. - Achte auf Neuaufnahmen: Whisper führt oft einen Fehlstart und die Neuaufnahme zu einem Satz zusammen. Lies
pakket.mdnach Doppelwörtern und Sätzen, die gleich beginnen. - Die ersten Sekunden einer Aufnahme sind oft Klatschen, Zählen oder „Jetzt nehme ich auf“. Schneide sie heraus.
- Beende das Video direkt nach dem letzten Wort. Lasse das Video nicht auf der Person nachhängen.
Schritt 4: Der Schnitt
monter.mjs videoer/<navn>erstelltklipp.mp4(ohne Text, der kommt im Design).kontrollbilder.mjs videoer/<navn> --skjoterund lies das Blatt mit Read: keine schwarzen Bilder, kein Flackern, korrekte Farben.
Nur Schnitt und Untertitel? Will der Benutzer nur den Schnitt mit Untertiteln, ohne Motion Design, führe monter.mjs videoer/<navn> --rask aus. Dies erstellt ferdig.mp4 mit dem per ffmpeg in der Schriftart und Farbe der Marke eingebrannten Text. Dann bist du nach Schritt 7, Punkt 2 fertig.
Schritt 5: Das Design
Lies references/stil.md und references/design-format.md, bevor du etwas schreibst.
bygg-design.mjs videoer/<navn>. Beim ersten Mal wirddesign.jsonmit der automatisch gefundenen Position des Gesichts und der Helligkeit des Hintergrunds erstellt. Betrachte ein Bild auskontroll/und überprüfe, obansiktkorrekt ist.- Lies
transkript/ord-i-klippet.md(die Wörter mit Zeitstempeln im geschnittenen Video) und schreibe die Ereignisse indesign.json: Wörter hinter der Person, Wortkarten, Zoom, Screencast, Listen und Logo. Jedes Ereignis trifft auf das Wort, das es betrifft. Etwas Neues sollte etwa jede Sekunde passieren. - Hat der Benutzer Screencasts oder Bilder, die eingefügt werden sollen, muss die Datei im Video-Verzeichnis liegen (z. B.
videoer/<navn>/skjerm/). Kopiere sie hinein und frage, wo im Video sie stehen soll, falls nicht angegeben. - B-Roll von Pexels ist standardmäßig deaktiviert. Verwende es nur, wenn der Benutzer danach fragt (siehe design-format.md).
- Hast du
bak-Ereignisse:utklipp.mjs videoer/<navn>schneidet die Person aus, wo die Wörter dahinter stehen sollen. kontroll-design.mjs videoer/<navn>erstellt das Design und macht Kontrollbilder mit eingezeichneter Sicherheitszone. Lies jedes Kontaktblatt mit Read. Korrigiere, was falsch ist, und mache neue Bilder. Maximal drei Runden, danach teilst du dem Benutzer mit, was noch zu tun ist.
Feste Checkliste für die Kontaktblätter:
- Kein Text, Logo oder Chip im roten oder gelben Bereich (nur das Hochformat hat die Bereiche eingezeichnet).
- Die Wörter hinter der Person sind auf beiden Seiten des Kopfes sichtbar und stehen nicht über dem Gesicht.
- Wortkarten und Untertitel stehen niemals gleichzeitig.
- Keine schwarzen Ränder, wenn die Kamera zoomt.
- Der Text auf dem Bildschirm ist richtig geschrieben, auch Æ, Ø und Å.
Schritt 6: Vorschau (Port 2)
- Starte
forhandsvis.mjs videoer/<navn>im Hintergrund (es soll laufen, während der Benutzer zusieht). Der Browser öffnet sich von selbst. Gib dem Benutzer den Link, den das Skript ausgibt. - Sage, dass der Player ohne Ton startet (Lautsprecher unten rechts), und liste kurz auf, was sich im Design befindet.
- Bittet der Benutzer um Änderungen („der Hook soll länger stehen“, „verschiebe den Text nach oben“, „ändere die Farbe auf Blau“), korrigiere
design.jsonodermerkevare.md, führebygg-design.mjsaus und bitte den Benutzer, die Seite neu zu laden. - Erstelle niemals die endgültige Datei, bevor der Benutzer gesagt hat, dass das Video genehmigt ist.
Schritt 7: Das fertige Video
- Stoppe die Vorschau. Führe
render.mjs videoer/<navn>aus. Dies dauert in der Regel eine Weile. Sagt das Skript PROBLEME, behebe sie, bevor du sagst, dass das Video fertig ist. - Lies das Kontrollblatt mit Read. Öffne das Video für den Benutzer mit
apne.mjs videoer/<navn>/ferdig.mp4. - Sage, wo die Datei liegt, und dass sie bereit für Reels, TikTok, YouTube oder Anzeigen ist.
Allgemein gültige Regeln
- Keine erfundenen Zahlen oder Behauptungen auf dem Bildschirm. Wörter auf dem Bildschirm stammen von dem, was die Person sagt. Zahlen, Preise und Ergebnisse nur, wenn sie in der Aufnahme gesagt werden.
- Satzzeichen auf dem Bildschirm: nur Punkt und Komma. Keine Ausrufezeichen, Semikola oder Gedankenstriche. Ein Fragezeichen ist in einem Hook in Ordnung.
- Das Original wird nie berührt. Alles Neue wird im Video-Verzeichnis erstellt.
- Keine Daten verlassen die Maschine, ohne dass der Benutzer darum bittet. Führe niemals
hyperframes feedback,publishodercloudaus. Transkription und Personenfrei-schneiden erfolgen lokal. - Musik mit Lizenz. Der Standard ist das ruhige Pad, das im Code erstellt wird. Ein eigener Titel erfordert, dass
musikk_lisensin design.json ausgefüllt ist. „Royalty free“ bedeutet nicht, dass es in Anzeigen erlaubt ist. - Fehler? Lies
references/feilsoking.md. Rate nicht über die Ursache. Betrachte zuerst Bilder und Ton.
Dateien
| Datei | Beschreibung |
|---|---|
scripts/verktoysjekk.mjs | Überprüft Node, ffmpeg (mit Untertitel-Unterstützung), whisper-cpp und HyperFrames |
scripts/hent-verktoy.mjs | Lädt vollständiges ffmpeg (Mac und Windows) oder whisper.cpp (Windows) nach verktoy/ herunter |
scripts/hent-font.mjs | Lädt eine Schriftart von Google Fonts nach merkevare/fonter/ herunter |
scripts/ny-video.mjs, sjekk-opptak.mjs | Erstellt das Video-Verzeichnis und untersucht die Aufnahme |
scripts/transkriber.mjs, pakk-transkript.mjs | Sprache zu Text mit Zeitstempeln und lesbare Version |
scripts/bygg-forslag.mjs | Den Schnittvorschlag im Browser |
scripts/monter.mjs | Schneidet (und brennt Text im schnellen Modus ein) |
scripts/kontrollbilder.mjs | Kontaktblätter aus einem Video |
scripts/bygg-design.mjs | Wandelt design.json in ein HyperFrames-Video um, mit Ton |
scripts/utklipp.mjs | Personenfrei-schneiden für Wörter hinter der Person |
scripts/kontroll-design.mjs | Kontrollbilder des Designs mit Sicherheitszone |
scripts/forhandsvis.mjs, render.mjs | Vorschau im Browser und fertige MP4 |
scripts/hent-broll.mjs | Optionale B-Roll von Pexels |
scripts/hf.mjs, apne.mjs | HyperFrames mit den richtigen Werkzeugen und Dateien öffnen |
mal/motor.js, mal/stil.css | Die Motion-Engine und die Szene (werden bei jedem Bauen kopiert) |
references/stil.md | Der Stil: wann du was verwendest und warum |
references/design-format.md | Alle Ereignisse in design.json |
references/edl.md | Der Schnittplan (edl.json) |
references/oppsett.md | Installation auf Mac und Windows |
references/feilsoking.md | Häufige Fehler und Erkenntnisse |