ExifTool by Phil Harvey (philharvey66 at gmail.com)
----------------------------------------------------------------------------
ExifTool is a customizable set of Perl modules plus a full-featured
command-line application for reading and writing meta information in a wide
variety of files, including the maker note information of many digital
cameras by various manufacturers such as Canon, Casio, DJI, FLIR, FujiFilm,
GE, HP, JVC/Victor, Kodak, Leaf, Minolta/Konica-Minolta, Nikon, Nintendo,
Olympus/Epson, Panasonic/Leica, Pentax/Asahi, Phase One, Reconyx, Ricoh,
Samsung, Sanyo, Sigma/Foveon and Sony.
Below is a list of file types and meta information formats currently
supported by ExifTool (r = read, w = write, c = create):
File Types
------------+-------------+-------------+-------------+------------
360 r/w | DR4 r/w/c | JNG r/w | O r | RAW r/w
3FR r | DSS r | JP2 r/w | ODP r | RIFF r
3G2 r/w | DV r | JPEG r/w | ODS r | RSRC r
3GP r/w | DVB r/w | JSON r | ODT r | RTF r
A r | DVR-MS r | JXL r | OFR r | RW2 r/w
AA r | DYLIB r | K25 r | OGG r | RWL r/w
AAE r | EIP r | KDC r | OGV r | RWZ r
AAX r/w | EPS r/w | KEY r | ONP r | RM r
ACR r | EPUB r | LA r | OPUS r | SEQ r
AFM r | ERF r/w | LFP r | ORF r/w | SKETCH r
AI r/w | EXE r | LIF r | ORI r/w | SO r
AIFF r | EXIF r/w/c | LNK r | OTF r | SR2 r/w
APE r | EXR r | LRV r/w | PAC r | SRF r
ARQ r/w | EXV r/w/c | M2TS r | PAGES r | SRW r/w
ARW r/w | F4A/V r/w | M4A/V r/w | PBM r/w | SVG r
ASF r | FFF r/w | MACOS r | PCD r | SWF r
AVI r | FITS r | MAX r | PCX r | THM r/w
AVIF r/w | FLA r | MEF r/w | PDB r | TIFF r/w
AZW r | FLAC r | MIE r/w/ | PDF r/w | TORRENT r
BMP r | FLIF r/w | MIFF r c | PEF r/w | TTC r
BPG r | FLV r | MKA r | PFA r | TTF r
BTF r | FPF r | MKS r | PFB r | TXT r
CHM r | FPX r | MKV r | PFM r | VCF r
COS r | GIF r/w | MNG r/w | PGF r | VRD r/w/c
CR2 r/w | GPR r/w | MOBI r | PGM r/w | VSD r
CR3 r/w | GZ r | MODD r | PLIST r | WAV r
CRM r/w | HDP r/w | MOI r | PICT r | WDP r/w
CRW r/w | HDR r | MOS r/w | PMP r | WEBP r
CS1 r/w | HEIC r/w | MOV r/w | PNG r/w | WEBM r
CSV r | HEIF r/w | MP3 r | PPM r/w | WMA r
CZI r | HTML r | MP4 r/w | PPT r | WMV r
DCM r | ICC r/w/c | MPC r | PPTX r | WTV r
DCP r/w | ICS r | MPG r | PS r/w | WV r
DCR r | IDML r | MPO r/w | PSB r/w | X3F r/w
DFONT r | IIQ r/w | MQV r/w | PSD r/w | XCF r
DIVX r | IND r/w | MRC r | PSP r | XLS r
DJVU r | INSP r/w | MRW r/w | QTIF r/w | XLSX r
DLL r | INSV r | MXF r | R3D r | XMP r/w/c
DNG r/w | INX r | NEF r/w | RA r | ZIP r
DOC r | ISO r | NKSC r/w | RAF r/w |
DOCX r | ITC r | NRW r/w | RAM r |
DPX r | J2C r | NUMBERS r | RAR r |
Meta Information
----------------------+----------------------+---------------------
EXIF r/w/c | CIFF r/w | Ricoh RMETA r
GPS r/w/c | AFCP r/w | Picture Info r
IPTC r/w/c | Kodak Meta r/w | Adobe APP14 r
XMP r/w/c | FotoStation r/w | MPF r
MakerNotes r/w/c | PhotoMechanic r/w | Stim r
Photoshop IRB r/w/c | JPEG 2000 r | DPX r
ICC Profile r/w/c | DICOM r | APE r
MIE r/w/c | Flash r | Vorbis r
JFIF r/w/c | FlashPix r | SPIFF r
Ducky APP12 r/w/c | QuickTime r | DjVu r
PDF r/w/c | Matroska r | M2TS r
PNG r/w/c | MXF r | PE/COFF r
Canon VRD r/w/c | PrintIM r | AVCHD r
Nikon Capture r/w/c | FLAC r | ZIP r
GeoTIFF r/w/c | ID3 r | (and more)
See html/index.html for more details about ExifTool features.
ExifTool can be downloaded from
https://exiftool.org/
RUNNING
The exiftool script can be run right away without the need to install
Image::ExifTool. For example, from within the exiftool directory you can
extract the information from one of the included test files by typing:
./exiftool t/images/ExifTool.jpg
If you move the exiftool script to a different directory, you must also
either move the contents of the lib directory or install the Image::ExifTool
package so the script can find the necessary libraries.
Note: If you are using the Windows cmd shell, you may need to rename
'exiftool' to 'exiftool.pl' to run it directly from the command line.
Alternatively, you can run exiftool with the command 'perl exiftool'.
IF YOU ARE STILL CONFUSED
The exiftool script is a command line application. You run it by typing
commands in a terminal window. The first step is to determine the name of
the directory where you downloaded the ExifTool distribution package.
Assuming, for example, you downloaded it to a folder called "Desktop" in
your home directory, then you would type the following commands in a
terminal window to extract and run ExifTool:
cd ~/Desktop
gzip -dc Image-ExifTool-12.44.tar.gz | tar -xf -
cd Image-ExifTool-12.44
./exiftool t/images/ExifTool.jpg
Note: These commands extract meta information from one of the test images.
To use one of your images instead, enter the full path name of your file in
place of "t/images/ExifTool.jpg".
INSTALLATION
You can install the Image::ExifTool package to make it available for use by
other Perl scripts by typing the following:
perl Makefile.PL
make
make test
make install
Notes:
i) You need root access for the last step above.
ii) Some Perl installations (like the standard OSX installation) may not
contain the necessary files to complete the first step above. But no
worries: You can install ExifTool manually by moving 'exiftool' and the
'lib' directory to any directory in your current PATH (ie. /usr/bin).
iii) In Windows, "dmake" or "nmake" may be used if "make" is not
available.
(Also see html/install.html for more help with installation.)
DEPENDENCIES
Requires Perl version 5.004 or later. No other special libraries are
required, however the following modules are recommended for decoding
compressed and/or encrypted information from the indicated file types, and
for calculating digest values and providing other features listed below:
Archive::Zip (ZIP, DOCX, PPTX, XLSX, ODP, ODS, ODT, EIP, iWork)
Compress::Zlib (DNG, PNG, PDF, DCM, MIE and SWF files)
Digest::MD5 (PDF files, IPTC information, and JPG Extended XMP)
Digest::SHA (PDF with AES-256 encryption)
IO::Compress::Bzip2 (RWZ files)
Time::HiRes (for generating ProcessingTime tag)
POSIX::strptime (for inverse date/time conversion)
Time::Piece (alternative to POSIX::strptime)
Unicode::LineBreak (for column alignment of alternate-language output)
Win32::API (for proper handling of Windows file times)
Win32::FindFile (for Windows Unicode directory support, app only)
Win32API::File (for Windows Unicode file names and file times)
IO::Compress::RawDeflate (for writing FLIF images)
IO::Uncompress::RawInflate (for reading FLIF images)
COPYRIGHT AND LICENSE
Copyright 2003-2022, Phil Harvey
This is free software; you can redistribute it and/or modify it under the
same terms as Perl itself.
DISTRIBUTION FILES
Below is a list of the files/directories included in the full ExifTool
distribution package:
Changes - Revision history
MANIFEST - Full list of distribution files
META.json - Standard CPAN dependency file (JSON format)
META.yml - Standard CPAN dependency file (YAML format)
Makefile.PL - Makefile for installation
README - This file
arg_files/ - Argument files to convert metadata formats:
exif2iptc.args - Arguments for converting EXIF to IPTC
exif2xmp.args - Arguments for converting EXIF to XMP
gps2xmp.args - Arguments for converting GPS to XMP
iptc2exif.args - Arguments for converting IPTC to EXIF
iptc2xmp.args - Arguments for converting IPTC to XMP
iptcCore.args - Complete list of IPTC Core XMP tags
pdf2xmp.args - Arguments for converting PDF to XMP
xmp2exif.args - Arguments for converting XMP to EXIF
xmp2gps.args - Arguments for converting XMP to GPS
xmp2iptc.args - Arguments for converting XMP to IPTC
xmp2pdf.args - Arguments for converting XMP to PDF
config_files/ - Sample ExifTool configuration files:
acdsee.config - Definitions for writing ACDSee XMP regions
age.config - Calculate Age of person in photo
bibble.config - Definitions for writing Bibble XMP tags
convert_regions.config - Convert between MWG, MP and IPTC regions
cuepointlist.config - Extract cue points and labels as a list
depthmap.config - Extract Google DepthMap images
example.config - General example showing config features
fotoware.config - Definitions for writing Fotoware XMP tags
gps2utm.config - Generate UTM coordinate tags from GPS info
gpsdatetime.config - Make GPSDateTime from CreateDate+SampleTime
nksc.config - Decode tags in Nikon ViewNX NKSC files
photoshop_paths.config - For extracting or copying Photoshop paths
picasa_faces.config - Convert from Picasa to MWG/MP face regions
rotate_regions.config - Rotate MWG and MP region tags
tiff_version.config - Determine the version of a TIFF file
time_zone.config - Calculate time zone from EXIF tags
exiftool - The exiftool application (Perl script)
fmt_files/ - Output formatting example files:
gpx.fmt - Format file for creating GPX track
gpx_wpt.fmt - Format file for creating GPX waypoints
kml.fmt - Format file for creating KML placemarks
kml_track.fmt - Format file for creating KML track
html/ - HTML documentation
html/TagNames/ - HTML tag name documentation
lib/ - ExifTool Perl library modules
perl-Image-ExifTool.spec - Red Hat Packaging Manager specification file
t/ - Verification test code
t/images/ - Verification test images
ADDITIONAL INFORMATION
Read the following files included in the full distribution for more
information:
html/index.html - Main ExifTool documentation
html/install.html - Installation instructions
html/history.html - Revision history
html/ExifTool.html - API documentation
html/TagNames/index.html - Tag name documentation
html/geotag.html - Geotag feature
html/faq.html - Frequently asked questions
html/filename.html - Renaming/moving files
html/metafiles.html - Working with metadata sidecar files
html/struct.html - Working with structured XMP information
lib/Image/ExifTool/README - ExifTool library modules documentation
and if you have installed Image::ExifTool, you can also consult perldoc or
the man pages:
perldoc exiftool
perldoc Image::ExifTool
perldoc Image::ExifTool::TagNames
man exiftool
man Image::ExifTool
man Image::ExifTool::TagNames
Note: If the man pages don't work, it is probably because your man path is
not set to include the installed documentation. See "man man" for
information about how to set the man path.
----------------------------------------------------------------------------