Skip to content

AndrewBlackwell/gaac

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Google Arts & Culture Scraper (GAAC)

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.

Installation

From Source

git clone https://github.com/yourusername/google-aac-scraper.git
cd google-aac-scraper
./install.sh

Or manually:

pip install -r requirements.txt
pip install -e .

Requirements

  • Python 3.6+
  • Pillow (PIL)
  • pycryptodome (for tile decryption)

Usage

Basic usage:

gaac https://artsandculture.google.com/asset/the-water-lily-pond-in-the-evening-claude-monet/ZQEhQOF10hwhUQ

Specify output file and zoom level:

gaac https://artsandculture.google.com/asset/... -o monet.jpg -z 6

Options

  • url - (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

Examples

Download at highest resolution (default):

gaac https://artsandculture.google.com/asset/la-pointe-de-la-hve-at-low-tide/1wF1kz5yJrRk5Q

Download at a specific zoom level:

gaac https://artsandculture.google.com/asset/... -z 3 -o artwork.jpg

Quick preview (lower resolution):

gaac https://artsandculture.google.com/asset/... -z 0 -o preview.jpg

How it Works

Google Arts & Culture stores high-resolution images as encrypted tiles at different zoom levels. This tool:

  1. Fetches the artwork page to extract the base image URL and authentication token
  2. Requests the tile metadata XML file to get grid dimensions and zoom levels
  3. Generates signed tile URLs using HMAC-SHA1 authentication
  4. Downloads all tiles for the requested zoom level
  5. Decrypts each tile using AES-128-CBC (tiles are encrypted with marker 0x0A0A0A0A)
  6. Assembles the decrypted tiles into a complete high-resolution image
  7. Saves as JPEG

The tile URL format is: {base_url}=x{x}-y{y}-z{z}-t{signature}

Limitations

  • 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

Disclaimer

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.

About

A tool to download high-res artwork images from Google Arts & Culture. Google hosts these images as tiles for efficient zooming; this tool downloads and assembles them into complete images.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages