diff --git a/app/extractors/__init__.py b/app/extractors/__init__.py index ade775d..7ee6df4 100644 --- a/app/extractors/__init__.py +++ b/app/extractors/__init__.py @@ -96,7 +96,14 @@ _REGISTRY: dict[str, Callable[[str], list[StreamSource] | None]] = { # `videos3.fpo.xxx/remote_control.php?acctoken=` — zdekodowany acctoken # zawiera WBITY IP serwera-resolvera → definitywnie IP-bound. WebView only. "fpoxxx": _vps_blocked_fallback.extract, - "sxylandcom": _vps_blocked_fallback.extract, + # sxyland — embeduje playmogo.com/e/ (= klon DoodStream: doodcdn.io + pass_md5 + # + niewidzialny CF Turnstile; Chrome-DevTools verify 2026-06-08, bug-report 827a50a1). + # Strona sxyland NIE jest Turnstile-gated (VPS curl wyciąga iframe URL z HTML), więc + # _embed_iframe wyłuskuje embed playmogo i oddaje jako type='hoster' → mobile + # doodstream.ts resolvuje phone-side (phone IP przechodzi invisible Turnstile) → direct + # mp4 → autoplay. Wcześniej _vps_blocked_fallback ładował CAŁĄ stronę sxyland w WebView + # (ads + klik-to-play + brak autoplay = dokładnie objaw z reportu 827a50a1). + "sxylandcom": _embed_iframe.extract, # Aggregator tubes — generic embed-iframe → hoster unpacker "latestpornvideocom": latestpornvideo.extract, "xmoviesforyoucom": _embed_iframe.extract,