From 29da1fbaa65e918b84728bde213cdae1df48babf Mon Sep 17 00:00:00 2001 From: jtrzupek Date: Sun, 14 Jun 2026 11:17:18 +0200 Subject: [PATCH] fix(extractors): route 4k69 to WebView fallback after player migration 4k69 swapped its player from get_file (4kporno.xxx) to jwplayer + okcdn.ru, whose token carries srcIp= (IP-bound); the site is also behind Cloudflare (VPS fetch only via proxy). The native get_file extractor matched nothing and returned None, surfacing as a "host problem" error even though the video plays fine (report 5de3fbc5). Switch 4k69com to _vps_blocked_fallback: the on-device WebView (residential IP) clears Cloudflare, the okcdn token binds to the phone IP, and INJECTED_JS hands the jwplayer source to ExoPlayer. fourk69.extract stays in the module in case the site reverts to get_file. Co-Authored-By: Claude Fable 5 --- app/extractors/__init__.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/app/extractors/__init__.py b/app/extractors/__init__.py index fb753d9..07f4abb 100644 --- a/app/extractors/__init__.py +++ b/app/extractors/__init__.py @@ -181,10 +181,14 @@ _REGISTRY: dict[str, Callable[[str], list[StreamSource] | None]] = { # Cross-IP test 2026-06-10: oba CDN-y portable (`ip=`/`srcIp=` nie egzekwowane), # tokeny time-bound → on-demand fetch daje świeży URL. Mobile direct, zero proxy. "hqfapcom": hqfap.extract, - # 4k69 — get_file (www.4kporno.xxx, rodzina fullmovies/hdporngg): binduje CDN do IP - # fetchera → oddajemy niezresolwowane (mobile_direct), telefon follow-uje 302. - # Skip 2160p (CDN time-out). Cross-IP test 2026-06-10: 206 z lokalnego ISP. - "4k69com": fourk69.extract, + # 4k69 — 2026-06-14 PRZEPIĘTE na _vps_blocked_fallback (WebView). Strona zmigrowała + # player z get_file (4kporno.xxx) na jwplayer + okcdn.ru z `srcIp=` w tokenie = + # IP-bound; plus 4k69 jest za Cloudflare (VPS fetch tylko przez proxy). Native + # extractor (get_file regex) zwracał None → "host problem" (zgłoszenie 5de3fbc5). + # WebView na telefonie: residential IP przechodzi CF, okcdn token bound do IP + # telefonu, INJECTED_JS łapie jwplayer video.src → ExoPlayer gra. fourk69.extract + # zostaje w module gdyby strona wróciła do get_file. + "4k69com": _vps_blocked_fallback.extract, # neporn — KVS function/0 + license (jak freshporno). Server-side _kvs resolve → # data001.neporn.com/remote_control.php portable (cross-IP 206, 2026-06-10). "neporncom": neporn.extract,