From 65b9df073a643f1c73d3c935a29fc11d33d8c5b1 Mon Sep 17 00:00:00 2001 From: jtrzupek Date: Mon, 8 Jun 2026 11:41:38 +0200 Subject: [PATCH] fix(extractors): route sxylandcom through _embed_iframe, not webview fallback MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Chrome-DevTools investigation of bug-report 827a50a1 (sxyland "long loading, then webview, no autoplay") showed sxyland embeds playmogo.com/e/ — a DoodStream clone (doodcdn.io infra, pass_md5 protocol, get_slides) behind an INVISIBLE Cloudflare Turnstile (not an interactive CAPTCHA; auto-passes in a real browser/WebView from a residential IP). The sxyland page itself is NOT Turnstile-gated — VPS curl pulls the playmogo iframe URL straight from the HTML. sxylandcom was wired to _vps_blocked_fallback → phone loaded the entire sxyland page in WebView (ads, click-to-play, no autoplay = the reported symptom), and the playmogo embed never reached the phone's dood resolver. _embed_iframe (which already lists sxyland in its docstring) extracts the playmogo embed and emits it as type='hoster' → PlayerScreen routes playmogo URLs to doodstream.ts (resolveDoodStream), which resolves phone-side (phone IP passes invisible Turnstile) → direct mp4 → autoplay. Mobile unchanged (hoster→dood path already exists for xmoviesforyou/siska). Backend-only. Co-Authored-By: Claude Opus 4.8 --- app/extractors/__init__.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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,