# Goddess Power Lab — 인물 클립 해석형 자동화 파이프라인 설계

작성일: 2026-06-01
대상: 변승환님 (직접 운영 + 추후 맥미니 sub-agent 편입)

---

## 0. 한 줄 요약

유명인/인플루언서 클립 1개를 넣으면 → **누나 톤의 해석 멘트 + 핵심 자막 + 제목 후보 + 9:16 구성안 + CapCut에 바로 넣을 자막/컷 파일**이 나오는 반자동 파이프라인. CapCut을 대체하지 않고, CapCut에 앉기 직전까지의 단순작업을 전부 자동화한다.

설계 원칙은 전략 노트와 동일하다. **사람이 감성·최종 판단을 하고, 기계는 수집·추출·초안만 한다.**

---

## 1. 자동 vs 수동 경계 (전략 노트 그대로)

| 기계가 한다 (이 파이프라인) | 사람이 한다 (CapCut에서) |
|---|---|
| 원본 클립 수집·정리 | 최종 클립 선택 |
| 자동 자막 추출(STT) | 감성 컷 편집 |
| 핵심 문장 추출 | B-roll 선택 |
| 제목 후보 생성 | 썸네일 판단 |
| 누나 톤 해석 멘트 초안 | 최종 업로드 판단 |
| 9:16 쇼츠 구성안 | |
| CapCut용 자막 파일(.srt) + 컷 리스트(.json) | |

기계 출력은 전부 **초안**이다. 누나/변승환님이 손대는 걸 전제로 만든다.

---

## 2. 6단계 워크플로우

```
[01] 수집      yt-dlp        URL → 원본 영상 + 메타데이터
   │
[02] 자막      whisper       원본 → 전체 전사(.srt, .json, 타임스탬프)
   │
[03] 분석      Haiku 4.5     전사 → 핵심문장 / 누나해석 / 제목후보 / 9:16구성안 (analysis.json)
   │
[04] 빌드      python        analysis + srt → CapCut용 자막(.srt) + 컷리스트(.json)
   │
[05] 검수      사람          분석 결과·구성안 읽고 OK/수정
   │
[06] 편집      CapCut        컷리스트대로 클립 트리밍 + 감성 편집 + 업로드
```

01~04는 한 번에 자동(`run_pipeline.sh`), 05~06은 사람.

---

## 3. 단계별 상세

### [01] 수집 — `01_collect.py`

- 도구: **yt-dlp** (유튜브/인스타/틱톡 등 지원, 가장 안정적)
- 입력: 영상 URL + (선택) 시작/끝 타임스탬프
- 출력: `work/<slug>/source.mp4`, `source.info.json`(제목·채널·길이·원본 URL)
- **저작권 가드레일**: 다운로드한 원본은 *작업용 임시본*. 최종물에는 짧은 인용 구간만 들어간다. info.json의 원본 URL은 영상 설명란 출처 표기에 자동 재사용.

### [02] 자막 추출 — `02_transcribe.py`

- 도구: **faster-whisper** (CPU에서도 빠름, 맥미니 M4면 충분). 모델 `small`/`medium` 권장
- 입력: `source.mp4`
- 출력: `transcript.srt`(타임코드 포함), `transcript.json`(세그먼트별 start/end/text)
- 언어 자동 감지 → 영어 인물이면 영어 전사 + (선택) 한국어 번역 자막 동시 생성

### [03] 분석 — `03_analyze.py` ★ 핵심

- 도구: **Claude Haiku 4.5** (운하명리에서 이미 검증된 모델, 비용 저렴)
- 입력: `transcript.json` + 인물 메타(이름/카테고리/누나가 끌리는 이유)
- 페르소나: `persona_una.md` (누나 톤 시스템 프롬프트)
- 출력: `analysis.json`
  ```json
  {
    "person": "Eckhart Tolle",
    "category": "고통과 마음의 반복",
    "key_quotes": [
      {"start": 12.4, "end": 18.9, "text_en": "...", "text_ko": "..."}
    ],
    "title_candidates": ["왜 우리는 같은 고통을 반복할까?", "..."],
    "una_take": "누나 톤 해석 멘트 2~3문장",
    "hook_line": "오프닝 후크 한 줄",
    "closing_line": "당신도 이런 흐름을 반복하고 있나요?",
    "nine_sixteen": [
      {"sec": "0-3", "role": "후크", "onscreen": "자막", "voiceover": "..."},
      {"sec": "3-15", "role": "원본클립", "onscreen": "핵심문장 자막", "voiceover": null}
    ]
  }
  ```
- 핵심: 5단 포맷(클립→핵심문장→누나가 끌리는 한 줄→GPL 관점 해석→자기이해 마무리)을 그대로 JSON 구조로 강제한다.

