Files
chzzk-bypass/README.md
Claude (chzzk-bypass owner) 7fa34bf6ea XHR 후킹 추가: 치지직이 axios 로 부르는 live-detail 도 가로채도록 수정
문제: v1.1.0 의 fetch 후킹은 작동(`fetch hook installed` 로그 확인)했지만
실제 라이브 페이지에서 `forcing timeMachine ON` 로그가 한 번도 안 떴음.
콘솔 스택트레이스에 `XMLHttpRequest.send` 와 `xhr @ main.d2cbcc55.js` 가
반복 등장해 치지직 React 앱이 axios over XHR 로 live-detail 을 호출하는
것이 확인됨 → fetch 만 후킹한 v1.1.0 은 무용지물이었음.

수정:
- timemachine.js: XMLHttpRequest 의 open/setRequestHeader/send 를 후킹.
  live-detail URL 이면 native send 대신 우리가 fetch 로 직접 요청을
  날리고, 응답을 patchLiveDetailData 로 패치한 뒤 defineProperty 로
  readyState/status/responseText/response/responseURL 등을 덮어쓰고
  readystatechange/load/loadend 이벤트를 합성 발화. responseType
  (text/json/arraybuffer/blob) 별 response 값도 맞춰 만든다.
- fetch 후킹도 유지 (혹시 일부 경로가 fetch 쓸 수 있음).
- 로그 메시지를 `hooks installed (fetch + XHR)` 로 변경하고 XHR 진입
  지점에 `XHR live-detail intercepted for <channelId>` 진단 로그 추가.
- urlOf() 헬퍼로 string/Request/URL 입력을 일관 처리.
- manifest 버전 1.1.0 → 1.1.1.
- README 동작 방식 설명/확인 로그 갱신.
2026-05-28 01:43:29 +09:00

3.2 KiB

Chzzk Bypass

치지직(CHZZK) 시청 환경을 개선하는 Chrome / Edge / Whale 용 확장 프로그램 (Manifest V3).

기능

1. 그리드 우회 (1080p 시청)

navigator.userAgent, navigator.platform, navigator.userAgentData 를 Mac 으로 위장해, 치지직이 윈도우에서 1080p 시청 시 요구하는 그리드(Grid) 설치 없이 1080p 화질을 시청할 수 있게 합니다.

구현: content.js

2. 타임머신 강제 활성화 (되감기 UI)

스트리머가 타임머신을 끄고 방송 중이어도 플레이어에 되감기 (seek) 바 UI 를 띄웁니다. 가능하면 DVR 가능한 HLS 매니페스트까지 함께 갈아끼워 실제 되감기 동작도 살립니다.

동작 방식:

  1. api.chzzk.naver.com/service/v3.2/channels/{id}/live-detail 응답을 window.fetchXMLHttpRequest 양쪽에서 가로챕니다. 치지직 React 앱은 axios 기반이라 실제 요청이 XHR 로 나가므로 XHR 후킹이 필수입니다.
  2. 응답 본문의 content.timeMachineActivecontent.timeMachinePlayback 두 플래그를 강제로 true 로 만듭니다 → 플레이어 UI 가 되감기 바를 노출합니다.
  3. 같은 채널의 …/channels/{id}/live-playback-json 을 호출해 DVR 매니페스트 문자열을 받아 content.livePlaybackJson 을 교체합니다 → 매니페스트가 실제 seek 을 지원하게 됩니다.

이는 Choonholic/ChzzkDownloader--stream force-timemachine 옵션이 사용하는 것과 같은 엔드포인트입니다. 관련 글: blog.choonholic.com/archives/3216

구현: timemachine.js

주의: 타임머신 매니페스트가 보유한 되감기 가능 길이는 CDN 측 윈도우에 의존하므로, 강제로 활성화했다 하더라도 무한정 과거로 되감을 수 있는 것은 아닙니다.

설치

  1. 이 저장소를 git clone 또는 ZIP 다운로드해 임의의 폴더에 둡니다.
  2. Chrome 계열 브라우저에서 chrome://extensions 접속.
  3. 우상단 개발자 모드 활성화.
  4. 압축해제된 확장 프로그램을 로드합니다 클릭 → 위 폴더 선택.
  5. 치지직(https://chzzk.naver.com) 새로고침.

파일 구조

manifest.json     확장 정의 (MV3)
content.js        그리드 우회 (UA / platform / UA-CH 위장)
timemachine.js    타임머신 강제 활성화 (fetch 후킹)
popup.html/css/js 툴바 팝업
icons/            확장 아이콘

동작 확인

브라우저 devtools 콘솔에서 다음 로그를 확인할 수 있습니다.

  • [chzzk-bypass:timemachine] hooks installed (fetch + XHR) — 후킹 성공
  • [chzzk-bypass:timemachine] XHR live-detail intercepted for <channelId> — XHR 가로채기 진입
  • [chzzk-bypass:timemachine] forcing timeMachine ON for <channelId> — 패치 적용
  • [chzzk-bypass:timemachine] livePlaybackJson swapped for DVR manifest — 매니페스트 교체 성공

면책

본 확장은 학습 및 개인 사용 목적의 우회 도구입니다. 사용에 따른 모든 책임은 사용자에게 있으며, 치지직 약관 및 관련 법령을 준수하여 사용하시기 바랍니다.