skillfed

PyExifTool

Python wrapper for exiftool

pyexiftool v0.5.6 264.6K downloads/30d#8,334 on PyPI197
Copyleft license GPLv3+/BSD DORMANT released

What it is and what it does

PyExifTool wraps Phil Harvey's ExifTool command-line application, allowing Python code to extract metadata from image and video files without spawning a new process for each query. The library runs exiftool in batch mode, launching a single persistent instance that can handle many metadata requests efficiently. It provides three classes of increasing complexity: the base ExifTool class for direct command execution, ExifToolHelper for common operations with automatic error handling, and ExifToolAlpha for experimental community-contributed methods.

The package is designed for developers who need to read EXIF, IPTC, XMP, and other metadata from photos and videos. It supports Python 3.6 and later, runs on Windows, Linux, and Unix-like systems, and has no Python runtime dependencies—only the external exiftool binary is required.

Use it for:

  • Extract EXIF timestamps, camera settings, and GPS coordinates from a batch of photos for cataloging or geolocation workflows.
  • Read metadata from video files to retrieve duration, codec, resolution, or creation date for media management systems.
  • Automate metadata inspection across large photo libraries to identify missing or malformed EXIF data.
  • Build image processing pipelines that filter or sort files based on metadata like ISO, aperture, or focal length.
  • Integrate metadata extraction into web applications or batch jobs that need to process user-uploaded media files.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

PyExifTool is a Python wrapper that communicates with Phil Harvey's ExifTool command-line application to extract and read metadata from image and video files in batch mode.

Yes, if you need to extract metadata from images or videos and are comfortable with the external exiftool dependency. The package is stable, has no Python runtime dependencies, and sees regular use. The dual GPLv3+/BSD license requires review for copyleft compliance. The dormant maintenance status is acceptable for a stable wrapper around a mature external tool, but monitor for future Python or exiftool compatibility issues.

Install

pyexiftool on PyPI

pip

pip install pyexiftool

uv

uv add pyexiftool

poetry

poetry add pyexiftool

Installing PyExifTool

Before you install

Installation is straightforward with no runtime Python dependencies. The package is dormant, but the repository remains active and the codebase is stable; the core ExifTool class is documented as having a stable API.

License in practice

Licensed under dual GPLv3+ and BSD terms (copyleft). Projects using this package must comply with GPLv3+ copyleft obligations unless they choose the BSD alternative; review your project's license compatibility before adopting.

Quickstart

pip install PyExifTool

with exiftool.ExifToolHelper() as et:
    metadata = et.get_metadata(["a.jpg", "b.png"])
    for d in metadata:
        print(d["SourceFile"])

Phil Harvey's exiftool command-line tool must be installed on the system (minimum version 12.15) and accessible on PATH, or the full path must be provided via ExifTool(executable=...).

Verify before relying

  • Whether the dormant maintenance status poses risks for future Python or exiftool compatibility issues.
  • Performance characteristics when processing very large batches or high-resolution media files.
  • Completeness of metadata extraction across all modern image and video formats.

Package facts

License GPLv3+/BSD (copyleft)
Python support supports the current Python release (>=3.6)
Install friction low — pure-Python wheel
Runtime dependencies none
Maintenance dormant — 1,027 days since the last release
Last repo commit
First released
Downloads 264,613/month — #8,334 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: PyExifTool-0.5.6-py3-none-any.whl

Keywords: exiftool, image, exif, metadata, photo, video, photography

Development Status :: 4 - BetaIntended Audience :: DevelopersLicense :: OSI Approved :: BSD LicenseLicense :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)Operating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: MultimediaTopic :: Utilities

Tags

read image metadata exifextract photo exif databatch image metadata extractionexiftool python wrapperimage metadata readerexif data from photosvideo metadata extraction
metadata-extractionimage-processingexif-reader

More Utilities packages