[Claude Code] YouTube 방송 요약 시스템 고도화 - 6단계 개선기

한줄 요약

기본 요약 시스템에서 시작해 LLM 선택, 라이브 요약, Docker 환경, 코너 탐지, 프로그램별 템플릿까지 6단계 개선을 Claude Code와 함께 진행하며 배운 것들

이런 분들께 도움돼요

  • 매일 듣는 유튜브 방송을 자동으로 요약하고 싶은 분

  • Claude Code로 점진적인 프로젝트 개선을 경험하고 싶은 분

  • AI 도구와 협업할 때 시행착오를 어떻게 다루는지 궁금한 분


소개: 시도하고자 했던 것과 그 이유

문제 상황 (Before)

기본적인 YouTube 방송 요약 시스템은 이미 만들어둔 상태였습니다. 하지만 실제로 사용하다 보니 여러 불편함이 쌓였습니다:

  1. 라이브 방송 실시간 요약 불가: 유튜브 자막은 라이브 종료 후 약 2시간 후에야 생성됩니다. 방송 끝나자마자 핵심 내용을 파악하고 싶은데, 2시간을 기다려야 했습니다.

  2. API 비용 부담: Claude API만 사용하고 있었는데, 매일 3시간짜리 방송을 요약하다 보니 비용이 부담되기 시작했습니다. 더 저렴한 Gemini로 전환할 옵션이 필요했습니다.

  3. 프로그램별 템플릿 문제: 가장 황당했던 건 정준희의 논 요약에 "김어준 생각" 코너가 출력되는 것이었습니다. 모든 프로그램에 뉴스공장 전용 템플릿이 적용되고 있었거든요.

��한국어 텍스트가 있는 화면의 스크린샷

시작하게 된 계기

하나씩 불편함이 쌓이다가, "이왕 만든 거 제대로 쓸 수 있게 개선하자"는 마음으로 Claude Code와 함께 6단계 개선을 시작했습니다.


진행 방법: 어떤 도구를 사용했고, 어떻게 활용했나요?

사용한 도구

  • 도구명: Claude Code (VS Code 확장)

  • 모델: Claude Sonnet 4 / Opus 4.5

  • 기타 도구: yt-dlp, ffmpeg, OpenAI Whisper API, Gemini API

AI와 협업한 과정

1. LLM API 선택 옵션 추가 (세션 2)

상황: Claude API 비용이 부담되어 Gemini나 GPT로 전환하고 싶었습니다.

이렇게 요청했어요:

ai_summarizer.py에 --model 옵션을 추가해서 claude, gemini, gpt 중 선택할 수 있게 해줘

결과: --model gemini 옵션으로 Gemini 2.0 Flash 사용 가능해짐. 비용이 크게 절감되었습니다.


2. 라이브 방송 실시간 요약 (세션 3)

상황: 자막 없이도 라이브 방송을 요약하고 싶었습니다.

이렇게 요청했어요:

라이브 방송 오디오를 캡처해서 Whisper로 STT 변환 후 요약하는 파이프라인을 만들어줘

결과: yt-dlp로 오디오 캡처 → Whisper API로 STT → AI 요약 파이프라인 완성

막혔던 순간: yt-dlp가 라이브 스트림에서 bestaudio 포맷을 지원하지 않았습니다. Claude가 저해상도 비디오(format 91)에서 ffmpeg로 오디오를 추출하는 우회 방법을 제안해서 해결했습니다.


3. Docker 환경 구성 (세션 4)

상황: yt-dlp, ffmpeg 등 의존성 설치가 번거로웠습니다.

이렇게 요청했어요:

Docker로 원클릭 실행 환경 만들어줘

결과: ./yt.sh summarize 한 줄로 요약 실행 가능


4. 코너 경계 탐지 (세션 5)

상황: description의 타임스탬프가 부정확해서 코너 구분이 잘 안 됐습니다.

이렇게 요청했어요:

자막에서 "김어준 생각이었습니다", "겸손은 힘들다" 같은 키워드를 찾아서 코너 경계를 자동으로 탐지해줘

결과: 자막 segments 분석으로 코너 시작/종료 지점 자동 탐지


5. 스트리밍 파이프라인 시도 (세션 6)

상황: 라이브 요약이 너무 오래 걸렸습니다 (캡처 50분 + STT 15분 = 65분).

이렇게 요청했어요:

청크 기반 병렬 처리로 속도를 개선해줘

결과: 시도는 했지만 기대만큼 속도 개선이 크지 않았습니다. 다른 대안(실시간 스트리밍 STT)을 고민해봐야 할 것 같습니다.

배운 점: 모든 문제를 한 번에 해결하려 하지 않고, 일단 욕심을 내려놓고 프로젝트를 계속 진행하기로 했습니다.


6. 프로그램별 템플릿 분리 (세션 7)

상황: 다른 프로그램 요약에 "김어준 생각" 코너가 나오는 문제

