# Show GN: 대본(YAML) 한 장이면 나레이션·자막·BGM 입힌 영상이 나오는 도구를 만들었습니다

> Clean Markdown view of GeekNews topic #31215. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=31215](https://news.hada.io/topic?id=31215)
- GeekNews Markdown: [https://news.hada.io/topic/31215.md](https://news.hada.io/topic/31215.md)
- Type: show
- Author: [kmg28801](https://news.hada.io/@kmg28801)
- Published: 2026-07-08T00:42:51+09:00
- Updated: 2026-07-08T00:42:51+09:00
- Original source: [github.com/kmg28801](https://github.com/kmg28801/scriptreel)
- Points: 1
- Comments: 0

## Topic Body

영상 편집이 처음이라 한 편에 반나절씩 걸려서, 편집 과정을 코드로 자동화했습니다.  
  
입력은 장면별로 narration / visual / callout을 적은 YAML 한 장이 전부입니다.  
`python3 src/pipeline.py scenario.yaml config.yaml` 한 줄이면 완성된 mp4가 나옵니다.  
  
파이프라인 (Python):  
- 대본 → TTS 나레이션 (say / Supertone / ElevenLabs 교체식, 결과 캐싱)  
- 나레이션 길이에 맞춰 자막 타이밍 자동 배분, 내레이션=자막 동일  
- 자막·콜아웃을 PNG로 렌더해 overlay (이 ffmpeg 빌드에 libass/drawtext가 없어 택한 방식 — 한글 외곽선·위치 픽셀 제어가 오히려 쉬움)  
- 세로로 찍은 폰 영상은 배경 블러 패딩으로 화면비 자동 보정 (config 한 줄로 16:9 ↔ 9:16 쇼츠)  
- 나레이션 concat + BGM 믹스 (영상 끝에 맞춰 BGM 자동 컷 + 페이드 → '검은 꼬리' 방지)  
- 렌더 끝에 길이 드리프트·마지막 프레임 밝기 자동 검사  
  
faceless 자막 영상 전용이고, 실제로 이 도구로 제 유튜브 채널 영상을 뽑고 있습니다.  
  
한계: 자막이 단어 단위 싱크가 아니라 장면 단위(글자수 비례 배분)입니다.  
그리고 이 환경 ffmpeg에 libass가 없다는 전제로 만들어서, PNG overlay 방식이 기본입니다.  
  
완벽한 편집기 대체가 아니라, '대본 → 초벌 영상'을 사실상 0초로 만들어 반복 제작 비용을 없애는 게 목적입니다.  
  
스모크 테스트(키 없이 macOS say 음성으로 전체 파이프라인 확인):  
  python3 -m pip install -r requirements.txt  
  python3 demo/make_placeholders.py  
  python3 src/pipeline.py demo/scenario.yaml demo/config.yaml  
  
MIT. 피드백 환영합니다.

## Comments



_No public comments on this page._
