비디오 프로세서
YouTube 콘텐츠 제작을 위한 비디오 파일과 소셜 미디어 그래픽을 생성합니다. 이 스킬은 네 가지 주요 기능을 제공합니다:
- 대본 및 챕터 생성: 비디오 클립을 타임스탬프가 포함된 대본, SRT 자막, 그리고 AI 생성 YouTube 챕터로 변환합니다.
- YouTube 썸네일 생성: 얼굴 참조와 스타일 일치를 지원하는 AI 기반 YouTube 썸네일을 만듭니다.
- LinkedIn 게시물 이미지 생성: 전문적인 LinkedIn 인포그래픽 및 게시물 이미지를 생성합니다.
- 일반 이미지 생성: 유연한 크기와 프롬프트로 모든 플랫폼용 맞춤 이미지를 만듭니다.
이 스킬을 사용하는 경우
사용자가 다음과 같은 요청을 할 때 이 스킬을 사용하세요:
- 비디오 파일이나 클립을 대본으로 변환하려고 함
- YouTube 챕터 생성이 필요함
- 기존 대본에서 챕터를 다시 생성하려고 함
- YouTube 썸네일을 만들고 싶어 함
- LinkedIn 게시물 이미지나 인포그래픽을 만들고 싶어 함
- 다른 플랫폼(Instagram, Twitter, Facebook 등)용 이미지를 생성하고 싶어 함
- 썸네일에 얼굴 바꾸기를 언급함
- 그래픽을 위한 얼굴 또는 스타일 참조 제공에 대해 물어봄
적절한 이미지 생성 도구 선택
이 스킬은 세 가지 이미지 생성 스크립트를 제공합니다. 플랫폼과 요구 사항에 따라 선택하세요:
thumbnail.py (YouTube 썸네일) 사용 시기:
- 사용자가 "YouTube", "썸네일", "비디오 썸네일"을 언급할 때
- 16:9 비율이 요청될 때
- 얼굴이 포함된 극적이고 시선을 사로잡는 스타일이 필요할 때
- 기본값: 1920x1080
linkedin-post.py (LinkedIn 인포그래픽) 사용 시기:
- 사용자가 "LinkedIn", "LinkedIn 게시물", "비즈니스 인포그래픽"을 언급할 때
- 정사각형 형식의 인포그래픽이 요청될 때
- 전문적이고 어두운 테마, 얼굴 없음이 필요할 때
- 기본값: 1200x1200
image-gen.py (일반) 사용 시기:
- 사용자 지정 크기가 지정된 경우 (Instagram, Twitter, Facebook 등)
- 플랫폼이 YouTube나 LinkedIn이 아닐 때
- 사용자가 명시적으로 유연한/맞춤 도구를 요청할 때
- 사용자가 특정 스타일 요구 사항이 포함된 전체 프롬프트를 제공할 때
- 필수 매개변수:
--dimensions WIDTHxHEIGHT
우선 순위: 사용 사례가 일치하는 경우 항상 thumbnail.py 또는 linkedin-post.py를 우선 사용하세요. 다른 플랫폼이나 맞춤 요구 사항에는 image-gen.py를 대체 도구로 사용하세요.
설치 및 요구 사항
비디오 프로세서는 프로젝트 저장소의 video-processor/ 디렉토리에 있습니다.
요구 사항:
- Python 3.9+
- uv 패키지 관리자
- FFmpeg (대본 생성용)
- OpenAI API 키 (Whisper 대본 생성용)
- Gemini API 키 (챕터 및 썸네일용)
- Replicate API 토큰 (선택 사항, 얼굴 바꾸기용)
환경 설정:
cd video-processor
uv sync
# 필수 API 키와 함께 .env 파일이 있는지 확인
1. 비디오 대본 및 챕터 생성
기본 대본 생성 명령어
비디오 클립을 처리하여 대본, 자막, 챕터를 생성합니다:
cd video-processor
uv run transcribe.py <폴더_경로>
예시:
uv run transcribe.py ./my-youtube-video/
입력 형식
비디오는 순서를 위한 숫자 접두사가 있는 폴더에 있어야 합니다:
my-youtube-video/
├── 1.mp4 # 인트로
├── 2.mp4 # 본 내용
├── 3.mov # 데모
└── 4.mp4 # 아웃트로
지원 형식: MP4, MOV, MKV, AVI, WEBM, M4V
출력 파일
스크립트는 같은 폴더에 세 개의 파일을 생성합니다:
-
transcript.md - 타임스탬프가 포함된 마크다운
# 대본 [00:00] 채널에 다시 오신 것을 환영합니다... [00:15] 오늘은...에 대해 이야기해 보겠습니다. -
transcript.srt - 비디오 편집기/YouTube용 SRT 자막
1 00:00:00,000 --> 00:00:15,500 채널에 다시 오신 것을 환영합니다... -
chapters.txt - YouTube 챕터 제안 (AI 생성)
0:00 소개 2:30 설정 5:45 주요 튜토리얼
기능
- 멀티 클립 지원: 번호가 매겨진 클립을 처리하며 자동 타임스탬프 오프셋 계산
- 긴 비디오 지원: 20분 이상 비디오 자동 청크 분할 (API 제한)
- 타임스탬프 대본: 정확한 타임스탬프가 포함된 마크다운 형식
- AI 챕터: Gemini가 문맥에 맞는 챕터 표시를 생성
챕터만 다시 생성
이미 대본이 있고 챕터만 다시 생성하려면:
cd video-processor
uv run chapters.py <transcript.md 또는 폴더_경로>
예시:
# 대본 파일 직접 지정
uv run chapters.py ./my-video/transcript.md
# 또는 transcript.md가 포함된 폴더 지정
uv run chapters.py ./my-video/
사용 사례:
- 다시 대본 생성 없이 챕터 조정
- 대본 편집 후 챕터 재생성
- 다른 Gemini 모델 사용
중요 참고 사항
- 클립은 평평한 폴더에 있어야 함 (하위 디렉토리 없음)
- 비디오는 파일 이름 접두사의 숫자 순서로 처리됨
- 예상 비용: 오디오 분당 약 $0.006 (Whisper API)
- 긴 비디오는 API 제한을 처리하기 위해 자동으로 청크 분할됨
- 인터넷 연결 필요
2. 썸네일 생성
기본 썸네일 명령어
AI 기반 YouTube 썸네일 생성:
cd video-processor
uv run thumbnail.py "썸네일 아이디어를 여기에 입력"
기본 동작:
- 3가지 변형 생성
- 저장 경로:
./output/Thumbnails/[YYYY-MM-DD]/ - 존재하는 경우
assets/face.jpg사용 - 출력: 1920x1080 PNG 파일
- 브랜드 가이드라인: 색상 팔레트, 구성, 스타일 모범 사례는 references/brand-guidelines.md 참조
썸네일 매개변수
필수
- idea (위치 인자): 썸네일 개념/아이디어
얼굴 참조 옵션
--face PATH: 얼굴 참조 이미지 지정 (기본값:assets/face.jpg)--no-face: 얼굴 참조를 포함하지 않음--face-swap: Replicate으로 후처리하여 실제 얼굴로 교체 (REPLICATE_API_TOKEN 필요)
스타일 및 참조
--style PATH: 스타일 참조 썸네일 - AI가 레이아웃과 미적 감각을 일치시킴--ref PATH: 추가 참조 이미지 (여러 번 사용 가능)
로고 및 출력
--logo PATH: 썸네일에 합성할 로고--logo-position [bottom-right|bottom-left|top-right|top-left]: 로고 위치 (기본값: bottom-right)-o, --output PATH: 출력 디렉토리 또는 파일 경로--variations N: 생성할 변형 수 (기본값: 3)
썸네일 예시
기본 - 기본 설정으로 3가지 변형:
uv run thumbnail.py "Google 대규모 해고에 대한 충격적인 반응"
스타일 참조 포함:
uv run thumbnail.py "내 새 비디오 아이디어" --style ./existing-thumbnail.jpg --face ./me.jpg
얼굴 바꾸기로 정확한 초상 구현:
uv run thumbnail.py "새로운 AI 기능에 신난" --face ./me.jpg --face-swap
빠른 테스트용 단일 변형:
uv run thumbnail.py "빠른 테스트 아이디어" --variations 1
사용자 지정 출력 디렉토리:
uv run thumbnail.py "내 비디오 개념" -o ./custom-folder/
얼굴 없음 (장면만):
uv run thumbnail.py "화면에 오류가 표시된 드라마틱한 코드" --no-face
로고 오버레이 포함:
uv run thumbnail.py "내 비디오 개념" --logo ./assets/logo.png
얼굴 참조 설정
일관된 썸네일을 위해:
-
assets/폴더에 헤드샷을 추가하세요:video-processor/assets/ ├── face.jpg # 기본 얼굴 (자동 로드) ├── face-excited.jpg # 대체 표정 ├── face-shocked.jpg └── logo.png # 채널 로고 -
스크립트는
assets/face.jpg가 존재하면 자동으로 사용합니다. -
--face를 사용하여 다른 표정으로 재정의합니다. -
--no-face를 사용하여 얼굴 참조를 완전히 건너뜁니다.
스타일 참조
--style 플래그는 기존 썸네일 미적 감각과 일치시킵니다:
- 전체 레이아웃 및 구성
- 색 구성표 및 분위기
- 텍스트 스타일 (글꼴 두께, 색상, 위치)
- 배경 스타일 및 효과
일관된 채널 브랜딩 유지에 완벽합니다.
브랜드 가이드라인 및 모범 사례
중요: 썸네일을 생성하기 전에 references/brand-guidelines.md를 읽고 다음을 확인하세요:
- 파란색 브랜드 색상 사용 (강조색으로, 주색이 아님)
- 자연스러운 피부 톤 요구 사항 (얼굴에 파란색 색조 없음)
- 균형 잡힌 색상 팔레트 (생동감 있는 색상의 혼합)
- 텍스트 강조 패턴 (파란색으로 1-2개 키워드)
- 구성 가이드라인 (레이아웃, 시각적 흐름)
- 과거 성공적인 썸네일의 검증된 예시
이 가이드라인은 썸네일이 과포화나 부자연스러운 조명과 같은 일반적인 함정을 피하면서 브랜드 일관성을 유지하도록 보장합니다.
얼굴 바꾸기로 정확한 초상 구현
AI 생성 얼굴은 정확하지 않을 수 있습니다. 후처리를 위해 --face-swap을 사용하세요:
uv run thumbnail.py "내 비디오 아이디어" --face ./me.jpg --face-swap
작동 방식:
- AI로 썸네일 생성 (위치 참조로 얼굴 사용)
- Replicate으로 후처리하여 실제 얼굴로 교체
설정:
- https://replicate.com/account/api-tokens 에서 Replicate API 토큰 받기
.env에 추가:REPLICATE_API_TOKEN=r8_여기에_토큰_입력- 비용: 얼굴 바꾸기당 약 $0.003 ($1당 약 370회 교체)
썸네일 사양
| 요소 | 값 |
|---|---|
| 해상도 | 1920x1080 (1080p) |
| 화면 비율 | 16:9 |
| 형식 | PNG (또는 --output .jpg로 JPG) |
| 기본 변형 수 | 3 |
| 모델 | 기본값 Gemini 3 Pro (Nano Banana Pro) |
중요 썸네일 참고 사항
- Gemini 모델은 참조 이미지 지원; Imagen은 미지원
- 비용: Gemini 3 Pro로 이미지당 약 $0.13
- 얼굴 바꾸기는 썸네일당 약 $0.003 추가
- 얼굴 바꾸기 포함 3개 썸네일: 총 약 $0.40
- 인터넷 연결 필요
3. LinkedIn 게시물 이미지 생성
기본 LinkedIn 이미지 명령어
AI 기반 LinkedIn 게시물 이미지 및 인포그래픽 생성:
cd video-processor
uv run linkedin-post.py "게시물 개념을 여기에 입력"
기본 동작:
- 3가지 변형 생성
- 저장 경로:
./output/LinkedIn/[YYYY-MM-DD]/ - 출력: 1200x1200 PNG 파일 (LinkedIn 정사각형 형식)
- 인포그래픽 레이아웃에 최적화 (얼굴 없음, 흰색 배경, 플랫 디자인)
LinkedIn 이미지 매개변수
필수
- idea (위치 인자): LinkedIn 게시물 개념/아이디어
스타일 및 참조
--style PATH: 스타일 참조 이미지 - AI가 레이아웃과 미적 감각을 일치시킴--ref PATH: 추가 참조 이미지 (여러 번 사용 가능)
로고 및 출력
--logo PATH: 이미지에 합성할 로고--logo-position [bottom-right|bottom-left|top-right|top-left]: 로고 위치 (기본값: bottom-right)-o, --output PATH: 출력 디렉토리 또는 파일 경로--variations N: 생성할 변형 수 (기본값: 3)
LinkedIn 이미지 예시
기본 - 3가지 변형:
uv run linkedin-post.py "인간과 에이전트의 책임을 보여주는 5단계 AI 검증 피라미드"
스타일 참조 포함:
uv run linkedin-post.py "내 인포그래픽 개념" --style ./existing-infographic.jpg
테스트용 단일 변형:
uv run linkedin-post.py "빠른 테스트" --variations 1
사용자 지정 출력 디렉토리:
uv run linkedin-post.py "내 개념" -o ./custom-folder/
로고 오버레이 포함:
uv run linkedin-post.py "내 인포그래픽" --logo ./assets/logo.png
LinkedIn 이미지 사양
| 요소 | 값 |
|---|---|
| 해상도 | 1200x1200 (LinkedIn 정사각형) |
| 화면 비율 | 1:1 |
| 형식 | PNG (또는 --output .jpg로 JPG) |
| 기본 변형 수 | 3 |
| 모델 | 기본값 Gemini 3 Pro (Nano Banana Pro) |
| 스타일 | 전문적인 인포그래픽, 얼굴 없음, 플랫 디자인 |
중요 LinkedIn 이미지 참고 사항
- 전문적인 비즈니스 인포그래픽에 최적화됨
- 현대적이고 세련된 미적 감각의 어두운 테마
- 얼굴이나 사람은 포함되지 않음 (순수 다이어그램/인포그래픽 스타일)
- 그라데이션이 있는 파란색 색상 테마
- YouTube 썸네일보다 높은 정보 밀도
- 비용: Gemini 3 Pro로 이미지당 약 $0.13
- 인터넷 연결 필요
4. 일반 이미지 생성
기본 일반 이미지 명령어
모든 플랫폼용 사용자 지정 크기의 AI 기반 이미지 생성:
cd video-processor
uv run image-gen.py "이미지 개념" --dimensions WIDTHxHEIGHT
주요 기능:
- 사용자 지정 크기 (필수 매개변수)
- 최소 프롬프트 래핑 (최대 유연성)
- 스타일 참조 지원
- 저장 경로:
./output/Images/[YYYY-MM-DD]/ - 기본값: 3가지 변형
일반 이미지 매개변수
필수
- idea (위치 인자): 전체 프롬프트 세부 정보가 포함된 이미지 개념
--dimensions WIDTHxHEIGHT: 이미지 크기 (예: 1080x1080, 1200x675)
스타일 및 참조
--style PATH: 스타일 참조 이미지 - AI가 미적 감각을 일치시킴--ref PATH: 추가 참조 이미지 (여러 번 사용 가능)
로고 및 출력
--logo PATH: 이미지에 합성할 로고--logo-position [bottom-right|bottom-left|top-right|top-left]: 로고 위치 (기본값: bottom-right)-o, --output PATH: 출력 디렉토리 또는 파일 경로--variations N: 생성할 변형 수 (기본값: 3)
일반 이미지 예시
Instagram 정사각형 게시물:
uv run image-gen.py "흰색 배경의 미니멀리스트 제품 사진" --dimensions 1080x1080
Instagram 스토리:
uv run image-gen.py "세로형 동기 부여 명언 디자인" --dimensions 1080x1920
Twitter 게시물 이미지:
uv run image-gen.py "파란색 테마의 기술 발표 그래픽" --dimensions 1200x675
Facebook 커버 사진:
uv run image-gen.py "전문적인 비즈니스 헤더" --dimensions 820x312
스타일 참조 포함:
uv run image-gen.py "내 개념" --dimensions 1200x1200 --style ./reference.jpg
일반적인 크기 참조
| 플랫폼 | 크기 | 화면 비율 | 명령어 |
|---|---|---|---|
| YouTube 썸네일 | 1920x1080 | 16:9 | 대신 thumbnail.py 사용 |
| LinkedIn 정사각형 | 1200x1200 | 1:1 | 대신 linkedin-post.py 사용 |
| Instagram 정사각형 | 1080x1080 | 1:1 | --dimensions 1080x1080 |
| Instagram 스토리 | 1080x1920 | 9:16 | --dimensions 1080x1920 |
| Twitter 게시물 | 1200x675 | 16:9 | --dimensions 1200x675 |
| Facebook 게시물 | 1200x630 | 1.91:1 | --dimensions 1200x630 |
| Pinterest 핀 | 1000x1500 | 2:3 | --dimensions 1000x1500 |
중요 일반 이미지 참고 사항
thumbnail.py와linkedin-post.py가 사용 사례에 맞는 경우 그것들을 우선 사용하세요- 다른 모든 플랫폼에 대해 자유롭게 사용 가능
- 특정 스타일 가이드라인에 대한 미니멀한 개입으로 최대 생성 제어
- 비용: Gemini 3 Pro로 이미지당 약 $0.13
- 인터넷 연결 필요
환경 변수
video-processor/에 .env 파일을 만드세요:
# 필수
OPENAI_API_KEY=sk-... # 대본 생성용
GEMINI_API_KEY=... # 챕터 및 이미지 생성용
# 선택 사항 (얼굴 바꾸기용)
REPLICATE_API_TOKEN=r8_... # 얼굴 바꾸기 후처리용
문제 해결
일반적인 문제
- "uv: command not found" - https://docs.astral.sh/uv/ 에서 uv 설치
- "ModuleNotFoundError" -
uv sync실행하여 모든 종속성 설치 확인 - "API key not found" -
.env파일이 모든 필수 키와 함께 존재하는지 확인 - "FFmpeg not found" - 시스템에 FFmpeg 설치 (Ubuntu:
sudo apt install ffmpeg, macOS:brew install ffmpeg) - "No clips found" - 비디오 파일이 올바른 형식과 번호 패턴으로 플랫 패더에 있는지 확인
비디오 문제
- 지원되지 않는 형식: MP4, MOV, MKV, AVI, WEBM, M4V만 지원됨
- 긴 비디오: 20분 이상 비디오는 자동으로 청크 분할되지만 더 오래 걸릴 수 있음
- 오디오 없음: 비디오에 오디오 트랙이 있는지 확인
이미지 생성 문제
- 스타일 불일치:
--style참조는 근사치이며 정확한 복제가 아닐 수 있음 - 얼굴 바꾸기 실패:
REPLICATE_API_TOKEN이 올바르게 설정되었는지 확인 - 로고 오버레이: PNG 로고가 투명 배경과 함께 가장 잘 작동함
- 저작권: 생성된 이미지의 라이선스 조건 확인