Skip to main content

Download data from the Portale Antenati, the italian state genealogy archive

Project description

antenati

PyPI version Python versions License: GPL-3.0-or-later CI

The only tool that lets you download full-resolution images from the Portale Antenati, the genealogy digital archive of the Italian Ministero della Cultura.

The Portale Antenati hosts millions of digitised civil and parish records, but its web viewer only lets you look at one page at a time — and the servers slow to a crawl in the evening. antenati reads the standard IIIF manifest behind each gallery and downloads every image of an entire archive in one shot, at the highest resolution available, with no clicking and no waiting. Launch it, grab a coffee, and come back to a folder full of records ready for your family tree.

Highlights

  • 🖼️ Full-resolution downloads — the only tool that still retrieves images at maximum size from the portal.
  • 📚 Whole archives at once — point it at a gallery and it fetches every page automatically.
  • Fast & parallel — multi-threaded downloads with automatic retry/backoff on transient errors.
  • 🖥️ CLI and GUI — a scriptable command line and a friendly desktop window, from the same package.
  • 🧩 IIIF-native — works directly with the portal's IIIF manifests, so it keeps working when the web viewer changes.
  • 🌍 Cross-platform — Windows, macOS and Linux; install with pip or grab a standalone executable.

Installation

The recommended way to install antenati is from PyPI:

pip install antenati

This requires Python 3.10 or newer and gives you two commands on your PATH:

  • antenati — the command-line downloader
  • antenati-gui — the graphical interface

On Windows the Python build from the Microsoft Store works fine; on Linux use your distribution's package manager to get Python first.

Standalone executables (no Python needed)

If you'd rather not install Python and pip at all, prebuilt standalone executables of the GUI for Windows, macOS and Linux are attached to every release. Just download the one for your system from the latest release artifacts and run it — no installation required.

Usage

Command line

Pass the URL of a gallery page (or of its IIIF manifest) to the antenati command:

antenati <URL of the album>

The images are saved to a new folder named after the archive, in the form ARCHIVE-PLACE-YEAR-TYPE-ID.

Example — to download the people born in Viareggio in 1807, find the gallery page on the portal:

https://antenati.cultura.gov.it/ark:/12657/an_ua19944535/w9DWR8x

then copy the link to the first page and pass it to the tool:

antenati https://antenati.cultura.gov.it/ark:/12657/an_ua19944535/w9DWR8x

The results land in a folder named archivio-di-stato-di-lucca-stato-civile-napoleonico-viareggio-1807-nati-19944549.

If you didn't install the package, you can still run it as a module:

python3 -m antenati <URL of the album>

Options

Option Description
-s, --size N Image size in pixels (0 = full size, the default).
-n, --nthreads N Maximum number of download threads.
-f, --first N Index of the first image to download.
-l, --last N Index of the first image not to download.
-d, --descriptive-names Include the archive and image IDs in the file names (e.g. pag-1+an_ua19944535+w9DWR8x.jpg).
--verbose Increase log verbosity (--verbose → INFO, --verbose --verbose → DEBUG).
-v, --version Print the version and exit.

Run antenati -h for the full, up-to-date list.

Graphical interface

Launch the GUI with the antenati-gui command (or the standalone executable described above):

GUI Screenshot

  1. Paste the link to the first page of the archive into the Archive URL field (e.g. https://antenati.cultura.gov.it/ark:/12657/an_ua19944535/w9DWR8x).
  2. Choose a destination folder.
  3. The results are saved into a new subfolder named after the archive, such as archivio-di-stato-di-lucca-stato-civile-napoleonico-viareggio-1807-nati-19944549.

AWS WAF challenge

Outside Italy, the Portale Antenati gallery pages are often protected by an AWS WAF challenge that this tool cannot solve, and the download fails with an AWS WAF challenge cannot be bypassed error (see #25). The IIIF manifest and the images themselves are not behind the WAF, so you can work around it:

  1. open the gallery page in your browser;
  2. copy the IIIF manifest link at the bottom of the left side panel (it looks like https://dam-antenati.cultura.gov.it/antenati/containers/.../manifest);
  3. pass that URL to the tool (both CLI and GUI) instead of the gallery page URL.

License

Released under the GNU General Public License v3 or later. See the changelog for release history.

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

antenati-6.1.tar.gz (41.8 kB view details)

Uploaded Source

Built Distribution

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

antenati-6.1-py3-none-any.whl (35.0 kB view details)

Uploaded Python 3

File details

Details for the file antenati-6.1.tar.gz.

File metadata

  • Download URL: antenati-6.1.tar.gz
  • Upload date:
  • Size: 41.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for antenati-6.1.tar.gz
Algorithm Hash digest
SHA256 eed9dbe295ea574472e9bf90a7d36fff49915ee4cbf91c47353bd22166afde6e
MD5 f1ccc9116dcc1bf523c2a534c4205dbd
BLAKE2b-256 f07aca9e9b02b54d10c09c89a0078434f897959b9e16cc8737875d5fa10c8105

See more details on using hashes here.

Provenance

The following attestation bundles were made for antenati-6.1.tar.gz:

Publisher: release.yml on gcerretani/antenati

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file antenati-6.1-py3-none-any.whl.

File metadata

  • Download URL: antenati-6.1-py3-none-any.whl
  • Upload date:
  • Size: 35.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for antenati-6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6bc8919116987994d7896bd0e555f32639ab9955bb213e2535a104f1ff1884e8
MD5 32cad9eda26103c314773ab6e946c983
BLAKE2b-256 d4363797e11c43000966d9d1133f5fcc801b68f2814dfb63fa52d4de7e63af28

See more details on using hashes here.

Provenance

The following attestation bundles were made for antenati-6.1-py3-none-any.whl:

Publisher: release.yml on gcerretani/antenati

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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