Claude Code로 Twitch 방송 시작 디스코드 알림봇 만들기

Claude Code로 Twitch 방송 시작 디스코드 알림봇 만들기

Claude Code로 Twitch 방송 시작 디스코드 알림봇 만들기

방송 켜자마자 디스코드에 뜨게

오늘 만들 것
방송 켜자마자 디스코드에 뜨게

Twitch 방송 시작 디스코드 알림봇 하나 있으면 좋아하는 스트리머가 켜는 순간 디스코드에 카드처럼 뜹니다. 오늘 만드는 건 복잡한 서버가 아니라, 내 PC에서 돌리는 작은 봇이에요. 스트리머 한두 명 챙겨보는 사람한텐 이게 진짜 편하거든요.

공식 문서 기준으로 Claude Code는 CLAUDE.md를 세션 시작마다 읽고, /loop는 v2.1.72 이상에서 같은 프롬프트를 반복 실행합니다. 그래서 규칙 메모 하나 깔고, 방송 확인 작업만 반복시키면 끝나요.

하나만 골라서 가자

오늘은 Claude Code 기준으로 갈게요. Codex 쓰는 분도 같은 프롬프트를 붙여 넣고 파일 생성만 맡기면 되지만, 화면은 하나만 보면 덜 헷갈립니다. Claude Code가 없다면 PowerShell에서 irm https://claude.ai/install.ps1 | iex 한 번만 치면 되고, Twitch 쪽은 Client ID와 Client Secret, Discord 쪽은 웹훅 URL만 준비하면 됩니다.

Twitch 방송 시작 디스코드 알림봇 붙이기

1
라이브 확인만 먼저
AI에게 보낸 프롬프트
새 폴더에서 파이썬으로 Twitch 방송 시작 디스코드 알림봇 뼈대를 만들어줘. 파일은 main.py 하나만 먼저. 기능은 세 개만 넣어줘. .env에서 TWITCH_CLIENT_ID, TWITCH_CLIENT_SECRET, TWITCH_USER_LOGIN을 읽기. Twitch Helix streams API로 해당 채널이 라이브인지 확인하기. 라이브면 방송 제목, 게임명, 시청자 수를 터미널에 출력하고 아니면 offline이라고 출력하기. 윈도우 PowerShell에서 실행 방법도 같이 적어줘.
왜 이렇게 시켰나: 첫 판에서 디스코드까지 같이 넣으면 어디서 막혔는지 안 보여요. live와 offline만 먼저 잡아야 덜 꼬입니다.
이렇게 나오면 OK: 터미널에 채널명과 함께 live 또는 offline이 바로 보이면 됩니다. 첫 결과가 이 단계에서 5분 안에 나오면 잘 가는 중이에요.
여기서 이렇게 하면 안 돼요: 처음부터 여러 채널, 로그 파일, 스케줄링까지 한 번에 넣지 마세요. AI가 욕심내면 초보자는 바로 길 잃습니다.
2
디스코드 카드 붙이기
AI에게 보낸 프롬프트
지금 main.py에 Discord 웹훅 전송만 추가해줘. 라이브일 때만 디스코드로 보내고, 메시지는 embeds를 써서 카드 형태로 만들어줘. 카드에는 스트리머 이름, 방송 제목, 게임명, 시청자 수, 방송 링크를 넣어줘. 필요한 환경변수 이름은 DISCORD_WEBHOOK_URL로 통일해줘.
왜 이렇게 시켰나: Discord 웹훅 문서에서 메시지는 contentembeds 중 하나만 있어도 보내집니다. 우리는 예쁘게 보이는 카드가 필요하니까 embeds로 고정하는 게 빨라요.
이렇게 나오면 OK: 디스코드 채널에 방송 제목이 들어간 카드가 한 장 뜹니다. 이거 뜨는 순간부터 이미 쓸 만해요.
여기서 이렇게 하면 안 돼요: 본문을 길게 쓰라고 하지 마세요. 알림은 짧아야 진짜 눌러봅니다.
3
중복 알림 막기
AI에게 보낸 프롬프트
같은 방송 세션에서 디스코드 알림이 한 번만 가게 바꿔줘. 라이브 중에는 중복 전송 금지. 방송이 종료되면 상태를 비워서 다음 방송 시작 때 다시 보내줘. 파일은 sent_state.json 하나 추가해도 괜찮아.
왜 이렇게 시켰나: 이 한 줄이 없으면 5분마다 같은 카드가 찍혀서 채널이 바로 난장판 됩니다. 봇은 멋진 기능보다 중복 방지가 먼저예요.
이렇게 나오면 OK: 방송 중에 여러 번 실행해도 카드가 한 번만 뜨고, 방송을 끈 뒤 다시 켜면 새 카드가 또 올라옵니다.
여기서 이렇게 하면 안 돼요: viewer 수가 달라질 때마다 새 방송으로 착각하게 만들면 안 돼요. 방송 ID나 시작 시각처럼 안 흔들리는 값으로 잡아야 합니다.
4
말투와 규칙을 메모로 고정
AI에게 보낸 프롬프트
프로젝트 루트에 CLAUDE.md를 만들어줘. 규칙은 세 가지만 적어줘. 알림 문구는 과장 없이 짧게. 스트리머 이름은 영어 원문 유지. 디스코드 카드 제목은 40자 안쪽. 그리고 이 규칙을 반영해서 main.py 문구도 같이 다듬어줘.
왜 이렇게 시켰나: Claude Code 문서 기준으로 CLAUDE.md는 세션 시작마다 읽힙니다. 한 번 적어두면 다음 수정에서도 말투가 덜 흔들려요.
이렇게 나오면 OK: 카드 제목이 길게 늘어지지 않고, 채널마다 문구 톤이 비슷하게 맞습니다.
여기서 이렇게 하면 안 돼요: 금지어를 머리로만 기억하지 마세요. 메모 안 남기면 다음 대화에서 또 까먹습니다.
5
손 안 대고 반복 확인
AI에게 보낸 프롬프트
이제 Claude Code 세션에서 5분마다 같은 확인 작업을 돌리고 싶어. /loop에 바로 넣을 한 줄 명령을 만들어줘. 내가 붙여 넣으면 현재 폴더의 main.py를 5분마다 실행하고, 오류가 나면 한 줄로 이유를 보여주게 해줘.
왜 이렇게 시켰나: 공식 문서 기준으로 /loop는 열린 세션 안에서 반복 작업을 돌릴 때 제일 빠릅니다. 아직 클라우드 작업까지 갈 필요 없고, 오늘은 내 컴퓨터에서 돌리면 충분해요.
이렇게 나오면 OK: /loop 5m로 시작한 뒤 방송이 켜지면 디스코드 카드가 올라옵니다. 여기까지 오면 Twitch 방송 시작 디스코드 알림봇은 완성입니다.
여기서 이렇게 하면 안 돼요: 세션을 닫아놓고 왜 알림이 안 오냐고 보면 안 됩니다. /loop는 세션이 살아 있어야 돌아가요.

여기서 막히면

디스코드에 아무것도 안 뜨는 경우가 제일 많습니다. 원인은 웹훅 URL 오타거나, Twitch 쪽은 라이브 판정이 됐는데 Discord 전송 본문이 비어 있는 경우예요. Discord 문서상 웹훅은 content, embeds, file, poll 중 하나는 꼭 있어야 하니까, embed 배열이 비어 있지 않은지 먼저 확인하면 됩니다.

같은 방송이 계속 다시 오는 경우도 꽤 나옵니다. 원인은 상태 파일에 방송 ID를 안 남겼거나, viewer 수처럼 계속 바뀌는 값을 기준으로 비교했기 때문이에요. 해결은 간단합니다. 현재 라이브의 방송 ID나 시작 시각을 저장하고, 다음 실행에서 그 값이 같으면 보내지 않게 바꾸면 끝나요.

/loop가 안 먹거나 명령이 이상하게 보이면 버전부터 확인하세요. 공식 문서 기준으로 예약 기능은 Claude Code v2.1.72 이상이 필요합니다. claude --version으로 보고 낮으면 업데이트한 뒤 같은 세션이 아니라 새 세션에서 다시 붙이는 편이 덜 꼬입니다.

다음에 붙여볼 것

한 걸음 더

다음엔 같은 흐름으로 스트리머 여러 명을 배열로 받아서, 게임 카테고리별로 다른 디스코드 채널에 뿌리게 만들면 진짜 쓸 맛이 납니다. 오늘 만든 Twitch 방송 시작 디스코드 알림봇은 그 출발점으로 딱 좋구요, 한 번 켜두면 디스코드가 먼저 반응할 겁니다.

Related Searches

  • 🔍 Claude Code 사용법
  • 🔍 Claude Code 비교
  • 🔍 Twitch 방송 시작 디스코드 알림봇 사용법
  • 🔍 Twitch 방송 시작 디스코드 알림봇 비교
  • 🔍 Discord 웹훅 사용법
  • 🔍 Discord 웹훅 비교

댓글 쓰기

다음 이전