c244461d0b50a979637f9bc80b7a81a032a3f4c3
melonstube is a meta-search aggregator that redirects out to ~120 third-party hosts. A live crawl of /new, /popular, and /rating (~3,350 out-links) found the previous "assume yt-dlp can resolve it" fallback was hiding real failures on the highest-traffic hosts: - eporner.com is ~34% of all melonstube traffic by itself, and like the eporner channel (fixed earlier), serves a restricted preview clip without its hash/xhr dance. - fapcat.com/momvids.com 403 a plain fetch (Cloudflare). - Several others just needed real extraction instead of a guess. Per-card enrichment now dispatches by destination host to: - Eporner: reuses eporner's own hash/xhr + Referer resolution, moved to src/util/eporner_resolve.rs so both providers' single-provider builds still compile (HOT_TUB_PROVIDER=<id> only compiles the one selected provider module; src/util/* always compiles). - Kvs (pornfreenow, analdin, babepump, w1mp, fetishshrine, pervclips, xozilla, ok.xxx, ebonypeek, xgroovy): a shared get_file extractor, the same KVS backend several other Hot Tub providers already scrape. - KvsCfGated (fapcat, momvids): same extractor via the Safari18 bypass client melonstube.com itself already needs. - XhamsterMirror (xh.partners): a genuine xHamster mirror instance, Referer built from the actual resolved host. - SomePorn: HLS playlist URL built from the page's video id directly. - Pornone: direct <source> tag extraction. flirt4free.com (a live-cam page, not a VOD) moved into the dropped- host bucket alongside the existing junk/join.* hosts. Enrichment is bounded (concurrency, a 10s per-card timeout, and capped to the requested perPage rather than the full ~240-card page) so a slow or rate-limited destination can't stall the response. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
hottub
Rust based hottub server
the following URL:
build it yourself
Get, Build and Host the docker image:
git clone https://gitea.spacemoehre.de/simon/hottub
sudo docker build hottub
cd hottub && cargo build --release
nano docker-compose.yml # adjust compose file
sudo docker compose up -d
Verify setup, replace the url with your setup url
curl -v http://127.0.0.1
->
* Trying 127.0.0.1:80...
* Connected to 127.0.0.1 (127.0.0.1) port 80
> GET / HTTP/1.1
> Host: 127.0.0.1:80
> User-Agent: curl/8.5.0
> Accept: */*
>
< HTTP/1.1 302 Found
< content-length: 0
< location: hottub://source?url=127.0.0.1:80
< date: Mon, 29 Sep 2025 14:58:15 GMT
<
* Connection #0 to host 127.0.0.1 left intact
make sure that you get a code 302 to a hottub:// url
Update via git pull
To Update (i.e. for new supported sites) do
cd /path/to/hottub && git pull && cargo build --release && sudo docker container restart hottub
Description
Languages
Rust
82.8%
Swift
16.4%
Python
0.8%