Skip to main content

Zenodo_get - a downloader for Zenodo records

Project description

zenodo_get: a downloader for Zenodo records

CI CircleCI Build status Coverage Status pyversion PyPI - License DOI

A Python tool for downloading files from Zenodo records. Requires Python 3.10+.

Installation

The simplest way (no installation needed) is using uvx, a tool runner from uv:

uvx zenodo_get RECORD_ID_OR_DOI

Alternatively, install with pipx or pip:

pipx install zenodo-get
# or
pip install zenodo-get

Usage

uvx zenodo_get RECORD_ID_OR_DOI

Common Options

Option Description
-o DIR Output directory (created if needed)
-g PATTERN Filter files by glob pattern (e.g., -g "*.pdf")
-m Generate md5sums.txt for verification
-w FILE Write URLs to file instead of downloading (-w - for stdout)
-e Continue on error (skip failed files)
-n Start fresh (don't resume previous download)
-v N Verbosity level 0-4 (default: 2)

Retry Options

Option Description
--max-http-retries N HTTP retries with exponential backoff (default: 5)
--backoff-factor N Backoff multiplier in seconds (default: 0.5)
-R N Application-level retries for checksum failures (default: 1)
-p N Pause between retries in seconds (default: 3)
-t N Connection timeout in seconds (default: 25)

Examples

# Download all files from a record
uvx zenodo_get 1234567

# Download only PDFs to a specific directory
uvx zenodo_get 1234567 -g "*.pdf" -o ./downloads

# Generate URL list for external download manager
uvx zenodo_get 1234567 -w urls.txt

# Use DOI instead of record ID
uvx zenodo_get -d 10.5281/zenodo.1234567

Exit Codes

  • 0: All files downloaded successfully
  • Non-zero: Error occurred (checksum mismatch, download failure, timeout, etc.)

Python API

You can use zenodo_get as a library in your Python projects.

Installation

# Add to your project
uv add zenodo-get
# or
pip install zenodo-get

Usage

from zenodo_get import download

# Download all files from a record
download("10.5281/zenodo.1234567", output_dir="./data")

# Download only specific files using glob pattern
download(
    record_or_doi="1234567",
    output_dir="./data",
    file_glob="*.csv",
)

# Multiple glob patterns
download(
    record_or_doi="1234567",
    output_dir="./data",
    file_glob=["*.csv", "*.json"],
)

Parameters

Parameter Type Default Description
record_or_doi str - Zenodo record ID or DOI
output_dir str | Path "." Output directory
file_glob str | tuple "*" Filter files by glob pattern(s)
md5 bool False Generate md5sums.txt
continue_on_error bool False Continue on download errors
start_fresh bool False Don't resume previous download
timeout float 15.0 Connection timeout in seconds
exceptions_on_failure bool True Raise exceptions on errors

Citation

If you use this tool in academic work:

uvx zenodo_get --cite

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

zenodo_get-3.0.1.tar.gz (37.1 kB view details)

Uploaded Source

Built Distribution

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

zenodo_get-3.0.1-py3-none-any.whl (26.6 kB view details)

Uploaded Python 3

File details

Details for the file zenodo_get-3.0.1.tar.gz.

File metadata

  • Download URL: zenodo_get-3.0.1.tar.gz
  • Upload date:
  • Size: 37.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for zenodo_get-3.0.1.tar.gz
Algorithm Hash digest
SHA256 226d533c232afbc46fd75c38ed5132ba171c51e62f0557fcc23bdd7d9e3e458c
MD5 95ca1e0608f50d3ec25dea15597d3629
BLAKE2b-256 bdf4c459e922842e44ee4a9446caa068627b35d390b3cbd6d87f64843e3df36b

See more details on using hashes here.

File details

Details for the file zenodo_get-3.0.1-py3-none-any.whl.

File metadata

  • Download URL: zenodo_get-3.0.1-py3-none-any.whl
  • Upload date:
  • Size: 26.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for zenodo_get-3.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 664b952dead2bb81b57949d75df31ed25e1f0a2a67c236e2590cfc71fc93311f
MD5 811008f5902c1e0d9ed6b1975792c205
BLAKE2b-256 5f77dc37f57cfcffd5a4b2ad273644b852e3d4962df02d8f44c9f4cb06bf1294

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