Provider fix todo
Source: check.py + search probe audit, 2026-10-10. Serial re-run of every flagged channel,
so timeouts below are not load artifacts. Update the status column as each item is fixed and
verified (HOT_TUB_PROVIDER=<id> build, /api/videos feed + search + page 2, yt-dlp on
video.url or formats[0].url, python3 check.py <id>).
Status: [ ] open, [~] in progress, [x] fixed and verified, [-] not reproducible / not a provider bug (reason noted).
1. Channels returning no items
|
Channel |
Symptom |
Notes |
| [x] |
javtiful |
feed times out (150s) then 0 items; search 0 |
site redesign (article.video-card); rewrote parser, page URL as video.url (yt-dlp-native), no per-item detail fetches. 23 items, p2/search OK |
| [x] |
sextb |
0 items on feed, search and page 2 |
Jina mirror now 403/429; site is plain HTML reachable with the emulating client. Rewrote listing/detail/option parsers for HTML, removed mirror. Remaining check.py errors are tooling items (proxy URL policy; imggle.net thumbs are TLS-gated for requests) |
| [-] |
camsoda |
0 items on every request |
not a provider bug here: www.camsoda.com is DNS-sinkholed by this host's resolver (0.0.0.0; public resolvers return 74.122.168.1), local FlareSolverr gets ERR_CONNECTION_REFUSED, Jina is 403/429, and Cloudflare serves a managed challenge to non-browser clients. Needs the production network to verify. |
| [-] |
hentaimama |
0 items or 85-150s timeouts |
not fixable in code from this host: site now serves a Cloudflare managed challenge (cf-mitigated: challenge) on every path; browser-TLS impersonation gets 403 and the local FlareSolverr (:8191, process outside this sandbox) hangs even on a non-CF page (javtiful, 60s). Latency is the requester waiting on FlareSolverr. Needs a healthy FlareSolverr to verify. |
| [-] |
hotbunny |
0 items; first request 78s |
same cause: hotbunny.ai (including /api/post/*) now answers a Cloudflare managed challenge; previously the JSON API was reachable directly. Needs a healthy FlareSolverr. |
2. Playback: page URL not resolvable by yt-dlp / formats not playable
|
Channel |
Symptom |
Notes |
| [x] |
thaiporntv |
page URL "Unsupported URL", no formats |
player attribute renamed data-enc -> data-video-sources (reversed base64 JSON {quality,url}); decoder handles both. 3 formats/item, yt-dlp OK, check.py passes |
| [x] |
pornmz |
page URL "Unsupported URL", no formats |
site changed itemprop="contentURL" -> contentUrl; selector now case-insensitive. Enrichment concurrency 10 + 25s per-item timeout. Origin is slow (15s+/detail) so first feed 25-50s. check.py passes |
| [x] |
coomer |
page URL "Unsupported URL"; media host CF-gated here |
image-only posts were listed as videos with no playable URL: now dropped, and a video in attachments is picked up. Also fixed: page= is ignored by the API (every page 2+ was a copy of page 1; now o= offset), search results shared one cache key, and compressed API bodies were not decoded (enabled wreq gzip/br/deflate/zstd). n*.coomer.st CDN connect-times-out from this host, and the API 429s this IP after bursts, so playback/"girl" search could not be verified end to end |
| [x] |
tube8 |
page URL 404; /proxy/tube8/{id} 502 |
sponsored channel cards carry a stale data-video-id (404) while the card link is the live page; id/URL now come from the link. Signed pix-cdn77 thumbs 403 without a Referer: new host-restricted /proxy/aylo-thumb (also fixes ph-shorties). check.py passes |
| [x] |
hypnotube |
page URLs 404 on all sampled items |
the 404 was a check.py artifact (server answers HEAD 404, GET 200); check.py now confirms with a ranged GET. Real bug found on the way: the site returns ONE results page per searchgate POST, so any 2nd search on the shared session (and every page 2) came back empty. Each (query, page) now uses its own isolated session. 3 consecutive searches + page 2 verified |
| [ ] |
fullpornerorg |
lulustream proxy 403 / 502 |
|
| [ ] |
ripnsfw |
doodstream format 502 |
|
| [ ] |
freepornvideosxxx |
yt-dlp 502 on page URL |
may be transient, verify |
| [ ] |
hdporn92 |
m3u8 formats time out (curl + yt-dlp) |
morencius.com streams |
3. Thumbnails
|
Channel |
Symptom |
Notes |
| [ ] |
xxdbx |
malformed thumbs https:/7004….jpg |
built as "https:" + src |
| [x] |
ph-shorties |
thumbs return 403 |
same Referer-gated pix-cdn77.phncdn.com thumbs; routed through aylo-thumb proxy. check.py passes |
| [ ] |
noodlemagazine |
thumbs unreachable (-1 / 400) in check.py |
thumb proxy |
4. Search
|
Channel |
Symptom |
Notes |
| [ ] |
fapello |
"girl" and "milf" both 0 |
|
| [ ] |
chaturbate |
"girl" and "milf" both 0 |
|
| [ ] |
cumlouder |
unknown tag takes 146s before returning 0 |
own provider, retry path on 404 |
| [ ] |
vjav |
"girl" 0, "milf" 10 |
may be term-specific |
| [ ] |
xxxtik |
"girl" 0 (not re-run serially) |
|
| [x] |
hypnotube |
"milf" 0, "girl" 20 |
same root cause as above (second search on a session returned nothing), not term-specific |
5. Slow channels
|
Channel |
Symptom |
Notes |
| [ ] |
aps |
30-98s per request; check.py 30s timeout |
|
| [ ] |
hdporn92 |
feed about 66s per request |
shares item with section 2 |
| [ ] |
porndish |
14-23s feed/search |
|
6. Tooling
|
Item |
Notes |
| [ ] |
check.py "url points to hottub server" |
contradicts the hottub skill (proxy-needing videos use the proxy as item.url). Affects spankbang, hqporner, pornhd3x, pimpbunny, sxyprn, noodlemagazine. Decide: exempt proxy URLs that resolve, rather than hard-fail. |
Found while fixing (pre-existing, unrelated)
src/proxy.rs: the pornhub-thumb resource was registered as /proxy/pornhub-thumb inside the /proxy scope (unreachable); fixed alongside aylo-thumb. No provider uses it today.
- Failing unit tests, untouched files:
proxies::hanimecdn::tests::prefixes_relative_paths_with_hanime_cdn_host, proxies::vidara::tests::normalizes_detail_request_with_path_only.
Environmental / needs the production IP (not worked here)
porndish, supjav, jable, fapello, missav, wowxxx, hentaihaven return Cloudflare 403 to
yt-dlp/curl from this machine while the server itself returns items. hsex returned 429 (rate limit).