Communitygithub.com

atultiwari/youtube-video-production

유튜브 쇼츠 또는 장편 영상을 처음부터 끝까지 제작하기 위한 실행 가이드입니다. Remotion으로 제작되며, 복제 TTS 음성으로 나레이션됩니다. 화면 튜토리얼(시뮬레이션 앱 화면), 일러스트레이션 설명(의학/과학 교육, 병리 노트), 하이브리드, 또는 모션 그래픽 뉴스/사건 설명(motion-explainer 사용) 중 하나의 모드로 작동합니다.

youtube-video-production란 무엇인가요?

이 스킬은 유튜브 영상 제작을 위한 종합적인 런북(runbook)입니다. Remotion 프레임워크를 기반으로 하며, 복제 TTS 음성(Sarvam API)을 사용하여 나레이션을 자동 생성합니다. 네 가지 모드(튜토리얼, 일러스트레이션, 하이브리드, 모션 설명)를 지원하며, 각 모드는 참고 자료 수집부터 스크립트 작성, 음성 녹음, 시각적 QA, 최종 렌더링 및 업로드까지 단계별로 안내합니다. 특히 음성을 먼저 녹음하고 측정된 오디오를 기준으로 모든 비트와 애니메이션 타이밍을 맞추는 'voice before picture' 원칙과, 사람의 검토 게이트(Gate 1: 스크립트, Gate 2: 키프레임)를 통해 품질을 보장합니다. 이 스킬은 Claude Code, Cursor, Codex 등 AI 에이전트가 실행할 수 있으며, 각 단계별 전용 스크립트(예: check-script.py, sarvam-tts.py, focus-check.py)와 템플릿을 제공하여 자동화된 워크플로우를 지원합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/atultiwari/youtube-video-production/tree/HEAD

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

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

문서

영상 제작, 처음부터 끝까지

런북(runbook): "다음에 무엇을 할까"를 순서대로, 각 규칙 뒤에는 실패 사례를 함께 제시하여 맹목적으로 따르기보다 논쟁할 수 있도록 합니다. 모든 주제에 대해 순서는 동일하며, 모드(mode) 만 변경됩니다.

0 · 모드 선택

무엇보다 먼저 결정하고, 비디오의 STATUS.md에 mode:로 기록하세요. 모드는 참고 자료의 출처와 그림 구성 방식을 결정합니다.

화면 튜토리얼 tutorial일러스트레이션 설명 illustrated하이브리드 hybrid모션 설명 motion
가르치는 대상앱이나 도구 사용법개념: 병리학, 생리학, 모든 과학개념과 이를 적용하는 도구뉴스 사건, 사례 및 그 교훈
3단계앱 정찰 캡처참고 자료 연구: 아틀라스, 현미경 사진, 실제 사물비트별로 둘 다출처가 명시된 팩트 시트(화면에 표시된 모든 숫자 인용)
9단계최종 캡처없음앱 비트에만 해당없음
그림캡처된 참고 자료로 제작된 앱 스크린샷remotion-whiteboard를 통한 그림각 비트에 해당하는 방식remotion-motion-explainer를 통한 타이포그래피, 지도, 신문 페이지, 게이지

motion 모드는 아무것도 대체하지 않습니다: 그린 것(펜, 손, 획별 그림)은 여전히 illustrated이며 remotion-whiteboard를 통해 처리됩니다. motion의 게이트 2는 임시 자막과 함께 무음 미리보기를 소유자가 승인하는 단계입니다.

습관이 아니라 시청자가 보아야 하는 것을 기준으로 선택하세요. 실제 인터페이스가 필요한 비트가 하나도 없다면 일러스트레이션 모드입니다. 모드가 없으면, 앱을 한 번도 보여주지 않는 병리학 기본 자료가 앱 캡처를 위해 전송되었습니다.

순서, 그리고 이 순서인 이유

 0  모드 선택                     튜토리얼, 일러스트레이션 또는 하이브리드; 스타일
 1  작품 결정                     앵글, 대상 청중, 하나의 아이디어
 2  주장 검증                     한 글자도 스크립트로 쓰기 전
 3  참고 자료                     앱 캡처, 또는 그릴 내용 연구
 4  스크립트 작성                  그 후 린트
 5  ── 게이트 1 ──               촬영에 시간을 쓰기 전 사람이 스크립트를 읽음
 5a 스토리보드                     일러스트레이션: 비트당 한 장의 그림, 큐 워드에 이벤트
 5b 키 프레임 ── 게이트 2 ──       소유자가 스틸 이미지에서 룩 승인
 6  음성 녹음                      sarvam-tts.py: 복제 음성, 비트당 한 테이크
 7  마스터                        전달 대상에 맞춤
 8  측정 → 그리드 → 단어          테이크가 모든 타이밍을 결정, 단어 단위
 9  최종 캡처                     튜토리얼 및 하이브리드: 스크립트가 요구하는 정확한 흐름
