SayUncle Network Scraper
Summary
A comprehensive Python scraper for the entire SayUncle network, supporting 29+ gay adult sites including Bromo, Yes Father, Missionary Boys, Family Dick, Brother Crush, and more. Uses the SayUncle Elasticsearch API for fast scene/performer search.
Source URL
Features
- Scene scraping by URL - Scrape any SayUncle network video URL
- Scene scraping by code - Extract scene codes from filenames (e.g.,
brc0199frombrother-crush_brc0199_full_1080) - Scene scraping by name - Search scenes by title using the SayUncle Elasticsearch API
- Performer scraping by URL - Full performer details with images and bio
- Performer scraping by name - Search performers using Elasticsearch
- Full performer auto-population - Clicking “+” on performers auto-fills all their data
- 29 site prefixes supported - Covers the entire SayUncle network
- Fast Elasticsearch search - Direct API access for instant results
What It Does
The SayUncle scraper extracts metadata from the entire SayUncle network (React SPA platform). It:
- Scrapes scene metadata from any sayuncle.com video URL
- Extracts scene codes from filenames (e.g.,
brc0199) and looks them up via Elasticsearch - Searches for scenes and performers by name using the public Elasticsearch API
- Fetches complete performer data inline so clicking “+” auto-fills everything
- Converts body measurements (height in feet/inches → cm, weight in lbs → kg)
- Extracts scene codes from cover images for reliable scene identification
Example filename:
brother-crush_brc0199_full_1080.mp4
Extracts code brc0199 and fetches:
- Title: Full scene title
- Studio: Brother Crush
- Code: brc0199
- Description: Scene description
- Date: Release date
- Performers: Full cast with photos, bios, measurements, ethnicity, hair color
- Tags: Scene tags
- Cover: High-quality poster image
Supported Sites
The scraper supports all 29+ SayUncle network sites via scene code prefixes:
fdk- Family Dickbrc- Brother Crushyps- Yes Fathermbz- Missionary Boyslle- Brotherly Lovebgz- Big Boysyfr- Young Friendsdcp- Daddy Copbmg- Boy Massageshb- Show Homiesslb- Stepson Love Boystwk- Twinkbac- Bad Copdct- Doctorbyh- Boy Hoodsuc- SayUnclemtd- Methodsas- Say Asstdk- The Dickvgp- Vegaspig- Piggybackdrs- Dressrub- Rubsuf- Surffut- Futano- Anotherbvs- Boyssco- Scouteur- Euro- And more…
Installation (Docker)
Files required:
SayUncle.yml(attached)SayUncle.py(attached)
Folder Structure
docker/
└── docker-compose.yml
└── scrapers/
└── SayUncle/
├── SayUncle.yml
└── SayUncle.py
Docker Compose Configuration
Add the following under volumes in your docker-compose.yml:
- ./scrapers/SayUncle:/root/.stash/scrapers/SayUncle
Restart the Stash container:
docker compose up -d
The scraper will appear in Stash’s scraper list.
Usage
Scraping by URL
- Edit a scene in Stash
- Enter a sayuncle.com URL in the URL field
- Click “Scrape with… > SayUncle”
Scraping by Scene Code (from filename)
- Your file is named something like
brother-crush_brc0199_full_1080.mp4 - Click “Scrape with… > SayUncle”
- The scraper extracts
brc0199and fetches the scene automatically
Scraping by Search
- Edit a scene in Stash
- Click the search icon next to “Scrape with…”
- Search for the scene title
- Select the correct scene from results
Performer Search
- When creating a performer, click the search icon
- Search by performer name
- Select the correct performer - all details are auto-filled
Technical Details
- Language: Python 3
- Dependencies: requests (auto-installed via py_common)
- Platform: React SPA (extracts
window.__INITIAL_STATE__JSON) - Search API:
https://tours-store.psmcdn.net/sau_network/_search(Elasticsearch) - Scene code pattern:
(prefix)(3-5 digits)where prefix is 2-4 letters
Notes
- The scraper uses the public SayUncle Elasticsearch API for searches
- Scene codes are extracted from cover image URLs for reliable identification
- Performer data includes body measurements automatically converted to metric
- All scene codes are normalized to lowercase for consistency
- The regex pattern handles various filename formats (underscores, dashes, spaces)
Attachments:
- SayUncle.py (13.9 KB)
- SayUncle.yml (716 Bytes)
Enjoy!