Communitygithub.com

bounce12340/josh-video-skills

Capa de reglas propias para Josh al usar OpenMontage (pipeline de vídeo AI de código abierto, en <SKILLS_DIR>/OpenMontage). Aplica para: cortar vídeos largos en clips cortos (clip-factory), grabaciones de pantalla reales (screen-demo), traducción y doblaje (localization-dub), podcasts a vídeos (podcast-repurpose), análisis de vídeos de referencia, montajes documentales sin voz ni locución, y añadir material antiguo de NASA, Library of Congress, NARA, Archive.org a stock-footage-reel. Frases activadoras: «Usa OpenMontage», «Cortar vídeo largo», «Hazlo como este Reel», «Traducir y doblar», «Vídeo tutorial de pantalla».

¿Qué es josh-video-skills?

Esta skill actúa como una capa de configuración personalizada sobre OpenMontage, un pipeline AI de código abierto para producción de vídeos. Su propósito es aplicar las reglas y estilos propios de Josh (el creador de contenido) a cada proyecto, sobrescribiendo los valores por defecto de OpenMontage. Soporta múltiples flujos de trabajo: corte de vídeos largos en clips verticales (clip-factory), grabaciones de pantalla para tutoriales reales (screen-demo), traducción y doblaje de vídeos a otros idiomas (localization-dub), reutilización de contenido de podcast en vídeos cortos (podcast-repurpose), análisis de vídeos de referencia para extraer su estructura rítmica, y montajes documentales sin voz (documentary-montage) inspirados en el estilo de Adam Curtis. Además, permite enriquecer el flujo stock-footage-reel con material antiguo y de dominio público proveniente de fuentes como NASA, Library of Congress, NARA y Archive.org, usando un script auxiliar (om_clips.py). Las reglas propias son muy específicas: formato vertical 1080×1920, duración máxima de 3 minutos, voz de ElevenLabs (Sarah Explains) con modelo multilingüe, subtítulos en chino tradicional con inglés pequeño debajo, portada personalizada via render.py, y registro obligatorio de licencias en credits.json. No interactúa con servicios de pago salvo autorización de Josh, y está diseñada para ser ejecutada con Claude Code o cualquier otro bot que siga la documentación de OpenMontage en sus pipelines.

Compatible con✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/bounce12340/josh-video-skills/tree/HEAD/openmontage-house

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

openmontage-house: OpenMontage + Reglas Propias de Josh

