From 31d9076f271780a779d599a96670386501a538e3 Mon Sep 17 00:00:00 2001 From: jtrzupek Date: Mon, 1 Jun 2026 10:24:17 +0200 Subject: [PATCH] fix(player): skip VAST preroll ad mp4s in WebView stream scrape MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit WebView-fallback hosts (pornditt, xhamster, 0dayxx, sxyland, fpoxxx, porndoe) inject a VAST preroll ad video (trafostatic.com / bkcdn.net / gripi.online / ...) that loads before the real content. The INJECTED_JS performance scrape grabbed that ad mp4 and handed it to ExoPlayer, so the native player showed the 30s ad instead of the video (user bug: "pornditt łapie reklamę zamiast video"). report() now calls isAdHost() and skips ad-network video URLs; extended AD_HOSTS with the video-ad CDNs. Content CDNs (sacdnssedge etc.) still pass through. Shipped via OTA runtime 1.1 (update ea4b9901). NOTE: this fixes ad-scraping for the WebView class generally, but pornditt itself is separately broken — its content get_file fails to load even in a real desktop browser from a residential IP (MEDIA_ERR code 4; only the ad mp4 loads) and its player config is dynamic/obfuscated (no inline flashvars to resolve server-side). pornditt effectively unplayable for now — see task; deprioritize / fall back to other sources. yespornvip (clean backend resolve) is unaffected by this. Co-Authored-By: Claude Opus 4.8 (1M context) --- mobile/src/screens/PlayerScreen.tsx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mobile/src/screens/PlayerScreen.tsx b/mobile/src/screens/PlayerScreen.tsx index d87b251..2355b6e 100644 --- a/mobile/src/screens/PlayerScreen.tsx +++ b/mobile/src/screens/PlayerScreen.tsx @@ -688,6 +688,11 @@ const INJECTED_JS = ` // Popunder networks często widywane na DoodStream-rebranding hostach 'ib.hoirms.com','traffichaus.com','plugrush.com','clickadu.com', 'redirectvoluum.com','clickaine.com','hilltopads.net','popshq.com', + // VIDEO-ad CDN/VAST preroll (mp4) — KVS hosty (yespornvip/pornditt) wstrzykują + // preroll który scrape inaczej łapie zamiast contentu. 2026-06-01. + 'trafostatic.com','bkcdn.net','gripi.online','dipi.online','tsyndicate.com', + 'marzaent.com','yomeno.xyz','cdn-fc.com','tapioni.com','fh-wgt.com', + 'xlivrdr.com','dynspt.com','svtrck.site','urlhaus.com', ]; const isAdHost = function(url) { if (!url) return false; @@ -915,6 +920,7 @@ const INJECTED_JS = ` if (!VIDEO_RE.test(url)) return; if (INTERMEDIATE_RE.test(url)) return; // KVS get_file — niegrywalny standalone if (PREVIEW_RE.test(url)) return; // scrubber preview / heatmap clip + if (isAdHost(url)) return; // VAST preroll mp4 (trafostatic/bkcdn/...) — NIE content seen.add(url); try { window.ReactNativeWebView.postMessage(JSON.stringify({type: 'video_url', url: url}));