goon/app/connectors
jtrzupek b4b9b7690a
Some checks are pending
Backend tests / test (push) Waiting to run
feat(jav): vjav.com scraper + extractor (TXXX-network JAV source)
Second JAV vertical source (origin tube:vjav, gated to JAV tab via JAV_ORIGINS).

Browse: SPA has no server-rendered listing, so id-walk over sitemap_vids
(newest = highest video id) feeding the rich JSON metadata API
(/api/json/video/1/<floor>/<id>/<id>.json): title, duration, post_date,
channel->studio, models->performers, categories+tags.

Stream: videofile.php returns video_url in two obfuscation layers, Cyrillic
homoglyphs (M/C/A/E) over a custom base64 alphabet (comma->slash, tilde->pad,
dash->plus). Decoded get_file is absolute (old shared-txxx videos) or relative
(new vjav-infra, prepend host); adding f=video.m3u8 yields a portable, time-bound
ahcdn HLS (referer=none whitelisted, not IP-bound). Returned as m3u8 +
mobile_direct_ok so playback routes it through /proxy/hls: manifest passthrough,
segments direct from the phone (verified 206 cross-IP, 0 VPS video bandwidth).

Backend-only, no mobile change (JAV tab + jav param already shipped).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-10 13:13:35 +02:00
..
direct_scrapers feat(jav): vjav.com scraper + extractor (TXXX-network JAV source) 2026-07-10 13:13:35 +02:00
__init__.py feat(movies): add freeomovie.to as a movie mirror 2026-07-02 14:39:42 +02:00
base.py Initial commit 2026-05-20 10:10:22 +02:00
dooplay.py feat(movies): add streamporn.vip mirror, retire dead streamporn.nl 2026-07-02 14:27:21 +02:00
freeomovie.py fix(feedback): freeomovie posters + dead hoster + myvidplay; watchporn _embed_iframe guard 2026-07-03 13:02:47 +02:00
paradisehill.py fix(movies): paradisehill delta date-granularity + browse cadence docs 2026-06-01 17:00:10 +02:00
stashdb.py Initial commit 2026-05-20 10:10:22 +02:00
tpdb.py feat(movies): TPDB movie enrichment + dedup 2026-07-02 11:36:36 +02:00