피드로 돌아가기
Dev.toBackend
원문 읽기
TLS 핑거프린팅 및 Offset 기반 우회로 VOD 채팅 1,000건당 $1.05 추출
Twitch Chat Scraper: export any VOD's full chat replay for $1.05/1K
AI 요약
Context
Twitch Helix API의 VOD 채팅 데이터 부재로 인해 내부 GraphQL 엔드포인트인 VideoCommentsByOffsetOrCursor를 활용한 데이터 추출 필요성 대두. 단순 요청 시 TLS 핑거프린팅 기반의 봇 탐지와 Cursor 기반 페이지네이션 시 발생하는 무결성 검사(Integrity Check)가 주요 병목 지점으로 작용.
Technical Solution
- curl-cffi 라이브러리를 통한 Chrome, Firefox 등 최신 브라우저의 TLS ClientHello 및 HTTP/2 핸드쉐이크 모사로 403 Forbidden 오류 해결
- KPSDK 무결성 검사를 회피하기 위해 Cursor 방식 대신 contentOffsetSeconds + 1 기반의 Offset 페이지네이션 로직으로 전환
- 단일 IP당 10,000건의 요청 제한을 극복하기 위해 Residential Proxy Rotation 및 세션 ID 갱신 구조 설계
- 408, 429, 5xx 에러 발생 시 최대 30초까지 2배수 증가하는 Exponential Backoff 전략을 적용하여 시스템 안정성 확보
- Pydantic 기반의 스키마 검증을 통한 데이터 일관성 유지 및 구조화된 Emote fragment 추출 로직 구현
실천 포인트
1. API 부재 시 브라우저 네트워크 탭의 GraphQL 쿼리 분석 및 Client-Id 헤더 식별
2. requests/httpx 대신 curl-cffi와 같은 TLS 모사 라이브러리 검토
3. Cursor 기반 페이징 실패 시 Offset 기반의 대체 경로 탐색
4. 대량 요청 시 Residential Proxy와 Exponential Backoff 조합의 Rate Limit 대응 체계 구축