Skip to content

[feature] 디트릭스(Dtryx) 예술영화관 상영시간표·좌석 조회 서비스 추가 #177

Closed

Description

@bgmbgm94

배경/문제

현재 영화관 서비스는 CGV·롯데시네마·메가박스 3사입니다. 이 범위에서는 독립·예술영화 상영 정보가 조회되지 않는 경우가 있습니다. 해당 영화들이 주로 걸리는 예술영화 전용관이 세 체인 어디에도 속해 있지 않기 때문입니다.

2026-08-19 기준으로 독립영화 1편을 서울·경기에서 찾아본 결과입니다.

조회 범위 결과
lottecinema-movies 서울·경기 64개관 0건
megabox 서울 17 + 경기 31개관 1개관 2회차
cgv-timetable 서울 29 + 경기 52개관 당시 업스트림 503으로 조회 불가

같은 날 씨네큐브 광화문에서 20:25 회차(잔여 13/72석)가 상영 중이었는데, 위 조회로는 잡히지 않았습니다. 예술영화관이 조회 대상에 없으면 "상영이 없는 것"과 "조회가 안 되는 것"을 구분하기 어려운 것 같습니다.

제안 내용

디트릭스(Dtryx) 예매 플랫폼 어댑터를 추가하면 어떨까 합니다. 국내 독립·예술영화관 다수가 이 플랫폼을 공용으로 쓰고 있어, 어댑터 하나로 여러 극장이 함께 커버됩니다.

공개 엔드포인트이며 API 키가 필요하지 않습니다.

https://api.dtryx.com:30443/dtryx/cms/thirdparty/movie/
  third-party-type2-timetable-list             상영시간표 + 좌석
  third-party-type2-timetable-play-date-list   상영 가능 날짜
  third-party-type2-movie-now                  현재상영작
  third-party-type2-movie-plan                 상영예정작
  third-party-type3-movie-detail               영화 상세

공통 파라미터: BrandCd, CinemaCd, ChannelCd=homepage, EngVerYn=N, WorkGuID

응답에 TotalSeatCnt / RemainSeatCnt / ScreenNm 이 포함되어 기존 getRemainingSeats 계열 도구와 스키마가 맞습니다. ScreenNm(1관/2관)은 현재 CGV 응답에는 없는 정보입니다.

확인한 극장은 24곳이고 BrandCd 3종으로 묶여 있습니다.

BrandCd 성격 극장
indieart 독립예술영화관 씨네아트 리좀, 인디플러스 포항, 오오극장, 전주디지털독립영화관, 더숲아트시네마, 광주극장, 아트하우스모모, 에무시네마, 헤이리시네마 (+미확인 1)
etc 미분류 천안인생극장, 광주자동차극장, 아리랑시네센터, 밀양시네마, 모퉁이극장, 씨네인디U, 애관극장, 금성시네마, 낭만극장, 허리우드클래식, 명화극장, 자유로자동차극장 (+미확인 1)
spacedog 라이카시네마 사업자명 라이카시네마

동작 확인 예시입니다.

GET .../third-party-type2-timetable-list?BrandCd=indieart&CinemaCd=000067&ChannelCd=homepage&EngVerYn=N&PlaySDT=2026-08-19&ImgSize=small&WorkGuID=37E0BA0F-DA5F-4376-9BA4-B5D27286AB87

→ 아트하우스모모 2026-08-19
  19:30-21:13  콘크리트 녹색섬     2관  잔여 124/138  confirm
  19:50-21:25  위커 맨: 파이널 컷  1관  잔여  78/138  confirm

구현 방향

src/services/lottecinema/ 구조(api.ts / client.ts / location.ts / types.ts / index.ts / tools/)를 따라 src/services/dtryx/ 를 추가하고, 도구는 기존 네이밍에 맞춰 findNearbyTheaters / listNowShowing / getRemainingSeats 3종으로 두는 방향을 생각하고 있습니다.

폴더명을 브랜드명이 아니라 플랫폼명(dtryx)으로 적어본 이유는, BrandCd 3종이 모두 공개 브랜드로 보이지 않기 때문입니다. etc 는 미분류 버킷이고, spacedog 는 라이카시네마의 사업자명이며, indieart 는 극장 페이지에 표기되지 않는 내부 분류 코드로 보입니다(해당 페이지 <title> 은 극장명으로 표시됩니다). 극장들도 서로 독립 운영됩니다.

이 방향으로 PR을 준비할 수 있습니다. 폴더 배치나 도구 네이밍에 다른 의견이 있으시면 그쪽에 맞추겠습니다.

대안/검토 사항

  • 극장별 개별 어댑터: 예매 시스템이 공통이라 이점이 없고 극장 수만큼 서비스가 늘어납니다.
  • BrandCd 단위 분리(indieart/, etc/, spacedog/): 기존 브랜드명 폴더 관례에는 맞지만 etc/ 폴더가 생기고 클라이언트 코드가 중복됩니다.
  • 씨네큐브는 이 플랫폼이 아닌 것으로 보여 범위에서 제외했습니다. 예술영화관 전체를 덮는 것은 아닙니다.
  • 비용/운영 영향: 직접 호출이라 Zyte 를 경유하지 않고 API 키 발급·관리도 없습니다. src/services/lottecinema/client.ts 처럼 fetch 만 사용하면 되고, Zyte 일일 한도에는 영향이 없습니다.
  • 문서화가 필요해 보이는 부분: PlaySDT 는 YYYY-MM-DD 형식이어야 합니다. YYYYMMDD 로 넘기면 오류 없이 RecordCount: 0 을 반환해 조용히 실패합니다.
  • 아직 확인하지 못한 것: CinemaCd 2곳(000068, 000086)의 극장명과, 위 3종 외 BrandCd 가 더 있는지 여부입니다.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions