A simple CLI to tag film scans with EXIF metadata.
A simple CLI to tag film scans with EXIF metadata.
pip install filmtagger
# Show help
filmtagger --help
# Tag a single image
filmtagger tag image.jpg
# Tag multiple images
filmtagger tag *.jpg
This project uses Hatch for development and package management.
Install Hatch:
pip install hatch
Create and activate development environment:
hatch shell
# Run all tests
hatch run test
# Run tests with coverage
hatch run test-cov
# Run linting checks
hatch run lint:all
# Format code
hatch run lint:fmt
# Build the package
hatch build
# Publish to PyPI
hatch publish
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
To set the date of all images to 12 June 2019, specifying camera and
film as well:
$ filmtagger -d 2019-06-12 -c "Leica M6" -f "E100G" *.jpg
Filmtagger supports fuzzy-matching against its database of cameras and
films, so your input strings needn’t be exact. Likewise, it attempts to
autodetect a variety of date/time input.
You may configure your own camera and film definitions to override the
system-wide ones.
Create a ~/.config/filmtagger/cameras.toml
file that looks like this:
["Mamiya RB67"]
"Exif.Image.Make" = "Mamiya"
"Exif.Image.Model" = "RB67"
And a ~/.config/filmtagger/films.toml
like this:
["Ilford HP5 Plus"]
"Exif.Photo.ISOSpeedRatings" = 400
"Xmp.AnalogExif.FilmMaker" = "Ilford"
"Xmp.iptcExt.DigitalSourceType" = "http://cv.iptc.org/newscodes/digitalsourcetype/negativeFilm"
The section headings will be fuzzy-matched from the command-line
arguments. The key-value pairs that follow will be set as metadata,
assuming they are valid tag names.
In addition to the standard Exiv2 tag schema, AnalogExif
tags are
also supported.