goon/app/extractors/tubes
jtrzupek bb4a17ae79 fix(porntrex): resolve get_file 302 backend-side, return portable CDN url
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>
2026-05-31 21:47:26 +02:00
..
__init__.py Initial commit 2026-05-20 10:10:22 +02:00
_embed_iframe.py filemoon: resurrect via mobile-side resolver (Byse SPA RE) 2026-05-22 13:18:26 +02:00
_kvs_source.py Initial commit 2026-05-20 10:10:22 +02:00
_vps_blocked_fallback.py Initial commit 2026-05-20 10:10:22 +02:00
_ytdlp.py Initial commit 2026-05-20 10:10:22 +02:00
eporner.py Initial commit 2026-05-20 10:10:22 +02:00
freshporno.py Mobile 0.1.9: OTA enable, WebView cookie-dismiss fix, porndoe connector 2026-05-22 11:20:57 +02:00
fullmovies.py Initial commit 2026-05-20 10:10:22 +02:00
hqporner.py fix(extractor/hqporner): wire dedicated extractor + reject ad iframes/CDNs 2026-05-27 15:10:47 +02:00
latestpornvideo.py Initial commit 2026-05-20 10:10:22 +02:00
paradisehill.py Initial commit 2026-05-20 10:10:22 +02:00
porn00.py Initial commit 2026-05-20 10:10:22 +02:00
pornhat.py Initial commit 2026-05-20 10:10:22 +02:00
porntrex.py fix(porntrex): resolve get_file 302 backend-side, return portable CDN url 2026-05-31 21:47:26 +02:00
pornxp.py Initial commit 2026-05-20 10:10:22 +02:00
sxyprn.py Initial commit 2026-05-20 10:10:22 +02:00
yespornvip.py fix(extractor/yespornvip): use event_reporting2 URL (server 1) — server 7 needs session cookies 2026-05-29 09:48:12 +02:00