### [04] CapCut 빌드 — `04_build_capcut.py`

- 입력: `analysis.json` + `transcript.srt`
- 출력:
  - `capcut/captions.srt` — 핵심 인용 구간만 남긴 자막 (CapCut "자막 가져오기"로 바로 import)
  - `capcut/cut_list.json` — 어느 구간을 쓸지 컷 리스트 (start/end/라벨)
  - `capcut/script.md` — 사람이 읽을 최종 구성안(후크·자막·내레이션·마무리)
- CapCut은 .srt import를 지원하므로 자막은 손으로 다시 안 쳐도 된다. 컷 리스트는 사람이 보고 트리밍.

---

## 4. 폴더 구조

```
goddess_power_lab/
├── PIPELINE_DESIGN.md          ← 이 문서
├── persona_una.md              ← 누나 톤 프롬프트 (분석 단계 시스템 프롬프트)
├── requirements.txt
├── run_pipeline.sh             ← 01~04 한 번에
├── scripts/
│   ├── 01_collect.py
│   ├── 02_transcribe.py
│   ├── 03_analyze.py
│   └── 04_build_capcut.py
└── work/                       ← 인물별 작업 폴더 (자동 생성)
    └── eckhart-tolle-001/
        ├── source.mp4
        ├── source.info.json
        ├── transcript.srt
        ├── transcript.json
        ├── analysis.json
        └── capcut/
            ├── captions.srt
            ├── cut_list.json
            └── script.md
```

인물+회차 단위로 `work/<slug>-<번호>/` 가 하나의 작업 단위.

---

## 5. 저작권 가드레일 (파이프라인에 내장)

전략 노트의 "피해야 할 방향"을 코드 레벨에서 막는다.

1. **짧은 인용 강제** — `04_build_capcut.py`가 핵심 인용 총합 길이를 체크. 원본 비중이 일정(기본 50%)을 넘으면 경고를 띄운다. → "원본 길게 재업로드" 방지.
2. **해설 필수** — `una_take`(해석 멘트)가 비어 있으면 빌드 실패. → "해설 없는 짜깁기" 방지.
3. **출처 자동 보존** — `source.info.json`의 원본 URL·채널명을 `script.md` 하단 "설명란 출처" 블록에 자동 기록. → 출처 표기 누락 방지.
4. **자막만 바꾼 재사용 차단** — 분석 단계가 항상 *새 관점/해석*을 생성하므로 단순 자막 교체물이 나오지 않는다.

> 주의: 이건 리스크를 줄이는 운영 가드레일이지 법률 자문이 아니다. 인용·리액션의 공정이용 여부는 플랫폼 정책과 개별 판단에 달려 있으니, 규모가 커지면 변호사 확인을 권한다.

---

## 6. 비용·운영 메모

- yt-dlp / whisper: 무료, 로컬 실행. 맥미니 M4에서 전부 돌아간다.
- Haiku 4.5: 클립당 수천 토큰 수준 → 사실상 무시 가능한 비용.
- 클립 1개 처리 시간(맥미니 M4 기준 추정): 수집 10초 + 전사 1~3분(길이에 비례) + 분석 10초 + 빌드 즉시.

---

## 7. 맥미니 sub-agent 편입 (검증 후)

독립 스크립트로 3개 테스트 영상이 검증되면, 맥미니 sub-agent 매트릭스에 **"인물 클립 해석형"** 에이전트로 편입한다(메모리: project_macmini_subagent).

- 트리거: 인물 URL + 카테고리 입력
- 에이전트가 01~04 자동 실행 → `capcut/` 폴더 산출물을 누나 검수 큐에 올림
- 누나는 CapCut에서 05~06만 수행

지금은 편입하지 말 것. 워크플로우가 실전에서 한 번도 안 돌았으므로, 먼저 손으로 3번 돌려보고 포맷·페르소나를 튜닝한 뒤 매트릭스에 박는다.

---

## 8. 첫 실행 (전략 노트의 1차 테스트 3명)

```bash
cd goddess_power_lab
# 1) Aaron Doughty — 관계/에너지 패턴
python scripts/01_collect.py --url "<AARON_CLIP_URL>" --slug aaron-doughty-001
# 2) Eckhart Tolle — 고통 반복/마음 관찰
python scripts/01_collect.py --url "<TOLLE_CLIP_URL>" --slug eckhart-tolle-001
# 3) David Ghiyam 또는 Sadhguru — 부와 현실 창조
python scripts/01_collect.py --url "<GHIYAM_CLIP_URL>" --slug david-ghiyam-001

# 또는 한 번에:
./run_pipeline.sh "<URL>" "eckhart-tolle-001" "고통과 마음의 반복" "Eckhart Tolle"
```

각 영상 30~60초로 시작.
