--- id: pyexiv2 version: "2.16.0" license: GPLv3 license_treatment: copyleft maintenance: active --- # pyexiv2 — Read and write image metadata, including EXIF, IPTC, XMP, ICC Profile. License: copyleft · Maintenance: active · Downloads: 80.2K/mo ## What it is and what it does pyexiv2 is a Python binding to the C++ Exiv2 library that lets you read and write image metadata standards—EXIF, IPTC, XMP, and ICC Profile—directly from Python. It supports opening images by file path or from raw bytes, handles Unicode in both paths and metadata, and works on 64-bit Linux, macOS, and Windows with CPython ≥3.8. The library is built on pybind11 and exposes the full metadata capabilities of Exiv2, including support for many image formats. However, it has two important limitations: it cannot read images larger than 2GB or modify images larger than 1GB, and it is not thread-safe because the underlying C++ code uses global state. Use it for: - Extract EXIF data (camera settings, GPS, timestamps) from photos for cataloging or analysis. - Batch-edit image metadata (tags, copyright, keywords) across a photo library. - Read or strip ICC color profiles from images for color-management workflows. - Embed or modify XMP metadata in images for digital asset management systems. - Validate or repair IPTC metadata in press photos or archival images. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. pyexiv2 reads and writes image metadata (EXIF, IPTC, XMP, ICC Profile) from files or bytes, wrapping the C++ Exiv2 library via pybind11. Yes, if your project is open-source or can accept GPLv3 copyleft. pyexiv2 is actively maintained, has no known vulnerabilities, and offers comprehensive metadata support across major image formats and platforms. Install friction is moderate due to prebuilt wheels; no source build required for standard platforms. Not suitable for proprietary applications. ## Install pip install pyexiv2 uv add pyexiv2 poetry add pyexiv2 ## Installing pyexiv2 Before you install: Medium install friction: prebuilt wheels available for CPython 3.8 and later on Linux, macOS, and Windows, but no source distribution listed. Active maintenance with a release 12 days ago. License in practice: GPLv3 copyleft license: any application that links or distributes pyexiv2 must also be open-source under a compatible license. Proprietary or closed-source projects cannot use this package. Quickstart: pip install pyexiv2 import pyexiv2 image = pyexiv2.Image('photo.jpg') image.read() print(image.exif_dict) Requires CPython ≥3.8. Not thread-safe due to global state in the underlying C++ library. Cannot read images larger than 2GB or modify images larger than 1GB. Verify before relying: - Whether prebuilt wheels are the only distribution method or if source builds are possible on unsupported platforms. - Performance characteristics and typical use-case latency for metadata operations on standard image sizes. ## Package facts - License: GPLv3 (copyleft) - Python support: supports_current - Install friction: medium - Maintenance: active - Downloads: 80.2K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags read write image metadata, exif iptc xmp extraction, image metadata editor, photo metadata library, exiv2 python binding, image-metadata, exif-iptc-xmp, media-processing [View on SkillFed](https://skillfed.io/packages/pyexiv2) · [View on PyPI](https://pypi.org/project/pyexiv2/)