# 유튜브 자동 요약 파이프라인 구현

## 배경
유튜브 크롤링(Firebase Cloud Functions)이 6시간마다 실행되어 전문(_전문.md)을 구글드라이브에 업로드한다.
이 전문이 올라오면 자동으로 감지 → 다운로드 → 요약 → 요약본 업로드하는 파이프라인을 구축해야 한다.

## 크롤링 스케줄 (확인 완료)
- Firebase `every 6 hours`, timezone `Asia/Seoul`
- 실행 시각: 00:00, 06:00, 12:00, 18:00 KST
- 크롤링 완료까지 약 5~10분 소요 예상

## 구현할 파이프라인

### 전체 흐름
```
[자동 크롤링] 00/06/12/18시 → Drive에 전문(_전문.md) 업로드
    ↓
[Haiku 감시] 주기적 체크 → 새 전문이 올라왔는지 확인
    ↓ 새 전문 발견
    ↓ 파일 다운로드
    ↓
[Sonnet 요약] 전문 읽기 → 요약·문서화 → 요약본(_요약.md) Drive 업로드
```

### 1단계: 새 전문 감지 스크립트 (Haiku 팀원용)
- 스크립트: `/home/jay/workspace/scripts/youtube-check-new-transcripts.py`
- 동작:
  - Firestore `youtube_summary_queue` 컬렉션 확인 (task-190.1에서 구현됨)
  - 또는 Firestore `youtube_knowledge`에서 `summaryStatus: 'pending'`인 문서 조회
  - 새 전문이 있으면: 전문 파일 경로/URL + videoId 목록을 출력
  - 새 전문이 없으면: "없음" 출력 후 종료
- 이 스크립트는 cokacdir --cron으로 주기적 실행될 예정
- **가장 하위 모델(Haiku)로 실행**: 단순 체크 작업이므로 비용 최소화

### 2단계: 전문 다운로드 + 요약 지시
- 새 전문 발견 시:
  - Drive에서 전문 파일 다운로드 (또는 Firestore에서 직접 텍스트 조회)
  - 다운로드한 전문을 로컬 파일로 저장: `/home/jay/workspace/memory/youtube-transcripts/{videoId}_전문.md`
  - Sonnet 팀원에게 요약 지시:
    - 전문 파일 읽기
    - 보험/연금 관점에서 핵심 내용 요약
    - 요약본 작성: `/home/jay/workspace/memory/youtube-transcripts/{videoId}_요약.md`

### 3단계: 요약본 업로드
- 요약 완료 후:
  - 구글드라이브에 _요약.md 업로드 (task-190.1에서 만든 `youtube-upload-summary.ts` 활용)
  - Firestore youtube_knowledge의 summaryStatus를 'done'으로 업데이트
  - 또는: `npx ts-node scripts/youtube-upload-summary.ts --videoId <id> --summary-file <path>`

### 4단계: cron 스케줄 등록
- 크롤링 완료 후 약 15분 뒤 감시 시작 (크롤링 완료 시간 고려)
- 예: 00:15, 06:15, 12:15, 18:15에 감시 스크립트 실행
- cokacdir --cron으로 등록

## 참고 파일
- task-190.1 보고서: `/home/jay/workspace/memory/reports/task-190.1.md`
- youtube-upload-summary.ts: `/home/jay/projects/insuwiki/scripts/youtube-upload-summary.ts`
- crawlYoutubeChannels.ts: `/home/jay/projects/insuwiki/functions/src/crawlYoutubeChannels.ts`
- Firestore 타입: `/home/jay/projects/insuwiki/nextapp/src/types/firestore.ts`
- 프로젝트 구조맵: `/home/jay/workspace/memory/project-maps/insuwiki.md`

## 기술 스택
- Python3 (감시 스크립트)
- Firebase Admin SDK (Firestore 접근)
- Google Drive API (파일 다운로드/업로드)
- cokacdir --cron (스케줄링)

## 주의사항
- Firebase 인증: Service Account 키 파일 필요 (환경변수로 경로 지정)
- Drive API 인증: 기존 crawlYoutubeChannels.ts에서 사용하는 것과 동일한 OAuth 토큰
- 스크립트는 `/home/jay/workspace/scripts/` 아래에 작성
- insuwiki 프로젝트 코드 수정 시 `/home/jay/projects/insuwiki/` 아래에서 작업
- 에러 시 재시도 로직 포함
- 로그 출력 (어떤 영상이 처리되었는지 추적 가능하게)
