Gemini + edge-tts로 유튜브 숏츠 자동 생성하기 — simple-shorts-generator 실측 리뷰

목차
유튜브 숏츠와 릴스를 매일 자동으로 찍어주는 파이썬 도구가 GitHub에 올라왔다. Daewooki/simple-shorts-generator는 Gemini API로 글을 만들고 edge-tts로 나레이션을 입혀 ffmpeg로 1080×1920 세로 영상을 합성한다. 정말 그 흐름이 한 번에 돌아가는지 Docker로 처음부터 끝까지 돌려봤다.
테스트 환경
- 호스트: macOS (Darwin 25.3.0) / Docker Desktop 28.5.1
- 컨테이너:
python:3.11-slim(Debian 13), Python 3.11.15, ffmpeg 7.1.4 - 패키지: google-generativeai 0.8.6, edge-tts 7.2.8, Pillow 12.2.0, PyYAML 6.0.3
- 측정 시점: 2026-05-22
도구 한눈에 보기
코드는 의외로 단출하다. 루트에 파이썬 파일 다섯 개(main.py, content_generator.py, tts_generator.py, image_generator.py, video_generator.py)와 YAML 두 개가 전부. requirements.txt도 네 줄(google-generativeai, Pillow, PyYAML, edge-tts)이다.
실행은 python main.py --type {타입} 한 줄. 타입은 quote(명언), english(영어), knowledge(상식), motivation(동기부여), custom(자유 주제) 다섯 가지이고, 응답은 인트로·슬라이드 2~4장·아웃트로 구조의 JSON으로 강제된다.
Docker로 검증한 동작 흐름
호스트를 더럽히고 싶지 않아서 Dockerfile로 격리 환경을 만들었다.
FROM python:3.11-slim
RUN apt-get update && apt-get install -y --no-install-recommends \
ffmpeg fonts-noto-cjk ca-certificates && rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .빌드는 약 16초. python main.py --help는 정상 동작했지만, 첫 줄에 주의해야 할 경고가 따라왔다.
FutureWarning: All support for the `google.generativeai` package has ended.
Please switch to the `google.genai` package as soon as possible.의존하는 SDK가 이미 deprecated 상태. 동작은 하지만 마이그레이션은 시간 문제고, content_generator.py 한 파일만 손보면 된다.
config.yaml이 없으면 친절한 안내 메시지와 함께 종료하고, 예시 파일을 복사하면 "❌ Gemini API 키가 설정되지 않았습니다!" 단계에서 막힌다. 잘못된 키로 트래픽이 새는 사고는 막아둔 셈. edge-tts는 단독으로도 즉시 동작한다.
$ edge-tts --voice ko-KR-SunHiNeural \
--text "안녕하세요. 오늘의 명언입니다." \
--write-media tts_test.mp3
# 결과: 24,624 bytes, 4.104초 mp3 (ffprobe 측정)실측 결과 — 1080×1920 mp4가 진짜 나온다
모킹한 명언 콘텐츠로 풀 파이프라인을 돌린 실제 출력이다.
| 단계 | 산출물 | 측정값 |
|---|---|---|
| 슬라이드 생성 | 1080×1920 PNG 4장 (인트로/콘텐츠×2/아웃트로) | 각 35~55 KB |
| 폰트 자동 다운로드 | Noto Sans KR (Google Fonts) | 최초 1회만 |
| TTS 생성 | edge-tts ko-KR-SunHiNeural × 4 파일 | 합계 17.54초 |
| 최종 영상 | output/test_shorts.mp4 | 1.5 MB / 17.6초 / h264+aac / 30fps |
ffprobe 결과는 1080×1920, h264, 30fps, 716 kbps, 17.6s로 숏폼 규격을 정확히 충족했다. TTS 길이에 맞춰 슬라이드 표시 시간이 자동으로 늘어나는 동작도 로그로 확인됐다(슬라이드 1=5.0초, 슬라이드 2=7.9초로 가변).
장단점과 추천 대상
장점은 비용 — Gemini 무료 티어(분당 60회, 일 1,500회), edge-tts, ffmpeg 모두 0원이다. 코드도 500줄 안쪽이라 손보기 쉽고, 1080×1920이 하드코딩돼 있어 콘텐츠만 갈아끼우면 매일 다른 영상이 나온다. cron이나 Windows 작업 스케줄러로 묶기에 딱 좋은 형태다.
단점은 SDK deprecation 외에 BGM은 mp3를 직접 넣어야 하고, 슬라이드가 그라데이션+텍스트 중심이라 시각적 임팩트가 약하다. README의 clone URL이 YOUR_USERNAME/shorts-generator 자리표시자로 남아 있는 것도 옥에 티.
매일 명언·상식·영어 영상을 자동 업로드할 1인 크리에이터, 영상 자동화 파이프라인 골격을 익힐 파이썬 입문자에게 잘 맞는다. 디자인 비중이 큰 브랜드 콘텐츠나 1분 이상 영상에는 별도 후처리가 필요하다. 전체 검증은 Docker 빌드 16초 + 슬라이드·TTS·영상 합성 약 25초로 1분 안에 끝났다.
참조 링크
- Daewooki/simple-shorts-generator (GitHub)원본 저장소 — MIT 라이선스
- Google AI Studio — Gemini API Key무료 티어 발급처 (분당 60회 / 일 1,500회)
- rany2/edge-ttsMicrosoft Edge TTS를 무료로 사용하는 파이썬 패키지
- google-generativeai → google.genai 마이그레이션 안내Google이 권장하는 신규 SDK 전환 가이드
