Python:Images

From wiki
Revision as of 20:06, 14 July 2025 by Hdridder (talk | contribs)
Jump to navigation Jump to search


Images can have meta-data embedded. Most used is Exif[1], other formats are IPT[2] and XMP[3].

It appears that exiftool is the way to go. PyExifTool is a python wrapper for it.

In Debian exiftool is provided by libimage-exiftool-perl. That is automatically selected when you apt install exiftool.

PyExifTool is not available as a Debian package. Install it in a Python#Virtual_environment

from exiftool import ExfiToolHelper as et
ExifToolHelper is a wrapper for ExifTool with some helper functionality.
from exiftool import ExfiToolHelper
import json

with ExifToolHelper() as et:
    metadata = et.get_metadata(filename)
    for ifd in metadata:
        if isinstance(ifd, dict):
            for tag, value in ifd.items():
                print(f"{tag}: {value}")
        else:
            print(f"ifd {ifd}")

    # Set IPTC:Keywords
    with ExifToolHelper() as et:
        et.set_tags([filename],
            tags={"Keywords": ["sunny", "nice day", "cool", "awesome"]}
        )

    # Set XMP:Subject
    with ExifToolHelper() as et:
        et.set_tags([filename],
            tags={"Subject": ["Holiday", "Spain"]}
        )