Communitygithub.com

pranav7/video-explainers

사용자가 설명 영상, 애니메이션 해설, 나레이션 영상, '3blue1brown 스타일' 또는 '3b1b 스타일' 영상, 혹은 특정 주제에 대한 Manim 애니메이션을 요청할 때 사용합니다.

video-explainers란 무엇인가요?

이 기술은 사용자가 요청한 모든 주제에 대해 나레이션이 포함된 3Blue1Brown 스타일의 설명 영상을 자동으로 제작합니다. 시각 자료는 Manim(Community Edition)을 사용하고, 나레이션은 로컬 텍스트 음성 변환 모델인 Kokoro-82M을 이용하여 API 키 없이 생성됩니다. 작업은 크게 두 부분으로 나뉩니다: 첫째, 사용자와의 대화 맥락을 바탕으로 스크립트(script.md)를 작성하는 부분과, 둘째, 해당 스크립트를 기반으로 서브 에이전트가 실제 영상을 제작하는 부분입니다. 서브 에이전트는 새로운 컨텍스트를 사용하기 때문에 더 빠르고 저렴하게 영상을 제작할 수 있으며, 백그라운드에서 실행되므로 사용자는 계속해서 다른 작업을 진행할 수 있습니다. 이 기술은 Cursor, Claude Code, Codex 등 다양한 AI 에이전트 플랫폼에서 사용할 수 있으며, 영상 제작 과정을 자동화하여 개발자나 사용자가 직접 영상 제작 도구를 다루지 않아도 되도록 돕습니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/pranav7/video-explainers/tree/HEAD/skills/explain-video

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

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

문서

비디오 설명자

모든 주제에 대해 나레이션이 포함된 3Blue1Brown 스타일의 설명 영상을 제작합니다. 시각 자료는 Manim (Community Edition)을 사용합니다. 나레이션은 로컬 텍스트 음성 변환 모델인 Kokoro-82M을 사용하며, API 키 없이 로컬 머신에서 실행됩니다. 각 나레이션 라인이 해당 애니메이션의 타이밍을 설정합니다.

작업은 두 부분으로 나뉩니다:

  1. script.md 작성: 각 나레이션 라인과 그에 맞는 화면 구성을 작성합니다. 컨텍스트를 가지고 있으므로 스크립트를 직접 작성합니다.
  2. 서브 에이전트가 script.md로부터 영상을 제작합니다. 장면을 작성하고, 렌더링하며, 레이아웃을 확인하고 최종 렌더링을 수행합니다.

빌드 과정은 약 20번의 툴 호출을 거치며, 각 호출은 전체 컨텍스트를 다시 전송합니다. 새로운 서브 에이전트는 작은 컨텍스트를 가지므로 빌드가 더 저렴하고 빠릅니다. 또한 서브 에이전트는 백그라운드에서 실행되므로 사용자는 계속해서 다른 작업을 진행할 수 있습니다.

explainer 명령어가 나머지 작업을 수행합니다. PATH에 등록되어 있어야 합니다. 설정 방법은 https://github.com/pranav7/video-explainers 를 참조하세요. 명령어 목록은 explainer -h를 실행하세요.

0. 설정 (머신당 한 번)

explainer doctor를 실행하세요. Homebrew 패키지, 폰트, TinyTeX, Python 환경 및 아이콘을 설치한 후 Kokoro와 LaTeX를 테스트합니다. 다시 실행해도 안전합니다. 누락된 종속성으로 인해 명령어가 실패하면 실행하세요.

1. 계획

  • 위치. 대화 주제에 해당하는 프로젝트에 문서 폴더가 있는 경우, 해당 폴더 내 videos/<slug>/ 디렉토리에 비디오를 배치합니다. 그렇지 않은 경우 ~/Movies/explainers/<slug>/를 사용합니다.
  • 시청자 및 길이. 요청에 명확히 명시되지 않은 경우에만 질문합니다. 기본값: 해당 주제에 대해 배경 지식이 없는 호기심 많은 성인, 2~4분 길이.
  • 스크립트 길이. Kokoro는 분당 약 170단어를 말하므로, 3분 영상은 약 500단어의 나레이션이 필요합니다. 각 챕터는 30~45초 분량으로 작성합니다.

주제에 적합한 구성을 선택합니다.

개념(알고리즘, 수학 또는 과학 아이디어)의 경우:

  1. 정의 대신 구체적인 질문이나 퍼즐로 시작합니다.
  2. 시청자가 볼 수 있는 하나의 구체적인 예시로 직관을 형성합니다.
  3. 일반화하고, 그 후에야 공식을 제시합니다. 공식은 시청자가 이미 본 것에 이름을 붙여줍니다.
  4. 하나의 그림으로 핵심 아이디어를 마무리합니다.

