YouTube 구독 채널 자동 ingest 파이프라인
목표
pirius75.family@gmail.com 구독 YouTube 채널 중 IT/AI/바이브코딩 관련 채널의 최근 10일 신규 영상을
/ingest-youtube스킬로 자동 수집하는 정기 파이프라인을 구축한다.
현황
- 상태: ✅ completed (2026-05-12 완료, 2026-05-14 채널 갱신·파서 버그 수정)
- 우선순위: P2 (normal)
- 담당 계정: pirius75.family@gmail.com
- 마지막 정기 실행: 2026-05-12 11:50 (launchd)
- 누적 수집: 84개 영상 (5월 5일~12일)
- 자동 수집: 3개 완료 + 4개 대기 (5월 10~11일 신규)
- 현재 whitelist: 23개 채널 (2026-05-14 업데이트, 패스트캠퍼스 제외)
- 기존 운영 16개 + 파서 버그로 누락되어 있던 3개 복구(Jay Choi, 소소한 AI 입문노트, 바이브마피아) + 신규 4개(Dante’s Datalab, 개발동생, 그린코끼리 AI, 김플립)
설계 개요
[yt-dlp --cookies-from-browser chrome]
↓
[구독 채널 목록 조회 → candidates.md whitelist=✅ 채널 23개 (2026-05-14 갱신)]
↓
[채널별 최근 10일 영상 조회] (flat-playlist 15개 → 신규 ID만 날짜 조회)
↓
[중복 체크] (system/logs/ingest.log video_id 대조)
↓
[pending-ingest.txt 저장]
↓
[/ingest-youtube 호출] ✅ B안(야간 자동화) 확정 실행 중
↓
[launchd 정기 실행] (매일 11:50 KST, UTC+9) ✅ 가동 중
다음 행동 (Next Actions)
- Step 1: 구독 채널 목록 조회 방식 결정 ✅ 2026-05-06
- Step 2: 구독 채널 목록 추출 → IT/AI/바이브코딩 채널 whitelist 작성 ✅ 2026-05-06
- 저장 위치: youtube-channels-candidates (whitelist ✅ 컬럼, 18개 채널)
- Step 3: 자동 수집 스크립트 작성 ✅ 2026-05-06
- 경로:
system/scripts/youtube-auto-ingest.py - 로직: candidates.md ✅ 채널 순회 → flat-playlist 15개 → ingest.log 중복 제거 → 날짜 필터 → pending-ingest.txt + 로컬 ingest_youtube.py 호출
- 경로:
- Step 4: 로컬 ingest_youtube.py 자동 호출 방식으로 전환 ✅ 2026-05-31
- 매일 11:50 KST launchd로 로컬 실행 (원격 CCR은 Chrome 쿠키 미지원으로 불가)
- 타임아웃 10분으로 수정 완료
- Step 5: launchd 정기 실행 등록 ✅ 2026-05-07
~/Library/LaunchAgents/com.jyp-garden.youtube-auto-ingest.plist- 매일 11:50 KST, 로그:
system/logs/youtube-auto-ingest.log
- Step 6: 첫 정기 실행 결과 확인 및 채널 목록 튜닝 ✅ 2026-05-12
- 실행 기간: 5월 6~12일 (7일)
- 정기 실행: 매일 11:50 정상 작동 중
- 자동 수집 기록:
system/logs/ingest.log에 3개 기록 - 대기 중: 4개 영상 (pending-ingest.txt, 5월 10~11일 신규)
- 실패 기록: 5월 6~7일 10개 (returncode!=0, 이후 회복)
최종 완료 요약
📊 프로젝트 성과
| 항목 | 결과 |
|---|---|
| 목표 | YouTube 구독 채널 자동 ingest 파이프라인 구축 ✅ |
| 기간 | 2026-05-06 ~ 2026-05-12 (7일) |
| 완성도 | 100% (Step 1~6 모두 완료) |
| whitelist 채널 | 23개 (2026-05-14, 패스트캠퍼스 제외) |
| 누적 수집 | 84개 영상 |
| 자동화 운영 | launchd 정기 실행 (매일 11:50 KST) |
| 안정성 | ✅ 안정적 (5월 8일 이후 정상 작동) |
🎯 달성한 마일스톤
- ✅ Step 1: 채널 목록 조회 방식 결정 (yt-dlp —cookies-from-browser)
- ✅ Step 2: whitelist 채널 목록 작성 (18개 → 최종 17개)
- ✅ Step 3: 자동 수집 스크립트 작성 (youtube-auto-ingest.py)
- ✅ Step 4: 자동 호출 방식 확정 (B안: 야간 자동화)
- ✅ Step 5: launchd 정기 실행 등록 (매일 11:50)
- ✅ Step 6: 정기 실행 결과 확인 및 채널 품질 개선 (I4 해결)
🔧 운영 유산
자동화 된 파이프라인 인프라:
~/Library/LaunchAgents/com.jyp-garden.youtube-auto-ingest.plist
↓ (매일 11:50)
system/scripts/youtube-auto-ingest.py
↓
system/config/youtube-channels-candidates.md (whitelist ✅)
↓
/ingest-youtube 스킬
↓
10-Knowledge/sources/ + 20-Personal/resources/ + 30-Work/resources/
로그 및 이력 추적:
system/logs/ingest.log— 84개 수집 이력system/logs/pending-ingest.txt— 대기 영상 (4개)system/logs/failed-ingest.txt— 실패 이력 (모니터링용)system/logs/youtube-auto-ingest.log— 스케줄 실행 로그
🚀 다음 단계 (선택)
- 고급화: 채널별 콘텐츠 필터 강화 (doc-classifier 규칙 확장)
- 확대: 새로운 IT/AI 채널 추가 발굴
- 주간 리뷰: pending-ingest.txt 확인 및 품질 모니터링
기술 스택
| 구성요소 | 도구 |
|---|---|
| 채널 목록 조회 | yt-dlp --cookies-from-browser chrome |
| 신규 영상 필터 | flat-playlist + 날짜 메타 조회 (2단계) |
| 중복 방지 | system/logs/ingest.log video_id 대조 |
| 수집 실행 | 로컬 ingest_youtube.py (yt-dlp + 로컬 규칙 기반 extract_wisdom, Claude/API 미사용) |
| 정기 실행 | /schedule 스킬 (cron, 야간 권장) |
| 채널 화이트리스트 | youtube-channels-candidates |
발견된 이슈 & 현황 (2026-05-06 파일럿 → 2026-05-12 운영 중)
| 이슈 | 상태 | 조치 | 영향 |
|---|---|---|---|
| I1 | ✅ 해결 (2026-05-31) | claude -p 제거, 로컬 ingest_youtube.py 직접 호출 | Claude 프로그래메틱 크레딧/토큰 제한 영향 제거. 단, LLM 요약 대신 로컬 추출이라 품질은 보수적 |
| I2 | ✅ 해결 | 타임아웃 5분 → 10분 상향 | 일부 긴 영상도 처리 가능 |
| I3 | ✅ 해결 | if not date: continue 추가 | 날짜 미확인 영상 필터링 완료 |
| I4 | ✅ 부분 해결 | 패스트캠퍼스 whitelist 제외 | whitelist ✅ 18개 → 17개 (패스트캠퍼스 제거) |
| I5 | ✅ 결정 | B안(야간 자동화) 확정 | launchd 매일 11:50 정기 실행 중 |
| I6 | ✅ 해결 (2026-05-14) | 정규식 기반 파서로 교체 | 채널명에 | 포함된 3개 채널(Jay Choi, 소소한 AI 입문노트, 바이브마피아)이 ✅에도 silently 누락. 운영 16개 → 인식 23개로 정합화 |
최근 운영 결과 (5월 6~12):
- 실패율: 5월 6~7일 10개 실패 → 5월 8일 이후 회복 (원인: 인증 오류 등 일시적 이슈)
- 정기 성공률: ✅ 안정적 (매일 11:50 정상 실행)
연관 노트
Concepts
- harness-engineering — Claude Code 자동화 파이프라인 설계 원칙
Entities
- AI인터시스브랜드 — 수집 대상 채널 예시 (이미 ingest 완료)
Skills
.claude/skills/ingest-youtube/SKILL.md— 실제 ingest 실행 스킬.claude/skills/ingest/SKILL.md— ingest 라우터
로그
| 날짜 | 내용 |
|---|---|
| 2026-05-06 | 프로젝트 생성. 구독 채널 자동 수집 파이프라인 구축 시작 |
| 2026-05-06 | Step 1~3 완료. candidates.md (18채널), youtube-auto-ingest.py 작성 |
| 2026-05-06 | B안(claude -p) 파일럿 실행. 31개 영상 중 11개 처리 (✅4 ❌6 타임아웃) 후 중단. 이슈 I1~I5 식별. 버그 I2·I3 수정 완료 |
| 2026-05-07 | B안(야간 자동화) 확정 결정. launchd plist 작성 및 등록 완료 |
| 2026-05-08 | 정기 실행 첫 성공. auto-ingest 3개 기록 (ingest.log). 자동화 안정화 |
| 2026-05-10~11 | 신규 영상 4개 자동 감지. pending-ingest.txt에 대기 중 |
| 2026-05-12 | Step 6 완료. 정기 실행 결과 확인. 프로젝트 상태 업데이트 |
| 2026-05-12 | I4 개선: 패스트캠퍼스 whitelist 제외 (❌) → whitelist 17개로 조정. 5월 13일 11:50부터 적용됨 |
| 2026-05-12 | 🎉 프로젝트 완료: 목표 달성 — YouTube 자동 ingest 파이프라인 운영 중 (7일 개발, 100% 완성도) |
| 2026-05-14 | 신규 채널 7개 반영: candidates.md 64→71행. IT/AI/바이브코딩 4개(Dante’s Datalab, 개발동생, 그린코끼리 AI, 김플립) whitelist ✅ |
| 2026-05-14 | I6 발견·해결: youtube-auto-ingest.py 파서 버그 수정. 채널명에 | 포함된 3개 채널(Jay Choi, 소소한 AI 입문노트, 바이브마피아)이 ✅ 표시에도 silently 누락되어 왔음. 정규식 기반 파서로 교체 → whitelist 16개(실효)→23개(인식). 형제 스크립트 youtube-auto-ingest-kids-academy-marketing.py도 동일 수정 |