Communitygithub.com

kinetic-reels

주제 하나로 인스타그램, 틱톡, 유튜브 쇼츠, 링크드인용 완성된 세로 릴(1080×1920 MP4, 38~60초)을 만듭니다. AI 음성 해설에 맞춰 단어별로 움직이는 자막, 실제 스크린샷과 로고를 카드처럼 움직이게 하고, 효과음과 CC0 무료 배경 음악을 추가합니다. 사용자가 릴, 쇼츠, 틱톡, 페이스리스 영상, 설명 영상 또는 “X에 대한 영상 만들어 줘”라고 요청할 때 사용하세요.

kinetic-reels란 무엇인가요?

Kinetic Reels는 모션 디자이너의 작업 방식을 코드로 구현한 AI 에이전트 스킬입니다. 하나의 HTML 페이지가 비디오의 임의 시점 t를 그려내고, 헤드리스 브라우저가 프레임별로 30fps로 렌더링하며, ffmpeg가 음성과 음악을 더해 동일한 입력에서 항상 동일한 영상을 만들어냅니다. 이 스킬은 Instagram, TikTok, YouTube Shorts, LinkedIn에 최적화된 1080×1920 세로 릴(38~60초)을 생성합니다. AI 음성 해설(Gemini TTS)과 단어 단위 자막 동기화, 실제 스크린샷과 로고를 움직이는 카드로 배치, CC0 배경 음악 및 효과음을 포함한 완성도 높은 결과물을 제공합니다. 결과물이 아닌 결과를 낸 규칙을 따릅니다: 첫 프레임부터 움직임, 0.8~1.5초마다 새로운 이미지, 상위에 위치한 음성, 리스트 형식의 카운트 헤더와 오픈 루프 등 시청자를 붙잡는 실전 테크닉이 내장되어 있습니다. 주요 지원 플랫폼: Claude Code, Cursor, Codex 등 AI 코딩 도구. 워크플로는 주제 선정 및 사실 조사부터 비트 기획, 스크립트 작성, 음성 생성, 자막 및 타이밍, 실제 에셋 수집, 렌더링, 최종 내보내기까지 단계별로 구성되어 있으며, 각 단계마다 검증 단계(audit, preview)가 포함되어 있어 안정적인 품질을 보장합니다.

지원 대상✓Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/Shaddy37/kinetic-reels/tree/HEAD/skills/kinetic-reels

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

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

문서

Kinetic 릴 (Kinetic reels)

릴을 모션 디자이너처럼 만들되 코드로 만듭니다. 하나의 HTML 페이지가 비디오의 임의 시점 t를 그리고, 헤드리스 브라우저가 이를 30fps로 프레임별로 렌더링하며, ffmpeg가 음성과 음악을 추가합니다. 동일한 입력, 동일한 비디오, 매번 똑같이.

SKILL은 이 파일이 있는 폴더를 의미합니다. 모든 명령은 사용자의 프로젝트 폴더(reels/와 .env가 있는 곳)에서 실행하세요. Mac/Linux에서는 python3을, Windows에서는 python을 사용하세요.

