goon/app/extractors
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
..
hosters fix(extractors): mixdrop hardening, yespornvip extractor, freshporno revert 2026-05-28 23:23:37 +02:00
tubes fix(porntrex): resolve get_file 302 backend-side, return portable CDN url 2026-05-31 21:47:26 +02:00
__init__.py fix(extractor/yespornvip): switch to WebView fallback - both URL paths fail 2026-05-30 12:28:17 +02:00
_fetch.py Initial commit 2026-05-20 10:10:22 +02:00
_models.py Initial commit 2026-05-20 10:10:22 +02:00
duration_extract.py Initial commit 2026-05-20 10:10:22 +02:00
hoster.py fix(extractors): mixdrop hardening, yespornvip extractor, freshporno revert 2026-05-28 23:23:37 +02:00
iframe_pick.py Initial commit 2026-05-20 10:10:22 +02:00
tag_extract.py Initial commit 2026-05-20 10:10:22 +02:00
thumb_extract.py Initial commit 2026-05-20 10:10:22 +02:00