"""porndoe.com — latest-vids browse scraper. Dołączony 2026-05-21 (theporndude audit). Jedyny verified high-value candidate z 172 tube'ów na theporndude.com/top-porn-tube-sites + /full-porn-movies-sites. Czemu wart: każda scena ma kompletny **JSON-LD VideoObject** schema: - name (title), description, uploadDate (ISO timestamp), duration (ISO 8601) - producer + publisher → named studio z `/channel-profile/` URL - actor[] → named performers z `/pornstars-profile/` URL - thumbnailUrl (CDN p.cdnc.porndoe.com) To wystarczy do composite fuzzy match w resolverze (studio + performer Jaccard + date proximity + title token-set + duration). Phash hit-rate niski (porndoe robi własne crop-thumbnaile 390x219, nie hot-linkuje studio art) — ale rich metadata nadrabia, jak pornxp/porn00. URL patterns: - Listing: `/videos/most-recent?page=N` (page 1 = newest, ~31 scen/page) - Scene: `/watch/` gdzie id = `pd` + 10 alfanum (stable) - Studio: `/channel-profile/` - Performer: `/pornstars-profile/` - Tags/categories: `/categories/` Playback: stream URL NIE jest inline w SSR HTML — player JS init dopiero po user "Play" click. Dajemy playback_source z page_url + origin `tube:porndoecom`; extractor w `_REGISTRY` mapuje na `_vps_blocked_fallback.extract` → mobile WebView INJECTED_JS scrapuje `