reel은(는) 무엇을 하나요?
파일 위치 및 최초 설정
- 파이프라인 폴더 = 이 스킬이 위치한
video-pipeline폴더 (이 파일보다 세 단계 위:video-pipeline/.claude/skills/reel/SKILL.md). 모든 명령은 해당 폴더에서 실행하세요. 프로젝트는 그 안의projects/<날짜>-<슬러그>/에 생성됩니다. - PY = 파이프라인 전용 Python입니다. 아래 모든 명령에 시스템 Python 대신 항상 이것을 사용하세요:
Windows:
.venv/Scripts/python.exe, Mac/Linux:.venv/bin/python. - PY가 아직 없으면, 사용자에게 입력을 요청하지 않고 먼저 설정하세요:
python install.py실행 (Windows:py install.py, Mac:python3 install.py). 만약 "ffmpeg가 없음" 또는 "git이 없음" 오류가 발생하면, 해당 도구를 사용자 대신 설치하세요 (Windows:winget install ffmpeg/winget install Git.Git; Mac:brew install ffmpeg). 새 명령을 찾을 수 없다면 Claude Code를 다시 시작하라고 안내한 후, install을 다시 실행하세요. install이 READY를 출력하면PY scripts/selftest.py를 실행하여9/9 통과를 확인하세요.
스타일 (참조 당 1회) -> 1 브리핑 -> [게이트: 사용자가 스크립트 승인] -> 2 촬영 (사용자)
-> 3 정렬 -> 4 컷 -> 5 효과 -> 6 프리뷰 -> [게이트: 사용자 피드백, 반복] -> 7 최종
당신은 작성하고, 자르고, 렌더링합니다. 사용자는 촬영하고, 승인하고, 게시합니다. 여기서 어떤 것도 게시되지 않습니다.
0. 참조 영상에서 스타일 추출 (사용자가 참조 편집본을 보낼 때)
PY scripts/style_ref.py <참조.mp4> [추가 참조] --name <스타일-이름>styles/refs/<스타일-이름>/에 생성된 모든 이미지를 열고report.json수치를 읽습니다.styles/default.json과 다른 키만 포함하여styles/<스타일-이름>.json을 작성합니다: 캡션 폰트/크기/색상/위치/그룹당 단어 수/대문자, 화면 텍스트 모양, 컷 강도(cut.max_gap: 빠른 편집일수록 더 좁게), 효과 간격(effects.min_gap, 참조 영상의 템포 기반), 음량.styles/<스타일-이름>.md를 작성합니다: 편집이 무엇을 하는지, 일반 언어로 설명합니다. 51개 효과 중 어떤 것이 당신이 본 움직임과 일치하는지, 화면에서 사건이 얼마나 자주 발생하는지, 후크가 어떻게 시작되는지, 절대 하지 않는 것이 무엇인지. 측정된 수치(분당 컷 수, 샷 길이)를 추가합니다.- 사용자에게 .md를 보여주고 무엇을 잘못 이해했는지 묻습니다. 당신은 샘플 프레임만 보고, 움직임이나 소리는 보지 못합니다:
그 점을 말하고, 사용자가 마음에 드는 타임스탬프를 지정하도록 요청하세요 (
--at 7.2,12는 해당 프레임을 캡처합니다).
폰트: 캡션은 vendor/claude-video-effects/fonts/에 있는 모든 폰트(Montserrat, Anton,
Archivo Black, Inter, Instrument Serif, Playfair Display, Space Mono, Permanent Marker) 또는
사용자가 fonts/에 드롭한 .ttf/.otf 파일을 사용할 수 있습니다.
1. 브리핑
PY scripts/new_project.py "<슬러그>" --lang id --style <스타일>(lang: id, en 또는 auto).~/.claude/youtube/voice.md또는~/.claude/instagram/voice.md가 있으면 읽습니다. 사용자의 언어와 말투로 작성합니다. 숫자, 결과 또는 클라이언트를 절대 임의로 만들지 말고, 묻거나{{angka}}로 남겨둡니다.script.json을 채웁니다: 사용자가 말할 문장당 한 줄, 역할은hook/body/cta.- Hook: 3가지 옵션을 작성하고 하나를 추천하며, 약 3초 이내로 유지합니다.
onscreen: 후크(및 제목 카드가 필요한 모든 줄)에 대한 짧은 텍스트.effects: 단어 위에 효과 큐:{"fx": "backdrop-word", "on": "GRATIS", "text": "GRATIS"}. 스타일의 .md에서 선택합니다. 최소effects.min_gap초에 하나의 효과만 적용합니다. 모든 줄에 적용되지는 않습니다. 사용자 자신의 릴을 사용하는 효과(orbit,phone-fan,place-in-grid,fan-build,noise,profile-wall,carousel-spin)는"images": "<폴더>"가 필요합니다.- 차트 및 카운터(
liquid-glass-graph,over-the-shoulder-zoom)는 실제 숫자로만 사용합니다.
- 그 옆에
brief.md를 작성합니다: 후크 옵션, 사용자가 읽을 스크립트, 효과별 샷 노트("4번째 줄: 머리 위에 여백을 두세요"), 그리고templates/shooting.md의 촬영 규칙. - 게이트: 스크립트를 보여주고 멈춥니다. 사용자가 승인할 때까지 계속하지 마세요.
2. 촬영 (사용자)
사용자가 파일을 <프로젝트>/raw/에 넣습니다. 여러 파일도 괜찮습니다. 이름 순서대로 사용됩니다.
3. 정렬
PY scripts/transcribe.py <프로젝트>(첫 실행 시 Whisper 모델을 다운로드합니다). 녹음에 재시작이 많거나, 컷이 여전히 단어를 반복합니까? 대신PY scripts/burst_transcribe.py <프로젝트>를 사용하세요: 각 말하기 버스트를 별도로 전사합니다(large-v3-turbo). 따라서 일시 중지 후 재시작이 다음 테이크와 병합되지 않습니다. 단어가 여전히 일시 중지를 삼키면, 정렬 전에PY scripts/snap_words.py <프로젝트>를 실행하세요.PY scripts/align.py <프로젝트>. 보고서를 사용자에게 간략하게 읽어줍니다: MISSING이거나 NO COMPLETE TAKE인 줄, 그리고 유지할 가치가 있는 애드립. 줄이 누락되지 않는 한 멈추지 마세요. 프리뷰와 함께 언급합니다.
4. 컷
PY scripts/cut.py <프로젝트>
음성 전용 릴 (사용자가 목소리만 녹음하고, 영상은 모두 모션 그래픽인 경우):
대신 PY scripts/cut_voice.py <프로젝트>를 사용하세요 -> work/voice.wav (클린, -16 LUFS) 및
work/prog_words.json (컷 트랙에서 시간 정보를 포함한 모든 유지된 단어). 이에 기반하여 시각 자료를 만듭니다
(사용자가 HyperFrames을 가지고 있거나 자체 편집기를 사용하는 경우). 효과 단계에는 얼굴이 필요하므로 건너뜁니다.
라이선스 없는 배경 음악: .venv-music/이 있으면 (python install.py --music), 다음으로 배경음악을 만듭니다:
.venv-music/<Scripts|bin>/python scripts/music_bed.py work/bed.wav --seconds 30 --seed 1 --prompt "<분위기>, no vocals",
간격이 있는지 듣고(고르지 않으면 다른 seed 시도), "music": {"file": "<절대 경로>/work/bed.wav", "db": -22}로 설정합니다.
5. 효과
PY scripts/effects.py <프로젝트> plan. 경고가 있으면script.json큐를 편집하여 수정합니다.PY scripts/effects.py <프로젝트> check를 실행한 후, 모든work/check/fx_*.png를 봅니다. 얼굴 위 텍스트, 가장자리에서 잘림, 읽을 수 없음: 옵션(x,y, 더 짧은text)을 수정하고 다시 확인합니다.PY scripts/effects.py <프로젝트> render. 이것은 느린 단계입니다(모든 프레임이 얼굴 추적을 거칩니다). 사용자에게 실행 중이라고 알립니다.
6. 프리뷰
PY scripts/finish.py <프로젝트>->preview/preview_vN.mp4.- 각 효과의 중간과 다른 두 세 지점에서
PY scripts/finish.py <프로젝트> --check <t1,t2,...>를 실행합니다. PNG를 봅니다: 캡션이 효과와 충돌하는지, 후크 텍스트를 읽을 수 없는지, 얼굴 위에 무언가 있는지. 보여주기 전에 수정하세요. - 게이트: 사용자에게 프리뷰 경로와 간단한 편집 목록(사용된 테이크, 잘라낸 부분, 효과 및 위치)을 제공합니다. 피드백을 요청하세요.
피드백을 변경 사항으로 전환
| 피드백 | 변경 사항 | 재실행 시작 지점 |
|---|---|---|
| "3번째 줄의 다른 테이크를 사용해줘" | choices.json {"take": {"3": 1}} | 정렬 |
| "0:14에 내가 말한 걸 유지해줘" | choices.json {"keep_unmatched": ["u3"]} | 정렬 |
| "5번째 줄을 빼줘" | choices.json {"drop_lines": [5]} | 정렬 |
| "컷이 너무 빡빡해 / 너무 느슨해" | 스타일 cut.max_gap, cut.post_pad | 정렬 |
| "거긴 효과 빼줘" / "단어를 더 크게" | script.json effects | effects plan |
| 캡션 모양, 화면 텍스트 | 스타일 captions / onscreen, 또는 스크립트 onscreen | finish |
| 음악 | script.json "music": {"file": "...", "db": -22} | finish |
한 단계부터 재실행하면 그 이후의 모든 단계도 함께 재실행됩니다. 정렬 또는 컷을 재실행하면 효과도 다시 렌더링되므로(느림), 먼저 피드백을 모아서 처리하세요.
7. 최종
PY scripts/finish.py <프로젝트> --final->final/final.mp4및final/cover.jpg.final/caption.md를 작성합니다:- 처음 ~125자가 후크를 전달합니다. 피드에 "더 보기" 전에 표시되는 전부입니다.
- 하나의 클릭 유도 문구. "댓글 KEYWORD" 형식이면 영상과 일치해야 합니다.
- 최대 5개의 해시태그, 주제에 특화된 것, 끝에. 사용자의 언어와 말투로.
- 임의의 숫자 없음. "스크롤 멈춰" 없음, 해시태그 벽 없음.
- 한 줄로 상기시킵니다: 트렌드 오디오는 Instagram 내에서 추가되며, 사용자가 직접 게시합니다.
규칙
- 스타일 .md가 취향입니다. 무언가를 추가할지 확실하지 않으면, 빼세요.
- 절대 얼굴을 가리지 마세요. 절대 2배율 이상 확대하지 마세요.
- 한계에 대해 솔직하세요: 편집기는 테이크와 타이밍을 잘 선택하지만, 사용자의 전달력을 판단하지는 않습니다. 테이크가 밋밋하게 들리면 "3번째 줄 에너지를 확인하세요"라고 말하고, 당신이 들은 척 하지 마세요.
projects/를 git에서 제외하세요: 원본 영상은 크고 개인적입니다.