이렇게 요청했어요:

프로그램별 요약 템플릿 분리 해줘

결과: 6개 프로그램별 맞춤 템플릿 + 제목 기반 자동 탐지

프로그램

템플릿 특징

김어준의 겸손은힘들다 뉴스공장

코너별 상세 요약 (김어준생각, 겸손브리핑)

홍사훈쑈

게스트 인터뷰 중심 시사 토크쇼

정준희의 논

미디어 비평, 분석적 시각 강조

이재석의 겸공특보

겸공특보 + 주기자LIVE 구분

탁현민의 더 뷰티플

주말 토크쇼, 문화/라이프


Python 프로그램의 스크린샷

막혔던 순간과 해결

문제: 어려운 과제(라이브 스트리밍 속도 개선)에서 Claude Code와 대화하며 시행착오가 반복되면서 문제 해결이 잘 안 됐습니다. limit에 걸려서 몇 시간씩 쉬어야 하는 과정이 답답하게 느껴졌습니다.

해결: 때로는 한 발 떨어져서 문제를 정확히 파악하고, 해결방안을 직접 찾아보고 고민한 뒤 작업을 이어가는 게 효율적이라는 걸 깨달았습니다. AI에게 모든 걸 맡기기보다, 내가 방향을 잡고 AI가 실행을 도와주는 방식이 더 잘 맞았습니다.


결과와 배운 점

Before vs After

항목

Before

After

LLM 선택

Claude만

Claude/Gemini/GPT 선택 가능

라이브 요약

불가능 (자막 2시간 대기)

Whisper STT로 가능

실행 환경

의존성 직접 설치

Docker 원클릭

코너 구분

description 의존 (부정확)

자막 키워드 탐지

프로그램별 템플릿

뉴스공장 하나만

6개 프로그램 맞춤

결과물

Claude Code skills를 활용해 슬래시 명령어로 각 프로그램 요약을 바로 생성할 수 있게 됐습니다:

  • /뉴스공장 - 김어준의 겸손은힘들다 뉴스공장

  • /홍사훈 - 홍사훈쑈

  • /정준희 - 정준희의 논

  • /이재석 - 이재석의 겸공특보

  • /탁현민 - 탁현민의 더 뷰티플


배운 점과 나만의 꿀팁

효과적이었던 것

  1. 점진적 개선: 한 번에 완벽하게 만들려 하지 않고, 불편함이 쌓일 때마다 하나씩 개선

  2. 욕심 내려놓기: 라이브 속도 개선처럼 어려운 문제는 일단 보류하고 다른 작업 진행

  3. 방향은 내가, 실행은 AI: 문제 정의와 해결 방향은 내가 잡고, 코드 작성은 Claude에게

이렇게 하면 안 돼요 (주의사항)

  1. AI에게 모든 걸 맡기고 기다리기 - 시행착오만 반복되고 limit만 소진됨

  2. 한 번에 너무 큰 변경 요청 - 작은 단위로 나눠서 확인하며 진행하는 게 안전


과정 중 시행착오

라이브 스트리밍 속도 개선 작업에서 청크 기반 병렬 처리를 시도했지만, 기대만큼 효과가 없었습니다. 원인 분석과 대안 탐색에 시간을 많이 썼는데, 결국 "일단 되는 것부터 완성하고 어려운 건 나중에"라는 판단을 내렸습니다.

이 과정에서 limit에 걸려서 몇 시간 대기하는 게 가장 답답했습니다. 하지만 돌이켜보면, 그 대기 시간에 직접 문제를 고민하고 자료를 찾아본 게 오히려 도움이 됐습니다.


앞으로의 계획

다음 단계

  • live 요약 속도 개선: 실시간 스트리밍 STT (Deepgram 등) 방식 검토

  • 요약 결과 자동 전송: Notion이나 Slack 연동

다른 업무에 적용한다면?

정기적으로 시청하는 콘텐츠(팟캐스트, 웨비나, 강의 등)에 같은 방식 적용 가능


재사용 가능한 프롬프트

프롬프트 1: 프로그램별 템플릿 분리 요청

프로그램별 요약 템플릿 분리 해줘

현재 문제:
- 모든 프로그램에 [특정 프로그램] 전용 템플릿이 적용됨
- [다른 프로그램] 요약에 [관련없는 코너]가 출력됨

원하는 결과:
- 영상 제목에서 프로그램 유형 자동 탐지
- 프로그램별 맞춤 요약 형식 적용

프롬프트 2: LLM API 선택 옵션 추가

[스크립트명]에 --model 옵션을 추가해서
claude, gemini, gpt 중 선택할 수 있게 해줘

기본값은 [선호 모델]로 설정

도움 받은 글 (옵션)

참고한 자료


작성일: 2026-01-24 작성자: suhyuk (gpters 20기)

1
4개의 답글

👉 이 게시글도 읽어보세요