유튜브 AI 트렌드를 매일 밤 자동으로 받아보기 — YouTube API + Gemini + 클로드 3단 폴백

매일 밤 11시, YouTube Data API로 Claude·ChatGPT·Gemini 최신 영상을 긁어 Gemini가 직접 시청·요약하는 리포트 파이프라인을 파이썬으로 구축했다. 무료 티어 토큰 한도(429)에 부딪혀 'Gemini 영상 시청 → claude -p → Gemini 텍스트 분석' 3단 폴백까지 만든 과정.

AI 소식은 유튜브에 제일 먼저 올라오는데, 매번 손으로 검색해서 훑는 건 시간 낭비다. 그래서 만들었다 — 매일 밤 11시에 자동으로 돌아서, 아침에 일어나면 어제 하루치 AI 트렌드 리포트가 마크다운으로 놓여 있는 파이프라인. 파이썬으로 직접 구축하면서 배운 것들을 정리한다.

전체 그림

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
매일 밤 11시 (Windows 작업 스케줄러)
YouTube Data API → 최근 24시간 Claude·ChatGPT·Gemini 영상 검색
필터링 (AI 모델 이름 없는 영상 제거 + 차단 키워드)
조회수 상위 N개 분석 — 3단 폴백
   ① Gemini가 영상 URL을 직접 시청 (기본)
   ② 토큰 소진 시 → claude -p (자막+메타데이터 분석)
   ③ 그래도 안 되면 → Gemini 텍스트 분석
로컬 마크다운 리포트 저장 (reports/trend-날짜.md)

역할 분담이 핵심이다. “검색·발견"은 YouTube API가, “내용 분석"은 AI가 맡는다. 검색 키워드는 3대 모델(Claude/ChatGPT/Gemini)을 뉴스·새 기능·활용법 앵글로 조합한 9개다:

1
2
3
4
5
KEYWORDS = [
    "ChatGPT 업데이트", "Claude 업데이트", "Gemini 새 기능", "OpenAI 발표",
    "ChatGPT new feature", "Claude AI update", "Gemini update",
    "ChatGPT 활용법", "Claude Code",
]

가장 중요한 깨달음: Gemini는 유튜브 URL을 직접 먹는다

처음엔 “영상 자막(CC)을 다운로드해서 분석해야 하나?“라고 생각했다. 그런데 여기 함정이 있다.

  • YouTube 공식 API의 자막 다운로드는 “내 채널 영상"만 된다. 남의 영상 자막은 공식 API로 못 가져온다.
  • 그래서 보통 youtube-transcript-api 같은 비공식 라이브러리를 쓰는데, 유튜브가 막으면 깨진다.

그런데 Gemini API는 유튜브 URL 자체를 영상으로 그냥 받는다. 자막을 내려받을 필요가 없다.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
from google import genai
from google.genai import types

client = genai.Client(api_key=GEMINI_API_KEY)
resp = client.models.generate_content(
    model="gemini-2.5-flash",
    contents=types.Content(parts=[
        types.Part(file_data=types.FileData(file_uri="https://www.youtube.com/watch?v=...")),
        types.Part(text="이 영상 핵심 3줄 요약 + 다룬 AI 키워드 뽑아줘"),
    ]),
)

이 한 방으로 “자막 다운로드” 단계가 통째로 사라졌다. 구조가 훨씬 단순해졌다.

검색 노이즈 잡기: 조회수순보다 관련도순

처음엔 order=viewCount(조회수순)로 검색했더니, “Gemini"라는 단어에 인도 텔루구 TV 채널 “Sun Gemini”, 아랍어 음식 챌린지 같은 게 조회수 높다고 딸려왔다.

해결책 두 가지:

  1. order=relevance(관련도순)로 검색 → 대형 비(非)AI 채널이 밀려남. 그런 다음 그 결과들 안에서 조회수로 다시 정렬.
  2. 필터 두 겹 추가
    • 차단 키워드(BLOCK): 제목/설명에 Promo, Serial, NASA 등이 있으면 버림
    • 필수 키워드(REQUIRE): 제목/설명에 claude / chatgpt / gpt / gemini / 클로드 / 제미나이 중 하나도 없으면 버림
1
2
3
4
5
6
7
haystack = f"{title} {channel} {desc}".lower()
# 1) 차단어 있으면 스킵
if any(bw.lower() in haystack for bw in BLOCK_WORDS):
    continue
# 2) AI 모델 이름 하나도 없으면 스킵
if not any(rw.lower() in haystack for rw in REQUIRE_ANY):
    continue

특히 두 번째 필터가 강력했다. 기간을 24시간으로 좁히니 AI 영상이 적어서 “NASA Moon Base Update” 같은 게 조회수로 올라왔는데, “AI 모델 이름 없으면 제거” 필터 한 방에 정치·일반뉴스 노이즈가 싹 사라졌다.

무료 티어의 벽, 그리고 3단 폴백

