YouTube 구독 채널 조회 방식 결정
Outcome (완료 조건)
YouTube 구독 채널 자동 ingest 파이프라인의 Step 1: 구독 채널 목록 조회 방식을 운영 안정성 기준으로 확정한다. 1차 방식은
yt-dlp --cookies-from-browser chrome파일럿으로 검증하고, 실패 시 수동 화이트리스트 또는 YouTube Data API v3 전환 기준을 남긴다.
Why This Project
상위 프로젝트 유튜브-구독채널-자동수집의 첫 번째 의사결정 지점이다. 구독 채널 조회 방식이 불안정하면 이후 화이트리스트 생성, 최근 10일 영상 조회,
/ingest-youtube정기 실행 전체가 흔들리므로, 자동화 전에 접근 방식과 fallback을 분리해 안정성을 확보한다.
Context
상위 프로젝트의 Step 1은 다음 선택지를 검토한다.
| 옵션 | 판단 | 이유 |
|---|---|---|
A. yt-dlp --cookies-from-browser chrome | 1차 권장 | 현재 환경에 yt-dlp가 설치되어 있고, 추가 OAuth 설정 없이 빠른 파일럿 검증 가능 |
| B. YouTube Data API v3 | 보류 | OAuth, API 프로젝트, 토큰 저장, quota 관리가 필요해 초기 검증 단계에서는 과함 |
| C. 수동 CSV/Markdown 입력 | 보조안 | 쿠키 접근 실패 시 즉시 우회 가능하며 운영 안정성이 높음 |
현재 확인된 환경:
- 작업공간:
/Users/a03298/projects/jyp-garden/30-Work yt-dlp:/opt/homebrew/bin/yt-dlp, 버전2026.03.17- Python:
3.9.6
결정안
권장 결정
A → C → B 순서로 진행한다.
- A:
yt-dlp --cookies-from-browser chrome로 구독 채널 후보 1회 추출 파일럿- C: 쿠키 접근 실패 또는 결과 품질 불량 시 수동 화이트리스트 작성
- B: 장기 운영에서 계정 연동 자동화가 필요할 때 YouTube Data API v3로 전환
파일럿 절차
1. 구독 채널 후보 추출 테스트
yt-dlp \
--cookies-from-browser chrome \
--flat-playlist \
--dump-single-json \
"https://www.youtube.com/feed/channels"성공 시 결과에서 채널명, 채널 URL, channel_id를 추출해 후보 파일로 저장한다.
system/config/youtube-channels-candidates.json2. 화이트리스트 승인 게이트
후보 전체를 자동 ingest 대상에 넣지 않는다. 사람이 IT/AI/바이브코딩 관련 채널만 승인해 whitelist 컬럼을 ✅로 표시한다.
system/config/youtube-channels-candidates.md후보 파일의 whitelist 컬럼에서 ✅ 표시된 채널만 ingest 대상으로 사용한다.
운영 원칙
구독 목록 조회는 매일 자동화하지 않는다.
최초 1회 / 월 1회 / 신규 구독 반영 필요 시
→ 구독 채널 후보 추출
→ 사람 승인
→ 화이트리스트 갱신정기 자동화는 candidates 파일에서 ✅ 표시된 채널만 대상으로 한다.
candidates.md의 whitelist=✅ 채널
→ 최근 10일 영상 조회
→ 중복 체크
→ /ingest-youtube 호출Risks
식별된 리스크
- R1 (Major): Chrome 쿠키 접근 실패 → 대응: 수동 CSV/Markdown 화이트리스트로 즉시 우회
- R2 (Major): YouTube 로그인 세션 만료 → 대응: 구독 조회는 정기 자동화에서 제외하고 월간/수동 갱신으로 제한
- R3 (Major): 비관련 구독 채널 포함 → 대응: 화이트리스트 승인 게이트 필수
- R4 (Minor): YouTube Data API 전환 시 OAuth/Quota 부담 → 대응: 파일럿 실패 또는 장기 운영 요구 발생 시에만 전환
Next Actions
Actions (완료)
yt-dlp --cookies-from-browser chrome명령으로 구독 채널 후보 추출 가능 여부 테스트 ✅ 2026-05-06- 성공 시 youtube-channels-candidates 생성 ✅ 2026-05-06 (64개 채널, whitelist ✅ 18개)
- candidates 파일에서 whitelist 컬럼 직접 검토·조정 ✅ 2026-05-12 (패스트캠퍼스 제외, 17개로 조정)
- 장기 운영 필요성이 확인되면 YouTube Data API v3 도입 여부 재검토 ✅ 2026-05-12 (불필요, launchd + yt-dlp로 안정적 운영)
Artifacts
산출물
- youtube-channels-candidates — 전체 64개 구독 채널 후보 + whitelist ✅ 표시 (최종 17개)
system/scripts/youtube-auto-ingest.py— A안 기반 자동 수집 스크립트~/Library/LaunchAgents/com.jyp-garden.youtube-auto-ingest.plist— 매일 11:50 정기 실행 설정
Progress
2026-05-06 — 검토 결과 서브 프로젝트 등록
- Step 1 검토 결과를 서브 프로젝트로 분리했다.
- 1차 권장안은
yt-dlp --cookies-from-browser chrome파일럿이며, 운영 정착은 승인된 화이트리스트 기준으로 제한한다.
2026-05-06 — 파일럿 실행
yt-dlp --cookies-from-browser chrome구독 채널 64개 추출 성공 → youtube-channels-candidates 생성- IT/AI/바이브코딩 채널 18개 선별 및 whitelist ✅ 컬럼으로 통합 관리
youtube-auto-ingest.py첫 실행: 17채널 순회, 31개 신규 영상 발견claude -p방식 성능 이슈 확인 (영상 1개당 5분+), 11개 처리 후 중단- 버그 2건 수정: 타임아웃 5→10분, 날짜 미확인 영상 필터 추가
2026-05-12 — 운영 검증 완료 및 최종 확정
- A안(
yt-dlp --cookies-from-browser chrome) 운영 검증 완료- launchd 정기 실행: 매일 11:50 정상 작동
- 누적 수집: 84개 영상 (5월 5~12일)
- 안정성: ✅ 5월 8일 이후 정상 (초기 인증 오류 해결)
- Whitelist 품질 개선: 패스트캠퍼스 제외 (비관련 콘텐츠) → whitelist 18개 → 17개 최적화
- YouTube Data API v3 도입 불필요: yt-dlp + launchd + 월간 수동 갱신으로 충분
- 프로젝트 성과:
- 조회 방식 확정 (A안)
- Fallback 기준 수립 (R1~R4 리스크 관리)
- 운영 원칙 실제 입증 (최초 추출 → 월간 갱신 가능)
- 서브 프로젝트 완료 조건 달성 ✅
Related Projects
- 유튜브-구독채널-자동수집 — 상위 프로젝트. YouTube 구독 채널 자동 ingest 파이프라인 전체 구축 (✅ 2026-05-12 완료)