Yupoo Scraper — Album Images & Store Catalogs avatar

Yupoo Scraper — Album Images & Store Catalogs

Pricing

from $1.75 / 1,000 albums

Go to Apify Store
Yupoo Scraper — Album Images & Store Catalogs

Yupoo Scraper — Album Images & Store Catalogs

Export Yupoo store, category, or album data to JSON, CSV, or Excel: titles, descriptions, original image URLs, and album links. Deduplicates overlapping inputs, reports preview limits and failures, and supports optional image rehosting plus owner-authorized passwords.

Pricing

from $1.75 / 1,000 albums

Rating

2.0

(1)

Developer

Ibrahim

Ibrahim

Maintained by Community

Actor stats

0

Bookmarked

30

Total users

5

Monthly active users

8 days ago

Last modified

Share

Extract Yupoo album titles, descriptions, full-resolution image URLs, and album links into one exportable dataset. Supports public pages and owner-authorized password-protected pages.

Start with one album. Defaults intentionally preview a store: at most 25 albums and three listing pages. Limits, failed URLs, and partial results are explained in the run statistics.

Quick start

One album:

{
"urls": ["https://chaosmade20.x.yupoo.com/albums/246388734?uid=1"],
"rehostImages": false
}

A bounded store preview:

{
"urls": ["unionkingdom"],
"maxAlbumsPerStore": 25,
"maxPages": 3
}

A larger store pass (up to 500 index pages):

{
"urls": ["https://unionkingdom.x.yupoo.com/albums"],
"maxAlbumsPerStore": 0,
"maxPages": 500
}

Mix store, category, and album URLs. Bare store names work. Overlapping inputs produce one record per store/album identity. The working album URL, including its query parameters, is retained.

Output

{
"store": "demo",
"albumUrl": "https://demo.x.yupoo.com/albums/123456789?uid=1",
"title": "Washed Black Tee",
"description": "Seller's original description",
"images": ["https://photo.yupoo.com/demo/example/big.jpg"]
}

Export JSON, CSV, or Excel from the run dataset. Select only the fields you need with fields: images, title, description. Unselected fields are omitted. Store and albumUrl are always included.

Raw Yupoo images are hotlink-protected. Correct URLs can appear broken when opened or embedded without the store's Referer header. This does not mean the album extraction failed.

Either download images with the correct Referer and host them yourself, or explicitly enable rehosting:

{
"urls": ["https://chaosmade20.x.yupoo.com/albums/246388734?uid=1"],
"rehostImages": true,
"imageHost": "freeimage",
"imageHostApiKey": "YOUR_IMAGE_HOST_KEY",
"maxImagesPerAlbum": 5
}

Hosts: freeimage (freeimage.host), imgbb (api.imgbb.com), or custom (an HTTPS Chevereto-compatible uploadEndpoint). Custom hosts require your own key. A built-in key is used only if the Actor owner has configured one for the selected preset; do not assume one is available.

The key is checked before a rehosting run. Missing keys leave original URLs with a warning; invalid supplied keys fail before the crawl. Failed uploads preserve originals, so output can contain both hosted and raw links. Stats report that split. Rehosting preserves requested resolution, but hosts may re-encode files. Expiration zero requests no expiry; indefinite retention still depends on the host's policy.

curl -H "Referer: https://STORE.x.yupoo.com/" "https://photo.yupoo.com/STORE/example/big.jpg" -o image.jpg

Password-protected pages

Set password to a password the store owner supplied. It is secret input, excluded from output and logs, and sent only to the requested store origin. Off-site album links and cross-origin redirects are rejected. A rejected password is reported as a failure, not an empty album.

Pricing and limits

Current price: $2.50 per 1,000 album records, plus $0.18 per 1,000 successfully rehosted images. Actor start is $0.00005 per start event (Apify applies its memory-based start-event rules). Platform usage is included in the published pay-per-event pricing. Check the Pricing tab for authoritative current rates.

URL-only mode returns the same billed album records. It reduces requests and runtime, not the per-record price. Fields selection also does not change that price.

Example: 100 albums with 50 successfully rehosted images each = $0.25 in album events + $0.90 in image events, plus start events. Your image host may impose its own quotas or charges.

Use a run maximum-charge limit, test one album first, and cap maxImagesPerAlbum before scaling rehosting. Upload concurrency is a global limit across all albums. A charge error or exhausted image allowance stops further uploads. Already prepared albums retain raw URLs for photos that were not uploaded.

Input reference

FieldDefaultMeaning
urlsRequiredStore, category, or album URLs; bare store names accepted
passwordEmptyOwner-provided secret password
fieldsimages, title, descriptionFields to include
albumUrlsOnlyfalseList unique album links without opening albums; same record price
maxAlbumsPerStore25Per store/category preview cap; 0 disables the album cap
maxPages3Listing-page cap, up to 500; increase alongside the album cap
imageSizebigsmall, medium, big
maxImagesPerAlbum0Image cap; 0 means all extracted images
albumConcurrency3Concurrent album workers
requestDelayMs250Shared minimum request-start interval per host
maxRetries3Retries for transient errors
rehostImagesfalseExplicitly enable download and upload
imageHostfreeimagefreeimage, imgbb, custom
imageHostApiKeyEmptySecret hosting key
uploadEndpointEmptyHTTPS custom Chevereto endpoint
imageLinkExpirySeconds0No requested expiry; ImgBB supports timed expiry
imageConcurrency2Global image-work concurrency
proxyConfigurationOffOptional Apify proxy configuration

Understand run results

  • complete: all selected work finished, possibly within a stated preview cap.
  • partial: useful records were saved, but some pages, albums, or uploads failed.
  • failed: requested work failed and no album records were delivered.
  • truncated: the album or page preview limit was reached. Increase the appropriate input limit for another pass.

RUN_STATS includes pagination stop reasons and failed URLs. Missing albums served as HTTP 200, password prompts, and unrecognized album pages are detected rather than emitted as blank records. A successful empty store and a failed request are counted differently.

Completed dataset records and upload results are checkpointed for the same run's restart/migration. A brand-new run has a new dataset and is billed separately. Failed work remains retryable. Long Retry-After cooldowns stop affected requests rather than being ignored or retried early.

API integration

Use the Actor identifier skyfishdev~yupoo-scraper and an Apify token in an Authorization header. For small jobs, POST input JSON to: https://api.apify.com/v2/acts/skyfishdev~yupoo-scraper/run-sync-get-dataset-items

For larger jobs, POST to /runs, poll /actor-runs/RUN_ID until a terminal status, then export /datasets/DATASET_ID/items. Retrieve RUN_STATS too: partial results can exist even when not every requested album succeeded.

Local development

npm ci
npm test
npm start

Put local input in storage/key_value_stores/default/INPUT.json. Local output is written to storage/datasets/default. The tests exercise parsing, redirects, pagination, failure reporting, deduplication, restarts, upload concurrency, and billing errors without paid cloud calls.

This Actor returns seller-published data. It does not invent prices, perform AI enrichment, crack passwords, extract videos, or bypass access controls. Use pages and images you are authorized to access and follow the source and image-host terms.