Communitygithub.com

bounce12340/josh-video-skills

OpenMontage(오픈소스 AI 비디오 제작 파이프라인, <SKILLS_DIR>/OpenMontage)를 조쉬의 비디오 제작에 맞춰 '하우스 룰(House Rules)'로 감싸는 어댑터 레이어입니다. 긴 영상의 클립 분할(clip-factory), 실제 화면 녹화 튜토리얼(screen-demo), 번역 더빙(localization-dub), 팟캐스트 영상 전환(podcast-repurpose), 참조 영상 분석(reference video 분석), 내레이션 없는 다큐멘터리 몽타주(documentary-montage), 그리고 stock-footage-reel에 NASA/미국 의회도서관/NARA/Archive.org의 오래된 영상을 추가하는 데 사용됩니다.

josh-video-skills란 무엇인가요?

이 스킬은 OpenMontage라는 오픈소스 AI 비디오 제작 파이프라인을 조쉬의 특정 제작 규칙(House Rules)에 맞춰 사용할 수 있도록 래핑한 어댑터입니다. 주로 긴 영상에서 짧은 클립 추출, 실제 화면 녹화 튜토리얼, 번역 더빙, 팟캐스트 영상화, 참조 영상 분석, 그리고 내레이션이 없는 다큐멘터리 스타일의 몽타주 제작에 활용됩니다. OpenMontage의 기능을 그대로 사용하되, 9:16 세로 비율, ElevenLabs 'Sarah Explains' 음성, 대만 번체 자막 등과 같은 조쉬팀의 통일된 제작 규칙을 자동으로 적용하여 일관된 품질을 유지합니다. 또한 om_clips.py 스크립트를 통해 퍼블릭 도메인 영상 소스를 검색하고 저작권 정보를 기록하는 기능을 제공합니다. 이 스킬은 초안 생성까지만 담당하며, 최종 게시는 메인 봇이 담당합니다.

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

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

openmontage-house:OpenMontage + Josh 하우스 룰

