Skip to main content

Add your description here

Project description

loam-iiif

A command-line tool for traversing IIIF collections and extracting manifest URLs. This tool helps you explore and collect IIIF manifest URLs from collections, with support for nested collections and paginated results.

Features

  • Recursively traverses IIIF collections to find all manifest URLs
  • Supports both IIIF Presentation API 2.0 and 3.0
  • Multiple output formats (JSON and formatted tables)
  • Save results to file or display in terminal
  • Debug mode for detailed logging
  • Robust error handling with automatic retries
  • Support for paginated collections

Installation

Requires Python 3.10 or higher.

pip install loam-iiif

Usage

The basic command structure is:

loamiiif [OPTIONS] URL

Options

  • -o, --output PATH: Save results to a file (JSON or plain text format)
  • -f, --format [json|table]: Output format (default: json)
  • --debug: Enable debug mode with detailed logs
  • --help: Show help message

Examples

  1. Basic usage (outputs JSON to stdout):
loamiiif "https://api.dc.library.northwestern.edu/api/v2/collections/c69bb1ed-accb-4cfb-b60e-495b9911690f?as=iiif"
  1. Output as a formatted table:
loamiiif "https://api.dc.library.northwestern.edu/api/v2/collections/c69bb1ed-accb-4cfb-b60e-495b9911690f?as=iiif" --format table
  1. Save results to a file:
loamiiif "https://api.dc.library.northwestern.edu/api/v2/collections/c69bb1ed-accb-4cfb-b60e-495b9911690f?as=iiif" --output collection_manifests.json
  1. Enable debug logging:
loamiiif "https://api.dc.library.northwestern.edu/api/v2/collections?as=iiif" --debug

Example debug output (truncated):

[2025-01-17 14:14:48] DEBUG    Starting traversal of IIIF collection: https://api.dc.library.northwestern.edu/api/v2/collections?as=iiif
                      INFO     Processing collection: https://api.dc.library.northwestern.edu/api/v2/collections?as=iiif
                      DEBUG    Fetching URL: https://api.dc.library.northwestern.edu/api/v2/collections?as=iiif
                      DEBUG    Successfully fetched data from https://api.dc.library.northwestern.edu/api/v2/collections?as=iiif
                      DEBUG    Found nested collection: https://api.dc.library.northwestern.edu/api/v2/collections/ba35820a-525a-4cfa-8f23-4891c9f798c4?as=iiif
                      INFO     Processing collection: https://api.dc.library.northwestern.edu/api/v2/collections/ba35820a-525a-4cfa-8f23-4891c9f798c4?as=iiif
                      DEBUG    Added manifest: https://api.dc.library.northwestern.edu/api/v2/works/e40479c4-06cb-48be-9d6b-adf47f238852?as=iiif
                      DEBUG    Added manifest: https://api.dc.library.northwestern.edu/api/v2/works/f4720687-61b6-4dcd-aed0-b70eff985583?as=iiif
                      # ... more manifests and collections ...

Debug mode shows detailed information about:

  • Collection traversal progress
  • HTTP requests and responses
  • Discovered manifests and nested collections
  • Any errors or issues encountered

Output Formats

JSON

The JSON output includes both manifests and collections:

{
  "manifests": [
    "https://api.dc.library.northwestern.edu/api/v2/works/9d87853e-3955-4912-906f-6ddf0e2e3825?as=iiif",
    "..."
  ],
  "collections": []
}

Table

The table format provides a readable view of manifests and collections with indexed entries.

Development

Requirements

  • Python 3.10+
  • click>=8.1.8
  • requests>=2.32.3
  • rich>=13.9.4

Development Installation

  1. Clone the repository:
git clone https://github.com/nulib-labs/loam-iiif.git
cd loam-iiif
  1. Create and activate a virtual environment with uv:
uv venv --python 3.10
source .venv/bin/activate  # On Windows use: .venv\Scripts\activate
  1. Install dependencies:
uv sync

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Project Links

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

loam_iiif-0.1.0.tar.gz (25.3 kB view details)

Uploaded Source

Built Distribution

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

loam_iiif-0.1.0-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file loam_iiif-0.1.0.tar.gz.

File metadata

  • Download URL: loam_iiif-0.1.0.tar.gz
  • Upload date:
  • Size: 25.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.10.16

File hashes

Hashes for loam_iiif-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5db13ef79b2864dc9b6c1f16d45d67329e5280ca15bebbcdfd5ea0e01adb17a6
MD5 d9484d74ca709609c3048e71c739b8b0
BLAKE2b-256 f1ae0d14182e96b2ee8dea25105482cb18c3d5ecde34599fbf2e8f65c3d79fae

See more details on using hashes here.

File details

Details for the file loam_iiif-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: loam_iiif-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.10.16

File hashes

Hashes for loam_iiif-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a0824e0aa0c4a87fef4953a54c059aefac0c5bd52c242982f6f74736062de52b
MD5 83e04a8e8200064940927e2b643c054f
BLAKE2b-256 2599aabeb8c65b890afe6e0110f7972068cc7c6e40c33cc7e87cd8bb24c4e3d5

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