YouTube 채널 AI 자동 요약 2026: 구독 + Atom 피드 + Gemini = 지식 파이프라인
YouTube 채널 AI 자동 요약 2026: 구독 + Atom 피드 + Gemini = 지식 파이프라인
결론부터: AI 관련 YouTube 채널 20개 구독이라는 건 보수적인 추산입니다. 하지만 실제로 다 볼 확률은 0. 더 열심히 따라잡으려 하지 말고, 대신 봐주는 파이프라인을 하나 만드세요 —— 구독 목록 → Atom 피드 폴링 → Gemini 네이티브 YouTube 이해 → 타임스탬프 Markdown → Obsidian 볼트. YouTube Data API도, yt-dlp도 필요 없습니다. Mac 백그라운드 프로세스 하나면 돌아갑니다.
한 줄 요약: YouTube 공개 Atom 피드 + Gemini
fileData.fileUri의 YouTube 네이티브 이해 = 쿼터 0, 자막 스크래핑 0의 AI 요약 파이프라인.
AI 채널 20개 구독, 그런데 전혀 못 본다
구독 목록을 떠올려 보세요. Lex Fridman, Two Minute Papers, Yannic Kilcher, bycloud, AI Explained, Matthew Berman, MLST…… 세다 보면 금방 20개를 넘깁니다. 이 채널들이 한 주에 쏟아내는 영상은 합쳐서 3050편, 평균 3090분 길이입니다.
솔직히 말해, 당신이 원하는 건 “다 보는 것”이 아니라 “각 영상이 무슨 이야기인지 파악한 다음, 정말 깊게 볼 2~3편만 고르는 것” 입니다. 요약 → 스크리닝 → 딥리드의 전형적인 깔때기이며, 앞의 두 단계는 AI가 대신해도 됩니다. 진짜 집중력은 마지막 단계에만 쓰면 됩니다.
그래서 Gemini Desktop을 상주 프로세스로 돌리는 것을 권장합니다. 설정해 둔 채널 목록을 계속 감시하다가 새 영상이 올라오면 몇 분 안에 구조화된 요약을 생성해 지정된 로컬 폴더에 씁니다. 아침 커피 한 잔 마실 동안 어젯밤 업로드된 영상 전체를 깔끔하게 훑을 수 있어, YouTube 재생 목록을 하나씩 누르는 것보다 10배 빠릅니다.
왜 YouTube Data API를 쓰지 않는가
YouTube 자동화 초심자는 보통 YouTube Data API v3부터 시도하지만, 구현해 보면 현실의 벽에 부딪힙니다.
| 항목 | YouTube Data API v3 | YouTube Atom Feed |
|---|---|---|
| 인증 | Google Cloud 프로젝트 + OAuth 동의 화면 | 불필요, 공개 HTTPS GET |
| 쿼터 | 하루 10,000 units, search.list 100 units/회 |
실질적 제한 없음 (상식적 간격이면) |
| 구독 목록 접근 | 사용자 OAuth scope 필요, 번거로움 | 채널 ID 배열을 직접 구성 |
| 안정성 | 쿼터 초과 시 프로젝트 전체 정지 | Google 공개 서비스, 안정성 최상 |
| 적합한 용도 | 쓰기 작업 (업로드, 좋아요, 댓글) | 읽기 전용 신규 영상 감시 |
Atom 피드 URL은 아주 단순합니다 —— https://www.youtube.com/feeds/videos.xml?channel_id=UCxxxxxxxxxxxxxxxxxxxxxx —— 반환되는 건 표준 Atom 2.0 문서로, 최근 15개 <entry>가 담겨 있습니다. 각 entry에는 videoId, title, published, author, media:description이 들어 있어, “새 영상이 있는가”를 판단하는 데 필요한 모든 것이 있습니다.
Go에서는 github.com/mmcdole/gofeed로 한 줄 파싱, Node에서는 fast-xml-parser나 20줄짜리 정규식이면 충분합니다. 피드 응답은 보통 50KB 이하이고, 4시간마다 폴링은 상대 서버와 내 대역폭 모두에 거의 부담이 없습니다.
Gemini fileData.fileUri: YouTube를 네이티브로 읽기
2024년 이전 “AI가 YouTube 요약” 표준 스택은 yt-dlp로 자막 뽑기 → 정리 → GPT에 던지기 → 요약이었습니다. 고질적인 문제 두 가지:
- 자막 없는 영상은 처리 불가. 튜토리얼·인터뷰 영상 다수가 자막을 공개하지 않고, 자동 자막 품질도 들쭉날쭉
- 운영 비용이 높음. yt-dlp는 YouTube 크롤링 방지 업데이트를 쫓아가야 해서 의존성을 한 달에 두세 번씩 올려야 함
2025년 Gemini의 fileData.fileUri 등장으로 판이 바뀌었습니다. 이 API는 YouTube URL을 입력으로 직접 받고, 디코딩·ASR·시각 이해를 서버 측에서 전부 처리합니다. 당신이 넘기는 건 URL 문자열 하나뿐.
엔지니어링상 직접적 이점 2가지:
- 자막 스크래핑 불필요. Gemini 자체 ASR은 YouTube 자동 자막보다 정확도가 높고, 특히 영어 테크 팟캐스트에서 차이가 큽니다
- 시각 콘텐츠가 요약에 포함. 화면 속 코드, 화이트보드, 슬라이드를 Gemini가 실제로 보고 인용할 수 있어, 자막만으로는 놓치는 핵심 정보가 잡힙니다
최소한의 요청은 다음과 같습니다:
{
"contents": [{
"parts": [
{ "fileData": { "fileUri": "https://www.youtube.com/watch?v=XXXXXXXXX" } },
{ "text": "타임스탬프가 포함된 한국어 요약을 생성하세요. TL;DR, 요점, 인용 포함." }
]
}]
}
Gemini 2.5 Flash 기준 30분 영상을 20~40초에 처리하며, 비용은 Whisper 전사 + Claude 요약 구식 스택보다 훨씬 저렴합니다.
설정: 채널 ID, 출력 폴더, 폴링 간격
24자리 UC로 시작하는 채널 ID 찾기
채널 ID는 24자리 고정 길이, UC로 시작하는 문자열입니다 (@핸들 아님). 세 가지 방법:
- 채널 홈페이지 소스 보기에서
"externalId":"UC검색 - YouTube Channel ID Finder 같은 도구에 채널 URL을 붙여 역조회
- 채널 페이지에서 RSS 링크 복사, URL 안에 channel_id가 포함됨
모든 채널 ID를 YAML이나 JSON 배열로 정리해 두면, 이후 유지 보수는 항목 추가/삭제만으로 끝납니다.
출력 폴더 구조
Obsidian 볼트 루트에 요약을 그대로 쏟지 마세요. 추천 구조:
~/Documents/youtube-notes/
├── 2026-04-18-lex-fridman-dario-amodei.md
├── 2026-04-18-two-minute-papers-latest.md
└── _archive/
└── 2026-04/
날짜 + 채널 + 슬러그 제목 방식으로 명명하면 grep도 시계열 브라우즈도 쉬워집니다. Obsidian이 youtube-notes/ 폴더를 인식하는 순간 전체 본문 검색이 바로 됩니다.
폴링 간격 4시간이 스위트 스폿
실측 결과 4시간마다 폴링이 최적의 균형점입니다:
- 2시간 미만: 거의 매번 빈 피드가 돌아와 자원 낭비
- 6시간 초과: 인기 채널은 “황금 3시간 트래픽 창”을 놓쳐 적시성 하락
하루 1편 페이스의 뉴스 채널만 추적한다면, 하루 2회 (오전 8시, 오후 8시)로 낮춰도 됩니다.
출력 포맷: frontmatter + TL;DR + 타임스탬프 + 인용
출력 포맷을 통일하면 볼트 전체에 걸친 집계 쿼리가 가능해집니다. 권장 YAML frontmatter:
---
title: "Why We're Betting on Rust for AI Infra"
channel: "Latent Space"
channel_id: "UCxxxxxxxxxxxxxxxxxxxxxx"
video_id: "AbCdEfGhIjK"
published: "2026-04-17T22:00:00Z"
summarized_at: "2026-04-18T02:14:32Z"
duration: "01:12:45"
tags: [rust, ai-infra, latent-space]
url: "https://www.youtube.com/watch?v=AbCdEfGhIjK"
---
본문 구조:
## TL;DR
영상의 핵심 주장을 2~3문장으로.
## 하이라이트
- [00:03:12] Rust 소유권 모델이 추론 서버에 적합한 이유
- [00:18:44] 마이그레이션 중 마주친 tokio 함정 세 가지
- [00:42:08] Python asyncio 대비 벤치마크
## 인용
> "The GIL is not the bottleneck anymore, serialization is."
> —— 00:51:20 게스트 발언
## 링크
- 영상: https://www.youtube.com/watch?v=AbCdEfGhIjK
- 관련 논문: …
타임스탬프는 반드시 클릭 가능한 점프여야 합니다 (Obsidian에서 [00:03:12](https://youtu.be/AbCdEfGhIjK?t=192) 형식). 그렇지 않으면 “핵심 장면으로 2초 만에 돌아가기”라는 본래 가치가 사라집니다.
콤보: Obsidian 볼트 + 일일 다이제스트 = 금요일 자동 팟캐스트
파이프라인을 일주일 돌리고 나면 youtube-notes/ 폴더에는 80~150개 Markdown 노트가 쌓입니다. 이때 두 번째 파이프라인 —— 일일 다이제스트 집계 —— 를 붙일 차례입니다. 모든 노트를 Claude나 Gemini에 넘겨 “오늘의 Top 5”와 “이번 주 트렌드”를 생성하게 합니다.
관련 글: 매일의 AI 팟캐스트: NotebookLM 스타일 노트 파이프라인에서 요약 집계를 NotebookLM 스타일 듀얼 호스트 대담으로 바꾸는 법을 자세히 설명합니다.
전형적 운영: 월목은 5분짜리 텍스트 다이제스트, 금요일 저녁에 주간 파이프라인을 돌려 NotebookLM (또는 자체 Audio Overview)으로 1520분짜리 듀얼 호스트 팟캐스트 생성. 토요일 출근길에 들으면 특정 채널 백로그를 다 보는 것보다 10배 효율적입니다.

고급: 커스텀 prompt template
기본 “TL;DR + 요점 + 인용”은 대부분 채널에 잘 맞지만, 장르별로 템플릿을 나누면 정확도가 확 올라갑니다.
| 채널 유형 | 추천 템플릿 | 이유 |
|---|---|---|
| 논문 해설 (Two Minute Papers) | 핵심 혁신 + 방법 + 한계 | 학술 구조와 매핑, 다시 찾기 쉬움 |
| 긴 인터뷰 (Lex Fridman, Dwarkesh) | 챕터 주제 + 챕터별 인용 + 게스트 이력 | 3h 넘는 길이는 챕터화 필수 |
| 제품 발표 (Google, Apple keynote) | 기능 리스트 + 데모 타임스탬프 + 가격표 | 팩트 체크 지향 |
| 튜토리얼 (freeCodeCamp) | 단계 리스트 + 코드 스니펫 + 핵심 개념 | 후속 재현에 유리 |
Prompt template은 플레이스홀더 치환 방식으로 운영합니다. {title}, {url}, {channel}이 런타임에 실제 값으로 치환되며, 하나의 JSON 설정 파일로 수십 채널을 각기 다른 템플릿으로 굴릴 수 있습니다.
하지 않는 것: Shorts 일괄, 저자원 언어
Shorts 일괄 요약을 하지 않는 이유:
- Shorts는 원래 60초 미만 —— 요약의 “압축 이득”이 오히려 음수
- 품질 시그널이 약하고 대부분 인게이지먼트 목적. 요약이 오히려 판단을 오도
일부 언어를 스킵하는 이유:
Gemini의 YouTube 네이티브 이해는 영어·중국어·일본어·한국어에서 매우 강력하지만, 일부 저자원 언어 (예: 베트남어 테크 채널)는 ASR 정확도가 아직 불안정합니다. 잘못된 요약을 내느니 차라리 요약을 안 하는 쪽이 낫습니다.
마무리
구독도 설정도 한 번, 요약은 평생. Atom 피드가 백그라운드에서 조용히 돌고, Gemini가 새 영상마다 구조화된 메모를 뱉어내면, 당신이 할 일은 아침 커피 시간에 “정말로 30분 들여 볼 2~3편”을 고르는 것뿐입니다. 2026년 AI 자동화가 지식 노동자에게 주는 가장 직접적인 복리 효과입니다.