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,