10  제작                          키트(일러스트레이션) 또는 앱 샷(튜토리얼), 그리드에 맞춰
10b 사운드                        그림에서 효과음, 배경 음악, 음성 아래로 덕킹
11  시각적 QA                     프로브, 하나의 포커스, 채움, 이벤트 간격, 2초 시트, 무음 리뷰
12  렌더링
13  게시                          메타데이터, 챕터, 업로드, 일정

음성이 그림보다 먼저. 테이크가 클록입니다: 모든 비트, 애니메이션, 컷은 측정된 오디오를 기준으로 배치되며, 그다음 각 단어의 전사 시간에 따라 배치됩니다. 전체 스크립트에 대한 단어 수 추정은 25% 오차가 있었고, 단어당 중간값 1.3초 차이가 났습니다. references/mistakes.md를 참조하세요.

두 번 캡처 (튜토리얼, 하이브리드): 스크립트 전 정찰 캡처를 통해 앱이 실제로 하는 일만 약속하도록 하고, 흐름이 확정된 후 최종 녹음을 진행합니다.

한 번에 하나의 포커스. 한 번에 한 곳만 그리고 쓰며, 읽기 순서를 따릅니다: 노트, 그림, 레이블, 그다음 포인터. 영상은 소리 없이도 가르칠 수 있어야 합니다: focus-check.py가 이를 측정하고, 새 에이전트가 무음으로 시청하며 테스트합니다(09-motion.md, 11-visual-qa.md).

두 개의 인간 게이트. 게이트 1, 스크립트: 변경 비용이 저렴하고, 테이크는 그렇지 않습니다. 게이트 2, 룩: 모든 비트를 제작하기 전 키 프레임 스틸 이미지에서 승인합니다. 이것 없이 v2는 빈 어두운 배경에 텍스트만 만들었습니다.

먼저 현재 위치를 파악하세요: 비디오의 STATUS.md에서 scripts/video-status.py 실행 (status-and-resuming.md); 중단하기 직전 마지막으로 파일을 업데이트하세요.

불가침 규칙

  1. 주장은 문장이 되기 전에 1차 출처가 있어야 합니다. 2차 출처는 오류 가능성이 충분히 높아 이 규칙은 선택 사항이 아닙니다.
  2. 시뮬레이션된 인터페이스는 캡처된 참고 자료로만 제작되며, 기억에 의존하지 않습니다 (튜토리얼, 하이브리드). 한 앱의 컴포저를 세 번 재구축했지만 실제 제품을 측정하기 전까지는 모두 틀렸습니다.
  3. 인공 출력물은 화면에 레이블을 표시합니다 (시뮬레이션 — 설명용). 개략도는 단순화된 그림이라고 표시합니다.
  4. 어떤 프레임에도 개인 정보가 나타나지 않습니다: 데모, 사이드바, 라이브 계정 참조 또는 슬라이드 레이블에 포함되지 않습니다 (12-pathology-visuals.md).
  5. 입력된 양식 필드를 믿기 전에 다시 읽으세요. 입력된 값은 조용히 실패할 수 있습니다.
  6. 타이밍 파일을 수동으로 편집하지 마세요 (beats.json, lines.json). 이들은 생성됩니다.

이 스킬이 오케스트레이션하는 스킬들

스킬 또는 키트비디오에서의 역할
이 스킬의 키트node <skill>/scripts/install-kit.mjs <project> --style paper-notes: 컴포넌트, 스타일, 폰트, QA 및 빌드 도구. 먼저 remotion-whiteboard의 툴킷을 설치합니다.
remotion-whiteboard그리거나 손으로 쓴 모든 것에 필수: 획, 필기 텍스트, 펜.
motion-design그려지지 않은 요소의 이징 및 안무
remotion-best-practicesRemotion API 사용법
remotion-motion-explainermotion 모드: 자체 템플릿, 컴포넌트, 음성/자막/사운드 스크립트 및 작업 예제 (fridge-hack)
video-promo-kit모든 모드의 13단계: 썸네일 변형 (소유자 선택), 1:1 캐러셀 + LinkedIn PDF, YouTube 설명/챕터/태그, LinkedIn/Instagram/WhatsApp 카피
youtube-uploader13단계: Data API를 통한 업로드 자체 (드라이 런, 소유자 승인 시 --confirm), 썸네일, 자막, 재생목록, 일정

