# 영상형 Threads 포스팅: 콘텐츠 생성 → 영상 제작 → 업로드

## 목표
영상형 Threads 포스팅을 **처음부터 끝까지** 완성한다.
1. 5단계 파이프라인으로 콘텐츠 생성
2. Remotion 영상 엔진으로 숏폼 영상 제작
3. Threads에 실제 업로드

## 프로젝트 경로
- ThreadAuto: `/home/jay/projects/ThreadAuto/`

## ★ 이전 피드백 (반드시 준수)
- 영상이 "카드뉴스를 그냥 동영상으로 만든 수준"이면 불합격
- 에반 6원칙 필수: 검정배경, 테마색상, 레이아웃변주, 타이핑효과, 시간차등장, 다이나믹
- 음성과 텍스트 타이핑/나타나는 효과의 싱크가 맞아야 함
- 검정 화면 같은 무의미 테스트 데이터 절대 금지
- 의미 있는 보험 도메인 콘텐츠 사용

## 실행 절차

### 1단계: 콘텐츠 생성
```python
cd /home/jay/projects/ThreadAuto
python3 -c "
from content.five_stage_pipeline import FiveStagePipeline
import json

topic = {
    'id': 'video_test_retention_fee',
    'title': '잔존수당의 진짜 가치',
    'category': '정보제공',
    'tags': ['GA이직', '수수료', '잔존수당']
}

pipeline = FiveStagePipeline()
result = pipeline.generate(topic=topic, content_type='cardnews')
with open('output/video_content.json', 'w') as f:
    json.dump(result, f, ensure_ascii=False, indent=2)
print('콘텐츠 생성 완료')
print(f'검수 점수: {result.get(\"pipeline_metadata\", {}).get(\"review_score\", \"N/A\")}')
"
```
- 검수 점수 42점 이상 확인
- slides가 5~7장인지 확인
- 각 slide에 의미 있는 텍스트가 있는지 확인

### 2단계: 영상 생성
```python
cd /home/jay/projects/ThreadAuto
python3 -c "
import asyncio, json
from video.pipeline_orchestrator import generate_shortform_video

with open('output/video_content.json') as f:
    content = json.load(f)

video_path = asyncio.run(
    generate_shortform_video(
        slides=content['slides'],
        output_path='output/threads_video.mp4',
        style_name='evan',
        voice='ko-KR-InJoonNeural',
        rate='+25%',
        gl='angle',
        concurrency=1
    )
)
print(f'영상 생성 완료: {video_path}')
"
```
- ffprobe로 검증: 1080x1920, 30fps, 30초 이상, H.264+AAC
- 파일 크기 확인 (최소 500KB 이상이어야 의미 있는 영상)

### 3단계: Threads 업로드
- caption은 1단계에서 생성된 content['caption'] 사용
- 해시태그 3개 이하
- `publisher/threads_publisher.py`의 `ThreadsPublisher.publish()` 사용
- 또는 `cli.py`의 post-video 명령 사용

업로드 후 반드시:
- threads_post_id 기록
- 게시물 URL 기록

## 검증
1. 영상이 "살아 움직이는" 수준인지 (타이핑, 아이콘, 시간차등장 등)
2. TTS 나레이션과 텍스트 등장이 싱크 맞는지
3. Threads에 정상 게시되었는지
4. 게시물 URL 보고서에 포함

## 산출물
1. 보고서: `memory/reports/task-663.1.md`
2. 콘텐츠 JSON: `output/video_content.json`
3. 영상 MP4: `output/threads_video.mp4`
4. Threads 게시물 URL
