Skip to content

Repository files navigation

CGV 용산 IMAX 아이맥스 예매 오픈 및 취소표 텔레그램 알림 봇

CGV 용산아이파크몰 IMAX의 예매 오픈과 예매 가능한 좌석을 Telegram으로 알려주는 비공식 알림 봇입니다.

👉 @yongambot — 봇 열고 /start 보내기

소개 페이지: https://yuemyname.github.io/yongam-bot/

  • 영화: 오디세이 (movNo=30001323)
  • 극장: CGV 용산아이파크몰 (siteNo=0013)
  • 감시 기간: 한국시간 기준 오늘을 포함한 28일(4주)
  • 확인 주기: 약 1분 (조회할 날짜 수에 따라 조금 더 걸릴 수 있음)
  • CGV 로그인·쿠키: 사용하지 않음

알림 받는 방법

  1. https://t.me/yongambot 을 열어 봇으로 이동합니다.
  2. 시작 버튼을 누르거나 /start를 보냅니다.
  3. ✅ CGV 용산 IMAX 알림 구독이 완료되었습니다.라는 답장이 오면 등록 완료입니다.

여기까지가 전부입니다. 따로 설정할 것은 없습니다. 새 회차가 열리거나 예매 가능한 자리가 있으면 바로 알림이 갑니다. 아래 /mode, /day, /seat, /count 설정은 알림이 너무 많다고 느껴질 때만 쓰시면 됩니다.

봇은 CGV 상영 일정 조회 중에도 Telegram 명령을 약 2초 간격으로 별도 확인합니다. 보통 수초 안에 답장이 오며, 일시적인 네트워크 지연이 있으면 조금 더 걸릴 수 있습니다.

명령어 기능
/start 알림 구독
/stop 알림 해지
/status 현재 구독 상태와 알림 종류 확인
/mode 현재 알림 종류 확인 및 변경 방법 보기
/mode_all 신규 오픈 + 예매 가능 좌석 알림 받기 (기본)
/mode_open 신규 오픈 알림만 받기
/mode_seats 예매 가능 좌석 알림만 받기
/day 현재 알림 상영일 확인 및 변경 방법 보기
/day_all 모든 요일 상영분 받기 (기본)
/day_weekend 토·일 상영분만 받기
/seat 현재 좌석 대상 확인 및 변경 방법 보기
/seat_all 모든 A열 제외 좌석 알림 받기 (기본)
/seat_sweet 추천 명당 좌석 알림만 받기
/count 현재 예매 가능 최소 좌석 확인 및 변경 방법 보기
/count_1 1석부터 모두 받기 (기본)
/count_2 2석 이상 남아 있을 때만 받기
/desc 봇 설명과 자세한 사용 방법 보기
/coffee Ko-fi에서 개발자에게 커피 후원하기
/help 사용 가능한 명령어 확인

그룹에서 알림을 받으려면 봇을 그룹에 추가한 뒤 그룹 안에서 /start를 보내세요. 그룹에서 명령어가 /start@봇이름으로 표시되어도 정상 처리됩니다.

봇이 어떤 알림을 보내는지와 알림 제외 조건, 예매 링크 사용법을 한 번에 확인하려면 /desc를 보내세요.

봇이 도움이 되었다면 /coffee를 보내 Ko-fi 후원 링크를 확인할 수 있습니다. 후원 여부와 관계없이 모든 알림 기능은 동일하게 제공됩니다.

어떤 알림이 오나요?

예매 오픈 알림

처음 보는 상영일·시작시간 조합이 나타나면 날짜별로 모아서 알려줍니다. 매진 상태로 열린 회차도 알립니다 — 회차가 생겼다는 사실 자체가 정보이고, 이후 취소표 알림은 여기 등록된 회차에서만 나가기 때문입니다.

🎟️ CGV 예매 오픈 감지
━━━━━━━━━━━━━━━━━━━━
📅 상영일: 2026-08-26 (수)
━━━━━━━━━━━━━━━━━━━━
영화: 오디세이 (30001323)
극장: 용산아이파크몰 (0013)