remotion-whiteboard를 사용할 수 없으면, 빌드 단계에서 중단하고 그 이유를 명시하세요. 드로잉 컴포넌트를 임의로 만들지 마십시오. install-kit.mjs가 이를 강제합니다.

상세 내용이 있는 위치: 각 단계에서 해당 파일을 읽고, 이전에는 읽지 마세요

파일단계
references/01-plan-and-validate.md1–2
references/02-capture-reference.md3 및 9: 캡처, 또는 일러스트레이션의 경우 참고 자료 연구
references/03-script.md4–5 (채널 요청 포함)
references/07-art-direction.md0 (스타일) 및 5a–10: 하우스 스타일, 데이터화
references/08-storyboard.md5a–5b, 게이트 2
references/04-voice.md6–8
references/09-motion.md8 (단어 타이밍) 및 10: 도착, 2–4초마다 이벤트
references/05-build.md10, 튜토리얼 샷, 화이트보드 손, 드로잉 라이브러리 (objects.tsx)
references/10-sound.md10b
references/11-visual-qa.md, references/rubric.md11
references/12-pathology-visuals.md3 및 10, 의료 그림용
references/13-longform.md12분 이상 영상, 챕터
references/06-publish.md12–13: 렌더링, ready-to-upload/ → youtube-uploader → _uploaded/ (프로모 자료는 video-promo-kit)
references/14-lessons-2026-10.md모든 모드: 측정된 음성 수, Whisper 테이크 확인, 단어 큐, 컴포넌트 기반 사운드, QA 규칙 (fridge-hack 빌드에서 얻은 E01 교훈은 04, 05, 06, 09, 11 및 mistakes.md에 반영됨)
references/status-and-resuming.md비디오 재개 또는 결정 기록
references/mistakes.md이상한 동작 발생 시: 디버깅 전 읽기

함께 제공되는 스크립트: 각각 --help 지원, 주어진 프로젝트만 읽음

단계스크립트
상태video-status.py (비디오가 어떤 단계에 있는지, 모드별)
4–5acheck-script.py (TTS 함정), check-storyboard.py (비트당 그림, 큐 워드, 간격)
5bdraft-takes.py (테이크가 존재하기 전 키 프레임용 드래프트 그리드)
6sarvam-tts.py (API를 통해 복제 음성으로 테이크 생성; SARVAM_API_KEY 키; --respell 구어체 매핑 시리즈)
7–8check-takes.py (각 테이크를 스크립트와 Whisper 비교), master-audio.py, build-audio-grid.py, word-timestamps.py (정확한 단어 시간)
10install-kit.mjs <project> (키트, 스타일, 폰트, 도구, Python venv), make-paper.py; 키트 내: makeBeat/HL (beatspec.tsx) 및 오브젝트 라이브러리 (objects.tsx, 스틸 테스트 kit-objects)
10bsound-design.py
11focus-check.py, frame-fill.py, event-gaps.py, gap-words.py (각 정적 간격에서 말해진 단어), contact-sheet.py; 키트의 tools/qa.mjs, tools/stills.mjs (중간점, 끝, N초마다), tools/build-all.sh (너무 정적이면 렌더링 전 중지)
13chapters.py (그리드에서 YouTube 챕터 생성), captions-srt.py (단어 타이밍에서 업로드 자막 생성)

템플릿: templates/ 디렉토리의 STATUS.md, STORYBOARD.md, MUTE-REVIEW.md. 스타일: styles/*.json.

형식

쇼츠: 1080×1920, 2160×3840으로 전송 (build-all.sh --deliver-4k). 26–56초, 하나의 아이디어; 첫 줄과 첫 프레임이 모든 것을 결정합니다. 하단 360px은 UI를 위해 비워둡니다.

장편: 30fps에서 1920×1080; 712분, 또는 1530분(일러스트레이션 강의의 경우 3~5분 챕터로 제작, 13-longform.md). 선택적으로 대체 트랙으로 두 번째 언어 지원.

날짜가 있는 정보

참조 파일의 가격, 모델명, 등급 경계 및 법령 날짜는 위 measuredOn 날짜 기준으로 정확합니다. VERIFY라고 표시된 항목은 카메라에서 말하기 전에 1차 출처와 다시 확인합니다. 이 스킬에서 숫자를 그대로 스크립트로 가져오지 마십시오.

관련 스킬