2026-09-07(월) 세션 — missav-fav 선택항목 연속재생 + SNI 차단우회 트랜스포트
논의·대안
페페 지시 = 「즐겨찾기 페이지를 발전시켜 선택한 항목을 연속 재생」. 착수 전 정찰에서 전제가 깨졌다 —
missav01.com 이 이 PC(poin-mini)에서 TLS 즉시 RST(한국 ISP SNI 차단)라 목록 스크래핑·즐겨찾기 해제까지
이미 죽어 있었다. 미러 도메인 4종(missav.com·missav.ws·missav.ai·njav.tv) 전부 동일.
반면 fourhoi.com(커버·미리보기)과 surrit.com(본편 HLS 호스트)은 차단이 아니었다.
그래서 재생 대상을 갈랐다 — ①미리보기 클립 연속재생(지금 당장 가능, 서버 무손) ②본편 HLS(통로부터 새로 뚫어야 함). 그릴링으로 물었고 페페 결정 = 본편 + NordVPN 필수, 브라우저도 VPN 없이는 안 열린다고 확인.
우회 경로 후보는 셋이었다. OS VPN(전체 터널 → Tailscale·상주 서비스 전부 끊김, 탈락) ·
NordVPN SOCKS5(서비스 자격증명 필요, 미확인) · 크롬 확장 프록시(copcar 26.9.5 선례, 크롬 안에서만 동작).
채택 = 셋째. 파이썬 urllib 을 버리고 NordVPN 확장이 붙은 CDP 크롬 탭 안에서 fetch() 를 돌린다.
같은 오리진이라 쿠키·XSRF·Cloudflare 통과가 공짜고, 크롬 밖 네트워크는 손대지 않는다.
계획은 Fable Plan + 코덱스 상의를 병렬로 받아 확정했다(코덱스 지적 = 대용량 evaluate 반환·CSRF 수동 부착·
DELETE 재시도 위험·확장 상태 감시).
결정
- 트랜스포트 = CDP 크롬 9346(프로필
missav-vpn←coupang-vpn복사, Nord 로그인 승계). 창은 화면 밖 park. - Nord 출구 = United States 고정(페페 지시). 서울 출구는 사이트가 HTTP 451(법적 사유)로 막는다.
- 본편 재생은 서버 중계 —
surrit.com은Referer: missav를 요구하고 CORS 헤더를 안 줘서 브라우저가 직접 못 받는다./hls/<uuid>/<path>로 중계(상대경로라 m3u8 재작성 불필요). ⇒ 시청에는 VPN 이 필요 없다(서버만 필요). - 본편 uuid 는 영상 페이지의 Dean-Edwards packer 를 언팩해서 뽑고
meta.json의hls키에 캐시한다. - 폰트 하한 13px 은 카드 텍스트(10~12px)까지 소급 적용.
산출물·커밋
C:\dev\tools\missav-fav\missav_fav.py— 트랜스포트 교체(_req·_xsrf·_get_tab·_nord_connect), packer 언패커,/api/hls·/hls/<uuid>/…·/hls.min.js라우트, 연속재생 오버레이 UI, 목록 절단 버그 수정.C:\dev\tools\missav-fav\hls.min.js(벤더링) ·README.md전면 갱신 ·start.bat(PYTHONUTF8=1)C:\dev\tools\cdp-profiles\—missav-vpn프로필 + 런처 2종 +PORTS.md9346 등록C:\dev\devplan\missav-fav-player.html+ 허브 카드(projects.json·project_state.json)C:\dev\seedchain\projects\browser-automation\rules.md신설(함정 4건)- 검증: 실브라우저(진짜 크롬) 재생
currentTime 1.98 · 636×361· 자동 다음 1/2→2/2 · 중계 체인 200(master 541B → variant 35KB → 세그먼트 98KB/0.15초) · 목록 683건/40초(직전 167건 절단) · 13px 미만 폰트 0 · 4xx/5xx 0.
2차 추가 (같은 날, 페페 추가 지시 4건)
- ←→ 30초 이동 · ↑↓ 볼륨 —
preventDefault로 네이티브 5초 탐색·볼륨과 겹치지 않게. Shift+←→ 는 이전/다음 편. - 화질 최상 고정 — 🔴여기서 함정을 밟았다.
canPlayType('vnd.apple.mpegurl')를 먼저 보는 순서였는데 윈도우 크롬이'maybe'를 줘서 네이티브로 새고 hls.js 가 안 만들어졌다 → 화질 제어 불가·360p. 분기를 hls.js 우선으로 뒤집고MANIFEST_PARSED에서 최고 레벨을currentLevel로 박았다(ABR 해제). ⇒ 화질 선택 UI 는 만들 필요가 없어졌다(페페 판단대로). - 월(연-월) 그룹 선택 — 날짜 정렬일 때 sticky 그룹 헤더(3상태) + 「▶ 이 달」 통째 재생. 드래그(러버밴드)는 안 만들었다 — 683장 그리드에선 스크롤과 싸운다 → Shift+클릭 범위선택으로 대체.
- web-designer 처방 반영 — sticky
top을 ResizeObserver 실측(--hh)으로(하드코딩 금지: 헤더가 175→153px 로 변한 전례) · 헤더 불투명 배경+그림자 · 부분선택 색 대비 4.46→5.24 · 개수 텍스트 상태색 연동. 흰글씨/핑크 2.92 대비는.tag.on등 전역 패턴이라 이번 범위 밖으로 뒀다. - 검증 = 실브라우저 15항목 전부 통과(1080p 고정
level 3/4 · auto=false· ±30.0초 정확 · 볼륨 ±10% · 그룹 3/3 선택·해제 · Shift 범위 6건 · sticky top=153px · 13px 위반 0 · 콘솔 에러 0).
다음
- 폰(갤럭시 S25 · Tailscale)에서 Wi-Fi·모바일데이터 각각 재생 확인 — 통신사가 surrit 을 막는지.
- 1080p 고정이라 Tailscale 대역폭을 더 쓴다. 폰에서 끊기면 그때 「최상/자동」 토글을 붙인다.
- 본편주소 백그라운드 재수집(683건, 건당 ~2초) 완주 확인.
- Nord 세션 만료 시 복구 절차(구글 SSO 1클릭) 실제로 한 번 밟아보기.
관계
- 주제 그룹: browser-automation
- 관련 문서:
projects/browser-automation/rules.md,projects/copcar/rules.md(NordVPN 확장 선례),tools/cdp-profiles/PORTS.md