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.3.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.

zenodo_get-3.0.3-py3-none-any.whl (26.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: zenodo_get-3.0.3.tar.gz
  • Upload date:
  • Size: 25.7 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.3.tar.gz
Algorithm Hash digest
SHA256 c13e311fa842ebac269fc0b089bd056658da779e891877561c348c4e8909c70a
MD5 ec99683036313530ea2c2107042dacb5
BLAKE2b-256 d6e61c2727dab9750e742f3dc6cd77ffcb881277d15378f3c32c58e1d54db211

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zenodo_get-3.0.3-py3-none-any.whl
  • Upload date:
  • Size: 26.5 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 5c98720a672beef8e2ad53102ef8c9fb6d4c164bd94d47dcdb758f0877878758
MD5 05b94dfefcb6c3fa1fc230980a8bbe2f
BLAKE2b-256 7f42350993a25ec39ad0ce80741b92d45261f724108a7cee640b44d61fa1b3e8

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