PyExifTool 0.5.6

Creator: codyrutscher

Last updated:

Add to Cart

Description:

PyExifTool 0.5.6

PyExifTool is a Python library to communicate with an instance of
Phil Harvey’s ExifTool command-line application.
The library provides the class exiftool.ExifTool that runs the command-line
tool in batch mode and features methods to send commands to that
program, including methods to extract meta-information from one or
more image files. Since exiftool is run in batch mode, only a
single instance needs to be launched and can be reused for many
queries. This is much more efficient than launching a separate
process for every single query.

Contents

Example Usage
Getting PyExifTool

PyPI
From Source


PyExifTool Dependencies

Python
Phil Harvey’s exiftool


Documentation

Package Structure


Brief History
Licence



Example Usage
Simple example:
import exiftool

files = ["a.jpg", "b.png", "c.tif"]
with exiftool.ExifToolHelper() as et:
metadata = et.get_metadata(files)
for d in metadata:
print("{:20.20} {:20.20}".format(d["SourceFile"],
d["EXIF:DateTimeOriginal"]))
Refer to documentation for more Examples and Quick Start Guide


Getting PyExifTool

PyPI
Easiest: Install a version from the official PyExifTool PyPI
python -m pip install -U pyexiftool


From Source

Check out the source code from the github repository


git clone git://github.com/sylikc/pyexiftool.git
Alternatively, you can download a tarball.



Run setup.py to install the module from source


python setup.py install [--user|--prefix=<installation-prefix>]







PyExifTool Dependencies

Python
PyExifTool runs on Python 3.6+. (If you need Python 2.6 support,
please use version v0.4.x). PyExifTool has been tested on Windows and
Linux, and probably also runs on other Unix-like platforms.


Phil Harvey’s exiftool
For PyExifTool to function, exiftool command-line tool must exist on
the system. If exiftool is not on the PATH, you can specify the full
pathname to it by using ExifTool(executable=<full path>).
PyExifTool requires a minimum version of 12.15 (which was the first
production version of exiftool featuring the options to allow exit status
checks used in conjuction with -echo3 and -echo4 parameters).
To check your exiftool version:
exiftool -ver

Windows/Mac
Windows/Mac users can download the latest version of exiftool:
https://exiftool.org


Linux
Most current Linux distributions have a package which will install exiftool.
Unfortunately, some do not have the minimum required version, in which case you
will have to build from source.

Ubuntu
sudo apt install libimage-exiftool-perl

CentOS/RHEL
yum install perl-Image-ExifTool






Documentation
The current documentation is available at sylikc.github.io.
http://sylikc.github.io/pyexiftool/

Package Structure
PyExifTool was designed with flexibility and extensibility in mind. The library consists of a few classes, each with increasingly more features.
The base ExifTool class contains the core functionality exposed in the most rudimentary way, and each successive class inherits and adds functionality.

exiftool.ExifTool is the base class with core logic to interface with PH’s ExifTool process.
It contains only the core features with no extra fluff.
The main methods provided are execute() and execute_json() which allows direct interaction with the underlying exiftool process.

The API is considered stable and should not change much with future releases.


exiftool.ExifToolHelper exposes some of the most commonly used functionality. It overloads
some inherited functions to turn common errors into warnings and adds logic to make
exiftool.ExifTool easier to use.
For example, ExifToolHelper provides wrapper functions to get metadata, and auto-starts the exiftool instance if it’s not running (instead of raising an Exception).
ExifToolHelper demonstrates how to extend ExifTool to your liking if your project demands customizations not directly provided by ExifTool.

More methods may be added and/or slight API tweaks may occur with future releases.


exiftool.ExifToolAlpha further extends the ExifToolHelper and includes some community-contributed not-very-well-tested methods.
These methods were formerly added ad-hoc by various community contributors, but no longer stand up to the rigor of the current design.
ExifToolAlpha is not up to the rigorous testing standard of both
ExifTool or ExifToolHelper. There may be old, buggy, or defunct code.

This is the least polished of the classes and functionality/API may be changed/added/removed on any release.
NOTE: The methods exposed may be changed/removed at any time.
If you are using any of these methods in your project, please Submit an Issue to start a discussion on making those functions more robust, and making their way into ExifToolHelper.
(Think of ExifToolAlpha as ideas on how to extend ExifTool, where new functionality which may one day make it into the ExifToolHelper class.)






Brief History
PyExifTool was originally developed by Sven Marnach in 2012 to answer a
stackoverflow question Call exiftool from a python script?. Over time,
Sven refined the code, added tests, documentation, and a slew of improvements.
While PyExifTool gained popularity, Sven never intended to maintain it as
an active project. The original repository was last updated in 2014.
Over the years, numerous issues were filed and several PRs were opened on the
stagnant repository. In early 2019, Martin Čarnogurský created a
PyPI release from the 2014 code with some minor updates. Coincidentally in
mid 2019, Kevin M (sylikc) forked the original repository and started merging
the PR and issues which were reported on Sven’s issues/PR page.
In late 2019 and early 2020 there was a discussion started to
Provide visibility for an active fork. There was a conversation to
transfer ownership of the original repository, have a coordinated plan to
communicate to PyExifTool users, amongst other things, but it never materialized.
Kevin M (sylikc) made the first release to the PyPI repository in early 2021.
At the same time, discussions were started, revolving around
Deprecating Python 2.x compatibility and refactoring the code and classes.
The latest version is the result of all of those discussions, designs,
and development. Special thanks to the community contributions, especially
Jan Philip Göpfert, Seth P, and Kolen Cheung.


Licence
PyExifTool is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the licence, or
(at your option) any later version, or the BSD licence.
PyExifTool is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See LICENSE for more details.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.