Communitygithub.com

Editor de video por cliente

Motor und Workflow für professionelle Videobearbeitung nach Kunden-Look – erstellt Reels, Talking Heads, Event-Zusammenstellungen und Bewerbungsvideos.

Was ist Editor de video por cliente?

Diese Skill ermöglicht eine menschenähnliche Videobearbeitung: Sie analysiert Rohmaterial, schneidet präzise, wendet den kundenspezifischen Look an, prüft und liefert aus. Der Motor selbst hat keinen eigenen Stil – alles Visuelle kommt aus der `look.py` des jeweiligen Kunden. Unterstützt werden Plattformen wie Claude Code, Cursor und Codex. Der Workflow gliedert sich in acht Schritte: 0: Neukunden-Onboarding mit Referenzanalyse und Erstellung von `estilo.md` und `look.py`. 1: Rohmaterial verstehen mit `watch` (Transkription via WhisperX/MFA). 2: Medien konvertieren (HDR→SDR, Fotos als Clips). 3: Wortgenaue Ausrichtung mit MFA (spanisches Modell). 4: Takes auswählen und in `takes.json` sichern. 5: Video mit HyperFrames zusammenbauen (Untertitel pro Wort, Zooms, B-Roll, Karten, Sounds). 6: Vorschau mit `snapshot` und Freigabe durch den Nutzer. 7: Rendern und Auslieferung. Die Skill nutzt ein eigenes Engine-Modul (`engine/reel.py`), Tools (`tools/takes.py`, `tools/words.py`, `tools/media.sh`), Templates und Look-Vorlagen. Wichtig: Jeder Kunde bekommt einen eigenen Look, der in `look.py` definiert wird. Der Nutzer muss die Skill nur mit natürlichen Sprachbefehlen wie "neuer Kunde", "neues Projekt", "analysiere diese Referenzen" oder "erstelle ein Reel" ansprechen.

Funktioniert mit✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/soyabrahamarriaga-lang/editor-video/tree/main

In Ihrer bevorzugten KI fragen

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

Dokumentation

Was macht Editor de video por cliente?

Motor und Workflow für professionelle Videobearbeitung – versteht das Material, schneidet präzise, wendet den Kunden-Look an, prüft und liefert aus. Der Motor hat keinen eigenen Stil: alles Visuelle kommt aus clientes/<CLIENTE>/look.py.

SKILL_DIR = Ordner dieser Skill. Werkzeuge: engine/reel.py, tools/{takes.py, words.py, media.sh}, Vorlagen in templates/, Start-Looks in looks/.

Voraussetzungen (beim ersten Mal prüfen; Fehlendes installieren)

  • ffmpeg, python3, node/npx · macOS: avconvert und sips (vorinstalliert) für HDR→SDR und HEIC-Fotos.
  • HyperFrames (Rendering und SFX-Bibliothek): npx hyperframes skills update general-video (installiert auch media-use).
  • watch (Videos ansehen/transkribieren und Links von Instagram/TikTok/YouTube mit yt-dlp herunterladen): Skill watch von github.com/bradautomates/claude-video, lokaler WhisperX-Engine (kostenlos): setup.py --engine local und --backend whisperx.
  • whisper CLI (Prüffenster): uv tool install --python 3.12 openai-whisper --with setuptools.
  • MFA (Wortgenaue Ausrichtung ±20 ms): brew install --cask miniforge, conda create -n mfa -c conda-forge montreal-forced-aligner -y, conda run -n mfa mfa model download acoustic spanish_mfa und … dictionary spanish_mfa (andere Sprache: entsprechendes Modell).

Ordnerstruktur (Arbeitsbasis, z.B. ~/Documents/VIDEOS/)

clientes/<CLIENTE>/
├── estilo.md      Kundenleitfaden (templates/estilo.md) – wird IMMER vor dem Bearbeiten gelesen
├── look.py        Der ins Motor-Format übersetzte Stil (aus looks/nativo.py oder looks/datos.py)
├── refs/          Referenzvideos + Frame-Blätter + Analysen
├── marca/         Logo, Farben, Schriftarten, eigene Musik
└── proyectos/<AAAA-MM-DD_nombre>/
    ├── crudo/     Rohmaterial des Nutzers – NIEMALS ändern oder löschen
    ├── broll/     Zusätzliche Aufnahmen (optional)
    ├── guion.md   Skript oder Notizen (optional; überschreibt estilo.md für dieses Projekt)
    ├── trabajo/   media/ (konvertiert), mfa/, gt/, und ein Ordner pro Video mit config.py + takes.json
    └── final/     Nur Liefergegenstände: <cliente>_<tema>_v1.mp4 · Korrekturen = v2, v3 ohne die vorherige zu löschen

Der Nutzer erstellt keine Ordner: er sagt "neues Projekt für , das Material liegt in " und hier wird proyectos/<Datum_Name>/ erstellt und das Rohmaterial verschoben (vorher fragen, ob es außerhalb der Basis liegt und nicht verschoben werden soll).

Workflow

0 · Neuer Kunde → Referenzen analysieren und estilo.md schreiben

  1. Referenzen herunterladen/lesen (Links mit watch, das yt-dlp verwendet) in refs/. Ideal ~5.
  2. Für jede Referenz messen: Hook (erste 3 s), Schnitte/min (ffmpeg -vf "select='gt(scene,0.3)',showinfo" → zählen), Untertitel (Schriftart oder die nächstbeste kostenlose, Größe, Position, Farbe, Hervorhebungen, Animation), Farbe/Look, Karten und Animationen, Sound (Musik, SFX, Stimme), Bildausschnitt, Struktur, CTA. Frame-Blatt: fps=16/dur,scale=270:480,tile=8x2.
  3. estilo.md (Vorlage) schreiben nur mit Mustern, die in ≥ 2 Referenzen vorkamen; Gemessenes von Abgeleitetem trennen; keine fremden Phrasen oder Marken kopieren. Wenn sich Referenzen widersprechen, nach Priorisierung fragen.
  4. look.py vom nächstgelegenen Start-Look aus erstellen und an den Leitfaden anpassen. Leitfaden + Test-Stills zeigen und auf Freigabe warten vor dem Bearbeiten.

1 · Rohmaterial verstehen

  • estilo.md und guion.md lesen. Jede Datei prüfen (ffprobe: Dauer, Rotation, color_transfer).
  • watch auf jedes Rohmaterial mit WATCH_WHISPERX_LANGUAGE=es und --out-dir trabajo/watch: was gesagt wird, welche Takes brauchbar sind, Nachdrehs, was NICHT geschnitten werden soll. Diese Transkription ist die einzige vollständige: sie wird für MFA wiederverwendet.
  • Mit dem Skript abgleichen: welche Teile des Skripts nicht aufgenommen oder improvisiert wurden → Nutzer informieren.
  • Mehrere kurze Clips ohne Stimme (Events): Frame-Blatt pro Clip, nach Thema sortieren und Gruppierungen vorschlagen (ein Video pro Thema + Einzelclips + ein allgemeiner Recap) vor dem Bearbeiten.

2 · Medien vorbereiten

  • media.sh video <crudo> trabajo/media/<name>.mp4 [vertical|horizontal] – konvertiert HDR (iPhone/DJI) in einem Durchgang zu SDR, Keyframes alle 1 s, 30 fps. Nicht mehrfach neu komprimieren: jeder Durchgang verliert Details.
  • Fotos: media.sh foto <foto> trabajo/media/<name>.mp4 2.5. Audio zum Ausrichten: media.sh audio.

3 · Wörter ausrichten (Videos mit Sprache)

  • corpus/a.wav + corpus/a.txt (Klartext von watch) → conda run -n mfa mfa align --clean <absoluter_Pfad_corpus> spanish_mfa spanish_mfa <absoluter_Pfad_ausgabe> (absolute Pfade, sonst Fehler; ohne --beam). words.py textgrid … words.json und words.py show words.json.
  • Wörter mit ~ (Dauer > 1 s) verstecken Pausen oder Nachdrehs; lange Lücken ohne Text können Nachdrehs sein, die watch nicht transkribiert hat. Mit isoliertem Fenster prüfen: 3–15 s Audio ausschneiden, whisper --model small --language es --word_timestamps True, words.py whisper … <offset>. MFA kann um Sekunden abweichen, wo es Geräusche oder Nachdrehs gab.

4 · Takes auswählen → takes.json → takes.py

  • Pro Satz den besten Take (normalerweise den letzten) wählen; Nachdrehs, Fehlstarts, Füllwörter, Regieanweisungen ("dieses soll ein anderes Video werden") und alles, was nicht zum Ziel beiträgt, entfernen. Die maximale Dauer einhalten.
  • Spannen nach Start des Wortes: (Start des 1., Start des letzten + 0.2). Wenn das Ende vor dem Start des letzten Wortes liegt, wird es verschluckt. word_fix korrigiert Wörter, die MFA falsch platziert hat (mit Zeiten aus dem isolierten Fenster).
  • Text: phrases / words korrigieren, was der ASR falsch verstanden hat (Namen, Marken: "Claude" nicht "Klaus", "IA" nicht "ella").
  • python3 $SKILL_DIR/tools/takes.py trabajo/<video>/takes.json trabajo/<video> → gibt Dauer und finalen Text aus. Gesamten Text lesen: kein letztes Wort eines Abschnitts darf fehlen, und keine abgeschnittenen Wörter dürfen übrig bleiben.

5 · Video zusammenbauen

  • trabajo/<video>/: config.py (aus templates/config.py), media → ../media (Symlink), media.sh sfx trabajo/<video>, hyperframes.json minimal ({"paths": {"assets": "assets"}}).
  • In edit(e): Karten/POV/CTA, B-Roll und Sounds an Wörter gebunden (e.word_t(None, "palabra")). Karten an den Rändern: bei Zoom wird das Gesicht breiter. Ein sichtbares Event alle ≤ 3 s (der Motor fügt bei Bedarf Auto-Punches ein).
  • python3 $SKILL_DIR/engine/reel.py trabajo/<video> → npx hyperframes check trabajo/<video> (0 Fehler; Warnungen wie "große Datei / dichter Track / verschachtelt" sind bei diesem Motor normal).

6 · Vor dem Rendern prüfen

  • npx hyperframes snapshot trabajo/<video> --at <t1,t2,…> --no-end -o <ABSOLUTER_Pfad> an jeder Karte, jedem Hook und CTA. Prüfen: nichts verdeckt das Gesicht, Texte brechen nicht hässlich um, Farben korrekt, Untertitel lesbar.
  • Stills dem Nutzer zeigen und auf Freigabe warten (außer der Stil ist bereits freigegeben und der Nutzer sagt "rendere").

7 · Rendern und Liefern

  • npx hyperframes render --quality delivery -o …/raw.mp4 innerhalb von trabajo/<video> → media.sh final raw.mp4 final/<cliente>_<tema>_v1.mp4 (−14 LUFS). Nur das soeben erstellte raw.mp4 löschen.
  • Mit watch --detail transcript prüfen: vollständiger Text ohne Wiederholungen. Wenn der Anfang "fehlt", die ersten 3 s mit whisper prüfen, bevor eine Schlussfolgerung gezogen wird (die vollständige Transkription lässt manchmal den Beginn aus).

Lektionen (nicht wiederholen)

  • HDR ohne Konvertierung wirkt verwaschen; mit avconvert einmal konvertieren.
  • In 4K aufnehmen, wenn Zooms geplant sind: 1080p um 13–22 % vergrößert wirkt weich. Den Kunden informieren.
  • Ein korrigierter Satz mit mehr Wörtern kann nicht dieselbe Zeit verteilen: Untertitel mit Dauer 0 bleiben hängen.
  • Emojis im Bildschirmtext werden nicht immer gerendert: vermeiden.
  • snapshot -o mit relativem Pfad schreibt neben das Projekt: absolute Pfade verwenden.
  • Dieselbe Datei, die in zwei Videoteilen verwendet wird, benötigt unterschiedliche Schlüssel in takes.json (eindeutige IDs).
  • Die SFX-Bibliothek nicht in ein Repository hochladen (Pixabay-Lizenz von media-use): sie wird pro Projekt mit media.sh sfx kopiert.
  • Korrekturen des Kunden an einem einzelnen Video (z.B. "keine Sounds im 07") werden in dessen config.py vorgenommen (SFX = {"card": None, "broll": None, "cut": None} und sfx: None in Karten), nicht durch Bearbeiten der index.html (geht beim Neubau verloren).

Verwandte Skills