Communitygithub.com

NiJingzhe/promo-video-skill

비트에 맞춰진 제품 프로모션/런칭 영상을 처음부터 끝까지 제작합니다. 인간이 중간중간 검토하며, 음악 선택, 스토리보드 설계, 샷 스크립트 및 ElevenLabs 음성 해설 대본 작성, 음성 편집, Remotion으로 비디오 제작(three.js 메탈 렌더, 제품 UI 복제, 가상 카메라 푸시/풀/팬, 모든 컷이 비트에 맞춰짐)까지 포함합니다. 사용자가 프로모션 영상, 트레일러, 런칭 영화, 제품 티저, 모션 그래픽 광고를 원하거나, 비디오를 음악에 동기화하거나 스토리보드 + VO 대본 생성을 요청할 때 사용하세요.

promo-video-skill란 무엇인가요?

이 스킬은 사용자가 원하는 제품 프로모션 비디오를 엔드 투 엔드로 제작하는 AI 에이전트 기능입니다. 총 6단계로 구성되며, 각 단계마다 인간이 중간 결과물을 검토하고 승인하도록 설계되었습니다. 음악은 Epidemic Sound에서 선택하고 비트와 템포를 정밀 분석하여 모든 컷이 음악과 완벽하게 동기화됩니다. 스토리보드는 마크다운 파일로 작성되고, ElevenLabs를 통해 음성 해설을 생성하며, 최종 비디오는 Remotion(React 기반 비디오 프레이밍워크)을 사용하여 three.js 메탈 렌더, 제품 UI 복제, 가상 카메라 효과 등으로 제작됩니다. 이 스킬은 Claude Code, Cursor, Codex 등 에이전트 환경에서 사용 가능하며, 브라우저 자동화 도구(예: ego-browser)를 활용해 음악 선택과 음성 생성을 부분 자동화할 수 있지만, 로그인과 결제는 항상 인간이 직접 수행해야 합니다. 각 단계별로 실시간 검토 UI(cut_ui.py, review_ui.py)를 제공하여 인간의 피드백을 즉시 반영할 수 있습니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add NiJingzhe/promo-video-skill

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

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

문서

promo-video

영화는 여섯 단계로 제작됩니다. 각 단계는 인간이 확인하는 것으로 끝납니다. 앞서 나가지 마세요: 비용이 많이 드는 단계(빌드)는 앞 단계가 확정되었을 때만 저렴합니다. 모든 화면 이벤트가 음악과 음성에 맞춰 배치되기 때문입니다.

처음에 인간에게 계획을 한 번 설명하고(README.md에 인간용 버전이 있습니다), 그런 다음 단계를 순서대로 진행하세요. 그들의 언어로 대화하세요. 모든 프로젝트 파일을 하나의 디렉토리(<project>/: audio/, vo/, PLAN.md, elevenlabs.md, video/의 Remotion 프로젝트)에 보관하세요.

#단계당신이 하는 일인간이 하는 일참고 자료
1음악트랙 분석, 실제 템포와 하드 마크 찾기Epidemic Sound에서 트랙 선택, Create a cut으로 길이 조정, 파일 제공references/01-music.md
2스토리보드안내 질문, PLAN.md 작성(음악에 맞춘 샷 테이블)답변, 승인references/02-storyboard.md
3음성 대본대사 + 태그된 ElevenLabs 테이크 작성ElevenLabs에서 생성, 파일 전송references/03-voiceover.md
4음성 편집테이크에서 cut_ui.py 실행, 분할, 레벨 조정, 각 대사 배치브라우저 페이지에서 대사 사이 클릭, 완료 누름, 배치 테이블 확인references/03-voiceover.md
5빌드template/에서 Remotion 프로젝트, 장면별로, 각각 스틸 확인스틸/드래프트 렌더 검토references/04-build.md
6검토 + 다듬기렌더, 음량 확인, 렌더에서 review_ui.py 실행, 노트 + 프레임 읽기, 수정, 재렌더검토 페이지에서 시청, 화면에 노트 남기기, 승인/변경 필요 선택references/05-review.md

브라우저 자동화: 제공하되, 가정하지 마세요

1단계와 3단계는 웹사이트(Epidemic Sound, ElevenLabs)에서 이루어집니다. 브라우저 자동화 스킬이나 도구(예: ego-browser, Playwright 설정, 브라우저 MCP)가 있다면 그 부분을 직접 수행하겠다고 제안하고, 승인을 요청하기 전에 관련 사항을 분명히 설명하세요:

  • 계정: 두 사이트 모두 계정이 필요합니다(Epidemic Sound은 유료 구독이며 트라이얼 제공; ElevenLabs는 무료 티어와 월별 글자 제한이 있습니다). 인간이 계정이 없으면 그들이 직접 가입합니다: 당신은 계정을 생성하지 않습니다.
  • 비용: ElevenLabs는 글자 수로 청구됩니다; 40-60초 영화는 약 600-1000자이며, 재생성할 때마다 다시 청구됩니다. Epidemic 다운로드는 요금제에 포함됩니다. 예상 비용을 알려주고 먼저 물어보세요.
  • 로그인과 결제는 인간의 몫: 로그인, 2FA, 캡차 및 결제 화면이 나오면 브라우저를 인간에게 넘기고(ego-browser의 task.handOff()), 인간이 완료했다고 말할 때까지 기다리세요. 절대 비밀번호를 입력하지 말고, 카드 정보를 입력하거나 저장하지 말며, API 키를 페이지나 파일에 붙여넣지 마세요.
  • 승인 후 당신이 할 수 있는 일: 합의된 분위기와 BPM으로 트랙 검색/필터링하고 인간이 들을 후보 트랙 열기(인간이 선택), 대상 길이로 Create a cut 클릭 및 결과 다운로드; elevenlabs.md 테이크 붙여넣기, 인간이 선택한 음성과 설정 적용, 한 번 생성, mp3 다운로드.
  • 그러한 도구가 없거나 인간이 거절하면: 정확한 단계(1단계 및 3단계 문서)를 제공하고 파일을 기다리세요.