OpenMontage original: <SKILLS_DIR>/OpenMontage (commit 9327439, 2026-10-03, AGPLv3). Documentación completa del original: AGENT_GUIDE.md, CLAUDE.md, skills/INDEX.md, pipeline_defs/*.yaml. Esta skill solo hace bocetos, no publica. La publicación la gestiona el bot principal tras la confirmación de Josh.

Decide primero si usar OpenMontage (consulta la tabla de decisión en <SKILLS_DIR>/INDEX.md)

  • Reels bilingües con locución, material real → usa stock-footage-reel (formato propio), no el documentary-montage de OpenMontage. Si necesitas más material antiguo o de dominio público, usa el script om_clips.py de abajo y luego añádelo con pick: {"source":"file", ...} en shots.json.
  • Animaciones explicativas estilo Vox → usa huashu-art-motion, no el animated-explainer de OpenMontage.
  • Otros casos (corte de vídeos, grabación de pantalla, traducción y doblaje, podcast, análisis de vídeos de referencia, montaje documental sin voz) → usa OpenMontage, sobrescribiendo sus valores por defecto con las reglas propias de abajo.

Entorno

source <SKILLS_DIR>/OpenMontage/om-env.sh   # Activa .venv y Node 22, y cd a OpenMontage
python -c "from tools.tool_registry import registry; import json; registry.discover(); print(json.dumps(registry.support_envelope(), indent=2))"   # Muestra qué herramientas están disponibles
  • Instalado: requirements.txt, Remotion composer (npm), piper-tts, faster-whisper, yt-dlp, youtube-transcript-api, opencv-headless, HyperFrames (npx cached 0.8.147), y CPU-torch 2.14.1 + transformers 5.19 (sin paquetes GPU). CLIP para emparejamiento semántico disponible: corpus_builder construye biblioteca de material, luego clip_search con rank_for_slot ordena material por descripción textual (puntuación >=0.25 usable); también funciona video_understand (modo CLIP). La primera vez descarga el modelo CLIP de Hugging Face (openai/clip-vit-base-patch32), tarda ~1 minuto en CPU para una biblioteca pequeña de 5 clips. corpus_builder muestra "degraded" solo porque la mitad de las fuentes de material no tienen clave, no afecta al uso.
  • Claves API: PEXELS_API_KEY, ELEVENLABS_API_KEY son variables de entorno de la máquina (solo disponibles en un shell nuevo; usa bash -lc si es necesario). om-env.sh las hereda, deliberadamente no escritas en .env. No las imprimas ni las escribas en archivos. El resto de claves vacías. No solicites nuevas cuentas o claves de pago para OpenMontage sin preguntar primero a Josh.
  • Generación de pago (Kling, Veo, Seedance, FLUX, etc.) sin claves, el selector las omitirá automáticamente. OpenMontage cotizará antes de gastar dinero y necesitará la aprobación de Josh.

Reglas propias (sobrescriben los valores por defecto de OpenMontage, aplicar a cada vídeo)

  1. Formato: vertical 1080×1920 (la mayoría de valores por defecto de OpenMontage son 16:9; especificar 9:16 al comenzar). Duración ≤3 minutos. Priorizar integridad sobre concisión.
  2. Voz en off: ElevenLabs voz femenina inglesa Sarah Explains (voice_id Nhs7eitvQWFTQBsf0yiT), modelo eleven_multilingual_v2.
    • Opción principal: usar directamente la herramienta elevenlabs_tts de OpenMontage (probada y funcional). Especificar voice_id, no permitir que tts_selector elija automáticamente ni que caiga en piper. Ejemplo: ElevenLabsTTS().execute({"text":..., "voice_id":"Nhs7eitvQWFTQBsf0yiT", "model_id":"eleven_multilingual_v2", "output_path":".../vo.mp3"}). Enviar un solo lote de texto a la vez (no repetir para evitar cargos duplicados).
    • Alternativa: si falla la API directa, usar el conector user-Elevenlabs (creative_generate_speech, generations_count: 1) para generar vo.mp3, luego pasarlo como voz en off ya lista a OpenMontage. No usar piper como voz oficial.
  3. Subtítulos: línea principal en chino tradicional + línea más pequeña debajo en inglés (correspondiente a la voz). Usar comillas «», no guiones largos. El borde inferior del subtítulo no debe estar por debajo de y=1490, evitando la interfaz de IG.
  4. Portada: plantilla estilo Vox de B recortes, <YOUR_WORKSPACE>/media-team/00-profile/covers/render.py (no usar la portada/miniatura por defecto de OpenMontage).
  5. Licencias: registrar cada material en credits.json (URL, autor, licencia). Para Archive.org, la licencia es "verificar por elemento", abrir cada archivo para confirmar que es dominio público o CC0/CC BY; no usar material de BBC, cadenas de TV o productoras cinematográficas. Para CC BY, mencionar al autor en la descripción de la publicación.
  6. Archivo final: IG en H.264/AAC, comprimido a menos de 45 MB (verificar tamaño y duración con ffprobe).
  7. Contenido: fiel al original, no inventar cifras ni citas, atribuir al autor original.
  8. Salida: producto final en <YOUR_WORKSPACE>/media-team/03-drafts/<tema>/; la carpeta projects/ de OpenMontage es solo zona de trabajo.

Cómo iniciar cada flujo

En la carpeta de OpenMontage, abre Claude Code (leerá CLAUDE.md) u otro bot que lea directamente skills/pipelines/<flujo>/executive-producer.md y siga las fases. Al comenzar, pega las reglas propias de arriba.

  • clip-factory: cortar vídeos largos (YouTube, directos, grabaciones de podcast) en múltiples clips verticales. Antes de descargar el vídeo con yt-dlp, confirmar que Josh tiene permiso para usarlo.
  • screen-demo: grabaciones reales de pantalla para tutoriales (screen_recorder/cap_recorder disponibles).
  • localization-dub: traducir y doblar vídeos a otro idioma. Generar la voz primero con el conector ElevenLabs, luego pasar a OpenMontage para sincronización y mezcla.
  • podcast-repurpose: convertir archivos de audio de podcast en vídeos cortos destacados.
  • Análisis de vídeos de referencia: pegar un Reel/Short para que analice su ritmo, apertura y estructura, proponiendo 2-3 versiones originales con estimación de costos (animated-explainer, animation, cinematic, character-animation tienen reference_input). Solo aprender la estructura, no copiar imágenes ni texto.
  • documentary-montage: montajes documentales sin voz o con poca locución (estilo Adam Curtis), usando CLIP para emparejar material semánticamente a cada segmento. Para reels con locución, seguir usando stock-footage-reel.
  • Storyboard Backlot: python -m backlot open <project-id> (tablero local, solo para observación; si falla no afecta a la producción). Solo para ver progreso y confirmar hitos; la confirmación final de Josh se hace en el chat.

Añadir material a stock-footage-reel

python3 <SKILLS_DIR>/openmontage-house/scripts/om_clips.py \
  --query "sala de ordenadores años 60" --query "control de misión" \
  --sources archive_org,nasa,loc,nara,wikimedia --n 3 --out $D/work/om_clips

Imprime la ruta de la miniatura de cada clip y el pick que se puede pegar directamente en shots.json ({"source":"file",...}). El registro de licencias se guarda en om_clips/om_credits.json. Usa la función Read para ver las miniaturas y seleccionar; confirma la licencia de cada clip antes de incluirlo en el vídeo. Fuentes disponibles: pexels (con clave), archive_org, wikimedia, nasa, nara, loc, coverr, pond5_pd. A veces las descargas de NASA (images-assets.nasa.gov) agotan el tiempo de espera; si falla imprime note:, cambia de fuente.

Licencia (AGPLv3)

Puedes usar OpenMontage como herramienta para hacer vídeos y publicaciones comerciales; los vídeos producidos no están sujetos a AGPL. Solo si modificas su código y lo ofreces como servicio web a terceros deberás publicar el código fuente. Por lo tanto, no montes un OpenMontage modificado como servicio externo.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

bounce12340/josh-video-skills

「名人訪談/演講片段」直式 Reel(Fox Hsiao 式「解說穿插原聲」):配音依語言選聲(中文用「<YOUR_VOICE_NAME>」<YOUR_ELEVENLABS_VOICE_ID>;英文用 Sarah Explains)+繁中主字幕的解說段落,中間穿插 15 到 30 秒的名人原聲片段(16:9 置中、上下模糊底、「原聲 姓名|場合|日期」出處標籤、左上「影片/原頻道」),結尾拋問題給觀眾。一份 JSON spec 一路做到成片、720p 預覽、聯絡表、credits.json、封面。觸發語:「名人訪談」、「演講片段」、「訪談 Reel」、「Fox 式」、「解說加原聲」、「interview reel」。

bounce12340/josh-video-skills

收到「做一支影片/Reel」時先用:判斷影片類型、轉給對應的影片 skill,套用共用本家規則並交給事實編輯。只做草稿,不發文。

bounce12340/josh-video-skills

用 Playwright 錄「公開網頁」的操作畫面(捲動、滑過、點連結、高亮重點、章節卡),輸出 1080x1920 直式 mp4,當 Reel 的工具/網站導覽素材。觸發語:「錄一段網頁操作」「網站導覽素材」「螢幕錄影素材」「screen record」。只錄公開頁面,不登入、不發文。

bounce12340/josh-video-skills

「真實素材剪輯」直式短影音(AYi @ayi_ainotes 那種紀錄片風):照口播稿每一句,自動搜尋並下載免費可商用素材(Pexels、Mixkit Free、Wikimedia Commons),加上洋紅調的 1950 到 70 年代 Prelinger 公有領域老片,硬切剪輯,燒上雙語字幕(繁中+英文,重點字金色),左上固定標題,ElevenLabs 配音,暗色合成器配樂,片尾金句卡加出處小字,再用 B 剪報 Vox 樣板出封面。觸發語:「做一支真實素材剪輯」、「stock footage reel」、「AYi 風格」、「素材庫剪輯」。

Skills relacionados