goon/app/extractors/tubes
goon-foss 7e2807b42e
Some checks failed
Backend tests / test (push) Has been cancelled
feat(supjav): resolve voe hoster to direct stream instead of WebView
supjav is an embed-aggregator (voe/streamtape/turbovid/fc2stream). It was playing
through the WebView fallback because none of its hosters had a native phone-side
resolver wired into the scene player. voe.sx does have one (voeResolver.ts, already
used for movies) — it just was not wired for scenes.

- PlayerScreen: wire isVoeUrl/resolveVoePage into the hoster routing (like
  dood/filemoon), so a voe embed resolves on the phone to a direct m3u8
  (token bound to the phone /16, plays direct, no WebView, no proxy).
- supjav extractor: return voe first (sorted by URL), and stop putting the raw
  hostname in `quality` (the digit in "fc2stream" was parsed as quality 2 and won
  _pick_best) — use a clean digit-free server label instead.
- SceneDetailScreen: for hoster-only scenes, open the first embed (the extractor
  puts the natively-resolvable one first) rather than _pick_best's choice.

Verified: supjav's voe embed resolves to a real HLS manifest (200,
application/vnd.apple.mpegurl, #EXTM3U). WebView stays only as last-resort fallback.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 19:52:26 +02:00
..
__init__.py Initial commit 2026-05-20 10:10:22 +02:00
_embed_iframe.py feat(jav): javflix.cc scraper + extractor (first JAV source, gated off main feed) 2026-07-10 10:58:34 +02:00
_kvs.py fix(porn00): backend KVS resolve (portable CDN, no proxy) — corrects #20 2026-06-05 21:15:19 +02:00
_kvs_source.py Initial commit 2026-05-20 10:10:22 +02:00
_source_getfile.py fix(hdporngg+fullmovies): native get_file, skip broken 4K — "loading forever" 2026-06-05 22:48:55 +02:00
_vps_blocked_fallback.py Initial commit 2026-05-20 10:10:22 +02:00
_ytdlp.py Initial commit 2026-05-20 10:10:22 +02:00
eporner.py Initial commit 2026-05-20 10:10:22 +02:00
freshporno.py fix(freshporno): backend KVS resolve (portable CDN) — corrects #20 2026-06-05 21:12:17 +02:00
fullmovies.py fix(hdporngg+fullmovies): native get_file, skip broken 4K — "loading forever" 2026-06-05 22:48:55 +02:00
hdporngg.py fix(hdporngg+fullmovies): native get_file, skip broken 4K — "loading forever" 2026-06-05 22:48:55 +02:00
hqfap.py feat(hqfap): restore hqfap.com scraper + extractor (site back on new CDN) 2026-07-07 23:53:43 +02:00
hqporner.py feat(extractors): native HLS for xhamster; hqporner flyflv player 2026-06-09 09:35:58 +02:00
javflix.py feat(jav): javflix.cc scraper + extractor (first JAV source, gated off main feed) 2026-07-10 10:58:34 +02:00
latestpornvideo.py Initial commit 2026-05-20 10:10:22 +02:00
neporn.py feat(tubes): add 4k69 + neporn browse scrapers, shared PlayTube base 2026-06-10 18:15:13 +02:00
paradisehill.py Initial commit 2026-05-20 10:10:22 +02:00
porn00.py fix(porn00): backend KVS resolve (portable CDN, no proxy) — corrects #20 2026-06-05 21:15:19 +02:00
porntrex.py feat(extractors): detect deleted porntrex videos and mark dead 2026-06-13 19:04:10 +02:00
pornxp.py Initial commit 2026-05-20 10:10:22 +02:00
supjav.py feat(supjav): resolve voe hoster to direct stream instead of WebView 2026-07-11 19:52:26 +02:00
sxyprn.py fix(playback): mark deleted sxyprn posts dead + rank native sources first 2026-06-07 14:09:01 +02:00
vjav.py feat(jav): vjav.com scraper + extractor (TXXX-network JAV source) 2026-07-10 13:13:35 +02:00
watchporn.py feat(watchporn): re-enable as KVS browse scraper + native mp4 extractor 2026-07-02 14:32:36 +02:00
xhamster.py feat(extractors): native HLS for xhamster; hqporner flyflv player 2026-06-09 09:35:58 +02:00
yespornvip.py fix(pornditt): server-side KVS resolve; extract shared _kvs helper 2026-06-01 10:36:33 +02:00