Analyzer은(는) 무엇을 하나요?
좋아하는 릴을 주면 훅, 페이싱, 편집을 분석합니다. 그런 다음 동일한 구조를 사용해 사용자의 주제에 맞는 비디오를 제작합니다.
모든 것은 이 컴퓨터에서 실행됩니다. 도구는 ~/.claude/skills/analyzer/scripts/에 있으며, 스킬 자체의 Python(~/.claude/skills/analyzer/.venv/bin/python)으로 실행됩니다. (이하: PY = 해당 경로, AN = ~/.claude/skills/analyzer/scripts)
0. 설치 확인 (매 실행 시)
test -x ~/.claude/skills/analyzer/.venv/bin/python && command -v ffmpeg
둘 중 하나라도 없으면 한 줄로 사용자에게 알리고 설치 프로그램을 실행하세요: bash ~/analyzer-skill/install.sh, 또는 먼저 클론하세요: git clone https://github.com/corbinsylk/analyzer-skill ~/analyzer-skill && bash ~/analyzer-skill/install.sh.
1. 릴 가져오기
링크(Instagram, TikTok, YouTube Shorts, X) 또는 파일을 받습니다. 그런 다음:
PY AN/fetch.py "<link or file>"
마지막 줄에 비디오 경로를 출력합니다(다운로드는 ~/Movies/Analyzer/에 저장됩니다). 공개 게시물은 로그인 없이 다운로드됩니다. 실패할 경우(비공개, 연령 제한, 삭제됨), 사용자에게 다운로드하거나 화면 녹화하여 파일을 드래그하도록 안내하세요.
2. 측정하기
PY AN/transcribe.py "<video>"
PY AN/shots.py "<video>"
둘 다 비디오 옆에 <video name>-analysis/ 작업 폴더를 사용합니다. transcribe.py는 transcript.md와 words.json(모든 단어에 시간 정보 포함; 첫 실행 시 "mps"에 관한 속도 팁이 표시될 수 있지만 무해함)을 생성합니다. shots.py는 pacing.md(아래 모든 숫자와 각 샷 위에 말한 내용이 포함된 샷별 테이블), sheet-N.jpg 연락처 시트(작고 번호가 매겨진 개요용), shots/NN.jpg(샷당 한 프레임, 720 너비, 화면 텍스트를 읽을 수 있을 정도로 큼; 긴 샷의 경우 처음과 마지막 순간을 나타내는 NN-a/NN-b도 포함)를 생성합니다. shots.py가 비디오에 명백히 있는 샷보다 훨씬 적은 수를 찾으면 --threshold 0.18로 다시 실행하고, 하나의 샷을 여러 개로 분할하는 경우(빠른 움직임, 플래시) --threshold 0.4를 사용하세요.
3. 살펴본 후 분석 작성하기
transcript.md와 pacing.md를 읽으세요. 개요를 위해 모든 연락처 시트를 연 다음, 처음 3초 샷의 shots/NN.jpg 프레임과 변경 사항이 있는 모든 샷(텍스트 등장, 확대/축소, 그래픽, 새로운 장소)을 여세요: 모두 열 필요는 없습니다. 비디오 소리를 들을 수 없으므로 트랜스크립트에 표시된 내용 외에는 음악이나 음향 효과에 대해 아무 말도 하지 마세요. 트랜스크립트는 이름과 용어(스포츠, 브랜드, 요리)를 잘못 들을 수 있으므로 화면 텍스트와 대조하여 올바른 철자를 사용하세요.
<work folder>/breakdown.md에 다음 섹션을 작성하세요. 모든 주장은 시간 또는 샷 번호와 연결되어야 합니다.
- 훅 (0-3초). 정확한 단어, 화면에 보이는 것(프레이밍, 화면 텍스트와 위치, 움직임), 컷 수, 그리고 스크롤을 멈추게 하는 이유: 호기심 차이, 약속, 패턴 파괴.
- 구조. 시간 순서대로 비트: 훅, 설정 또는 문제, 전환, 페이오프, 콜 투 액션. 각 비트에 대해: 역할, 길이(초 및 단어 수), 역할을 수행하는 라인.
- 페이싱.
pacing.md의 숫자(샷 수, 평균 및 중간 샷 길이, 처음 3초의 컷 수, 분당 단어 수)와 그 의미. 비트의 단어 수를 계산하려면:PY AN/words.py "<work folder>" <start> <end>(초 또는 분:초); 단어 수, 속도 및 단어를 출력합니다: 속도가 빨라지는 곳, 유지되는 곳, 컷 속도가 스토리를 따르는 방식. - 편집. 프레이밍 및 카메라(프레임에서 얼굴이 차지하는 비율, 확대/축소, 앵글 변경: 프레임으로 육안 확인), 화면 텍스트(스타일, 크기, 위치, 등장 시점), 캡션(스타일, 한 번에 표시되는 단어 수), B-롤, 화면 녹화, 그래픽, 전환.
- 공식. 누구나 재사용할 수 있는 빈칸 채우기 템플릿으로서의 구조: 각 비트를
[여기에 들어갈 내용]으로, 목표 길이, 단어 수 및 편집 동작과 함께.
그런 다음 사용자에게 훅, 공식 및 작동하게 만드는 세 가지 요소를 몇 줄로 알리고 breakdown.md를 가리키세요.
4. 사용자 주제에 맞게 리메이크하기
사용자가 말하지 않은 경우 한 가지 질문을 하세요: "새 비디오를 어떤 주제(그리고 누구를 위한 것인지)로 만들까요?"
그런 다음 <work folder>/remake.md를 작성하세요:
- 스크립트, 단어 그대로, 비트별로, 동일한 구조로, 각 비트는 참조의 단어 수(
words.py에서)의 약 10% 이내여야 하므로 동일한 길이와 속도로 실행됩니다. 훅은 참조와 동일한 메커니즘(동일한 종류의 약속, 숫자, 질문 또는 패턴 파괴)을 사용하며, 단어는 절대 사용하지 않습니다. 사용자가 자신이 말하는 방식을 알려준 경우(음성 또는 브랜드 파일, 이 프로젝트의 이전 스크립트, 자신의 지시), 그 목소리로 작성하고, 그렇지 않으면 평범하고 직접적이며 말하는 방식으로, 사람들이 카메라에 말하는 방식으로 작성하세요. - 샷 플랜: 각 비트에 대해 촬영할 내용(프레이밍, 볼 곳, 제스처, 소품 또는 장소), 그리고 참조에서 가져온 그 순간의 편집 동작(컷, 확대/축소, 화면 텍스트와 정확한 단어, 표시할 B-롤).
- 화면 텍스트는 시간과 함께 별도로 나열합니다.
- 촬영 노트: 각 라인을 두 번 말하여 가장 좋은 테이크를 선택할 수 있도록 하고, 라인 사이에 1초 동안 멈춥니다.
5. 러프 컷 (사용자가 촬영한 경우)
사용자가 리메이크 푸티지를 드래그하면:
PY AN/transcribe.py "<footage>"
푸티지의 transcript.md와 words.json을 읽으세요. 각 스크립트 라인에 대해 가장 깔끔한 테이크(완전하고, 더듬지 않음; 일반적으로 마지막 테이크)를 선택한 다음, <footage work folder>/keep.json을 스크립트 순서대로 작성하세요:
[{"line": "the script line", "start": 12.40, "end": 15.92}]
start = 테이크 첫 단어의 s, end = 테이크 마지막 단어의 e (words.json에서). 그런 다음:
PY AN/rough_cut.py "<footage>" "<footage work folder>"
각 테이크를 단어 경계에 맞게 정확히 자르고, 얼굴을 9:16 비율로 프레이밍하고, 순서대로 연결하여 단어별 캡션을 추가하고, rough-cut.mp4와 rough-cut.jpg(8프레임 미리보기)를 만듭니다. jpg를 열어 얼굴이 프레이밍되고 캡션이 읽히는지 확인하세요. 사용자에게 러프 컷에 무엇이 있는지, 그리고 샷 플랜에서 어떤 편집 동작(텍스트, 확대/축소, B-롤)을 편집기에서 추가해야 하는지 알려주세요.