Claude Code로 YouTube 구독 채널 브리핑 봇 만들기

Claude Code로 YouTube 구독 채널 브리핑 봇 만들기

Claude Code로 YouTube 구독 채널 브리핑 봇 만들기

YouTube 구독 탭 대신 아침 알림 한 번

오늘 만들 것
YouTube 구독 탭 대신 아침 알림 한 번

아침에 YouTube를 열면 구독 탭부터 훑게 되는데, 채널이 몇 개만 늘어나도 오늘 볼 영상이 어디 있는지 찾는 데 시간이 꽤 들어갑니다. 이번 글에서는 그 구간을 줄이는 작은 자동화를 만듭니다. 채널 3~5개만 골라서 최근 24시간 안에 올라온 영상만 모으고, 그 결과를 텔레그램으로 보내는 흐름입니다. 추천 알고리즘을 따라가는 게 아니라 내가 정한 채널만 가져오니까 아침 루틴에 넣기 쉽고, 정보가 너무 많아지지도 않습니다.

완성 형태도 거창하지 않습니다. 텔레그램에 채널명, 영상 제목, 링크가 묶여서 오고, 이미 보낸 영상은 다시 섞이지 않게 처리하면 충분합니다. 첫 결과는 5분 안에 터미널 미리보기로 확인하는 순서가 좋습니다. 처음부터 전송까지 한 번에 붙잡으면 초보 입장에서는 어디서 막혔는지 찾기 어려워지는데, 미리보기부터 띄우면 흐름이 훨씬 또렷해집니다.

준비물은 Claude Code 하나

중심 도구는 Claude Code입니다. 순서는 단순합니다. /init로 작업 규칙을 먼저 적고, 그 규칙을 바탕으로 파일을 만들고, 마지막에 /loop로 같은 세션 안에서 다시 확인하면 됩니다. Codex를 쓰는 분도 같은 프롬프트를 거의 그대로 옮겨 쓸 수 있지만, 글의 진행은 Claude Code 화면을 기준으로 설명하겠습니다. 여기서 중요한 건 기능을 잔뜩 붙이는 일이 아니라 아침 브리핑이라는 한 가지 목적에 맞춰 파일 수와 동작 범위를 좁혀 두는 일입니다.

아무것도 없는 폴더에서 바로 띄우기

1
규칙 메모부터 깔기
AI에게 보낸 프롬프트
이 프로젝트는 YouTube 구독 채널 브리핑 봇이다. 목표는 채널 3~5개의 최근 24시간 영상만 골라 한국어 브리핑 텍스트를 만드는 것. 말투는 담백하게. 파일은 app.py, requirements.txt, .env.example로 시작하고 첫 실행은 텔레그램 전송 대신 터미널 미리보기만 보여줘. 초보가 바로 실행할 수 있게 실행 명령도 같이 적어줘.

첫 프롬프트에서 범위를 묶는 이유는 분명합니다. 시작부터 기능을 넓게 열어두면 파일이 늘어나고, 어디서 실행해야 하는지부터 흐려집니다. 여기서는 app.py, requirements.txt, .env.example 세 개만 먼저 잡아두는 편이 낫습니다. Claude Code에서 /init를 한 번 실행한 뒤 위 문장을 넣으면, 바로 뼈대를 만드는 대화로 이어집니다. 그다음 python app.py를 쳤을 때 텔레그램 대신 터미널에 브리핑 예시가 몇 줄 뜨면 첫 단계는 끝난 셈입니다.

2
채널 5개와 24시간 필터 붙이기
AI에게 보낸 프롬프트
지금 코드에 channels.json을 추가해서 채널명과 channel_id를 5개까지 넣을 수 있게 바꿔줘. YouTube RSS를 읽어서 최근 24시간 영상만 남기고 채널마다 최신 1개만 뽑아줘. 터미널 출력은 오늘 볼 것 제목 아래에 채널명, 영상 제목, 링크가 줄바꿈으로 보이게 정리해줘.

이 단계가 들어가야 아침용 요약으로 정리됩니다. 구독 채널을 많이 넣는 것보다 자주 챙겨보는 3~5개만 먼저 넣는 편이 훨씬 편합니다. 채널마다 최신 1개만 남기면 메시지가 짧아지고, 링크를 눌러 바로 이동하기도 좋습니다. channels.json에 내가 보는 채널의 channel_id를 넣고 다시 돌렸을 때 오늘 올라온 영상만 남아 있으면 목적에 맞게 잘 좁혀진 겁니다. 여기까지 오면 아침에 확인할 영상 묶음을 자동으로 만드는 틀이 거의 잡힙니다.