Gemini 무료 티어는 분당 입력 25만 토큰 제한이 있다. 그런데 영상은 텍스트와 달리 토큰을 엄청 먹는다(초당 약 100~300토큰). 영상 2개만 분석해도 429 RESOURCE_EXHAUSTED가 터졌다.

기본 대응은 이렇다:

  • 저해상도 처리로 토큰 절약: media_resolution="MEDIA_RESOLUTION_LOW"
  • 영상 사이 20초 대기로 분당 한도 회피
  • 503 같은 일시 오류는 잠시 쉬고 재시도
  • 분석 개수(TOP_N)를 무리하게 키우지 않기 (6~8개가 안전)

그래도 토큰이 소진되는 날이 있다. 그래서 분석 엔진을 3단 폴백으로 만들었다:

  1. Gemini 영상 시청 — 기본. 영상을 직접 보니 가장 깊다.
  2. claude -p (헤드리스 클로드) — Gemini 토큰이 떨어지면, 로컬에 설치된 Claude Code CLI를 파이프라인이 직접 호출한다. 영상 대신 제목·설명·자막(최대 8,000자)을 표준입력으로 넘겨 같은 형식으로 분석시킨다. CLI에 로그인만 되어 있으면 별도 API 키 없이 작동.
  3. Gemini 텍스트 분석 — 클로드마저 안 되면 같은 텍스트 뭉치를 Gemini에 넘긴다. 텍스트라 토큰을 거의 안 쓴다.
1
2
3
4
5
6
7
# ① Gemini 영상 시청 → 429면 즉시 폴백
text, quota_hit = gemini_video(client, video)
if quota_hit:
    context = build_text_context(video)   # 제목+설명+자막
    text = claude_headless(claude_exe, context)  # ② claude -p
    if not text:
        text = gemini_text(client, context)      # ③ Gemini 텍스트

리포트에는 영상마다 어떤 엔진이 분석했는지(🎬 영상 시청 / 🤖 claude -p / 📝 텍스트) 표시되므로, 그날 토큰 사정이 어땠는지도 한눈에 보인다.

교훈: 영상 분석은 토큰이 비싸다. “많이 보는 것"보다 “잘 추려서 몇 개만 깊게 보는 것"이 정답이고, 그마저 안 될 때를 대비한 값싼 차선책을 미리 깔아두면 파이프라인이 멈추지 않는다.

자동 실행: Windows 작업 스케줄러

매일 밤 11시 실행은 PowerShell로 등록했다. PC가 꺼져 있었을 경우를 대비해 놓친 작업은 켜지면 바로 실행(StartWhenAvailable) 옵션도 켰다.

1
2
3
4
$action  = New-ScheduledTaskAction -Execute "run.bat" -WorkingDirectory "..."
$trigger = New-ScheduledTaskTrigger -Daily -At 23:00
$settings = New-ScheduledTaskSettingsSet -StartWhenAvailable -ExecutionTimeLimit (New-TimeSpan -Hours 1)
Register-ScheduledTask -TaskName "YouTubeTrendReport" -Action $action -Trigger $trigger -Settings $settings -Force

열흘 돌려본 결과

리포트가 매일 꼬박꼬박 쌓이고 있다. 영상별로 3줄 요약·다룬 키워드·실용 팁 1개가 정리되어 나오는데, 가장 큰 효과는 “지금 무슨 키워드가 이슈인지"를 아침 5분 안에 파악할 수 있다는 것. 새 모델 출시 같은 큰 뉴스가 터진 날은 리포트 상위가 온통 그 얘기로 채워지니, 유튜브를 직접 뒤지지 않아도 흐름을 놓치지 않는다.

실제로 이 리포트 덕에 잡은 주제로 글도 하나 썼다 — 최근에 올린 무료 로컬 TTS 트렌드 + Qwen3-TTS 구축기의 트렌드 조사가 바로 이 파이프라인의 확장판이다.

배운 것 요약

  • 영상 분석은 Gemini에 URL을 직접 던지면 된다. 자막 다운로드는 옛날 방식.
  • 검색은 관련도순 + 이중 필터(차단어 + AI 모델명 필수)가 노이즈 제거의 핵심.
  • 무료 티어 토큰 한도를 감안해 “적게, 깊게” 분석하고, claude -p → 텍스트 분석으로 이어지는 3단 폴백을 깔아 파이프라인이 멈추지 않게.
  • API 키는 절대 코드/채팅에 넣지 말고 .env에. (git에서도 제외)
  • 자동화의 마지막 조각은 결국 스케줄러다.

코드 전체(trend.py, config.py, 스케줄러 등록 안내)는 GitHub에 공개했다: junstellar/youtube-ai-trend-report

이 글은 CC BY-NC-SA 4.0 라이선스를 따릅니다. 본 블로그의 글은 정보 제공과 학습 기록을 위한 것으로, 투자 조언이 아닙니다. 투자 판단의 책임은 투자자 본인에게 있습니다.