Exiftool
ExifTool meta information reader/writer
Install / Use
/learn @exiftool/ExiftoolREADME
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 | JP2 r/w | ODS r | RW2 r/w 3FR r | DSF r | JPEG r/w | ODT r | RWL r/w 3G2 r/w | DSS r | JSON r | OFR r | RWZ r 3GP r/w | DV r | JXL r/w | OGG r | RM r 7Z r | DVB r/w | K25 r | OGV r | SEQ r A r | DVR-MS r | KDC r | ONP r | SKETCH r AA r | DYLIB r | KEY r | OPUS r | SO r AAC r | EIP r | KVAR r | ORF r/w | SR2 r/w AAE r | EPS r/w | LA r | ORI r/w | SRF r AAX r/w | EPUB r | LFP r | OTF r | SRW r/w ACR r | ERF r/w | LIF r | PAC r | SVG r AFM r | EXE r | LNK r | PAGES r | SWF r AI r/w | EXIF r/w/c | LRV r/w | PBM r/w | THM r/w AIFF r | EXR r | M2TS r | PCAP r | TIFF r/w APE r | EXV r/w/c | M4A/V r/w | PCAPNG r | TNEF r ARQ r/w | F4A/V r/w | MACOS r | PCD r | TORRENT r ARW r/w | FFF r/w | MAX r | PCX r | TTC r ASF r | FITS r | MEF r/w | PDB r | TTF r AVI r | FLA r | MIE r/w/c | PDF r/w | TXT r AVIF r/w | FLAC r | MIFF r | PEF r/w | URL r AZW r | FLIF r/w | MKA r | PFA r | VCF r BMP r | FLV r | MKS r | PFB r | VNT r BPG r | FPF r | MKV r | PFM r | VRD r/w/c BTF r | FPX r | MNG r/w | PGF r | VSD r C2PA r | GIF r/w | MOBI r | PGM r/w | VSDX r CHM r | GLV r/w | MODD r | PLIST r | WAV r COS r | GPR r/w | MOI r | PICT r | WDP r/w CR2 r/w | GZ r | MOS r/w | PMP r | WEBP r/w CR3 r/w | HDP r/w | MOV r/w | PNG r/w | WEBM r CRM r/w | HDR r | MP3 r | PPM r/w | WMA r CRW r/w | HEIC r/w | MP4 r/w | PPT r | WMV r CS1 r/w | HEIF r/w | MPC r | PPTX r | WOFF r CSV r | HTML r | MPG r | PS r/w | WOFF2 r CUR r | ICC r/w/c | MPO r/w | PSB r/w | WPG r CZI r | ICO r | MQV r/w | PSD r/w | WTV r DCM r | ICS r | MRC r | PSP r | WV r DCP r/w | IDML r | MRW r/w | QTIF r/w | X3F r/w DCR r | IIQ r/w | MXF r | R3D r | XCF r DFONT r | IND r/w | NEF r/w | RA r | XISF r DIVX r | INSP r/w | NKA r | RAF r/w | XLS r DJVU r | INSV r | NKSC r/w | RAM r | XLSX r DLL r | INX r | NRW r/w | RAR r | XMP r/w/c DNG r/w | ISO r | NUMBERS r | RAW r/w | ZIP r DOC r | ITC r | NXD r | RIFF r | DOCX r | J2C r | O r | RSRC r | DPX r | JNG r/w | ODP r | RTF 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-13.53.tar.gz | tar -xf - cd Image-ExifTool-13.53 ./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 names/times) Win32::FindFile (for Windows Unicode directory support, app only) Win32API::File (for Windows Unicode file names and file times) Compress::Raw::Lzma (for reading encoded 7z files) File::StatX (for reading FileCreateDate on Linux systems) IO::Compress::RawDeflate (for writing FLIF images) IO::Uncompress::RawInflate (for reading FLIF images) IO::Compress::Brotli (for writing compressed JXL metadata) IO::Uncompress::Brotli (for reading compressed JXL metadata)
COPYRIGHT AND LICENSE
Copyright 2003-2026, Phil Harvey
This is free software; you can redistribute it and/or modify it under the same terms as Perl itself (either the Perl Artistic License or GPL).
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