첫 번째 릴 전에 (한 번만)

  1. node "SKILL/scripts/doctor.mjs"를 실행합니다. FIX 라인이 출력되면 node "SKILL/scripts/setup.mjs"를 실행한 후, 나머지 FIX 라인이 지시하는 대로 처리합니다. ALL GOOD이 출력될 때까지 진행하지 마세요.
  2. 사용자는 .env 파일에 Gemini API 키가 필요합니다 (GEMINI_API_KEY=..., https://aistudio.google.com/apikey 에서 무료로 받을 수 있음). 키를 절대 출력하지 말고, .env를 커밋하지 마세요.
  3. kinetic.config.json에는 사용자의 핸들(워터마크), 이름, 엔드 카드용 정사각형 사진이 저장됩니다. new-reel.mjs가 처음 생성할 때 세 가지 값을 사용자에게 물어보고 채워 넣으세요.

릴 만들기 (모든 단계를 순서대로)

  1. 주제 및 사실. 하나의 주제에 동의합니다. 1차 출처(문서, 저장소, 공급업체 자체 페이지)에서 조사하고 모든 주장을 facts.md에 URL과 읽은 날짜와 함께 기록합니다. 사실 없이 주장하지 마세요.
  2. 비트 계획 (만들기 전에 사용자에게 보여주세요). 57개 목록의 경우 3845초, 설명 영상의 경우 최대 60초. 장면별: 초, 말하는 내용, 그림, 정확한 에셋 파일 및 출처. 에셋(로고, 사진, 스크린샷)을 찾을 수 없으면 중단하고 사용자에게 요청하세요. 가짜 로고를 그리거나, UI를 만들어내거나, 사람을 생성하지 마세요.
  3. 폴더 시작: node "SKILL/scripts/new-reel.mjs" <slug> [--logo claude]를 실행합니다. 모서리 로고는 주제 자체 로고입니다 (as/ 폴더에 파일이 있으며, 없으면 실제 SVG를 추가하세요).
  4. 스크립트. tts.json (음성이 말할 내용을 훅 / 본문 / 페이오프 / CTA 부분으로 나누고 각각 스타일 지정)과 script.txt (자막, 같은 단어, 같은 순서)를 작성합니다. 규칙: references/SCRIPT.md. 태그 및 스타일: references/VOICE.md.
  5. 음성: python "SKILL/scripts/voice.py" reels/<slug>를 실행한 후 python "SKILL/scripts/tighten.py" reels/<slug>를 실행합니다 (일시 정지를 0.34초로, 보통 속도). 테이크를 듣거나 어떤 트랜스크라이버로 확인하세요: 라인이 누락되거나 이름이 잘못되었으면 텍스트를 수정하고 voice.py를 다시 실행하세요.
  6. 자막 + 타이밍: python "SKILL/scripts/captions.py" reels/<slug>를 실행하면 DUR, SCN, CAPS가 출력됩니다. 이를 reel.js에 붙여넣으세요. 단어가 일찍 또는 늦게 나타나면 앵커([email protected])를 수동으로 조정하세요.
  7. 실제 에셋: node "SKILL/scripts/docshot.mjs" <url> reels/<slug>/as/<name>.png [--selector "css"]로 스크린샷을, 로고는 공급업체 또는 SKILL/assets/logos에서 SVG로 가져옵니다. 모든 에셋에는 화면에 작은 출처 라인이 표시됩니다. 자세한 내용: references/ASSETS.md.
  8. reel.js 빌드. 먼저 examples/claude-code-shortcuts/reel.js를 읽으세요: 이것이 최고의 릴이며 모든 패턴을 보여줍니다. 사용 가능한 조각: references/COMPONENTS.md. 그림은 y 2601100에, 자막은 y 11501570에 위치합니다.
  9. 평가: node "SKILL/engine/shot.cjs" reels/<slug> audit는 반드시 LAYOUT PASS를 출력해야 합니다. 그런 다음 node "SKILL/engine/shot.cjs" reels/<slug> prev 0 <각 장면 내의 시간>을 실행하고 모든 스틸을 확인하세요 (JPG를 열어서). 수정하고 반복하세요. 5개의 훅 스틸(0, 0.5, 1, 2, 3초)을 references/SCRIPT.md(훅 규칙)와 대조하여 확인하세요.
  10. 사운드: mix.py를 편집하고 (DUR, SCN, 그림 변경당 하나의 사운드; references/SOUND.md), python reels/<slug>/mix.py를 실행하세요. 다른 배경 음악: python "SKILL/scripts/music.py" search "lofi chill"을 실행한 후 pull <id> reels/<slug> (CC0만 해당).
  11. 렌더링: node "SKILL/engine/render.cjs" reels/<slug>를 실행한 후 python "SKILL/scripts/finish.py" reels/<slug> (반드시 PASS를 출력해야 함)와 node "SKILL/engine/shot.cjs" reels/<slug> cover 0.6을 실행하세요.
  12. 전달: reels/<slug>/out/final.mp4와 out/cover.jpg, 그리고 1행에 주제 키워드, 3~5개의 해시태그, facts.md의 출처가 포함된 캡션을 전달하세요.

시청자를 붙잡는 규칙 (이론이 아닌 실제 결과 기반)

  • 페이오프는 1행에 넣습니다. "오늘 무언가를 보여드리겠습니다"보다 "거의 아무도 모르는 Claude Code 단축키 7가지"가 더 효과적입니다.
  • 프레임 0에서 움직임을 시작합니다. 음수 시간에 진입을 시작하세요 (popV(t,-0.3,...)) 그래야 첫 프레임이 이미 움직이고 있습니다. 절대 빈 프레임이나 정지된 첫 프레임을 사용하지 마세요.
  • 첫 프레임부터 마지막 프레임까지 하나의 룩(look)을 유지하세요. 어두운 화면에서 밝은 화면으로 전환하지 마세요: 새 비디오로 인식되어 사람들이 넘깁니다.
  • 목록의 경우: 카운트 헤더 (SHORTCUT 3/7 + 점)와 2행의 오픈 루프 ("그리고 7번째가 제 시간을 몇 시간 절약해줍니다")를 사용하여 마지막에 결말을 맺습니다.
  • 0.8~1.5초마다 새로운 그림을 보여주세요. 효과를 설명하지 말고 보여주세요.
  • 음성은 상단에 위치합니다. 음악은 작게 (기본 sfx.mix_reel의 값은 검증되었습니다).
  • CTA는 이 릴만을 위해 작성하세요 (저장하기, 적합한 사람에게 보내기, 또는 진짜 질문). 절대 "더 보려면 팔로우하세요"를 사용하지 마세요.

문제 해결

references/TROUBLESHOOTING.md를 참조하세요. 흔한 문제: PATH에 ffmpeg가 없음, Chromium이 설치되지 않음, 음성 API에서 429 (무료 제한, 잠시 기다리거나 결제 활성화), 심사관(judge)의 CLIP (텍스트가 카드보다 넓음: 텍스트를 줄이거나 카드를 최대 920px까지 넓힘).

관련 스킬