openmontage-house: OpenMontage + Josh Hausregeln
OpenMontage Basis: <SKILLS_DIR>/OpenMontage (Commit 9327439, 2026-10-03, AGPLv3).
Vollständige Dokumentation der Basis: AGENT_GUIDE.md, CLAUDE.md, skills/INDEX.md, pipeline_defs/*.yaml.
Dieses Skill erstellt nur Entwürfe, veröffentlicht nichts. Die Veröffentlichung erfolgt immer durch den Haupt-Bot, nachdem Josh die Freigabe erteilt hat.
Entscheide zuerst, ob OpenMontage verwendet werden soll (siehe Entscheidungsmatrix in <SKILLS_DIR>/INDEX.md)
- Gesprochene, zweisprachige Reels, Bearbeitung von echtem Filmmaterial → Verwende stock-footage-reel (Hausformat), nicht das documentary-montage von OpenMontage. Wenn mehr altes/Public-Domain-Material benötigt wird, verwende
om_clips.pyunten und füge es mitpick: {"source":"file", ...}in shots.json ein. - Vox-/Wissenserklärvideos (Animation) → Verwende huashu-art-motion, nicht das animated-explainer von OpenMontage.
- Alles andere (Clips, Bildschirmaufnahmen, Übersetzung & Synchronisation, Podcast, Referenzvideo-Analyse, dokumentarische Montage ohne Voice-Over) → Verwende OpenMontage, überschreibe seine Standardeinstellungen mit den Hausregeln unten.
Umgebung
source <SKILLS_DIR>/OpenMontage/om-env.sh # .venv und Node 22 aktivieren, in OpenMontage wechseln
python -c "from tools.tool_registry import registry; import json; registry.discover(); print(json.dumps(registry.support_envelope(), indent=2))" # Verfügbare Tools anzeigen
- Installiert: requirements.txt, Remotion composer (npm), piper-tts, faster-whisper, yt-dlp, youtube-transcript-api, opencv-headless, HyperFrames (npx Cache 0.8.147) sowie CPU-Version von torch 2.14.1 + transformers 5.19 (keine GPU-Pakete). CLIP semantisches Matching verfügbar: Nachdem corpus_builder die Materialbibliothek erstellt hat, sortiert
rank_for_slotvon clip_search Materialien mit Textbeschreibungen (Scores >= 0,25 sind brauchbar); video_understand (CLIP-Modus) ist ebenfalls verfügbar. Beim ersten Mal wird das CLIP-Modell (openai/clip-vit-base-patch32) von Hugging Face heruntergeladen; das Erstellen einer kleinen Bibliothek mit 5 Materialien auf der CPU dauert etwa 1 Minute. corpus_builder zeigt „degraded“ nur an, weil die Hälfte der Quellen keine Keyframes haben; das beeinträchtigt die Nutzung nicht. - Schlüssel:
PEXELS_API_KEYundELEVENLABS_API_KEYsind Maschinenumgebungsvariablen (nur in neuen Shells verfügbar, bei Bedarfbash -lcverwenden); om-env.sh übernimmt sie, sie sind bewusst nicht in .env. Nicht ausdrucken oder in Dateien schreiben. Alle anderen Schlüssel sind leer. Keine neuen Konten oder kostenpflichtigen Schlüssel für OpenMontage beantragen; Josh vorher fragen. - Kostenpflichtige Generierung (Kling, Veo, Seedance, FLUX usw.) hat derzeit keine Schlüssel; der Selektor überspringt sie automatisch. OpenMontage gibt vor Zahlungen einen Kostenvoranschlag, der von Josh genehmigt werden muss.
Hausregeln (Überschreiben der OpenMontage-Standardeinstellungen für jedes Video)
- Bild: Hochformat 1080x1920 (die meisten OpenMontage-Standardeinstellungen sind 16:9; zu Beginn 9:16 angeben). Maximal 3 Minuten, Vollständigkeit vor Kürze.
- Synchronisation: ElevenLabs englische Frauenstimme Sarah Explains (voice_id
Nhs7eitvQWFTQBsf0yiT), Modelleleven_multilingual_v2.- Primär: Das eigene
elevenlabs_tts-Tool von OpenMontage direkt verwenden (bereits getestet und funktionsfähig).voice_idangeben; den tts_selector nicht automatisch wählen oder auf Piper zurückfallen lassen. Beispiel:ElevenLabsTTS().execute({"text":..., "voice_id":"Nhs7eitvQWFTQBsf0yiT", "model_id":"eleven_multilingual_v2", "output_path":".../vo.mp3"}). Ein Skript nur einmal senden (sonst werden Credits doppelt abgezogen). - Fallback: Bei direktem API-Fehler den user-Elevenlabs-Konnektor verwenden (
creative_generate_speech,generations_count: 1), um vo.mp3 zu erstellen, und dann als fertigen Voice-Over an OpenMontage übergeben. Piper nicht für offizielle Sprachausgabe verwenden.
- Primär: Das eigene
- Untertitel: Hauptuntertitel in traditionellem Chinesisch + eine kleinere englische Zeile darunter (Englisch entspricht der Sprachausgabe). Taiwanesische Begriffe, „“ für Anführungszeichen, keine Gedankenstriche. Unterkante der Untertitel nicht unter y=1490, um die Instagram-Oberfläche zu vermeiden.
- Cover: B-Vox-Vorlage,
<YOUR_WORKSPACE>/media-team/00-profile/covers/render.py(nicht das eigene Cover/Thumbnail von OpenMontage verwenden). - Lizenzierung: Jedes Material in
credits.jsonerfassen (URL, Autor, Lizenz). Die Lizenz von Archive.org ist „verify per item“; jede Datei einzeln öffnen und bestätigen, dass sie Public Domain oder CC0/CC BY ist. Keine Aufnahmen von BBC, TV-Sendern oder Filmstudios verwenden. CC BY muss im Beitrag vermerkt werden. - Datei: IG-Finalvideo H.264/AAC, auf unter 45 MB komprimieren (mit
ffprobeGröße und Länge prüfen). - Inhalt: Dem Original treu bleiben, keine Zahlen oder Zitate erfinden, den ursprünglichen Autor angeben.
- Ausgabe: Fertiges Video in
<YOUR_WORKSPACE>/media-team/03-drafts/<Thema>/ablegen;projects/von OpenMontage nur als Arbeitsbereich verwenden.
Wie die einzelnen Workflows gestartet werden
Claude Code im OpenMontage-Ordner öffnen (es liest CLAUDE.md), oder anderen Bot direkt skills/pipelines/<Workflow>/executive-producer.md lesen und schrittweise ausführen lassen. Gleich zu Beginn die obigen Hausregeln einfügen.
- clip-factory: Lange Videos (YouTube, Livestreams, Podcast-Aufnahmen) in mehrere vertikale Kurzvideos schneiden. Vor dem Herunterladen mit yt-dlp sicherstellen, dass Josh die Nutzungsrechte hat.
- screen-demo: Echte Bildschirmaufnahmen für Tutorials (screen_recorder/cap_recorder verfügbar).
- localization-dub: Videos in eine andere Sprache übersetzen und synchronisieren. Synchronisation zuerst mit dem ElevenLabs-Konnektor erstellen, dann zur Zeitabstimmung und Audiomischung übergeben.
- podcast-repurpose: Podcast-Audiodateien in kurze, aussagekräftige Videos umwandeln.
- Referenzvideo-Analyse: Ein Reel/Short posten lassen; es analysiert Rhythmus, Einstieg, Struktur, schlägt 2-3 originelle Versionen vor und schätzt die Kosten (animated-explainer, animation, cinematic, character-animation haben reference_input). Nur die Struktur lernen, nicht das Bild oder den Text kopieren.
- documentary-montage: Themenmontage ohne oder mit wenig Voice-Over (Adam-Curtis-Stil), verwendet CLIP semantisches Matching, um automatisch Material für jeden Abschnitt auszuwählen. Für gesprochene Reels weiterhin stock-footage-reel verwenden.
- Backlot Storyboard:
python -m backlot open <project-id>(lokales Storyboard, nur zur Beobachtung; Fehler beeinträchtigen die Produktion nicht). Nur zur Fortschrittskontrolle und Freigabeprüfung; die endgültige Freigabe durch Josh erfolgt weiterhin im Chat.
Material für stock-footage-reel hinzufügen
python3 <SKILLS_DIR>/openmontage-house/scripts/om_clips.py \
--query "1960s computer room" --query "mission control" \
--sources archive_org,nasa,loc,nara,wikimedia --n 3 --out $D/work/om_clips
Gibt für jedes Material einen Thumbnail-Pfad und einen pick-Eintrag ({"source":"file",...}) aus, der direkt in shots.json eingefügt werden kann. Die Lizenzaufzeichnungen werden in om_clips/om_credits.json gespeichert. Thumbnails mit „Read“ ansehen, Lizenz einzeln prüfen, dann ins Video einfügen.
Verfügbare Quellen: pexels (mit Schlüssel), archive_org, wikimedia, nasa, nara, loc, coverr, pond5_pd. NASA-Downloads können manchmal zeitüberschreiten (images-assets.nasa.gov); bei Fehler wird note: ausgegeben, einfach auf eine andere Quelle wechseln.
Lizenz (AGPLv3)
Die Verwendung von OpenMontage als Werkzeug zur Videoproduktion, auch für kommerzielle Beiträge, ist erlaubt; die fertigen Videos unterliegen nicht der AGPL. Nur wer „den Code modifiziert und als Netzwerkdienst für andere bereitstellt“, muss den Quellcode offenlegen. Modifizierte Versionen von OpenMontage daher nicht als öffentlichen Dienst hosten.