• 상영 시작시간 11:00 — 624/624석
• 상영 시작시간 14:30 — 624/624석
• 상영 시작시간 18:00 — 0/624석 (매진 · 취소표 나오면 알림)

🎟️ 예매 바로가기 (영화·극장·날짜 선택됨): https://cgv.co.kr/cnm/movieBook/movie?...

좌석 위치는 표시하지 않습니다. 좌석표를 읽지 않고 상영 시작시간과 좌석 수만으로 바로 보내기 때문입니다. 새 회차를 가장 빨리 알리는 것이 이 봇의 첫 번째 목적이라 여기서 시간을 쓰지 않습니다. 좌석 위치는 그다음 알림부터 나옵니다.

예매 가능 좌석 알림

이미 알린 회차에 예매 가능한 좌석이 있으면 확인 주기마다 알려줍니다. 좌석 수가 바뀔 때만이 아니라, 자리가 남아 있는 동안 계속 알립니다. 매진된 회차는 알리지 않습니다.

💺 CGV 예매 가능 좌석
━━━━━━━━━━━━━━━━━━━━
📅 상영일: 2026-08-26 (수)
━━━━━━━━━━━━━━━━━━━━
영화: 오디세이 (30001323)
극장: 용산아이파크몰 (0013)

상영 시작시간: 18:00
잔여좌석/총좌석: 4/624석 (이전 5/624석)
A열 제외 예매 가능: 4석 → 3석
A열 제외 잔여 좌석: H20~21 / J7

🎟️ 예매 바로가기 (영화·극장·날짜 선택됨): https://cgv.co.kr/cnm/movieBook/movie?...

좌석 번호가 연속되면 12~15처럼 묶어 표시합니다. 좌석이 너무 많아 Telegram 메시지 제한에 가까워지면 행별 좌석 수로 요약하며, CGV 응답에 번호가 없으면 확인된 행과 좌석 번호 미확인 표시를 보냅니다. A열 좌석은 위치 목록에서도 제외됩니다.

알림 종류 고르기 (선택 사항)

설정하지 않으면 모든 알림을 받습니다. 이 항목은 알림을 줄이고 싶을 때만 필요합니다.

두 가지 알림 중 원하는 것만 받을 수 있습니다. 설정은 구독자마다 따로 저장되며, 언제든 바꿀 수 있습니다.

명령어 받는 알림
/mode_all 예매 오픈 + 예매 가능 좌석 (기본값)
/mode_open 예매 오픈만
/mode_seats 예매 가능 좌석만

현재 설정은 /mode 또는 /status로 확인할 수 있습니다. 이미 구독 중이던 사용자는 별도 설정 없이 기존과 동일하게 두 알림을 모두 받습니다.

알림 받을 상영일 고르기

평일 상영분은 제외하고 주말 영화만 기다릴 수 있습니다.

명령어 받는 상영분
/day_all 월~일 모든 요일 (기본값)
/day_weekend 토요일·일요일만

현재 설정은 /day 또는 /status로 확인할 수 있습니다. 이 설정은 예매 오픈과 예매 가능 좌석 알림에 모두 적용됩니다.

기준은 알림이 도착한 요일이 아니라 영화의 상영일입니다. 예를 들어 수요일에 토요일 회차가 새로 열리면 /day_weekend 사용자도 수요일에 즉시 알림을 받습니다. 공휴일은 별도로 주말로 취급하지 않습니다.

잔여 좌석 대상 고르기

예매 가능 좌석 알림을 추천 중앙 구역으로 좁힐 수 있습니다. sweet은 아래 세 구역을 하나로 묶은 설정입니다.

  • Extremer: F1629, G1629
  • Experienced: H1332, I1332
  • SweetSpot: J1134, K1134, L11~34
명령어 받는 예매 가능 좌석 알림
/seat_all 모든 A열 제외 좌석 (기본값)
/seat_sweet 위 명당 구역에 예매 가능한 좌석이 남아 있을 때만

현재 설정은 /seat 또는 /status로 확인할 수 있습니다.

