Skip to main content

Naturtag

Build status Codecov Documentation status GitHub issues PyPI PyPI - Python Versions


Contents

Summary

Naturtag is a tool for nature photographers that adds useful metadata to describe the organisms in your photos. It includes a desktop application, a command-line interface, and can also be used as a python library. It is mainly intended for use with iNaturalist, but can also be used independently.

Naturtag gathers observation metadata (for iNaturalist observation photos), or just taxonomy metadata (for everything else). It then embeds this information in your local photo collection using EXIF, XMP, and Simple Darwin Core metadata.

Use Cases

This image metadata has a variety of uses, including:

Local photo organization

Naturtag can tag your photos with hierarchical keywords (aka structured keywords), which are supported by some photo viewers/editors like Lightroom, FastPictureViewer, Photo Mechanic, digiKam, and XnViewMP.

This basically gives you a taxonomic tree for browsing and filtering your photos.

Example in XnView

Hierarchical keyword taxonomy tree in XnView

Photo hosting

Naturtag can also simplify tagging photos for photo hosting sites like Flickr. For that use case, this tool generates semi-structured keywords in the same format as iNaturalist's Flickr Tagger.

Example search using these tags: https://www.flickr.com/photos/tags/taxonomy:class=arachnida

Example of taxonomy tags on Flickr

Taxonomy tags displayed on a Flickr photo

Installation

Packages are available on GitHub Releases for Windows, macOS, and most major Linux distributions. See Installation for instructions.

It can also be installed from PyPI. Example with uv:

uv tool install naturtag

Usage

GUI

Naturtag is primarily a desktop application. It includes an interface for selecting and tagging images:

Image selector interface showing file browser and tagged photos

And tools to search and browse species and observations to tag your images with:

Taxon search interface

Observation browser interface

The general workflow currently looks like:

  • Upload an observation to iNaturalist
  • Load your local photos in Naturtag
  • Select your observation in Naturtag and tag images

After initial tagging, future updates are simpler:

  • Load local photos in Naturtag (optionally for multiple observations/taxa)
  • Click 'Refresh tags' to fetch any updates from iNaturalist and apply to your local photos

Alternatively, without iNaturalist:

  • Load your local photos in Naturtag
  • Select a taxon in Naturtag and tag images

See Application Guide for more details.

Bulk tagging features (for handling multiple observations/taxa at a time) are planned for a future release.

CLI

Naturtag also includes a command-line interface. It takes an observation or species, plus some image files, and generates EXIF and XMP metadata to write to those images.

Example:

# Tag images with metadata from observation ID 5432
nt tag -o 5432 img1.jpg img2.jpg

# Refresh previously tagged images with latest observation and taxonomy metadata
nt refresh -r ~/observations

You can see it in action here: asciicast

See CLI documentation for more details.

Library

You can also import naturtag as a python library, and use its main features in your own scripts or applications. Basic example:

from naturtag import tag_images, refresh_tags

# Tag images with full observation metadata
tag_images(['img1.jpg', 'img2.jpg'], observation_id=5432)

# Refresh previously tagged images with latest observation and taxonomy metadata
refresh_tags(['~/observations/'], recursive=True)

See API Reference for more details.

Development Status

Metadata

Release files for naturtag 0.9.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for naturtag 0.9.2
File Size Uploaded
naturtag-0.9.2.tar.gz 13.6 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for naturtag 0.9.2
File Interpreter ABI Platform
naturtag-0.9.2-py3-none-any.whl Python 3 none any Details

Total release size: 27.0 MB

Release files / naturtag-0.9.2.tar.gz

Download URL naturtag-0.9.2.tar.gz
Size 13.6 MB
Tags Source
SHA-256 checksum
How to use checksums
a020414f1ac1fd0af673c87edc3dc9c2b4050eda30469323fe733914625c6f4e
BLAKE2b-256 checksum
How to use checksums
22f915ea91cd7f7c9452a91169e7b4a355208cfc7d2cc7316ef3b13ba42b23c3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 19, 2026.

Transparency log

Release files / naturtag-0.9.2-py3-none-any.whl

Download URL naturtag-0.9.2-py3-none-any.whl
Size 13.4 MB
Tags Python 3
SHA-256 checksum
How to use checksums
46512f794fe1325af1e2b0f52e105af6c87293c654d961bd7687a6b7f196e4e3
BLAKE2b-256 checksum
How to use checksums
a26678d6fb5eed918106c20680dab910082cf98b4b318d49720bb85914929c6e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 19, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.9.2 This release

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page