Yupoo Image & Album Downloader - Download Photos as ZIP
Pricing
$10.00/month + usage
Yupoo Image & Album Downloader - Download Photos as ZIP
Download all photos from any Yupoo album in full resolution and get them as a ZIP file. Fast, proxy-enabled, and perfect for product sourcing, catalog scraping, and backup.
Pricing
$10.00/month + usage
Rating
0.0
(0)
Developer

Aatish
Actor stats
0
Bookmarked
1
Total users
0
Monthly active users
15 hours ago
Last modified
Categories
Share
Yupoo Album Scraper — bulk download photos & pack to ZIP
Quickly extract every photo from a single Yupoo album and export them as one downloadable .zip. Designed for resellers, sourcing teams, and automation pipelines that need fast, reliable mass image pulls.
⚠️ Album-only extractor
This tool is built specifically to process individual album pages. Give it a direct album link (URL must include /albums/…) and it will crawl the album — including additional pages — and fetch all images.
Valid example URLs
https://sellername.x.yupoo.com/albums/123456?uid=1https://anotherstore.x.yupoo.com/albums/987654
Not supported
- Store homepage, categories listing, or a generic store URL (e.g.
https://sellername.x.yupoo.com/or.../categories) — the actor will not return album images from those.
What it does
- Crawls a Yupoo album (handles pagination) and locates every image.
- Downloads photos in their full available resolution.
- Uses concurrent fetches to finish faster.
- Bundles all images into a single ZIP archive named after the album ID (e.g.
123456.zip). - Produces a JSON summary with run details and the list of downloaded image URLs.
Inputs
albumUrl — required
The complete album URL to process.
Example payload:
{"albumUrl": "https://sellername.x.yupoo.com/albums/123456?uid=1"}
No other fields are mandatory — keep it simple.
Outputs
1) ZIP archive (images)
All images are stored together as:
<albumId>.zip
For the album 123456 the archive will be 123456.zip. The actor writes this file to the key-value store so you can download it after the run.
2) JSON summary (metadata)
A JSON object is saved to the output dataset / KV store. Example structure:
{"album_url": "https://sellername.x.yupoo.com/albums/123456?uid=1","total_downloaded": 120,"zip_file": "123456.zip","image_urls": ["https://photo.yupoo.com/sellername/aaaa1111.jpg","https://photo.yupoo.com/sellername/bbbb2222.jpg","https://photo.yupoo.com/sellername/cccc3333.jpg"]}
This record is placed into the run’s dataset and also saved as a KV key (e.g. OUTPUT).
There’s also a separate INFO record containing run metadata (run id, store id, timestamps) for debugging and automation.
Implementation notes / gotchas
- Yupoo sometimes enforces a
Refererheader for image delivery — the actor sets a suitable referer automatically. - Pagination inside multi-page albums is detected and followed.
- The ZIP filename is derived from the album ID parsed from the input URL.
- If an Apify/actor proxy is available it will be used; otherwise the scraper connects directly.
Example: run & download (Python)
Short example that starts the actor, polls until it finishes, reads the OUTPUT metadata, then downloads the ZIP:
import time, requestsAPI_TOKEN = "YOUR_API_TOKEN"ACTOR_ID = "bytebeast~yupoo-album-scraper"ALBUM_URL = "https://sellername.x.yupoo.com/albums/123456?uid=1"# Startr = requests.post(f"https://api.apify.com/v2/acts/{ACTOR_ID}/runs?token={API_TOKEN}",json={"albumUrl": ALBUM_URL})r.raise_for_status()run_id = r.json()["data"]["id"]print("Run started:", run_id)# Pollstatus_url = f"https://api.apify.com/v2/actor-runs/{run_id}?token={API_TOKEN}"while True:s = requests.get(status_url); s.raise_for_status()st = s.json()["data"]["status"]print("Status:", st)if st in ("SUCCEEDED", "FAILED", "ABORTED", "TIMED-OUT"):breaktime.sleep(3)if st != "SUCCEEDED":raise SystemExit("Run did not succeed")kv_id = s.json()["data"]["defaultKeyValueStoreId"]# Get OUTPUT summaryout = requests.get(f"https://api.apify.com/v2/key-value-stores/{kv_id}/records/OUTPUT?disableRedirect=true&token={API_TOKEN}")out.raise_for_status()summary = out.json()[0]zip_name = summary["zip_file"]# Download ZIPzip_resp = requests.get(f"https://api.apify.com/v2/key-value-stores/{kv_id}/records/{zip_name}?disableRedirect=true&token={API_TOKEN}")zip_resp.raise_for_status()with open(zip_name, "wb") as f:f.write(zip_resp.content)print("Downloaded:", zip_name)
Common use cases
- Rapidly collect supplier product images for your ecommerce store or PIM.
- Archive a visual album before it changes.
- Feed product photos into an image-processing or listing-creation pipeline.
- Batch-download multiple albums by calling the actor programmatically.
Want tweaks or extra features?
I can customize the scraper to:
- Accept category pages and discover albums automatically
- Merge several album ZIPs into one archive
- Capture titles, captions, or product metadata alongside images
- Integrate directly with cloud storage (S3, Google Drive), or push results to your API