3
텔레그램 전송이랑 중복 방지 붙이기
AI에게 보낸 프롬프트
이제 텔레그램 전송을 붙여줘. .env에서 TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID, SEND_TELEGRAM을 읽고 SEND_TELEGRAM=true일 때만 전송하게 해줘. 같은 영상을 두 번 보내지 않게 seen.json에 video_id를 저장해줘. 실패하면 에러를 길게 뿌리지 말고 어느 채널에서 막혔는지 한 줄로 보여줘.

여기서부터 생활 도구다운 느낌이 생깁니다. 텔레그램 전송 스위치를 SEND_TELEGRAM으로 분리해 두면 평소에는 미리보기만 보다가, 정리 방식이 마음에 들 때 true로 바꿔서 바로 쓸 수 있습니다. seen.json도 꼭 필요합니다. 같은 링크가 다음 실행 때 또 오면 알림 자체를 무시하게 되기 쉽기 때문입니다. 터미널 확인, 전송 전환, 중복 차단이 분리되어 있으면 나중에 손볼 때도 어디를 건드려야 할지 금방 보입니다.

4
/loop로 한 번 더 확인하기
AI에게 보낸 프롬프트
방금 만든 봇을 검수해줘. 초보가 가장 많이 막히는 지점 세 가지를 README 형태로 정리하고 같은 세션에서 30분마다 확인하는 방법도 맨 아래에 적어줘. /loop 예시는 한 줄로 보여줘.

이 프롬프트가 필요한 이유는 한 번 만들고 끝나는 코드가 아니기 때문입니다. 봇은 다음 실행에서도 안 깨지는지가 더 중요합니다. 같은 세션 안에서 /loop 30m app.py를 실행해서 새 영상이 있으면 전송 결과까지 확인해줘처럼 붙여두면, 자리에 앉아 있는 동안 반복 상태를 살피기 좋습니다. 초보 입장에서도 설명 파일이 같이 남으면 나중에 토큰 이름이나 실행 명령을 다시 찾느라 헤매는 시간이 줄어듭니다.

자주 막히는 지점 세 군데

1. 터미널에는 브리핑이 보이는데 텔레그램은 조용할 때가 있습니다. 이럴 때는 SEND_TELEGRAM 값이 아직 false인지, TELEGRAM_CHAT_ID가 실제로 메시지를 받을 채팅방 기준인지 먼저 보면 됩니다. 봇과 대화를 시작하지 않은 상태라면 전송 자체가 막히는 경우도 있어서, 봇 채팅방을 먼저 열어두는 편이 안전합니다.

2. 채널을 넣었는데 결과가 비어 있거나 어제 영상이 섞일 때도 있습니다. 이 경우에는 채널 핸들 주소를 넣은 게 아니라 UC로 시작하는 channel_id를 넣었는지 먼저 확인하는 게 좋습니다. 시간 비교도 같이 챙겨야 합니다. 프롬프트나 코드 설명에 published 시간을 UTC 기준 최근 24시간과 비교한다고 적어두면 날짜 판단이 흔들리는 일을 줄일 수 있습니다.

3. 같은 링크가 다음 실행 때 또 오는 상황도 자주 나옵니다. 보통은 seen.json이 실행 폴더에 만들어지지 않았거나, 저장 시점이 너무 뒤에 있어서 생깁니다. 이럴 때는 Claude Code에 video_id를 고른 직후 저장하도록 바꿔 달라고 한 줄 더 요청하면 정리가 빠릅니다. 메시지 전송 성공 뒤에만 저장하도록 묶어두면 중간 오류가 났을 때 같은 영상이 다시 남을 수 있습니다.

내일 아침까지 이어 붙이기

여기서 한 줄 더 붙일 만한 기능은 영상마다 왜 지금 볼 만한지 짧은 메모를 덧붙이는 정도입니다. 그다음 단계는 Claude Code의 /schedule로 아침 8시에 실행되게 이어 붙이면 됩니다. 그러면 구독 탭을 길게 스크롤하는 대신, 텔레그램에서 오늘 올라온 영상 몇 개만 먼저 훑고 바로 고를 수 있는 흐름이 생깁니다. 작게 시작한 자동화라서 오히려 손보기도 쉽고, 아침 습관에 얹어 두기에도 부담이 적습니다.

관련 검색어

  • 🔍 Claude Code 사용법
  • 🔍 Claude Code 비교
  • 🔍 유튜브 브리핑 자동화 사용법
  • 🔍 유튜브 브리핑 자동화 비교
  • 🔍 텔레그램 봇 사용법
  • 🔍 텔레그램 봇 비교

댓글 쓰기

다음 이전