유튜브 자막 요약 자동화 — Claude API로 10분 영상을 3줄로 (2026)
유튜브 트랜스크립트를 Claude API로 자동 요약하는 방법. 자막 추출부터 3줄 요약 생성까지, 코드 복붙만으로 완성하는 실전 가이드.
30분짜리 유튜브 강의, 꼭 다 봐야 할까요? 핵심만 빠르게 알고 싶은데, 배속으로 돌려봐도 15분이에요. “누가 대신 요약해주면 좋겠다” — 이 생각, 한 번쯤 해보셨을 거예요.
그래서 직접 만들었어요. 유튜브 자막(트랜스크립트)을 자동으로 긁어서 Claude API에 넘기면, 10분 영상이든 1시간 강의든 핵심 3줄로 정리해줘요.
결론부터 말하면 — 자막 있는 영상은 자막으로, 없는 영상은 설명(description)으로 자동 판단해서 요약해줘요. 코드는 AI가 짜줬고, 복붙만 하면 돼요.
이 글을 읽으면 이런 걸 얻어요:
- Claude API로 유튜브 자막을 요약하는 전체 코드
- 자막 없는 영상도 처리하는 폴백 로직
- 실제 실행 결과와 비용 정보
이전 글에서 새 영상 감지 기능을 만들었어요. 이번 편은 거기에 요약 기능을 얹는 과정이에요.
트랜스크립트란? — 유튜브 자막 데이터 이해하기
트랜스크립트(transcript)는 유튜브 영상에 달린 자막 텍스트 데이터예요. 영상 아래 “더보기” 옆에 “스크립트” 버튼을 눌러보면 나오는 그 내용이에요.
이걸 수동으로 복사하면 귀찮지만, youtube-transcript-api라는 파이썬 라이브러리를 쓰면 영상 ID 하나로 자막 전체를 텍스트로 받아올 수 있어요. Claude API 요약의 입력 데이터가 바로 이 트랜스크립트예요.
자막이 없는 영상도 있어요. 이 경우엔 YouTube Data API로 영상 설명(description)을 가져와서 대신 사용해요. 어떤 영상이든 요약이 가능하도록 자동 폴백 처리가 되어 있어요.
Claude API 클라이언트 세팅하기
Claude Code를 열고 아래 프롬프트를 그대로 입력하면, AI가 설계서(SPEC)를 만들어줘요.
/moai plan "youtube_checker.py에서 반환된 새 영상 목록을 받아서, 각 영상의 유튜브 자막(transcript)을 youtube-transcript-api로 가져오고, 자막이 없는 영상은 YouTube Data API의 description을 대신 사용해서, Claude API(claude-sonnet-4-5)로 핵심 내용 3줄 요약을 생성하고 반환하는 기능을 Python으로 만들어줘"
1~2분이면 SPEC 문서가 생성돼요. youtube-transcript-api는 유튜브 자막을 파이썬에서 간편하게 가져올 수 있는 오픈소스 라이브러리인데, AI가 알아서 requirements.txt에 추가해줘요.
SPEC 번호가 확인되면, 바로 구현 명령어를 실행해요.
/moai run SPEC-YT-002
3~5분이면 에이전트들이 자막 추출 + Claude 요약 코드를 짜줘요.
아직 환경 세팅이 안 됐다면 API 키 발급 가이드부터 확인하세요.
자막 가져오기 → Claude로 요약하기 (전체 코드)
moai run 완료 후 생성되는 핵심 파일은 두 개예요.
transcript_fetcher.py— 자막 추출 + description 폴백 처리summarizer.py— Claude API로 3줄 요약 생성
AI가 짠 summarizer.py의 내부 로직은 이래요:
def summarize_video(video_id, title, description):
# 1. 자막 가져오기 시도
transcript = fetch_transcript(video_id)
# 2. 자막 없으면 description으로 폴백
content = transcript if transcript else description
# 3. Claude API로 3줄 요약 생성
summary = claude_summarize(title, content)
return summary
자막이 있는지 먼저 확인하고, 있으면 자막으로, 없으면 영상 설명으로 Claude에게 요약을 시켜요. 이 판단이 자동이라는 게 핵심이에요. 코드를 직접 짠 게 아니라 AI가 짜준 거라, 예외 처리까지 깔끔하게 들어가 있어요.
실행 결과 — 10분 영상이 3줄로
의존성 업데이트 후 실행해요.
pip install -r requirements.txt
python main.py
실행 성공 시 터미널 출력:
Checking channels for new videos...
✓ 2 new video(s) found. Summarizing...
📹 오늘의 방송 하이라이트 — 침착맨
https://youtube.com/watch?v=xxxxxxx
📋 요약 (자막 기반):
1. 오늘 방송에서 시청자 사연을 읽으며 공감대를 형성했어요.
2. 게임 방송 중 예상치 못한 상황으로 웃음이 터졌어요.
3. 마지막 코너에서 다음 방송 예고를 남겼어요.
📹 요즘 제 루틴이 바뀐 이유 — 드로우앤드류
https://youtube.com/watch?v=yyyyyyy
📋 요약 (설명 기반 — 자막 없음):
1. 번아웃 이후 아침 루틴을 완전히 바꿨어요.
2. 억지로 생산적이려는 대신 회복에 집중하게 됐어요.
3. 이번 영상에서 바뀐 루틴의 구체적인 방법을 공유해요.
“(자막 기반)”과 “(설명 기반)”이 다르게 표시돼요. 어떤 소스로 요약했는지 자동으로 구분해주는 거예요.
이 상태에서 요약이 터미널에만 뜨고 있어요. 다음 글에서 이걸 슬랙 DM으로 보내면 봇이 완성돼요.
비용은 얼마나 들까? (실제 요금 공개)
Claude API 요약은 건당 약 0.003~0.01달러 수준이에요. 10분짜리 영상 자막이 대략 2,000~5,000 토큰인데, Claude Sonnet 기준 입력 토큰 비용이 매우 낮아요.
하루에 영상 10개를 요약해도 한 달 비용이 1~3달러 정도예요. GPT-4 대비 비용이 낮으면서 요약 품질은 체감상 비슷하거나 더 나아요.
실제로 이 봇을 2주간 운영해본 결과, 총 API 비용은 0.47달러였어요. 커피 한 잔 값도 안 돼요.
자주 묻는 질문 (FAQ)
Claude API 요금은 건당 얼마인가요?
영상 길이에 따라 다르지만, 10분 영상 기준 약 0.003~0.01달러예요. Claude Sonnet 모델 기준이고, 자막 길이(토큰 수)에 비례해요. 하루 10건 요약해도 한 달에 1~3달러 수준이에요.
자막 없는 영상도 요약 가능한가요?
네, 가능해요. 자막이 없으면 YouTube Data API로 영상 설명(description)을 가져와서 대신 요약해요. 다만 description이 너무 짧으면 “요약할 내용이 충분하지 않아요”라는 메시지를 반환하고 제목 + URL만 출력해요.
GPT-4 대신 Claude를 쓰는 이유는?
세 가지예요. 첫째, 긴 자막 처리에 강해요 — Claude는 컨텍스트 윈도우가 넓어서 1시간 강의 자막도 한 번에 처리할 수 있어요. 둘째, 한국어 요약 품질이 자연스러워요. 셋째, 비용이 상대적으로 낮아요. 물론 GPT-4로 바꿔도 코드 구조는 동일하게 동작해요.
1시간 강의도 요약 가능한가요?
가능해요. Claude Sonnet의 컨텍스트 윈도우가 충분히 넓어서 1시간 강의 자막(약 15,000~20,000 토큰)도 문제없이 처리해요. 다만 토큰 수가 많아지면 비용이 비례해서 올라가요 — 1시간 영상은 건당 약 0.03~0.05달러 정도 예상하면 돼요.
요약 결과를 한국어로 받을 수 있나요?
기본적으로 한국어 자막이면 한국어로 요약돼요. 영어 자막인 경우엔 Claude 프롬프트에 “한국어로 요약해줘”를 추가하면 돼요. Claude Code에 “요약 프롬프트에 한국어 응답 조건 추가해줘”라고 말하면 바로 수정해줘요.
요약 길이나 형식을 바꾸고 싶어요
Claude Code에 “요약을 3줄 대신 5줄로 바꿔줘” 또는 “글머리 기호 대신 한 문단으로 요약하게 바꿔줘”라고 말하면 즉시 수정해줘요. 프롬프트 한 줄 바꾸는 작업이라 1분도 안 걸려요.
시리즈 전체 보기
- 바이브 코딩이 뭔데? — 개념 정리
- Claude Code + moai-adk 설치 가이드
- API 키 3개 발급받기
- 새 영상 감지 기능 구현
- 유튜브 자막 요약 자동화 (지금 읽는 글)
- 슬랙 DM으로 요약 받기 — 봇 완성
- 바이브 코딩 솔직 후기
터미널에 요약이 뜨는 거 확인하셨으면, 거의 다 왔어요. 다음 글에서 이 요약을 슬랙 DM으로 전송하면 진짜 봇이 완성돼요. 마지막 한 발만 더예요.
다음 글도 곧 찾아옵니다!