User bug: porntrex plays slowly, no quality picker, reload flicker — suspected VPS proxy. Root cause: porntrex KVS get_file tokens are cookie/session-bound, not just time-bound as previously assumed. The extractor handed mobile the raw get_file url; ExoPlayer's cookieless request → 410 → mobile fell back to the VPS proxy (slow + nav.replace flicker). Verified: following get_file in the same curl_cffi session that fetched the page → 200 (streams video); a fresh session → 410. The final CDN url after the 302 (cdn.pcdn.cloudswitches.com/...?expires=&md5=) is portable — fresh session → 206. Fix: extract() now uses one curl_cffi Session for page + get_file, follows each quality's 302 (stream + Range, no body download) and returns the resolved CDN url. Mobile plays direct, multi-quality picker works, zero proxy bandwidth. Falls back to the raw get_file url if a resolve fails. Verified on prod: both 720p/480p now resolve to cloudswitches CDN. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| hosters | ||
| tubes | ||
| __init__.py | ||
| _fetch.py | ||
| _models.py | ||
| duration_extract.py | ||
| hoster.py | ||
| iframe_pick.py | ||
| tag_extract.py | ||
| thumb_extract.py | ||