16 KiB
16 KiB
Provider And Proxy Catalog
This is the current implementation inventory as of this snapshot of the repo. Use it to find the nearest existing pattern before adding a new channel.
Providers
| Provider | Group | /api/uploaders |
Uses local /proxy |
Notes |
|---|---|---|---|---|
all |
meta-search |
no | no | Aggregates all compiled providers. |
allpornstream |
mainstream-tube |
no | yes | Next.js App Router scraper; extracts cards via data-thumb-id/href/title/images attributes; redirect proxy lazy-resolves VOE/DoodStream/StreamTape/FileMoon embeds. |
archivebate |
live-cams |
no | no | Livewire-backed cam archive listings with platform/gender/profile shortcuts. |
beeg |
mainstream-tube |
no | no | Basic mainstream tube pattern. |
blowjobspro |
mainstream-tube |
no | no | KVS-style HTML provider with async search pagination and category shortcut routing. |
chaturbate |
live-cams |
no | no | Live cam channel. |
clapdat |
amateur-homemade |
no | yes | Svelte/JSON-hydrated provider using home/recent/trending routes, Meilisearch keyword search, and /proxy/clapdat/... redirect playback resolution. |
erome |
amateur-homemade |
no | no | HTML album scraper with hot/new feeds, keyword search, and uploader-slug shortcuts (uploader:<name>). |
fikfap |
tiktok |
yes | yes (thumbs only) | JSON-API provider for fikfap.com (TikTok-style swipe short clips); anonymous auth via a client-generated Authorization-Anonymous UUID header (no real login needed); listing via GET api.fikfap.com/posts?sort=new|trending|random&amount=N&afterId=<lastPostId> (cursor pagination — page N costs N sequential requests); search via GET search?q= (single fixed-size batch, no pagination — page 2+ returns empty); hashtag feeds via GET hashtags/label/{label}/posts and creator feeds via GET profile/username/{user}/posts, both also cursor-paginated; tag:/hashtag:/# and user:/uploader: query prefixes route directly; categories option exposes a small curated static hashtag list (no full catalog endpoint exists anonymously); video.url is the fikfap.com/post/{id} page (a client-rendered SPA, not yt-dlp-resolvable on its own); videoStreamUrl from the JSON response is sent directly as formats[0].url (signed Bunny CDN HLS .m3u8, ~24h token expiry) with httpHeaders: {Referer: https://fikfap.com/} — Hot Tub clients apply a format's http_headers across the whole HLS playback session (manifest, sub-playlists, and segments), so no proxying of the media itself is needed; thumbnails have no per-field header mechanism, so they're proxied via /proxy/fikfap-thumb/... to inject the same Referer; get_uploader implemented (fikfap:<username> IDs) using GET profile/username/{user}. |
freepornvideosxxx |
studio-network |
no | no | Studio-style scraper. |
fyptt |
tiktok |
no | no | HTML scraper for fyptt.to (Beaver Builder/WordPress short-form TikTok-style vertical porn); card selector .fl-post-grid-post[class*="post-ID"] with category-{slug} CSS class doubling as both listing tag and category-archive route; latest feed / (page N: /page/N/), search /?s=query (page N: /page/N/?s=query), category archives at bare top-level slugs like /tiktok-ass/ (12 hardcoded categories exposed via categories option, also matched from free-text cat:/category: query prefixes or bare category-title queries); per-item enrichment fetches the detail page for the JSON-LD embedURL (one of three on-site player endpoints: fypttstr.php, fypttjwstr.php, or fypttjwstrhls.php) and datePublished, then fetches that embed URL to extract the actual signed stream.fyptt.to mp4 or /hls/*.m3u8 URL (token expires ~2h, no Referer required) for formats; thumbnails (fyptt.to/wp-content/uploads/...webp) need no proxy; no duration metadata available on listing or detail pages (set to 0); no real uploader/model identity (the girl-{slug} CSS class is cosmetic only, not a linkable archive) so /api/uploaders is not implemented; video.url is the detail page URL (not yt-dlp resolvable directly — the player is sandboxed-iframe-only) so formats are populated instead; no proxy needed. |
freeuseporn |
fetish-kink |
no | no | Fetish archive pattern. |
hanime |
hentai-animation |
no | yes | Uses proxied CDN/thumb handling. |
heavyfetish |
fetish-kink |
no | no | Direct media handling. |
hentaihaven |
hentai-animation |
no | no | HLS format builder pattern. |
homoxxx |
gay-male |
no | no | Gay category grouping example. |
hqporner |
studio-network |
no | yes | Uses thumb and redirect proxy helpers. |
hsex |
chinese |
yes | no | Strong template for tags, uploaders, and direct HLS formats. |
hypnotube |
fetish-kink |
no | no | Fetish/tube hybrid. |
javtiful |
jav |
no | no | JAV channel family. |
missav |
jav |
no | no | HLS format pattern. |
noodlemagazine |
mainstream-tube |
no | yes | Best template for media and thumbnail proxying. |
okporn |
mainstream-tube |
no | no | Simple mainstream archive. |
okxxx |
mainstream-tube |
no | no | Mainstream search/archive pattern. |
omgxxx |
studio-network |
yes | no | Best template for sites/networks/stars filter catalogs. |
paradisehill |
mainstream-tube |
no | no | Simple page scraper. |
perfectgirls |
studio-network |
no | no | Studio archive. |
perverzija |
studio-network |
no | no | Multi-format/HLS examples. |
pimpbunny |
onlyfans |
no | yes | Proxy-backed playback and thumbnail handling. |
pmvhaven |
pmv-compilation |
no | no | PMV grouping example. |
porn00 |
mainstream-tube |
no | no | Lightweight scraper. |
porn4fans |
onlyfans |
no | no | OnlyFans-like grouping example. |
porndish |
studio-network |
no | yes | Redirect proxy plus thumb proxy usage. |
pornhat |
mainstream-tube |
no | no | Basic tube provider. |
pornhd3x |
studio-network |
no | yes | Best template for complex catalogs and redirect proxy generation. |
pornhub |
mainstream-tube |
no | no | Rich metadata and format examples. |
pornhub-shorties |
tiktok |
no | no | Pornhub Shorties vertical short-form clips; parses JSON_SHORTIES JS variable embedded in HTML; fields: vkey, title, linkUrl, imageUrl, likeNumber, dislikeNumber, name/profileUrl (uploader), pillsData (tags), trackingTimeWatched.video_duration; pagination via ?page=N; search via ?search=query; sort via ?sort=trending|mostviewed|top_rated|hottest; phncdn thumbnails require Referer: https://www.pornhub.com/ (served via cdnReferrers in /api/status); yt-dlp resolves video.url natively (PornHub extractor); no proxy needed. |
pornmz |
mainstream-tube |
no | no | Mainstream archive. |
pornzog |
mainstream-tube |
no | no | Basic list/detail scraper. |
porntrex |
mainstream-tube |
no | no | KVS-style HTML archive with direct MP4 formats and tag-aware search shortcuts. |
redtube |
mainstream-tube |
no | no | Mainstream archive. |
rule34gen |
ai |
no | no | AI group example. |
rule34video |
hentai-animation |
no | no | Hentai group example. |
sextb |
jav |
no | no | JAV family provider. |
shooshtime |
onlyfans |
no | yes | Redirect proxy plus dedicated media route. |
spankbang |
mainstream-tube |
no | yes | Best template for redirect proxy plus anti-bot fetches. |
thaiporntv |
mainstream-tube |
no | yes | Decodes data-enc attribute for proxied HLS playback. |
supjav |
jav |
no | yes | JAV/HLS provider; detail page URLs for video.url, proxied HLS format URLs via /proxy/supjav/.... |
sxyprn |
mainstream-tube |
no | yes | Redirect proxy helper usage. |
tnaflix |
mainstream-tube |
no | no | Mainstream tube provider. |
tokyomotion |
jav |
no | no | JAV/tube hybrid. |
viralxxxporn |
mainstream-tube |
no | no | Basic parser with format extraction. |
vjav |
jav |
yes | no | Best API-style template with uploaders and tag-id lookup maps. |
vrporn |
studio-network |
no | no | Multi-format direct playback. |
xfree |
tiktok |
no | no | Short-form grouping example. |
xxdbx |
onlyfans |
no | no | OnlyFans-like grouping example. |
xxthots |
onlyfans |
no | no | OnlyFans-like metadata example. |
yesporn |
mainstream-tube |
no | no | Preview format examples. |
youjizz |
mainstream-tube |
no | no | Mainstream tube provider. |
youporn |
mainstream-tube |
no | no | Pornhub-network HTML provider with watch-page playback URLs and tag/channel/pornstar shortcuts. |
tube8 |
mainstream-tube |
no | yes | Aylo/MindGeek platform scraper; redirect proxy fetches signed /media/hls/?s=TOKEN endpoint and returns highest-quality CDN HLS URL; supports tag/category/channel/pornstar shortcut queries. |
jable |
jav |
no | yes | HTML JAV archive scraper; extracts var hlsUrl from detail pages; m3u8 format requires Referer + browser User-Agent; proxy route handles HEAD (200 OK) and GET (redirect to watch page) since yt-dlp blocks jable.tv; tag/category/model shortcut queries. |
fullporner |
mainstream-tube |
no | no | HTML scraper for fullporner.com; thumbnail IDs derived from /thumb/{id}.jpg URLs and used to build direct xiaoshenke.net/vid/{id}/720 media redirect URLs (Referer + User-Agent headers required); supports cat:/category:/pornstar:/star: shortcut queries; no proxy needed. |
thepornbunny |
mainstream-tube |
no | yes | KVS-style HTML scraper for thepornbunny.com; 24 items per site page; thumbnails at https://www.thepornbunny.com/images/thumb/{id}.webp from data-original attribute (no proxy needed); studio exposed as uploader; pornstar names in tags; /proxy/thepornbunny/{slug} fetches the video page, extracts generate_mp4(enc_data, key, rnd, video_id) args, decrypts enc_data via PBKDF2-HMAC-SHA512+AES-256-CBC to get an OK.ru session key, calls api.ok.ru/fb.do?method=video.get&session_key=KEY&vids=RND to get signed CDN URLs, and returns 302 to the best-quality okcdn.ru/vkuser.net MP4 URL (no special client headers needed); supports sort: new/popular/rated, 20 hardcoded categories via categories option, and tag:/category:/studio:/pornstar: query shortcuts. |
eporner |
mainstream-tube |
no | no | HTML scraper for eporner.com (5M+ videos); card selector div.mb[data-id] with inline duration/rating/views/uploader; thumbnails at static-eu-cdn.eporner.com (no proxy needed); pagination uses /{N}/ suffix (page 1 = no suffix, page 2 = /2/); search queries map to /tag/{slug}/ (eporner redirects all keyword searches to tag pages — 404 tag pages still return related content); supports sort: new/popular/rated/best; 65 hardcoded categories via cat:, tag:, pornstar:, uploader: query shortcuts; background-loads pornstar name→URL map from /pornstar-list/; yt-dlp resolves video.url natively (Eporner extractor); no proxy needed. |
xnxx |
mainstream-tube |
no | no | HTML scraper for xnxx.com (10M+ videos); unified card parser handles two formats: div.thumb-block[data-eid] (search) and div.thumb-block.video[data-video='{"id":...}'] (hits); eid extracted from /video-{eid}/{slug} URL path; thumbnails at thumb-cdn77.xnxx-cdn.com and thumbs-gcore.xnxx-cdn.com (no proxy, no Referer needed); 0-indexed pagination (page 1 = /hits, page N = /hits/{N-1}); default feed is /hits (most-viewed — xnxx has no chronological listing); search via /search/{slug} (works for keywords and tags); supports tag:, cat:, category: query shortcuts; yt-dlp resolves video.url natively (XNXX extractor, returns 4-7 HLS formats); no proxy needed. |
xhamster |
mainstream-tube |
no | no | HTML scraper for xhamster.com; card selector div[data-video-type="video"] with data-video-id; thumbnails via img[data-role="thumb-preview-img"] at ic-vt-nss.xhcdn.com (no proxy, no Referer needed); pagination via ?page=N query param (browse feeds use infinite-scroll so only search reliably returns different content per page); feeds: /newest (default), /most-viewed, /best; categories via /categories/{slug}; channels via /channels/{slug}; 43 hardcoded categories as categories option; uploader type inferred from URL path (/channels/ → channel, /creators/ → creator, /pornstars/ → pornstar); supports cat:/category: and channel: query shortcuts, plus static category name matching; preview mp4 clips from data-previewvideo attribute; yt-dlp resolves video.url natively (xHamster extractor, 28 formats); no proxy needed. |
camsoda |
live-cams |
no | no | HTML scraper for camsoda.com /media listing; CF-protected so relies on Jina HTML fallback (requester sends X-Return-Format: html); parses anchor tags with [class*="media-item-module__title"] / [class*="media-item-module__subtitle"] CSS selectors; video-specific thumbnails from media-secure.camsoda.com/user/videos/{id}/; video URLs are page URLs (/{username}/media/{slug}/{id}) — CF blocks direct access and yt-dlp; supports uploader:/model: query prefix to browse a model's media page; no search API — keyword queries fall through to client-side filtering; pagination via ?page=N but CamSoda serves the same 60 items regardless of page (JS-driven infinite scroll). |
xvideos |
mainstream-tube |
no | no | HTML scraper for xvideos.com; handles two card formats: homepage (div.thumb-block[data-id][data-eid]) uses p.title a[title] + data-pvv on img, best-of-month page uses div.thumb-block.video[data-video=JSON] with div.title a text + previewVideo JSON key; thumbnails at thumb-cdn77.xvideos-cdn.com / thumbs-gcore.xvideos-cdn.com (no proxy needed); latest: / (page 1) / /new/{N-1} (page N≥2); best-of-month: /best/{YYYY-MM} (previous calendar month), page N: /best/{YYYY-MM}/{N-1}; search: /?k={query} / /?k={query}&p={N-1} (0-indexed); tag shortcuts: /tags/{slug}/{N-1}; category shortcuts: /c/{Name}-{ID}/{N-1} (38 hardcoded categories); cat:, tag:, uploader: query prefix routing; yt-dlp resolves video.url natively (XVideos extractor → HLS formats); CDN preview mp4 in preview field; no proxy needed. |
wowxxx |
studio-network |
no | no | HTML scraper for wow.xxx premium aggregator; default feed /latest-updates/, page 2 /{N}/ suffix (for example /latest-updates/2/), search /search/{query}/relevance/ with the same page suffix; supports site:/studio:/network:/model:/pornstar:/tag:/cat: query shortcuts to direct archive routes; list cards expose preview clips (cast.wow.xxx/preview/*.mp4), thumbnails (img.wow.xxx/.../medium@2x/1.jpg), duration, rating, views, site (as uploader), and model tags; video.url is the detail page URL and yt-dlp resolves HTML5 MP4 formats dynamically; no proxy needed. |
Proxy Routes
Redirect proxies
These resolve a provider-specific input into a 302 Location.
/proxy/doodstream/{endpoint}*/proxy/sxyprn/{endpoint}*/proxy/javtiful/{endpoint}*/proxy/spankbang/{endpoint}*/proxy/porndish/{endpoint}*/proxy/hqporner/{endpoint}*/proxy/heavyfetish/{endpoint}*/proxy/vjav/{endpoint}*/proxy/pornhd3x/{endpoint}*/proxy/shooshtime/{endpoint}*/proxy/pimpbunny/{endpoint}*/proxy/allpornstream/{endpoint}*/proxy/tube8/{endpoint}*/proxy/supjav/{endpoint}*/proxy/jable/{slug}*/proxy/thepornbunny/{slug}*
Media/image proxies
These return binary media or images, sometimes rewriting manifests or forwarding cookies/referers.
/proxy/shooshtime-media/{endpoint}*/proxy/noodlemagazine/{endpoint}*/proxy/noodlemagazine-thumb/{endpoint}*/proxy/hanime-cdn/{endpoint}*/proxy/fikfap-thumb/{endpoint}*/proxy/hqporner-thumb/{endpoint}*/proxy/porndish-thumb/{endpoint}*/proxy/pornhub-thumb/{endpoint}*
Best Copy Sources By Problem
- Need uploader support: copy
hsex,omgxxx, orvjav. - Need proxied media: copy
noodlemagazine. - Need proxied redirect-only playback: copy
spankbangorpornhd3x. - Need big background-loaded filter catalogs: copy
pornhd3xoromgxxx. - Need tag title to site-ID lookup maps: copy
vjavorhsex.