Yupoo Image & Album Downloader - Download Photos as ZIP avatar
Yupoo Image & Album Downloader - Download Photos as ZIP

Pricing

$10.00/month + usage

Go to Apify Store
Yupoo Image & Album Downloader - Download Photos as ZIP

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

Aatish

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

15 hours ago

Last modified

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=1
  • https://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

albumUrlrequired

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 Referer header 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, requests
API_TOKEN = "YOUR_API_TOKEN"
ACTOR_ID = "bytebeast~yupoo-album-scraper"
ALBUM_URL = "https://sellername.x.yupoo.com/albums/123456?uid=1"
# Start
r = 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)
# Poll
status_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"):
break
time.sleep(3)
if st != "SUCCEEDED":
raise SystemExit("Run did not succeed")
kv_id = s.json()["data"]["defaultKeyValueStoreId"]
# Get OUTPUT summary
out = 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 ZIP
zip_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