Skip to main content

Archive user data from Mapillary

Project description

🗺️ Mapillary Downloader

Download your Mapillary data before it's gone.

Installation

Installation is optional, you can prefix the command with uvx or pipx to download and run it. Or if you're oldskool you can do:

pip install mapillary-downloader

Usage

First, get your Mapillary API access token from the developer dashboard

# Set token via environment variable (recommended)
export MAPILLARY_TOKEN=YOUR_TOKEN
mapillary-downloader USERNAME1 USERNAME2 USERNAME3

# Or pass token directly, and have it in your shell history 💩👀
mapillary-downloader --token YOUR_TOKEN USERNAME1 USERNAME2

# Download to specific directory
mapillary-downloader --output ./downloads USERNAME1
option because default
usernames One or more Mapillary usernames (required)
--token Mapillary API token (or env var) $MAPILLARY_TOKEN
--output Output directory ./mapillary_data
--quality 256, 1024, 2048 or original original
--bbox west,south,east,north None
--no-webp Don't convert to WebP False
--max-workers Maximum number of parallel download workers CPU count
--no-tar Don't tar bucket directories False
--no-check-ia Don't check if exists on Internet Archive False

The downloader will:

  • 🏛️ Check Internet Archive to avoid duplicate downloads
  • 📷 Download multiple users' images organized by sequence
  • 📜 Inject EXIF metadata (GPS coordinates, camera info, timestamps, compass direction)
  • 🗜️ Convert to WebP (by default) to save ~70% disk space
  • 🛟 Save progress so you can safely resume if interrupted
  • 📦 Tar sequence directories (by default) for faster uploads to Internet Archive

WebP Conversion

You'll need the cwebp binary installed:

# Debian/Ubuntu
sudo apt install webp

# macOS
brew install webp

To disable WebP conversion and keep original JPEGs, use --no-webp:

mapillary-downloader --no-webp USERNAME

Tarballs

Images are organized by capture date (YYYY-MM-DD) for incremental archiving:

mapillary-username-quality/
  2024-01-15/
    abc123/
      image1.webp
      image2.webp
    bcd456/
      image3.webp
  2024-01-16/
    def789/
      image4.webp

By default, these date directories are automatically tarred after download (resulting in 2024-01-15.tar, 2024-01-16.tar, etc.). This date-based organization enables:

  • Incremental uploads - Upload each day's tar as soon as it's ready
  • Manageable file counts - ~365 days/year × 10 years = 3,650 tars max
  • Chronological organization - Natural sorting and progress tracking

To keep individual files instead of creating tars, use the --no-tar flag.

Internet Archive upload

I've written a bash tool to rip media then tag, queue, and upload to The Internet Archive. The metadata is in the same format. If you symlink your ./mapillary_data dir to rip's 4.ship dir, they'll be queued for upload.

See inlay for details:

📊 Stats

To see overall project progress, or an estimate, use --stats

mapillary-downloader --stats

🚧 Development

make dev      # Setup dev environment
make test     # Run tests
make dist     # Build the distribution
make help     # See other make options

🔗 Links

License

WTFPL with one additional clause

  1. Don't blame me

Do wtf you want, but don't blame me if it makes jokes about the size of your disk drive.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mapillary_downloader-0.7.7.tar.gz (25.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mapillary_downloader-0.7.7-py3-none-any.whl (30.8 kB view details)

Uploaded Python 3

File details

Details for the file mapillary_downloader-0.7.7.tar.gz.

File metadata

  • Download URL: mapillary_downloader-0.7.7.tar.gz
  • Upload date:
  • Size: 25.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for mapillary_downloader-0.7.7.tar.gz
Algorithm Hash digest
SHA256 366da4d1d5b119fb25fa1edac76ab20a93ddc4d8078e0248f5d3fc7e70745248
MD5 e85ab1db8c70af56c9236b54cc853561
BLAKE2b-256 2692f284eaef56a57542adf49b9e92e98784b82f606bd7e12958130549f20d5f

See more details on using hashes here.

File details

Details for the file mapillary_downloader-0.7.7-py3-none-any.whl.

File metadata

File hashes

Hashes for mapillary_downloader-0.7.7-py3-none-any.whl
Algorithm Hash digest
SHA256 dd4d4d13a9465777085833436f04fea3f0a1f539aba7bf1bfa55e8b73d3db2ba
MD5 7df8e129b9608e72506dd6f3e89c803b
BLAKE2b-256 9363506472d3b98692be06012ea013128c7c054922dedd71a7933d9cc1058092

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page