youtube-shorts

star 1

인포그랩 AI/DevOps 유튜브 숏츠 자동 생성. HN/Reddit 트렌드 수집 → Gemini 스크립트 → 이미지 → Veo 영상 → TTS 나레이션 → Remotion 합성 → YouTube 업로드

kangjjang By kangjjang schedule Updated 5/9/2026

name: youtube-shorts description: "인포그랩 AI/DevOps 유튜브 숏츠 자동 생성. HN/Reddit 트렌드 수집 → Gemini 스크립트 → 이미지 → Veo 영상 → TTS 나레이션 → Remotion 합성 → YouTube 업로드" version: "2.0.0" metadata: openclaw: requires: tools: - bash - exec env: - GEMINI_API_KEY


YouTube Shorts 자동화 스킬 — 인포그랩

사용법

숏츠 만들어줘
숏츠 주제 뽑아줘
[주제명] 숏츠 만들어줘      (예: "Kubernetes Gateway API 숏츠 만들어줘")
트렌드만 수집해줘

사전 준비

1. 의존성 설치

cd <SKILL_DIR>
pip install -r requirements.txt

2. 환경변수

.env.example.env로 복사 후 API 키 입력:

GEMINI_API_KEY=AIza...

Gemini API 키 하나로 텍스트(스크립트/SEO) + 이미지 + 영상 + TTS 전체 처리.

3. Node.js + Remotion

Remotion으로 Veo 클립 + 한글 자막 + 나레이션을 합성:

brew install node
cd <SKILL_DIR>/remotion && npm install

4. YouTube 업로드 (선택)

  • Google Cloud Console → OAuth 2.0 클라이언트 ID (데스크톱 앱) 생성
  • YouTube Data API v3 활성화
  • JSON 다운로드 → credentials/client_secret.json에 저장

5. FFmpeg (폴백)

Remotion 실패 시 폴백으로 사용:

brew install ffmpeg

실행 흐름 (Pipeline)

트렌드 → 주제 → 스크립트 → 이미지 → Veo 클립 ─┐
                                                 ├→ Remotion 합성 → SEO → 업로드
                          스크립트 → Gemini TTS ──┘

STEP 1 — 트렌드 수집

Hacker News API + Reddit (r/devops, r/MachineLearning, r/kubernetes, r/LocalLLaMA, r/programming, r/aws) 에서 AI/DevOps 관련 포스트 수집 후 숏츠 적합도 점수로 정렬.

python main.py trends

STEP 2 — 주제 선정

Gemini 2.5 Flash로 트렌드 분석, 상위 3개 후보 추출. 사용자에게 선택 요청 (--auto 시 자동 선택).

STEP 3 — 스크립트 작성

Gemini 2.5 Flash로 60초 한국어 숏츠 스크립트 생성. 훅(5초) + 핵심 설명(40초) + CTA(15초) 구조. 장면별 이미지/영상 프롬프트 포함 JSON 출력.

python main.py generate --topic "Kubernetes Gateway API"

STEP 4 — 이미지 생성

각 장면별 키프레임을 Gemini 2.5 Flash Image로 생성. 9:16 세로, 다크 테크 스타일.

STEP 5 — 영상 생성

키프레임 이미지를 첫 프레임으로 Veo 3.1으로 8초 클립 생성. Veo 클립은 배경 영상으로 사용.

STEP 6 — TTS 나레이션

Gemini gemini-2.5-flash-preview-tts로 스크립트 나레이션(hook + main + cta)을 한국어 음성으로 생성. 별도 API 키 불필요 (기존 GEMINI_API_KEY 사용).

STEP 7 — Remotion 합성

Veo 클립(배경) + 한글 자막(Noto Sans KR) + 나레이션 오디오를 Remotion으로 합성. 1080×1920, 30fps. Remotion 실패 시 FFmpeg로 폴백.

STEP 8 — SEO 패키지

Gemini로 제목(A/B/C), 설명, 태그 20개, 해시태그 생성.

STEP 9 — 업로드

YouTube Data API v3로 업로드 (기본 비공개).

python main.py --auto --upload          # 비공개 업로드
python main.py --auto --upload --public # 공개 업로드

CLI 명령어

명령어 설명
python main.py 전체 파이프라인 (대화형 주제 선택)
python main.py --auto --upload 자동 선택 + 비공개 업로드
python main.py --upload --public 공개 업로드
python main.py --quality full 고품질 Veo ($0.30/s)
python main.py trends 트렌드 수집만
python main.py generate --topic "K8s" 특정 주제로 생성
python main.py upload --dir outputs/... 기존 영상 업로드

파일 구조

youtube-shorts/
├── SKILL.md                 ← 이 파일
├── requirements.txt         ← Python 의존성
├── .env.example             ← 환경변수 템플릿
├── config.py                ← 설정 관리 (.env 로딩, 검증)
├── main.py                  ← CLI 진입점 (오케스트레이터)
├── modules/
│   ├── __init__.py
│   ├── trends.py            ← HN + Reddit 트렌드 수집
│   ├── topic_selector.py    ← Gemini — 주제 선정
│   ├── script_writer.py     ← Gemini — 60초 한국어 스크립트
│   ├── tts_generator.py     ← Gemini TTS — 한국어 나레이션
│   ├── compositor.py        ← Remotion — 영상 합성
│   ├── seo_packager.py      ← Gemini — SEO 메타데이터
│   ├── image_generator.py   ← Gemini 2.5 Flash Image — 키프레임
│   ├── video_generator.py   ← Veo 3.1 — 8초 클립 + FFmpeg 폴백
│   └── youtube_uploader.py  ← YouTube Data API v3 — OAuth2 업로드
├── remotion/                ← Remotion 합성 프로젝트
│   ├── package.json         ← Node.js 의존성
│   ├── tsconfig.json        ← TypeScript 설정
│   └── src/
│       ├── Root.tsx          ← Remotion 진입점
│       └── ShortsVideo.tsx   ← 메인 합성 컴포넌트
├── prompts/
│   ├── topic_research.md    ← 주제 큐레이션 프롬프트
│   ├── script_writer.md     ← 스크립트 작성 프롬프트
│   └── seo_packager.md      ← SEO 패키징 프롬프트
├── credentials/             ← OAuth2 인증 (gitignore)
└── outputs/                 ← 생성 결과물
    └── YYYY-MM-DD-[slug]/
        ├── trends.json
        ├── script.json
        ├── seo.json
        ├── narration.wav    ← TTS 나레이션
        ├── composition-props.json ← Remotion 입력
        ├── frames/          ← 키프레임 이미지
        ├── clips/           ← Veo 영상 클립
        └── final_shorts.mp4

비용 참고

항목 단가 숏츠 1편 기준
Gemini 2.5 Flash (텍스트) ~$0.001 ~$0.003 (3회 호출)
Gemini 2.5 Flash Image ~$0.001/장 ~$0.003 (3장)
Veo 3.1 Fast $0.10/초 ~$2.40 (3클립 × 8초)
Veo 3.1 Full $0.30/초 ~$7.20 (3클립 × 8초)
Gemini TTS ~$0.001 ~$0.001 (1회 호출)
합계 (Fast) ~$2.40
합계 (Full) ~$7.20

영상 생성 전 비용 체크포인트에서 예상 비용을 표시하고 확인을 받습니다 (--auto 시 생략).


에러 처리

  • Reddit API 실패 → Hacker News만으로 폴백
  • 개별 이미지/클립 생성 실패 → 건너뛰고 나머지 계속 진행
  • TTS 생성 실패 → 나레이션 없이 계속 진행
  • Remotion 렌더링 실패 → FFmpeg 단순 결합으로 폴백
  • YouTube 업로드 실패 → 지수 백오프로 최대 5회 재시도

사용 모델

  • Gemini 2.5 Flash — 텍스트 (주제 선정, 스크립트, SEO)
  • Gemini 2.5 Flash Image — 키프레임 이미지 생성
  • Gemini 2.5 Flash Preview TTS — 한국어 나레이션 음성 합성
  • Veo 3.1 Fast/Full — 8초 영상 클립 생성
Install via CLI
npx skills add https://github.com/kangjjang/youtube-shorts-skill --skill youtube-shorts
Repository Details
star Stars 1
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator