A command-line tool to download high-resolution artwork images from Google Arts & Culture. Google hosts these images as tiles for efficient zooming - this tool downloads and assembles them into complete high-resolution images.
git clone https://github.com/yourusername/google-aac-scraper.git
cd google-aac-scraper
./install.shOr manually:
pip install -r requirements.txt
pip install -e .- Python 3.6+
- Pillow (PIL)
- pycryptodome (for tile decryption)
Basic usage:
gaac https://artsandculture.google.com/asset/the-water-lily-pond-in-the-evening-claude-monet/ZQEhQOF10hwhUQSpecify output file and zoom level:
gaac https://artsandculture.google.com/asset/... -o monet.jpg -z 6url- (Required) Google Arts & Culture asset URL-o, --output- Output file path (default:artwork.jpg)-z, --zoom- Zoom level (0 = lowest, default: highest available)- Each artwork has a different number of zoom levels (typically 3-6)
- Level 0: Smallest, fastest download
- Level 2-3: Good quality, reasonable file size (recommended)
- Highest level: Maximum resolution, largest file size
- The tool will automatically show you the available range and use the highest by default
Download at highest resolution (default):
gaac https://artsandculture.google.com/asset/la-pointe-de-la-hve-at-low-tide/1wF1kz5yJrRk5QDownload at a specific zoom level:
gaac https://artsandculture.google.com/asset/... -z 3 -o artwork.jpgQuick preview (lower resolution):
gaac https://artsandculture.google.com/asset/... -z 0 -o preview.jpgGoogle Arts & Culture stores high-resolution images as encrypted tiles at different zoom levels. This tool:
- Fetches the artwork page to extract the base image URL and authentication token
- Requests the tile metadata XML file to get grid dimensions and zoom levels
- Generates signed tile URLs using HMAC-SHA1 authentication
- Downloads all tiles for the requested zoom level
- Decrypts each tile using AES-128-CBC (tiles are encrypted with marker
0x0A0A0A0A) - Assembles the decrypted tiles into a complete high-resolution image
- Saves as JPEG
The tile URL format is: {base_url}=x{x}-y{y}-z{z}-t{signature}
- Only works with artworks that have high-resolution tile-based images
- Download time depends on zoom level and number of tiles
- Some artworks may not be available at all zoom levels
This tool is for personal use and educational purposes. Please respect copyright and terms of service of Google Arts & Culture. Always credit the original artists and institutions. Code uses MIT license, see LICENSE file for more info.