/seat_sweet으로 설정해도 신규 예매 오픈 알림은 항상 받습니다. 명당 밖에만 자리가 남은 회차의 알림이 걸러집니다. CGV 좌석 상세에서 정확한 행·번호를 확인할 수 없으면 명당 여부를 판별할 수 없어 sweet 사용자에게는 보내지 않습니다.

예매 가능 최소 좌석 고르기

둘이서 볼 자리를 기다리는 경우, 1석만 남은 알림은 소용이 없습니다. 몇 석 이상 남아 있을 때만 알림을 받을지 고를 수 있습니다.

명령어 받는 예매 가능 좌석 알림
/count_1 1석이라도 있으면 모두 (기본값)
/count_2 A열 제외 2석 이상 남아 있을 때만

현재 설정은 /count 또는 /status로 확인할 수 있습니다.

전체 잔여 수가 아니라 A열 제외 좌석 수를 기준으로 합니다. 전체 수로 세면 2석이 남아도 그중 하나가 A열일 때 /count_2가 요구한 2석이 아니기 때문입니다. 좌석표에서 A열 여부를 읽지 못한 회차(⚠️ A열 여부 미확인)는 확인된 A열 제외 좌석 수만으로 판단하고, 그 수조차 읽지 못하면 /count_2 구독자에게는 보내지 않습니다.

/seat_sweet과 함께 쓰면 명당 구역 안에 남은 좌석 수로 판단합니다. 명당 밖에 2석이 남아도 /seat_sweet + /count_2 구독자에게는 가지 않습니다.

/count_2로 설정해도 신규 예매 오픈 알림은 항상 받습니다.

CGV 조회 오류 같은 운영 공지는 구독자에게 가지 않습니다. 운영자에게만 전달되며, 봇이 실패한 날짜를 스스로 다시 조회합니다.

알림하지 않는 경우

공개 좌석표에서 다음 상태가 확실하게 확인되면 알림을 보내지 않습니다.

  • 이미 상영이 시작돼 예매가 마감된 회차
  • 예매 가능한 좌석이 모두 A열인 경우
  • 잔여 좌석이 0석인 경우 (매진)

단, 예매 오픈 알림은 위 조건과 관계없이 처음 보는 회차라면 항상 보냅니다. 매진 상태로 열린 회차는 0/624석 (매진 · 취소표 나오면 알림)으로 표시됩니다.

상영이 시작된 회차도 CGV 응답에는 계속 남아 있고 잔여 좌석 수가 바뀌기도 하지만, 예매할 수 없으므로 알리지 않습니다. 오늘 날짜의 지난 회차가 여기 해당합니다.

CGV 상영 일정에는 전체 잔여 좌석 수만 들어 있어서, A열 1석이 팔리는 동시에 A열이 아닌 1석이 취소되면 전체 수는 그대로입니다. 이런 변화를 놓치지 않도록 오늘·내일 상영분은 매 주기, 그 뒤 6일치는 돌아가며 5주기에 한 번씩 좌석표를 다시 읽습니다. 취소표가 가장 자주 나오는 임박한 회차를 촘촘히 보기 위해서입니다.

예매 오픈 알림은 좌석표를 읽지 않고 상영 시작시간과 좌석 수만으로 즉시 보냅니다. 새 회차를 가장 빨리 알리는 것이 이 봇의 첫 번째 목적이고, 갓 열린 회차는 전 좌석이 비어 있어 A열을 가릴 이유가 없기 때문입니다. 좌석표는 그다음 주기에 읽습니다.

그 뒤로는 공개 좌석표에서 판매 가능한 좌석의 열을 확인합니다. seatStusCd=00, seatSaleYn≠N, 비활성 아님 조건을 통과한 좌석 중 A열을 제외한 수를 저장합니다. A열만 남은 회차는 알림에서 제외합니다. 좌석 상세 조회가 실패하거나 정보가 불완전한 경우에는 전체 잔여 좌석이 6석 이하면 알림을 보류합니다. 보류란 A열 여부를 확신할 수 없어 알림을 버리지 않고 다음 확인까지 잠시 미룬다는 뜻입니다. 7석 이상이면 A열 여부 미확인 표시와 함께 전체 잔여 수를 기준으로 알림을 보냅니다.

예매 링크 사용법