OpenMontage 본체:<SKILLS_DIR>/OpenMontage(commit 9327439, 2026-10-03, AGPLv3). 본체의 전체 설명:AGENT_GUIDE.md, CLAUDE.md, skills/INDEX.md, pipeline_defs/*.yaml. 이 스킬은 초안만 생성하며, 게시하지 않습니다. 게시는 항상 메인 봇이 Josh 확인 후 처리합니다.

먼저 OpenMontage를 사용할지 결정하세요(<SKILLS_DIR>/INDEX.md의 결정표 참고)

  • 내레이션이 있는 이중 언어 릴(Reel), 실제素材 편집 → stock-footage-reel(하우스 형식)을 사용하고, OpenMontage의 documentary-montage는 사용하지 마세요. 더 많은 오래된 영상/퍼블릭 도메인素材가 필요할 때는 아래 om_clips.py를 사용하여 가져온 후 pick: {"source":"file", ...}로 shots.json에 넣으세요.
  • Vox/지식 해설 애니메이션 → huashu-art-motion을 사용하고, OpenMontage의 animated-explainer는 사용하지 마세요.
  • 기타(클립 분할, 화면 녹화, 번역 더빙, 팟캐스트, 참조 영상 분석, 내레이션 없는 몽타주) → OpenMontage를 사용하고, 아래 하우스 룰로 기본값을 덮어쓰세요.

환경

source <SKILLS_DIR>/OpenMontage/om-env.sh   # .venv와 Node 22를 활성화하고 OpenMontage 디렉토리로 이동
python -c "from tools.tool_registry import registry; import json; registry.discover(); print(json.dumps(registry.support_envelope(), indent=2))"   # 사용 가능한 도구 확인
  • 설치됨:requirements.txt, Remotion composer(npm), piper-tts, faster-whisper, yt-dlp, youtube-transcript-api, opencv-headless, HyperFrames(npx 캐시 0.8.147), CPU 버전 torch 2.14.1 + transformers 5.19(GPU 패키지 없음). CLIP 의미 매칭 가능:corpus_builder로素材 라이브러리를 구축한 후 clip_search의 rank_for_slot이 텍스트 설명으로素材를 정렬(점수 0.25 이상 사용 가능);video_understand(CLIP 모드)도 사용 가능. 처음에는 Hugging Face에서 CLIP 모델(openai/clip-vit-base-patch32)을 다운로드하며, CPU에서 5개素材로 작은 라이브러리를 구축하는 데 약 1분 소요됩니다. corpus_builder가 degraded를 표시하는 것은素材 소스의 절반에 키가 없기 때문일 뿐, 사용에는 영향을 미치지 않습니다.
  • 키:PEXELS_API_KEY, ELEVENLABS_API_KEY는 모두 머신 환경 변수입니다(새 셸에서만 사용 가능, 필요한 경우 bash -lc 사용). om-env.sh가 이를 상속하며, .env에는 일부러 기록하지 않으므로 출력하거나 파일에 기록하지 마세요. 다른 키는 모두 비어 있습니다. OpenMontage를 위해 새 계정이나 유료 키를 신청하지 마세요. 추가하기 전에 먼저 Josh에게 물어보세요.
  • 유료 생성(Kling, Veo, Seedance, FLUX 등)에는 현재 키가 없으므로 selector가 자동으로 건너뜁니다. OpenMontage는 비용이 발생하기 전에 견적을 제시하며, Josh의 동의가 필요합니다.

하우스 룰(OpenMontage 기본값 덮어쓰기, 모든 영상에 적용)

  1. 화면:세로 1080x1920(OpenMontage의 대부분 기본값은 16:9이므로, 작업 시작 시 9:16을 지정하세요). 3분 이내, 간결함보다 완전함이 우선입니다.
  2. 더빙:ElevenLabs 영어 여성 음성 Sarah Explains(voice_id Nhs7eitvQWFTQBsf0yiT), model eleven_multilingual_v2.
    • 우선:OpenMontage 자체 elevenlabs_tts 도구를 직접 사용하여 생성(테스트 완료). voice_id를 지정하고, tts_selector가 자동으로 음성을 선택하거나 piper로 폴백하지 않도록 하세요. 예시:ElevenLabsTTS().execute({"text":..., "voice_id":"Nhs7eitvQWFTQBsf0yiT", "model_id":"eleven_multilingual_v2", "output_path":".../vo.mp3"}). 대본 한 번에 한 번만 전송하고, 중복 전송하지 마세요(중복 차감됨).
    • 대안:직접 API가 실패할 경우, user-Elevenlabs 커넥터(creative_generate_speech, generations_count: 1)를 사용하여 vo.mp3를 생성한 후, 기성 내레이션으로 OpenMontage에 전달하세요. piper를 공식 더빙으로 사용하지 마세요.
  3. 자막:번체 중국어 메인 자막 + 아래에 한 줄 더 작은 영어(영어는 더빙에 대응). 대만 용어 사용, 「」 인용부호 사용, 대시 사용 금지. 자막 하단이 y=1490 아래로 내려가지 않도록 하여 IG 인터페이스를 피하세요.
  4. 커버:B 클립보 Vox 템플릿, <YOUR_WORKSPACE>/media-team/00-profile/covers/render.py(OpenMontage 자체 커버/썸네일 사용 금지).
  5. 라이선스:모든素材를 credits.json에 기록(URL, 저자, 라이선스). Archive.org의 라이선스는 "verify per item"이므로, 각 항목의 페이지를 열어 퍼블릭 도메인 또는 CC0/CC BY인지 반드시 확인하세요. BBC, TV 방송국, 영화사의 영상은 사용하지 마세요. CC BY는 게시물 설명에 표시해야 합니다.
  6. 파일:IG 완성본 H.264/AAC, 45MB 미만으로 압축(ffprobe로 크기와 길이 확인).
  7. 내용:원문에 충실하고, 숫자와 인용을 조작하지 말며, 원저자를 표시하세요.
  8. 출력:완성본은 <YOUR_WORKSPACE>/media-team/03-drafts/<주제>/에 배치하고, OpenMontage의 projects/는 작업 영역으로만 사용하세요.

각 워크플로우 시작 방법

OpenMontage 폴더에서 Claude Code(CLAUDE.md를 읽음)를 열거나, 다른 봇이 직접 skills/pipelines/<워크플로우>/executive-producer.md를 읽고 단계별로 진행하세요. 작업 시작 시 위의 하우스 룰을 먼저 붙여넣으세요.

  • clip-factory:긴 영상(YouTube, 라이브, 팟캐스트 녹화)을 여러 개의 세로 클립으로 분할. yt-dlp로 영상을 다운로드하기 전에 Josh가 사용 권한이 있는지 확인하세요.
  • screen-demo:실제 화면 녹화 튜토리얼(screen_recorder/cap_recorder 사용 가능).
  • localization-dub:영상을 다른 언어로 번역하여 더빙. 더빙도 먼저 ElevenLabs 커넥터로 생성한 후, 싱크 및 믹싱을 위해 전달하세요.
  • podcast-repurpose:팟캐스트 오디오 파일을 요약 클립으로 변환.
  • 참조 영상 분석:릴(Reel)/쇼츠(Short)를 제공하면 리듬, 오프닝, 구조를 분석하고 2~3개의 오리지널 버전을 제안하며 비용을 추정(animated-explainer, animation, cinematic, character-animation에 reference_input 있음). 구조만 학습하고, 화면이나 카피를 복사하지 마세요.
  • documentary-montage:내레이션이 없거나 적은 주제 몽타주(Adam Curtis 스타일). CLIP 의미 매칭을 사용하여 각 섹션에 자동으로素材를 선택합니다. 내레이션이 있는 릴은 여전히 stock-footage-reel을 사용하세요.
  • Backlot 스토리보드:python -m backlot open <project-id>(로컬 보드, 관찰용으로만 사용, 실패해도 제작에 영향 없음). 진행 상황 확인 및 관문 확인용이며, Josh 확인은 여전히 채팅에서 이루어져야 합니다.

stock-footage-reel용素材 가져오기 추가

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

각각의 썸네일 경로와 shots.json에 직접 붙여넣을 수 있는 pick({"source":"file",...})을 출력하며, 라이선스 기록은 om_clips/om_credits.json에 기록됩니다. Read를 사용하여 썸네일을 보고 선택한 후, 각 항목의 라이선스를 확인한 후에만 영상에 포함시키세요. 사용 가능한 소스:pexels(키 있음), archive_org, wikimedia, nasa, nara, loc, coverr, pond5_pd. NASA 다운로드는 때때로 연결 시간이 초과될 수 있으며(images-assets.nasa.gov), 실패 시 note:를 출력하므로 다른 소스를 사용하세요.

라이선스(AGPLv3)

OpenMontage를 도구로 사용하여 영상을 제작하고 상업 게시물을 만드는 것은 가능하며, 생성된 영상은 AGPL의 제한을 받지 않습니다. 오직 "코드를 수정하여 네트워크 서비스로 제공하는 경우"에만 소스 코드를 공개해야 합니다. 따라서 수정된 OpenMontage를 외부 서비스로 운영하지 마세요.

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 風格」、「素材庫剪輯」。

관련 스킬