선택은 항상 인간의 몫입니다: 트랙과 음성은 그들을 위해 선택되지 않습니다.

기본 규칙 (어렵게 배운 교훈)

  1. 보여지는 모든 것은 실제여야 합니다. 실제 예제 메쉬(실제 CAD/STEP 테셀레이트), 코드 패널의 실제 코드 및 API, 제품 자체 프론트엔드 컴포넌트로 재구축된 UI. 가짜처럼 보이는 콘텐츠는 시청자가 가장 먼저 알아차리는 것입니다. 실제 데이터를 얻을 수 없으면 말하고 물어보세요 - 지어내지 마세요.
  2. 음악이 시계입니다. 실제 템포를 측정하세요(scripts/music_analyze.py가 피팅합니다; 1.2%만 틀린 추정 BPM은 스플라이스를 1/3비트 어긋나게 하여 인간이 불편함을 느끼게 합니다). 모든 시간은 src/marks.ts에 있습니다; 장면은 이를 가져와 사용하며, 절대 초를 하드코딩하지 마세요.
  3. 외부 공개 또는 비용이 드는 단계는 확인하세요: 음악 파일과 음성은 인간이 선택할 몫입니다; 당신이 그들을 위해 선택하지 마세요. 촬영하는 제품에 표시되는 API 키나 로그인 토큰을 절대 출력하지 마세요.
  4. 스틸로 화면을 확인하세요, 믿음으로 하지 마세요: 마크(비트 히트, 컷, 로고)에서 프레임을 렌더링하고 전체 렌더 전에 확인하세요. 전체 렌더는 몇 분 걸리지만, 스틸은 몇 초면 됩니다.
  5. 이전 버전을 보관하세요. 인간이 축소판이나 변형을 요청하면 프로젝트 디렉토리를 복사하고 복사본을 편집하세요(cp -R video video_short, node_modules는 심링크).
  6. 편집자처럼 보고하세요: 무엇이 변경되었는지, 파일 경로, 무엇을 듣거나 볼지, 그리고 몇 초에 있는지.

이 스킬의 도구들

모든 Python 스크립트는 uv run으로 실행됩니다(종속성은 각 파일에 선언되어 있으며, 설치할 것이 없습니다).

스크립트목적
scripts/music_analyze.py track.wav --out beats.json실제 BPM(피팅됨), 비트/마디 그리드, 섹션, 드롭, 무음 갭
scripts/music_splice.py track.wav out.wav --beats beats.json --keep a:b --keep c:d마디 정렬, 크로스페이드 점프로 트랙 단축; 조인 확인
scripts/cut_ui.py take.mp3 --mode cuts --script elevenlabs.md --out vo/cuts.json브라우저 커팅 페이지(파형, 대사가 줄별로 표시된 스크립트, 음성 vs 일시정지, 확대/축소, 실행취소/재실행): 인간이 재생하고 대사가 끝나는 지점을 클릭한 후 완료를 누르면 탭이 닫히고 cuts.json이 당신에게 전달됩니다. --mode marks --beats beats.json은 비트 그리드에 음악의 드롭/스탭/브렉다운을 표시합니다
scripts/vo_cut.py take.mp3 --regions vo/cuts.json --out vo/ElevenLabs 테이크를 레벨링된 클립 + clips.json으로 분할합니다(또는 인간이 시간 입력을 선호하면 --lines N --ends t1,...)
scripts/review_ui.py out/promo.mp4 --out review/review.json [--overlay overlay.json]브라우저 검토 페이지: 상단 모니터, 하단 타임라인 스트립(필름스트립 + 완성된 믹스의 파형 + 선택적 비트/마크/음성 라인). 인간은 특정 순간이나 범위에 노트를 남깁니다; 각 노트는 정확한 프레임을 전달합니다; 승인 또는 변경 필요로 마무리하면 review.json이 당신에게 전달됩니다
scripts/new_project.sh <dir> [--link-modules path]template/에서 Remotion 프로젝트 생성(메탈 스테이지, 비트 클록, VO 믹스, 가상 카메라)
template/tools/mesh.pySTEP/OCC 형상 -> three.js용 컴팩트 메쉬 + B-rep 에지
template/tools/refold.pyOCC가 읽을 수 없는 거대한 STEP 메타데이터 문자열을 비움
template/tools/variants.py, stages.py메쉬 파라미터 변형 / CAD 노트북의 모든 중간 솔리드("슬라이더를 드래그하면 모델이 따라옴" 및 "셀별" 장면용)

필요 사항: ffmpeg, node 20+, uv. headless Chrome의 three.js용: playwright의 chrome-headless-shell(new_project.sh가 설치).

관련 스킬