알림의 링크에는 오디세이, 용산아이파크몰, 해당 상영일이 설정됩니다. 링크 문구에도 영화·극장·날짜 선택됨이라고 표시되므로 그대로 열면 됩니다.

CGV의 공개 예매 링크는 특정 상영시간을 전달하는 기능을 제공하지 않습니다. 상영시간을 누르면 로그인 확인과 함께 선택 정보가 브라우저 내부 상태로만 넘어가고 URL에는 남지 않기 때문에, 공유 링크에서 회차 시간까지 자동 선택할 수는 없습니다. 알림에 표시된 시작시간과 같은 회차를 CGV 화면에서 눌러주세요.

CGV 예매 화면은 IMAX 필터 선택 상태를 링크로 전달하지 않으므로, 화면이 열리면 상단의 IMAX 버튼을 한 번 눌러주세요. 봇이 감지하고 알리는 회차 자체는 IMAX 조건으로만 선별됩니다.

자주 묻는 질문

/start를 보냈는데 답장이 없어요

  • 최대 1분 정도 기다려 보세요.
  • 봇을 차단하지 않았는지 확인하세요.
  • 개인 채팅에서는 Telegram의 시작 버튼도 눌러 보세요.
  • 계속 답장이 없다면 운영자에게 Railway 실행 상태를 확인해 달라고 요청하세요.

구독 전에 이미 열린 회차도 알려주나요?

예매 오픈 알림은 다시 보내지 않습니다. 이미 전체 구독자에게 알린 회차이기 때문입니다.

예매 가능 좌석 알림은 받습니다. 구독한 시점에 자리가 남아 있는 회차가 있으면 다음 확인 주기(약 1분)에 바로 알림이 옵니다. 이 알림은 좌석 수의 변화가 아니라 현재 남은 자리를 기준으로 하므로, 구독 시점과 관계없이 지금 예매할 수 있는 회차를 모두 받게 됩니다.

Mac을 꺼도 알림이 오나요?

Railway에 배포된 봇은 Mac과 관계없이 계속 실행됩니다. Mac에서만 직접 실행한 경우에는 Mac이 켜져 있고 잠자기 상태가 아니어야 합니다.

공식 CGV 봇인가요?

아닙니다. CGV 공개 상영일정·좌석 조회 기능을 이용하는 개인 제작 비공식 봇입니다. CGV가 API 또는 접속 정책을 바꾸면 조회가 일시적으로 실패할 수 있습니다.

개인정보

구독 기능은 알림 전송에 필요한 Telegram chat_id, 채팅 유형, 표시 이름, 구독 시각과 /mode·/day·/seat·/count 설정만 Railway 영구 볼륨에 저장합니다. 봇에 명령어가 아닌 메시지를 보내면 운영자에게 전달되며, 그 내용은 따로 저장하지 않습니다. 상영이 끝난 회차의 중복 방지 기록은 매 확인 주기마다 자동으로 삭제합니다. Telegram Bot Token은 Railway 비밀 환경변수에만 저장하며 메시지나 GitHub 저장소에 기록하지 않습니다. CGV 로그인 정보와 쿠키는 요구하거나 저장하지 않습니다.

알림 판정 흐름도

봇이 회차 하나를 알림으로 만들거나 버리는 순서, 그리고 그 알림이 구독자별로 어떻게 갈라지는지를 그림으로 정리했습니다.

docs/alert-flow.md

  • 한 주기에 일어나는 조회·판정·발송 순서
  • 신규 회차가 관문을 건너뛰고 바로 발송되는 이유
  • 좌석 알림의 제외·보류 조건
  • /mode, /day, /seat, /count 설정별 수신 여부
  • 중복 발송을 막는 방식

다이어그램은 GitHub에서 바로 보입니다. 내려받거나 별도 프로그램을 설치할 필요가 없습니다.

운영 및 설치

BotFather 봇 생성, Railway 배포, Mac 실행과 개발·테스트 방법은 DEVELOPMENT.md를 참고하세요.

About

[용아맥 알리미] CGV 용산아이파크몰 IMAX 예매 오픈 및 취소표 텔레그램 알림 봇 (yongam-bot)

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages