ExifRead
Library to extract Exif information from digital camera image files.
What it is and what it does
exifread is a pure-Python library that reads Exif metadata embedded in digital image files. It parses Exif tags from TIFF, JPEG, JPEG XL, PNG, Webp, HEIC, and RAW formats and returns them as a dictionary mapping tag names to their values. The library supports both standard Exif tags (Image, Thumbnail, GPS, Interoperability) and manufacturer-specific MakerNote tags for cameras where specifications are available.
You can use it as a command-line tool to inspect image metadata or import it into Python scripts to programmatically extract and process tag data. The library offers options to speed up processing by skipping MakerNote details or thumbnail extraction, to stop at a specific tag, to enforce strict validation, or to convert tag values to built-in Python types for easier serialization. It requires Python 3.7 or later and has no external dependencies.
Use it for:
- Extract camera settings (ISO, aperture, shutter speed) from photos for analysis or logging
- Read GPS coordinates from geotagged images to build location-aware photo applications
- Correct image orientation before display by reading the Exif Orientation tag
- Batch-process image metadata from the command line to audit or organize photo collections
- Serialize image metadata to JSON for storage or API responses using builtin_types mode
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Extracts Exif metadata from digital image files in formats including TIFF, JPEG, JPEG XL, PNG, Webp, HEIC, and RAW, returning tag data as a dictionary for programmatic access or command-line inspection.
Yes. exifread is a stable, actively maintained library with no dependencies, low install friction, and a clear use case for anyone working with image metadata. The BSD-3-Clause license is permissive. No known vulnerabilities. Install it if you need to extract Exif data from photos.
Install
exifread on PyPI
pip
pip install exifreaduv
uv add exifreadpoetry
poetry add exifreadInstalling ExifRead
Before you install
Installation is straightforward with no runtime dependencies. The package is actively maintained with a recent release (2025-08-23) and the repository shows ongoing commits and community engagement.
License in practice
Licensed under BSD-3-Clause, a permissive open-source license that allows commercial and private use with minimal restrictions—you must retain copyright notices and the license text.
Quickstart
pip install exifread
import exifread
with open('image.jpg', 'rb') as f:
tags = exifread.process_file(f)
for tag, value in tags.items():
print(f'{tag}: {value}')
Image file must be opened in binary mode ('rb'). Supported formats are TIFF, JPEG, JPEG XL, PNG, Webp, HEIC, and RAW.
Verify before relying
- Performance characteristics when processing large image files or batches
- Completeness of MakerNote support across different camera manufacturers
- Whether the library handles corrupted or malformed Exif data gracefully
Package facts
| License | Copyright (c) 2002-2007 Gene Cash Copyright (c) 2007-2025 Ianaré Sévi and contributors Redistribution and use in source and binary forms, with or without modification, are permitted provided that the… (full text in the JSON record) (unclear) |
| Python support | supports the current Python release (>=3.7) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 356 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,125,033/month — #4,328 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: exifread-3.5.1-py3-none-any.whl
Keywords: exif, image, metadata, photo
Tags
More Utilities packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
charset-normalizerDetects and normalizes text encoding from…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
PygmentsPygments is a syntax highlighter that colorizes…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
imagesizeReads image file headers to extract dimensions,…
permissive · top 1,000 on PyPI
piexifPiexif reads, writes, and manipulates EXIF…
permissive · top 5,000 on PyPI
exifRead, modify, and write EXIF metadata in image…
permissive · top 15,000 on PyPI
PyExifToolPyExifTool is a Python wrapper that…
copyleft · top 15,000 on PyPI
pyexiv2pyexiv2 reads and writes image metadata (EXIF,…
copyleft · top 15,000 on PyPI
tifffileRead and write TIFF files and TIFF-like formats…
permissive · top 1,000 on PyPI
OpenImageIOOpenImageIO reads, writes, and processes images…
permissive · top 15,000 on PyPI
pillow-heifpillow-heif adds HEIF/HEIC image format support…
copyleft · top 5,000 on PyPI
pyheifReads HEIF/HEIC image files and exposes their…
permissive · top 15,000 on PyPI
pi-heifDecodes HEIF/HEIC image files and integrates…
copyleft · top 5,000 on PyPI