경로:
${CLAUDE_PLUGIN_ROOT}가 이 플러그인의 루트입니다. 변수가 설정되지 않은 경우, 루트는 이 스킬의 "Base directory"보다 두 폴더 위에 있습니다 (<루트>/skills/<스킬>). 스킬이~/.claude/skills에 단독으로 복사된 경우${CLAUDE_PLUGIN_ROOT}/skills대신~/.claude/skills를 사용하세요.
이 스킬은 "SSH란 무엇인가" 및 "Git과 GitHub 모범 사례" 영상을 제작하면서 배운 내용을 저장합니다. 결과물은 1080×1920 해상도, 30fps의 세로 MP4 파일로, Python(Pillow)으로 프레임별로 그린 애니메이션, 무료 신경망 음성(edge-tts), 코드(numpy)로 작곡한 음악을 포함합니다. After Effects, CapCut 또는 유료 프로그램을 사용하지 않습니다.
브라질 포르투갈어로 간단하게, 결과물을 먼저 보여주며 답변하세요.
스킬 맵
| 스킬 | 사용 시기 |
|---|---|
| video-dev (현재) | 항상 먼저: 질문, 준비, 폴더 생성, 최종 렌더링, 전달 |
| video-conceito | 작동 원리 설명 (SSH, DNS, HTTPS, Docker, JWT...): 다이어그램, 패킷 이동 |
| video-tutorial-terminal | 함께 입력할 명령어 교육 (Git, Docker CLI, npm, Linux...): 타이핑이 포함된 터미널 |
| narracao-voz | 대본 작성/조정, 음성, 영어 용어 발음, 단어 타이밍 |
| trilha-video | 배경 음악 및 음성과의 믹싱 (덕킹) |
유형을 파악한 후 선택한 유형의 스킬을 읽으세요. 나레이션과 트랙은 해당 단계에 도달했을 때 읽을 수 있습니다.
경로
SK = ${CLAUDE_PLUGIN_ROOT}/skills (플러그인 루트; 아래 "경로" 참고)
SK/video-dev/scripts/ motor.py, render.py, novo.py, checar.py
SK/video-dev/exemplos/ssh/ SSH 영상 (개념) 전체 프로젝트
SK/video-dev/exemplos/git/ Git 영상 (튜토리얼) 전체 프로젝트
SK/narracao-voz/scripts/ narracao.py, pronuncia_base.json
SK/trilha-video/scripts/ trilhas.py, mixar.py
SK/video-dev/references/ elementos.md (API 및 레이아웃), licoes.md (이전 오류)
1단계 — 질문 (파일 생성 전)
AskUserQuestion 도구로 한 번에 최대 4개의 질문을 하고, 추천 옵션을 먼저 제시하세요. 사용자가 요청에서 이미 답변한 내용은 건너뛰세요. 사용자가 "네가 정해"라고 하면 굵게 표시된 기본값을 사용하세요.
1차 질문 (항상):
- 영상 유형: 개념 (작동 방식, 다이어그램 포함) · 터미널 튜토리얼 (단계별 명령어) · 혼합 (개념 후 명령어: 개념 스킬을 사용하고 튜토리얼에서
Term을 빌려옴). - 시각 스타일: Dracula (어두움, 네온 색상, 최종 영상과 동일) · 크림 (종이 배경, 흰색 상자, 종이 스타일).
- 길이: 짧음, 최대 60초 (5
6장면, Shorts에 적합) · 중간, 1:302분 (810장면) · 전체, 약 3분 (1214장면, SSH 및 Git 영상과 동일). - 배경 음악: 신스 (기술적 미니멀, 영상에서 사용) · 로파이 · 앰비언트 · 피아노 · 음악 없음.
2차 질문 (여전히 불명확한 경우에만):
- 대상: 초보자 (모든 용어 설명) 또는 이미 프로그래밍하는 사람 (바로 본론).
- 음성: pt-BR-AntonioNeural (남성, 사용됨) 또는 pt-BR-FranciscaNeural (여성).
narracao.py --vozes를 실행하여 다른 음성을 확인하세요. - 필수 포인트: 빠져서는 안 될 내용? 특정 예제, 명령어 또는 이야기?
- 마무리: 요약/체크리스트 (기본값), "이 영상 저장" 호출 또는 댓글 질문.
진행하기 전에 2~3줄로 주제, 유형, 시각 스타일, 길이, 장면 수, 배경 음악을 확인하세요.
2단계 — 컴퓨터 준비 (각 머신당 한 번)
python SK/video-dev/scripts/checar.py
누락된 항목이 있으면: python SK/video-dev/scripts/checar.py --instalar (edge-tts, pillow,
imageio-ffmpeg, numpy를 pip로 설치; ffmpeg는 imageio-ffmpeg 내부에 포함되어 시스템에 별도 설치 불필요).
Bahnschrift 및 Consolas 글꼴은 Windows에 기본 포함되어 있습니다.
사용자에게 한 번 알리세요: 음성은 인터넷을 사용합니다. 대본 텍스트는 Microsoft 음성 서비스로 전송됩니다. 애니메이션과 음악은 100% 컴퓨터에서 실행됩니다.
Windows에서 긴 경로 주의: Python은 매우 깊은 폴더(예: Claude 임시 폴더)에서 "File name too long" 오류로 실패합니다. 짧은 폴더에서 작업하세요.
3단계 — 영상 폴더 생성
동기화 폴더 외부(OneDrive, Dropbox, iCloud) 폴더를 선호하세요: 렌더링 시 수천 개의 프레임을 기록하고 동기화 속도가 느려집니다.
제안: ~/Projetos/videos/<짧은-이름>/. 사용자가 다른 위치를 선호하는지 물어보세요.
python SK/video-dev/scripts/novo.py <폴더> --tipo conceito --titulo "O que é Docker" --tema dracula --cenas 12
구조 (대본 1개 발화 = 1개 장면):
<폴더>/
video.json 제목, 파일 이름, 테마, 음성, 속도, 배경 음악
roteiro.json ["장면 1 발화", "장면 2 발화", ...]
pronuncia.json 선택 사항: 프로젝트 용어 -> 음성 표기
cenas.py def cenas(): return [[장면 1 요소], ...]
audio/ cena01.mp3 + cena01.json (각 단어의 시간)
saida/ <이름>.mp4, <이름>_trilha.mp4, poster.jpg, preview/
4단계 — 대본 → 사용자에게 표시 → 승인
유형(개념 또는 튜토리얼) 스킬과 narracao-voz 스킬의 말하기 규칙에 따라 대본을 작성하세요. 애니메이션 전에 대본을 표시하세요: 텍스트 변경이 장면 변경보다 훨씬 저렴합니다. 승인 후에만 진행하세요.
5단계 — 나레이션
python SK/narracao-voz/scripts/narracao.py <폴더>
python SK/narracao-voz/scripts/narracao.py <폴더> --tempos 3 # 장면 3의 각 단어가 발화되는 시점
나레이션은 장면보다 먼저 진행됩니다. 각 장면의 길이는 발화 길이 + 0.7초이며, 요소는 해당 단어가 발화되는 순간에 나타납니다.
6단계 — 장면 (애니메이션)
from motor import *를 사용하여 cenas.py를 작성하세요 (전체 API는 references/elementos.md 참조).
각 장면에 대해: --tempos N을 실행하고, 각 키워드에 표시할 항목을 선택한 후 요소의 t에 해당 시간(또는 0.2초 전)을 사용하세요.
코드를 읽는 것뿐만 아니라 프레임을 확인하세요:
python SK/video-dev/scripts/render.py <폴더> --preview # 각 장면의 마지막 프레임
python SK/video-dev/scripts/render.py <폴더> --cena 4 # 장면 4, 초당 한 프레임
Read 도구로 PNG를 열고 확인하세요: 가장자리 잘림 없음, 겹침 없음, 휴대폰에서 읽을 수 있을 만큼 충분히 큰 텍스트, 아래 250px(자막 및 TikTok/Reels 버튼 위치)에 중요한 내용 없음.
7단계 — 최종 렌더링 + 배경 음악
python SK/video-dev/scripts/render.py <폴더> # saida/<이름>.mp4 + poster.jpg
python SK/trilha-video/scripts/mixar.py <폴더>/saida/<이름>.mp4 synth # saida/<이름>_trilha.mp4
3분 영상 렌더링은 몇 분 정도 소요됩니다: 백그라운드에서 실행하세요.
8단계 — 확인 및 전달
- ffmpeg로 길이와 오디오 유무 확인 (
ffmpeg -i 파일.mp4는 스트림을 표시합니다). - 최종 MP4에서 다른 지점의 3~4개 프레임을 추출하여 확인하세요.
- SendUserFile로 전달 (
display: "render")하고 폴더 위치를 알려주세요. - 사용자가 시청 또는 공유용 페이지를 원하는 경우 (SSH 및 Git 영상과 같이),
MP4와 스크립트를
files에 포함하여 Artifact로 게시하세요. 사용자가 요청한 경우에만 공개하세요. - 사용자 승인 없이 YouTube/TikTok/GitHub에 업로드하지 마세요.
완료 후 일반적인 변경 사항
| 요청 | 수행할 작업 |
|---|---|
| 문구 변경 | roteiro.json 편집 → narracao.py --so N → 장면 N 타이밍 조정 → 렌더링 |
| 잘못된 발음 | 프로젝트의 pronuncia.json → narracao.py --so N (narracao-voz 참조) |
| 다른 시각 스타일 | 렌더 시 --tema creme 또는 video.json에서 tema 변경 |
| 음악 크기 조정 | mixar.py ... --trilha 0.25 (trilha-video 참조) |
| 긴 영상의 짧은 버전 | 핵심 장면과 간결한 대본만 복사하여 새 프로젝트 생성 |
시작하기 전에 references/licoes.md를 읽으세요: 처음 두 영상의 실수와 성공 사례가 있습니다.