feat(pipeline): YouTube Tab → PDF 자동 추출 파이프라인 초기 구현

- 5단계 파이프라인: 다운로드 → 프레임 추출 → 패턴 감지 → 중복 제거 → PDF 생성
- 3가지 패턴 지원: overlay, split, scroll
- MSE 기반 픽셀 비교 프레임 중복 제거
- split 모드: 42% 크롭 + 밝기 필터 + Tab 라인 검증
- overlay 모드: 320x120 정규화 + 슬라이딩 윈도우 비교
- 프로젝트 문서 초기 작성 (architecture, tech-stack, STATUS, known-issues)
This commit is contained in:
2026-03-24 23:25:17 +09:00
commit 3d3f74b082
18 changed files with 1989 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
# Tech Stack
> AI 에이전트는 구현 전 이 문서를 확인하여 올바른 기술/버전을 사용합니다.
## 언어 & 런타임
| 항목 | 버전 | 비고 |
|------|------|------|
| Python | 3.x | `C:\ProgramData\miniforge3\envs\score\python.exe` |
## 주요 라이브러리
| 항목 | 용도 |
|------|------|
| OpenCV (cv2) | 프레임 추출, 이미지 처리, HoughLinesP 라인 검출 |
| NumPy | 배열 연산, 밝기 계산, MSE 비교 |
| yt-dlp | YouTube 영상 다운로드 |
| Pillow (PIL) | 이미지 변환 (BGR→RGB), 롱 이미지 생성 |
| ReportLab | PDF 생성 (A4 레이아웃) |
| python-dotenv | .env 파일 로딩 (쿠키 경로) |
## 패키지 관리
- 패키지 매니저: conda (miniforge3, `score` 환경)
- 가상환경: `C:\ProgramData\miniforge3\envs\score`
## 개발 도구
| 도구 | 명령어 |
|------|--------|
| 실행 | `C:\ProgramData\miniforge3\envs\score\python.exe youtube_tab_to_pdf.py <URL>` |
| 디버그 실행 | 위 명령어 + `--debug` |
## 환경 변수
| 변수명 | 용도 | 설정 위치 |
|--------|------|-----------|
| COOKIE_PATH | yt-dlp 쿠키 파일 경로 | `.env` |