Download high-resolution tiled artwork images from Artsy artwork pages.
Project description
Artsy Tiled Image Downloader
Download high-resolution tiled artwork images from Artsy artwork pages for personal study and technical research.
Features
- Uses a reusable HTTPX async client with connection pooling and HTTP/2 support.
- Validates input URL/slug, metadata fields, tile dimensions, output size limits, retry counts, timeouts, and concurrency.
- Downloads tiles concurrently and stitches directly from in-memory tile bytes.
- Writes final files with an atomic temporary file in the output directory, so a failed save does not leave a partial image at the final path.
- Splits CLI, metadata parsing, downloading, image assembly, paths, config, and exceptions into testable modules.
Installation
Install from PyPI:
pip install artsy-tiled-image-downloader
The installed console command is:
artsy-downloader [artsy-artwork-url]
For local development:
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
Usage
python -m artsy_tiled_image_downloader [artsy-artwork-url]
After installation, the same CLI is also available as:
artsy-downloader [artsy-artwork-url]
Example:
python -m artsy_tiled_image_downloader https://www.artsy.net/artwork/yayoi-kusama-stars-11
Useful options:
python -m artsy_tiled_image_downloader --metadata-only https://www.artsy.net/artwork/yayoi-kusama-stars-11
python -m artsy_tiled_image_downloader --output-dir ~/Downloads --concurrency 24 --timeout 30 [url]
python -m artsy_tiled_image_downloader --skip-direct [url]
Sample output:
URL: https://www.artsy.net/artwork/yayoi-kusama-stars-11
Fetching metadata...
Images: 1
Image 1/1: 2547x3543, 14x10 (140 tiles)
Downloading...
Saved: /Users/you/Downloads/output_yayoi-kusama-stars-11_0.jpg (direct)
Elapsed: 1.0s
Testing
pip install -e ".[dev]"
pytest
ruff check .
The test suite covers URL parsing, metadata parsing, filename safety, tile crop math, direct-image fallback, in-memory tile stitching, and a local HTTP end-to-end CLI run.
PyPI Release
Package name: artsy-tiled-image-downloader
Build and validate the release artifacts:
rm -rf build dist *.egg-info
python -m pip install -e ".[dev]"
python -m build
python -m twine check dist/*
Upload with a PyPI project or account token:
TWINE_USERNAME=__token__ TWINE_PASSWORD=pypi-... python -m twine upload dist/*
This repository also includes .github/workflows/publish.yml for PyPI Trusted Publishing. Configure the trusted publisher on PyPI for this repository and publish a GitHub release to upload dist/* without storing a long-lived PyPI token in GitHub secrets.
Temporary Data
The downloader no longer stores tiles in a process-wide temporary directory. Tiles are downloaded into memory as compressed bytes and decoded one at a time while stitching. The only temporary files are short-lived files created beside the final output for atomic replacement.
If a future very-large-image mode needs disk-backed tile caching, prefer tempfile.TemporaryDirectory() as a scoped context manager rather than a fixed folder under ~/Downloads.
Star History
Disclaimer
This project is independent and is not affiliated with Artsy.
Use it only for personal learning, interoperability research, and lawful technical analysis. You are responsible for respecting Artsy's terms of use, robots policies, copyright restrictions, and any applicable laws. Do not use this project for commercial redistribution, copyright infringement, abusive automation, or any unauthorized access.
The software is provided as-is, without warranty. The maintainers are not responsible for misuse or for any direct or indirect loss caused by using this tool.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file artsy_tiled_image_downloader-2.0.0.tar.gz.
File metadata
- Download URL: artsy_tiled_image_downloader-2.0.0.tar.gz
- Upload date:
- Size: 20.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c2cc9b998be28fb744df56af3e4f4d5d452bce7cf6d3b7d5079db83961829966
|
|
| MD5 |
1dc65478fcdf5163dbd5f26051f0c81e
|
|
| BLAKE2b-256 |
cbc1f6ab492a675482206af5cdb2f289013f02d9c691233b6dd96d9fa854a845
|
File details
Details for the file artsy_tiled_image_downloader-2.0.0-py3-none-any.whl.
File metadata
- Download URL: artsy_tiled_image_downloader-2.0.0-py3-none-any.whl
- Upload date:
- Size: 16.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6122f5bc20541c391bc0a46af9f0970551a6200e0360fc7d9d4ba333748c0a68
|
|
| MD5 |
078d79a5b4334f0722edeeca222bb8d6
|
|
| BLAKE2b-256 |
dd7775626a2a968a30dbc284d9d3548bdac3b8ea46a4fd492ef46306335bc00d
|