Download data from the Portale Antenati, the italian state genealogy archive
Project description
antenati
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
pipor 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 downloaderantenati-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):
- 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). - Choose a destination folder.
- 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:
- open the gallery page in your browser;
- 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); - 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eed9dbe295ea574472e9bf90a7d36fff49915ee4cbf91c47353bd22166afde6e
|
|
| MD5 |
f1ccc9116dcc1bf523c2a534c4205dbd
|
|
| BLAKE2b-256 |
f07aca9e9b02b54d10c09c89a0078434f897959b9e16cc8737875d5fa10c8105
|
Provenance
The following attestation bundles were made for antenati-6.1.tar.gz:
Publisher:
release.yml on gcerretani/antenati
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
antenati-6.1.tar.gz -
Subject digest:
eed9dbe295ea574472e9bf90a7d36fff49915ee4cbf91c47353bd22166afde6e - Sigstore transparency entry: 1799842426
- Sigstore integration time:
-
Permalink:
gcerretani/antenati@89794151ad3c63617b195376773228b3af025755 -
Branch / Tag:
refs/tags/v6.1 - Owner: https://github.com/gcerretani
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@89794151ad3c63617b195376773228b3af025755 -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6bc8919116987994d7896bd0e555f32639ab9955bb213e2535a104f1ff1884e8
|
|
| MD5 |
32cad9eda26103c314773ab6e946c983
|
|
| BLAKE2b-256 |
d4363797e11c43000966d9d1133f5fcc801b68f2814dfb63fa52d4de7e63af28
|
Provenance
The following attestation bundles were made for antenati-6.1-py3-none-any.whl:
Publisher:
release.yml on gcerretani/antenati
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
antenati-6.1-py3-none-any.whl -
Subject digest:
6bc8919116987994d7896bd0e555f32639ab9955bb213e2535a104f1ff1884e8 - Sigstore transparency entry: 1799842642
- Sigstore integration time:
-
Permalink:
gcerretani/antenati@89794151ad3c63617b195376773228b3af025755 -
Branch / Tag:
refs/tags/v6.1 - Owner: https://github.com/gcerretani
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@89794151ad3c63617b195376773228b3af025755 -
Trigger Event:
push
-
Statement type: