goon/app/extractors/tubes
jtrzupek fbfe2b2bf4 fix(yespornvip): server-side KVS resolve to portable CDN, drop WebView fallback
yespornvip was on the WebView fallback, which loaded the ad-heavy host page; the
INJECTED_JS scrape grabbed the preroll ad video (bkcdn.net, ~30s) instead of the
content, so the native player showed a 30s ad. The get_file content url is also
session/cookie-bound (410 for a cookieless ExoPlayer request).

Key finding: the VPS now reaches yesporn.vip (HTTP 200 — unblocked, same as
porntrex got 2026-05-22), so we can resolve server-side like porntrex instead of
relying on the browser. KVS flashvars carry function/0/-obfuscated get_file urls +
license_code; decode the hash with the kt_player algorithm (yt-dlp KVS algo,
verified to reproduce kt_player's output), then follow each quality's get_file 302
in the same curl_cffi session → final cdn5 url. That url is time-bound signed but
NOT IP/cookie-bound — verified portable cross-IP (VPS-resolved url fetched from a
different IP → 206 video/mp4).

New app/extractors/tubes/yespornvip.py returns 480p/720p/1080p portable CDN urls;
registry switched from _vps_blocked_fallback → yespornvip.extract. Mobile plays
direct natively with a working quality picker — zero WebView, zero ads, zero proxy.
Verified on prod (3 cdn5 sources) and emulator (quality picker → 1080p native
decode at 1920px, no WebView, no ad). Backend-only; no OTA needed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 22:33:10 +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(yespornvip): server-side KVS resolve to portable CDN, drop WebView fallback 2026-05-31 22:33:10 +02:00