상황(실패한 실행, 사건, 설계, 업무 현황)의 경우:

  1. 실제 숫자와 함께 발생한 일로 시작합니다.
  2. 원인이 된 메커니즘을 한 단계씩 보여줍니다.
  3. 변경된 사항(수정, 결정 또는 다음 단계)을 보여줍니다.
  4. 변경 사항이 적용된 전체 시스템의 한 장면으로 마무리합니다.

2. script.md 작성

비디오 디렉토리에 script.md를 다음 형식으로 작성합니다:

# 주문 페이지가 느린 이유

팀 엔지니어 대상. 약 3분.

## 팔레트

| 개념 | 색상 |
| --- | --- |
| API 서버 | SKY |
| 데이터베이스 | VIOLET |
| 느리고 낭비되는 작업 | CORAL |
| 수정 사항 | MINT |

## 1. 시작: 주문 50개, 쿼리 50개

- "주문 페이지가 50개의 주문을 로드하는 데 4초가 걸립니다."
  - "4.1 s"가 코랄로 표시된 브라우저 카드와 50개의 주문 태그 목록.
- "서버가 각 주문에 대해 데이터베이스에 한 번씩 질의합니다."
  - API 서버 카드와 데이터베이스 카드. 패킷이 카드 사이를 주문당 하나씩 이동합니다.

각 챕터 제목은 ## <번호>. <SceneName>: <챕터 제목> 형식입니다. 빌더는 각 챕터에 대해 하나의 장면 클래스를 만듭니다. 챕터 제목은 비디오에서 챕터 마커가 됩니다.

빌더는 이 대화 내용을 볼 수 없습니다. 화면에 표시되는 모든 이름, 숫자, 레이블 및 값은 스크립트에 포함해야 합니다.

나레이션은 작성된 그대로 읽힙니다:

  • 음성 형태로 작성: "x 제곱", "2 파이 r", "P O 번호", "v 투". 나레이션에 LaTeX, 기호 또는 코드를 넣지 마십시오.
  • 각 줄에 한 문장, 최대 두 문장을 작성합니다. 각 줄은 하나의 시각적 변화입니다.
  • Kokoro가 단어를 잘못 발음하는 경우, 인라인으로 음소를 제공합니다: [Kokoro](/kˈOkəɹO/).
  • 기본 음성은 af_heart입니다. 사용자가 음성에 관심이 있다면 explainer voices를 실행하고 듣게 합니다 (afplay voice-samples/<name>.wav).

각 나레이션 라인 아래에는 슬라이드가 아닌 그림을 설명합니다. 객체, 표시되는 내용, 움직이는 항목을 명명합니다. 각 개념에 팔레트에서 하나의 색상을 지정합니다.

팔레트 색상은 키트의 악센트에서 가져옵니다: SKY, MINT, AMBER, CORAL, VIOLET, AQUA, ROSE, PEACH, LIME. 키트에는 개념이 아닌 항목을 위한 중성 색상도 있습니다: SUBTLE, FAINT, INK. 키트에는 카드, 태그, 테이블, 코드 창, 파이프라인, 시퀀스 다이어그램, 타임라인, 트리, 콜아웃, 차트, 큰 숫자 및 Lucide 아이콘이 포함되어 있습니다. 이를 사용하는 그림을 설명하세요.

각 숫자를 그대로 표시하십시오. 0부터 카운트업하는 숫자를 요청하지 마십시오.

3. 빌드 위임

서브 에이전트로 빌더를 시작합니다. 빌드 작업을 위한 에이전트 유형 또는 모델을 지정하는 명령어가 있다면 사용합니다. 다음 프롬프트를 제공합니다:

<directory>/script.md에 대한 설명 영상을 빌드하세요. `explainer guide`를 실행하고 안내를 따르세요. 비디오 경로, 길이, 그리고 그대로 남겨둔 각 레이아웃 경고와 그 이유를 보고하세요.

사용자가 자막을 요청한 경우 프롬프트에 "Render with --captions."을 추가합니다.

사용자에게 비디오가 진행 중임을 알린 후, 다른 작업을 계속합니다. 서브 에이전트를 시작할 수 없는 경우 explainer guide를 실행하고 직접 단계를 수행합니다.

4. 전달

빌더가 보고하면 <directory>/video.mp4를 엽니다 (macOS에서는 open). 사용자에게 알립니다:

  • 파일 경로 및 길이.
  • 비디오에 챕터 마커가 있음.
  • 빌더가 열어둔 모든 문제.

변경할 사항을 묻습니다. 변경하려면, 사용 중인 툴이 메시지를 보낼 수 있다면 동일한 빌더에 전송합니다 (빌더가 컨텍스트를 유지하기 때문). 그렇지 않으면 변경 사항과 함께 새 빌더를 시작합니다. 변경 사항이 나레이션에 영향을 미치는 경우 먼저 script.md를 편집합니다.

관련 스킬