ExifTool by Phil Harvey

Read, Write and Edit Meta Information!

Also available -->






















(4.7 MB) -

ExifTool is a platform-independent plus a for reading, writing and editing meta information in a . ExifTool supports many different metadata formats including , , , , , , , , , and , , as well as the maker notes of many digital cameras by , , , , , , , , , , , , , , , , , , , , , , , and .

ExifTool is also available as a stand-alone Windows executable and a MacOS package: (Note that these versions contain the executable only, and do not include the HTML documentation or other files of the full distribution above.)

(6.4 MB)

The stand-alone Windows executable does not require Perl. Just download and un-zip the archive then double-click on "exiftool(-k).exe" to read the application documentation, drag-and-drop files and folders to view meta information, or rename to "exiftool.exe" for command-line use. Runs on all versions of Windows.

(Note: Oliver Betz provides an that avoids some problems of the self-extracting archive version above. Please post if you have any problems/comments with this version.)

MacOS Package: (3.0 MB)

The MacOS package installs the ExifTool command-line application and libraries in /usr/local/bin. After installing, type "exiftool" in a Terminal window to run exiftool and read the application documentation.

Read the for help installing ExifTool on Windows, MacOS and Unix systems.

If you find the need to use "find" or "awk" in conjunction with ExifTool, then you probably haven't discovered the full power of ExifTool. Read about the -ext, -if, -p and -tagsFromFile options in the . (This is .)

"In my experience, nothing but nothing is as complete, powerful, and flexible as Phil Harvey's exiftool ... I've never seen anything that's in the same ballpark for power." -
"While there are a lot of image tools available, nothing comes close for accessing/updating the metadata like ExifTool" -
"Fast, reliable and amazingly comprehensive ..." -
"... the one piece of free software that gets the most detailed exif data of /any/ tool I've found." -
"ExifTool makes every other EXIF reader (and writer) than I've seen, including the camera manufacturers' readers, look lame." -
"Insanely great tool with a long learning curve ..." -
"ExifTool has been outstanding in our custom used Tesla image gallery build. We are able to aggregate image meta from our user base and incorporate this into development iterations to continually optimize our platform..." -
"... it's super awesome, it's super reliable and after many years of development it's still being updated!" -
"... it is the mother of all EXIF utilities; the BFG of meta-data extraction; the Pan Galactic Gargle Blaster of EXIF tools ... This thing will suck the last bit of metadata out of whatever image file you throw at it!" -
"... it is total fucking gibberish to me." -

ExifTool can Read, Write and/or Create files in the following formats. Also listed are the support levels for EXIF, IPTC, XMP, ICC_Profile and other metadata types for each file format.

File Type Support Description 1 Other
360 R/W GoPro 360 video (-based) R/W3 R/W3 R/W/C - R/W/C , R
3FR R Hasselblad RAW (-based) R R R R -
3G2, 3GP2 R/W 3rd Gen. Partnership Project 2 a/v (-based) R/W3 R/W3 R/W/C - R/W/C
3GP, 3GPP R/W 3rd Gen. Partnership Project a/v (-based) R/W3 R/W3 R/W/C - R/W/C
R Unix static library code Archive - - - - R
R Audible Audiobook - - - - R
AAE R Apple edit information (XML -based) - - - - R
AAX R/W Audible Enhanced Audiobook (-based) R/W3 R/W3 R/W/C - R/W/C
R American College of Radiology ACR-NEMA (DICOM-like) - - - - R
R Adobe [Composite/Multiple Master] Font Metrics - - - - R
AI, AIT R/W Adobe Illustrator [Template] ( or ) R/W/C4 R/W/C4 R/W/C5 R/W/C4 R/W/C , R
R Audio Interchange File Format [Compressed] - - - - R
R Monkey's Audio - - - - R
ARQ R/W Sony Alpha Pixel-Shift RAW (-based) R/W/C R/W/C R/W/C R/W/C R/W
ARW R/W Sony Alpha RAW (-based) R/W/C R/W/C R/W/C R/W/C R/W
R Microsoft Advanced Systems Format - - R - R
AVI R Audio Video Interleaved (-based) R3 - R - R
AVIF R/W AV1 Image File Format (-based) R/W/C - R/W/C R/W R/W
R Windows BitMaP / Device Independent Bitmap - - - - R
R Better Portable Graphics R - R R R
R BigTIFF (64-bit Tagged Image File Format) R R R R -
R Microsoft Compiled HTML format - - - - R
COS R Capture One Settings (XML-based) - - - - R XML
CR2 R/W Canon RAW 2 (-based) () R/W/C R/W/C R/W/C R/W/C R/W , R/W/C 2
CR3 R/W Canon RAW 3 (-based) () R/W/C - R/W/C - R/W , R/W/C 2
CRM R/W Canon RAW Movie (-based) R/W/C - R/W/C - R/W
R/W Canon RAW Camera Image File Format () - - R/W/C - R/W , R/W/C 2
CS1 R/W Sinar CaptureShop 1-shot RAW (-based) R/W/C R/W/C R/W/C R/W/C R
CSV R Comma-Separated Values - - - - R
R Zeiss Integrated Software RAW () - - - - R , R XML
R DICOM - Digital Imaging and Communications in Medicine - - - - R
DCP R/W DNG Camera Profile (-like) R/W/C R/W/C R/W/C R/W/C -
DCR R Kodak Digital Camera RAW (-based) R R R R -
R Macintosh Data Fork Font - - - - R
DIVX R DivX media format (-based) - - R - R
R DjVu image (AIFF-like) - - R - R
R/W Digital Negative (-based) R/W/C R/W/C R/W/C R/W/C -
DOC, DOT R Microsoft Word Document/Template (-like) - - R R R
R Office Open XML Document [Macro-enabled] - - - - R
R Office Open XML Document Template [Macro-enabled] - - - - R
R Digital Picture Exchange - - - - R
R/W/C2 Canon DPP version 4 Recipe - - - - R/W/C 2
R Digital Speech Standard [2] - - - - R
R MacOS Mach-O executable and library files - - - - R
R Digital Video - - - - R
DVB R/W Digital Video Broadcasting (-based) R/W3 R/W3 R/W/C - R/W/C
DVR-MS R Microsoft Digital Video Recording (-based) - - R - R
EIP R Capture One Enhanced Image Package (-based) R - - - R XML
R/W [Encapsulated] PostScript Format R/W/C R/W/C R/W/C R/W/C R/W/C , R
EPUB R Electronic Publication (ZIP/XML-based) - - - - R XML
ERF R/W Epson RAW Format (-based) R/W/C R/W/C R/W/C R/W/C R/W
R DOS/Windows executable and library files - - - - R
R/W/C Exchangeable Image File Format metadata (-based) R/W/C - - - -
R Open EXR (Extended Range) - - - - R
EXV R/W/C Exiv2 metadata file (-based) R/W/C R/W/C R/W/C R/W/C
F4A, F4B, F4P, F4V R/W Adobe Flash Player 9+ Audio/Video (-based) R/W3 R/W3 R/W/C - R/W/C
FFF R/W6 Hasselblad Flexible File Format (-based) R/W/C R/W/C R/W/C R/W/C -
R FLIR Systems thermal image File Format - - - - R
R Flexible Image Transport System - - - - R
FLA R Macromedia/Adobe Flash project (-like) - - R R R
R Free Lossless Audio Codec - - - - R
R/W Free Lossless Image Format R/W/C - R/W/C R/W/C R
R Flash Video - - R - R
R FLIR Public image Format - - - - R
R FlashPix image - - R R R
R/W Compuserve Graphics Interchange Format - - R/W/C R/W/C R/W/C
GPR R/W GoPro RAW (-based) R/W/C R/W/C R/W/C R/W/C -
R GNU ZIP compressed archive - - - - R
HDP, WDP, JXR R/W Windows HD Photo / Media Photo / JPEG XR (-based) R/W/C R/W/C R/W/C R/W/C -
R Radiance RGBE High Dynamic-Range - - - - R
HEIC, HEIF, HIF R/W High Efficiency Image Format (-based) R/W/C - R/W/C R/W R/W
R [Extensible] Hyper Markup Language - - - - R
R/W/C1 International Color Consortium color profile - - - R/W/C -
R iCalendar Schedule - - - - R
IDML R Adobe InDesign Markup Language (ZIP/XML-based) - - - - R XML
R/W Phase One Intelligent Image Quality RAW (-based) R/W/C R/W/C R/W/C R/W/C R/W
IND, INDD, INDT R/W Adobe InDesign Document/Template - - R/W/C - -
INSP R/W Insta360 Picture (-based) R/W/C R/W/C R/W/C R/W/C
INSV R Insta360 Video (-based) - - R - R
INX R Adobe InDesign Interchange (XML-based) - - R - -
R ISO 9660 disk image - - - - R
R iTunes Cover Flow artwork - - - - R
J2C, J2K, JPC R JPEG 2000 codestream R3 R3 R R R 3
R/W JPEG 2000 image [Compound/Extended] R/W/C3 R/W/C3 R/W/C R R/W/C , R 3
R/W Joint Photographic Experts Group image R/W/C R/W/C R/W/C R/W/C
R JavaScript Object Notation - - - - R
K25 R Kodak DC25 RAW (-based) R R R R -
KDC R Kodak Digital Camera RAW (-based) R R R R R
R Apple iWork '09 Keynote presentation/Theme - - - - R
LA R Lossless Audio (-based) R3 - R - R
R Lytro Light Field Picture - - - - R
R Microsoft Shell Link (Windows shortcut) - - - - R
LRV R/W Low-Resolution Video (-based) R/W3 R/W3 R/W/C - R/W/C
R MPEG-2 Transport Stream (used for AVCHD video) - - - - R
M4A, M4B, M4P, M4V R/W MPEG-4 Audio/Video (-based) R/W3 R/W3 R/W/C - R/W/C
MACOS R MacOS "._" sidecar file (may have any extension) - - - - R
MAX R 3D Studio MAX (-like) - - R R R
MEF R/W Mamiya (RAW) Electronic Format (-based) R/W/C R/W/C R/W/C R/W/C -
R/W/C Meta Information Encapsulation () R/W/C R/W/C R/W/C R/W/C R/W/C
R Magick Image File Format R R R R R
R Matroska Audio/Video/Subtitle - - - - R
R Mobipocket electronic book (-based) - - - - R
MODD R Sony Picture Motion metadata (XML -based) - - - - R
R MOD Information file - - - - R
R/W Creo Leaf Mosaic (-based) R/W/C R/W/C R/W/C R/W/C R
R/W Apple QuickTime Movie R/W3 R/W3 R/W/C - R/W/C
R MPEG-1 layer 3 audio - - - - R
MP4 R/W Motion Picture Experts Group version 4 (-based) R/W3 R/W3 R/W/C - R/W/C
R Musepack Audio - - - - R
R Motion Picture Experts Group version 1 or 2 - - - - R
MPO R/W Extended Multi-Picture format ( with extensions) R/W/C R/W/C R/W/C R/W/C
R/W Sony Mobile QuickTime Video R/W3 R/W3 R/W/C - R/W/C
R/W Minolta RAW R/W/C R/W/C R/W/C R/W/C R/W
R Material Exchange Format - - - - R
NEF R/W Nikon (RAW) Electronic Format (-based) R/W/C R/W/C R/W/C R/W/C R/W
R Apple iWork '09 Numbers Template - - - - R
NRW R/W Nikon RAW (2) (-based) R/W/C R/W/C R/W/C R/W/C R/W
R Apple iWork '09 Numbers spreadsheet - - - - R
R Unix compiled code Object - - - - R
ODB, ODC, ODF, ODG,
ODI, ODP, ODS, ODT
R Open Document Database/Chart/Formula/Graphics/
Image/Presentation/Spreadsheet/ (ZIP/XML-based)
- - - - R XML
OFR R OptimFROG audio (-based) R3 - R - R
R Ogg bitstream container - - - - R
ONP R ON1 Presets - - - - R
R Ogg Opus audio - - - - R
ORF R/W Olympus RAW Format (-based) R/W/C R/W/C R/W/C R/W/C R/W
R Open Type Font - - - - R
PAC R Lossless Predictive Audio Compression (-based) R3 - R - R
R Apple iWork '09 Pages document - - - - R
R Kodak Photo CD Image Pac - - - - R
R PC Paintbrush - - - - R
R Palm Database - - - - R
R/W Adobe Portable Document Format R3 R3 R/W/C R3 R/W/C , R
PEF R/W Pentax (RAW) Electronic Format (-based) R/W/C R/W/C R/W/C R/W/C R/W
R PostScript Font ASCII/Binary - - - - R
R Printer Font Metrics - - - - R
R Progressive Graphics File - - - - R
R Apple Picture file - - - R R
R Apple Property List (binary and XML formats) - - - - R
R Sony DSC-F1 Cyber-Shot image - - - - R
, R/W Portable/JPEG/Multiple-image Network Graphics R/W/C3 R/W/C3 R/W/C R/W/C R/W/C
PPM, PBM, PGM R/W Portable Pixel/Bit/Gray Map - - - - R PPM, R/W/C Comment
PPT, PPS, POT R PowerPoint Presentation/Slideshow/Template (-like) - - R R R
R Office Open XML Presentation Template [Macro-enabled] - - - - R
R Office Open XML Presentation Addin [Macro-enabled] - - - - R
R Office Open XML Presentation Slideshow [Macro-enabled] - - - - R
R Office Open XML Presentation [Macro-enabled] - - - - R
R/W PhotoShop Document / Large Document / Template R/W/C R/W/C R/W/C R/W/C R
R Paint Shop Pro R - - - R
R/W QuickTime Image File R/W3 R/W3 R/W/C - R/W/C
R Redcode RAW video - - - - R
R Real Audio - - - - R
R/W FujiFilm RAW Format R/W/C R/W/C R/W/C R/W/C R/W
R Real Audio/Plug-in Metafile - - - - R
R RAR Archive - - - - R
R Kyocera Contax N Digital RAW - - - - R
R/W Panasonic RAW (-based) R/W/C R/W/C R/W/C R/W/C R/W
R Resource Interchange File Format R3 - R - R
R Real Media/Video [Variable Bitrate] - - - - R
R Mac OS Resource - - - - R
R Rich Format - - - - R
R/W Panasonic RAW 2 (-based) R/W/C R/W/C R/W/C R/W/C R/W
R/W Leica RAW (-based) R/W/C R/W/C R/W/C R/W/C R/W
R Rawzor compressed image R R R R R
R FLIR Systems image Sequence - - - - R
SKETCH R Sketch design file - - - - R
R Unix ELF executable and Shared Object files - - - - R
SR2 R/W Sony RAW 2 (-based) R/W/C R/W/C R/W/C R/W/C R/W
SRF R Sony RAW Format (-based) R R R R R
SRW R/W Samsung RAW format (-based) R/W/C R/W/C R/W/C R/W/C R/W
R Scalable Vector Graphics (XML-based) - - - - R
R Shockwave Flash - - R - R
THM R/W Thumbnail image () R/W/C R/W/C R/W/C R/W/C
R Office Open XML Theme - - - - R
R/W Tagged Image File Format R/W/C R/W/C R/W/C R/W/C R/W/C 1, R/W
R True Type Font/Collection - - - - R
R BitTorrent description file - - - - R
R files - - - - R
R Virtual Card - - - - R
VOB R Video Object (-based) - - - - R
R/W/C2 Canon DPP Recipe Data - - R/W/C - R/W/C 2
VSD R Microsoft Visio Drawing (-like) - - R R R
WAV R Windows digital audio WAVeform (-based) R3 - R - R
WEBM R Google Web Movie (-based) - - - - R
WEBP R Google Web Picture (-based) R3 - R - R
WMA, WMV R Windows Media Audio/Video (-based) - - R - R
R Windows recorded TV show - - - - R
WV R WavePack lossless audio (-based) R3 - R - R
R/W Sigma/Foveon RAW R/W/C R/W/C R/W/C R/W/C R/W , R
R GIMP native image format R R R R R
XLS, XLT R Microsoft Excel Spreadsheet/Template (-like) - - R R R
R Office Open XML Spreadsheet [Macro-enabled/Binary] - - - - R
R Office Open XML Spreadsheet Template [Macro-enabled] - - - - R
R/W/C Extensible Metadata Platform sidecar file - - R/W/C - -
R ZIP archive - - - - R
1 Block write only, 2 Block create only, 3 Non-standard format, 4 Only writable for PostScript-format file type, 5 Only writable for PDF-format file type, 6 Only writable when ignoring minor errors due to

ExifTool can Read, Write and/or Create the following types of meta information in JPEG images:

JPEG Meta Information Support Description
APP0 - R/W/C JPEG File Interchange Format
APP0 - R Extended JFIF
APP0 - R/W (used by some Canon models)
APP0 - R JPEG AVI information
APP0 - R Photobucket Ocad segment
APP1 - R/W/C Exchangeable Image File Format (multi-segment)
APP1 - R/W/C Extensible Metadata Platform (multi-segment)
APP1 - R Casio QV-7000SX QVCI information
APP1 - R FLIR thermal imaging data (multi-segment)
APP1 - RawThermalImage R Thermal image from Parrot Bebop-Pro Thermal drone
APP2 - R/W/C International Color Consortium (multi-segment)
APP2 - R FlashPix Ready (multi-segment)
APP2 - R Multi-Picture Format
APP2 - PreviewImage R Samsung/GE APP2 preview image (multi-segment)
APP3 - R/W Kodak Meta information (EXIF-like)
APP3 - R Stereo Still Image format
APP3 - ThermalData R Thermal data from DJI RJPEG file (multi-segment)
APP3 - PreviewImage R Samsung/HP preview image (multi-segment)
APP4 - R (presumably written by mobile software)
APP4 - R Thermal parameters from DJI RJPEG file
APP4 - R FlashPix Ready in non-standard location (multi-segment)
APP4 - PreviewImage R (continued from APP3)
APP5 - R Ricoh custom fields
APP5 - R Samsung Unique ID
APP5 - ThermalCalibration R Thermal calibration data from DJI RJPEG file
APP5 - PreviewImage R (continued from APP4)
APP6 - R Toshiba PrintIM
APP6 - R National Imagery Transmission Format
APP6 - R Hewlett-Packard Photosmart R837 TDHD information
APP6 - R GoPro Metadata Format (GPMF) information
APP6 - DJI_DTAT R DJI Thermal Analysis Tool record (JSON format)
APP7 - R Pentax APP7 maker notes
APP7 - R Qualcomm Camera Attributes
APP7 - Huawei R Huawei APP7 maker notes (extract with Unknown option)
APP8 - R Still Picture Interchange File Format
APP9 - R Media Jukebox XML information
APP10 - Comment R PhotoStudio Unicode Comment
APP11 - R JPEG-HDR compressed ratio image
APP12 - R ASCII-based Picture Information
APP12 - R/W/C Photoshop "Save for Web"
APP13 - R/W/C Image Resource Block (multi-segment, includes )
APP13 - R Adobe Color Management
APP14 - R/W/C Adobe DCT filter
APP15 - R GraphicConverter quality
COM R/W/C JPEG Comment (multi-segment)
DQT R (used to calculate the tag value)
R JPEG Start Of Frame
R/W AXS File Concatenation Protocol (includes )
R/W/C Canon DPP Recipe Data (includes )
R/W FotoWare FotoStation (includes )
R/W Camera Bits Photo Mechanic
R/W
R Samsung Galaxy trailer
Insta360 trailer R Insta360 trailer found in INSP files
PreviewImage trailer R/W/C (preview image written after JPEG EOI)
EmbeddedVideo trailer R (extracted only with ExtractEmbedded option)
1 All trailers except Samsung, Insta360, PreviewImage and EmbeddedVideo also have R/W support in TIFF images.

Requires Perl 5.004 or later. No other libraries or software required, but some optional Perl modules may be added to enable certain ExifTool features (for details, see the DEPENDENCIES section of the README file included in the full distribution).

Windows users: A version of ExifTool is available which doesn't require Perl. You can also use the pure Perl version if you already have Perl installed. (You can get a good, free Perl interpreter from .)

Everyone else (Mac, Unix, etc): Don't worry, you already have Perl installed.

The provides a convenient command-line interface for the Perl package (both included in the full distribution). Once you have downloaded and extracted the distribution, you can immediately run exiftool (without building or installing) by typing "DIR/exiftool FILE" (or "perl DIR/exiftool FILE" in Windows), where DIR is the exiftool directory and FILE is the name of an image file, including directory name. Read the or the README file included in the full distribution for help installing ExifTool.

Many command-line options are available to allow you to access a wide range of features. Run exiftool with no arguments for a .

Running in Windows

i) From the command line:

The Perl application ("exiftool") is run by typing "perl exiftool". Alternately, you may be able to rename it to "exiftool.pl" and type "exiftool.pl", but this requires that the proper Windows associations have been made for the the ".pl" extension.

The stand-alone version ("exiftool(-k).exe") should be renamed to "exiftool.exe" to allow it to be run by typing "exiftool" at the command line.

If the exiftool executable ("exiftool.pl" or "exiftool.exe") is not in the current directory or your system PATH, then its directory must be specified on the command line (eg. by typing "c:\path_to_exiftool\exiftool.pl" or "c:\path_to_exiftool\exiftool").

Note that when typing commands in the "cmd.exe" shell, you should use double quotes instead of single quotes as shown in some examples.

ii) Stand-alone version in the Windows GUI:

Double-click on "exiftool(-k).exe" to read the application documentation, or drag-and-drop files and folders to run exiftool on the selected files.

Simple options may be added inside brackets in the name of the stand-alone executable. (But note that the characters /\?*:|"<> may not be used because they are invalid in Windows file names.) In this way, the behaviour of the drag-and-drop application can be customized. For example:

Executable Name Operation
exiftool(-k).exe
Print meta information in window and pause before terminating.
exiftool(-k -a -u -g1 -w txt).exe
Generate output ".txt" files with detailed meta information.
exiftool(-k -o %d%f.xmp).exe
Generate sidecar ".xmp" files.
exiftool(-copyright='Phil Harvey').exe
Add copyright information (and don't pause before terminating).

Hint: Options may also be added to the "Target" property of a Windows shortcut for the executable. Using a shortcut has 3 advantages over adding options in the file name: 1) different shortcuts may be created without requiring multiple copies of the executable, 2) characters which are invalid in file names may be used, and 3) the shortcuts can be given more meaningful (and convenient) file names.

As well, it may be useful to increase the window and buffer sizes to display more information: Right-click on the window's title bar then select "Properties" from the menu and change the window layout settings.

> exiftool -h -canon t/images/Canon.jpg
 
File Name Canon.jpg
Camera Model Name Canon EOS DIGITAL REBEL
Date/Time Original 2003:12:04 06:46:52
Shooting Mode Bulb
Shutter Speed 4
Aperture 14.0
Metering Mode Center-weighted average
Exposure Compensation 0
ISO 100
Lens 18.0 - 55.0 mm
Focal Length 34.0 mm
Image Size 8x8
Quality RAW
Flash No Flash
White Balance Auto
Focus Mode Manual Focus (3)
Contrast +1
Sharpness +1
Saturation +1
Color Tone Normal
Color Space sRGB
File Size 2.6 kB
File Number 118-1861
Drive Mode Continuous Shooting
Owner Name Phil Harvey
Serial Number 0560018150
> exiftool -lang de -h -canon t/images/Canon.jpg
 
Dateiname Canon.jpg
Kameramodell Canon EOS DIGITAL REBEL
Erstellungsdatum/-uhrzeit 2003:12:04 06:46:52
Aufnahmemodus Bulb
Belichtungsdauer 4
Blende 14.0
Belichtungsmessmethode Mittenbetont
Belichtungskorrektur 0
ISO-Empfindlichkeit 100
Objektiv 18.0 - 55.0 mm
Brennweite 34.0 mm
Bildgröße 8x8
Qualität RAW
Blitzmodus Blitz wurde nicht ausgelöst
Weißabgleich Automatisch
Fokus-Modus Manueller Fokus (3)
Kontrast +1
Schärfe +1
Farbsättigung +1
Farbton Normal
Farbraum sRGB
Dateigröße 2.6 kB
Dateinummer 118-1861
Aufnahmeart Serienaufnahme
Name des Besitzers Phil Harvey
Seriennummer 0560018150

Verbose and HtmlDump Output

The (-v) and (-htmlDump) options print additional information that can be very useful for debugging or when decoding new tags.

A tag name is a "handle" that is used to refer to a specific piece of meta information. Tag names are entered on the command line with a leading '-', in the order you want them displayed. Case is not significant. The tag name may be prefixed by a (separated by a colon) to identify a specific information type or location. A special tag name of "All" may be used to represent all tags, or all tags in a specified group. For example:

exiftool -filename -imagesize -exif:fnumber -xmp:all image.jpg

A complete list of accompanies this documentation. As well, current lists of available tag names and writable tag names may be obtained using the exiftool -list and -listw options. But perhaps the easiest way to determine a tag name is to use the -s option to print the tag names instead of descriptions for all information in a file. It may also be helpful to use the -G option to display the group names, and the -H or -D option to print the numerical tag ID's for reference.

Notes:

  1. Tag names sometimes differ from their descriptions. Use the -s command-line option to see the actual tag names instead of the descriptions shown when extracting information.
  2. When extracting information, tags will not appear in the output unless they exist in the file, even if they are specified on the command line. The -f option may be used to force all specified tags to be displayed (not including tags specified with wildcards or by -GROUP:all).
  3. Information for a given tag name may occur in multiple locations within a single file. By default these duplicate tags are suppressed, but the -a option may be used to extract all tags.
  4. Tag names may be suffixed by a '#' character to disable the print conversion on a per-tag basis. See the in the application documentation for more information.

Shortcut tags represent one or more other tags, and are used like any other tag when reading, writing or copying information.

ExifTool defines in the Image::ExifTool::Shortcuts module, and allows users to define their own shortcuts in a called ".ExifTool_config" in their home directory or exiftool application directory. Here is a simple example that defines two shortcuts:

%Image::ExifTool::UserDefined::Shortcuts = (
    MyShortcut => ['createdate','exposuretime','aperture'],
    MyAlias => 'FocalLengthIn35mmFormat',
);

In this example, MyShortcut is a shortcut for the CreateDate, ExposureTime and Aperture tags, and MyAlias is a shortcut for FocalLengthIn35mmFormat.

The current shortcuts may be listed with the -list option.

The ~/.ExifTool_config file may also be used to define new tags. For more information about the configuration file, see the included with the ExifTool distribution.

Windows tip: You may have difficulty generating a filename beginning with a '.' in the Windows GUI, but it can be done with the "rename" command at the cmd.exe prompt.

ExifTool classifies tags into groups in various families. Here is a list of the group names in each family:

Family Group Names
0 (Information Type) AFCP, AIFF, APE, APP0, APP1, APP11, APP12, APP13, APP14, APP15, APP4, APP5, APP6, APP8, ASF, Audible, CanonVRD, Composite, DICOM, DNG, DV, DjVu, Ducky, EXE, EXIF, ExifTool, FITS, FLAC, FLIR, File, Flash, FlashPix, Font, FotoStation, GIF, GIMP, GeoTiff, GoPro, H264, HTML, ICC_Profile, ID3, IPTC, ISO, ITC, JFIF, JPEG, JSON, Jpeg2000, LNK, Leaf, Lytro, M2TS, MIE, MIFF, MNG, MOI, MPC, MPEG, MPF, MXF, MakerNotes, Matroska, Meta, Ogg, OpenEXR, Opus, PDF, PICT, PLIST, PNG, PSP, Palm, Parrot, PanasonicRaw, PhotoCD, PhotoMechanic, Photoshop, PostScript, PrintIM, QuickTime, RAF, RIFF, RSRC, RTF, Radiance, Rawzor, Real, Red, SVG, SigmaRaw, Stim, Theora, Torrent, Trailer, UserParam, VCard, Vorbis, WTV, XML, XMP, ZIP
1 (Specific Location) AC3, AFCP, AIFF, APE, ASF, AVI1, Adobe, AdobeCM, AdobeDNG, Apple, Audible, CIFF, CameraIFD, Canon, CanonCustom, CanonRaw, CanonVRD, Casio, Chapter#, Composite, DICOM, DJI, DNG, DV, DjVu, DjVu-Meta, Ducky, EPPIM, EXE, EXIF, ExifIFD, ExifTool, FITS, FLAC, FLIR, File, Flash, FlashPix, Font, FotoStation, FujiFilm, FujiIFD, GE, GIF, GIMP, GPS, GeoTiff, GlobParamIFD, GoPro, GraphConv, H264, HP, HTC, HTML, HTML-dc, HTML-ncc, HTML-office, HTML-prod, HTML-vw96, HTTP-equiv, ICC-chrm, ICC-clrt, ICC-header, ICC-meas, ICC-meta, ICC-view, ICC_Profile, ICC_Profile#, ID3, ID3v1, ID3v1_Enh, ID3v2_2, ID3v2_3, ID3v2_4, IFD0, IFD1, IPTC, IPTC#, ISO, ITC, Insta360, InteropIFD, ItemList, JFIF, JFXX, JPEG, JPEG-HDR, JSON, JVC, Jpeg2000, KDC_IFD, Keys, Kodak, Kodak sIFD, KodakEffectsIFD, KodakIFD, KyoceraRaw, LNK, Leaf, LeafSubIFD, Leica, Lyrics3, Lytro, M2TS, MAC, MIE-Audio, MIE-Camera, MIE-Canon, MIE-Doc, MIE-Extender, MIE-Flash, MIE-GPS, MIE-Geo, MIE-Image, MIE-Lens, MIE-Main, MIE-MakerNotes, MIE-Meta, MIE-Orient, MIE-Preview, MIE-Thumbnail, MIE-UTM, MIE-Unknown, MIE-Video, MIFF, MNG, MOBI, MOI, MPC, MPEG, MPF0, MPImage, MS-DOC, MXF, MacOS, MakerNotes, MakerUnknown, Matroska, MediaJukebox, Meta, MetaIFD, Microsoft, Minolta, MinoltaRaw, Motorola, NITF, Nikon, NikonCapture, NikonCustom, NikonScan, NikonSettings, Nintendo, Ocad, Ogg, Olympus, OpenEXR, Opus, PDF, PICT, PNG, PNG-pHYs, PSP, Palm, Panasonic, PanasonicRaw, Pentax, PhaseOne, PhotoCD, PhotoMechanic, Photoshop, PictureInfo, PostScript, PreviewIFD, PrintIM, ProfileIFD, Qualcomm, QuickTime, RAF, RAF2, RIFF, RMETA, RSRC, RTF, Radiance, Rawzor, Real, Real-CONT, Real-MDPR, Real-PROP, Real-RA3, Real-RA4, Real-RA5, Real-RJMD, Reconyx, Red, Ricoh, SPIFF, SR2, SR2DataIFD, SR2SubIFD, SRF#, SVG, Samsung, Sanyo, Scalado, Sigma, SigmaRaw, Sony, SonyIDC, Stim, SubIFD, System, Theora, Torrent, Track#, UserData, UserParam, VCalendar, VCard, Version0, Vorbis, WTV, XML, XMP, XMP-DICOM, XMP-Device, XMP-GAudio, XMP-GDepth, XMP-GFocus, XMP-GImage, XMP-GPano, XMP-GSpherical, XMP-LImage, XMP-MP, XMP-MP1, XMP-PixelLive, XMP-aas, XMP-acdsee, XMP-album, XMP-apple-fi, XMP-aux, XMP-cc, XMP-cell, XMP-creatorAtom, XMP-crs, XMP-dc, XMP-dex, XMP-digiKam, XMP-drone-dji, XMP-dwc, XMP-exif, XMP-exifEX, XMP-expressionmedia, XMP-extensis, XMP-fpv, XMP-getty, XMP-ics, XMP-iptcCore, XMP-iptcExt, XMP-lr, XMP-mediapro, XMP-microsoft, XMP-mwg-coll, XMP-mwg-kw, XMP-mwg-rs, XMP-pdf, XMP-pdfx, XMP-photomech, XMP-photoshop, XMP-plus, XMP-pmi, XMP-prism, XMP-prl, XMP-prm, XMP-pur, XMP-rdf, XMP-swf, XMP-tiff, XMP-x, XMP-xmp, XMP-xmpBJ, XMP-xmpDM, XMP-xmpMM, XMP-xmpNote, XMP-xmpPLUS, XMP-xmpRights, XMP-xmpTPg, ZIP
2 (Category) Audio, Author, Camera, Device, Document, ExifTool, Image, Location, Other, Preview, Printing, Time, Unknown, Video
3 (Document Number) Doc#, Main
4 (Instance Number) Copy#
5 (Metadata Path) [experimental] eg. JPEG-APP1-IFD0-ExifIFD
6 (EXIF/TIFF Format) int8u, string, int16u, int32u, rational64u, int8s, undef, int16s, int32s, rational64s, float, double, ifd, unicode, complex, int64u, int64s, ifd64
7 (Tag ID) ID-xxx (where xxx is the tag ID. Numerical ID's are given in hex with a leading "0x" if the is set, as are characters in non-numerical ID's which are not valid in a group name. Note that unlike other group names, family 7 group names are case sensitive.)

The exiftool output can be organized based on these groups using the -g or -G option (ie. -g1 to see family 1 groups, or -g3:1 to see both family 3 and family 1 group names in the output. See the -g option in the exiftool application documentation for more details, and the function in the ExifTool library for a description of the group families. Note that when writing, only family 0, 1, 2 and 7 group names may be used.

When writing information, ExifTool preserves the original file by adding "_original" to the file name. Be sure to keep a copy of the original, or thoroughly validate the new file before erasing the original. ( for some ramblings on the subject of writing meta information.)

Syntax

Tag values are written rather than being extracted if any tag name ends with a '=' symbol (or if the -tagsFromFile or -geotag options are used). The '=' may be prefixed by '+', '-' or '<' to add a value, remove a value or set a value from file. The following table outlines the different write syntaxes:

Syntax Result
-TAG= Deletes all occurrences of TAG
-all= Deletes all meta information!
-GROUP:TAG= Deletes TAG only in specified group
-GROUP:all= Deletes all information in specified group
-[GROUP:]TAG=VALUE Sets value of TAG (only in GROUP if specified)
-[GROUP:]TAG+=VALUE Adds item to a list, shifts a date/time, or increments a number
-[GROUP:]TAG-=VALUE Removes item from a list, shifts a date/time, or deletes TAG if it has the specified value
-[GROUP:]TAG<=FILE Sets tag value from contents of specified file
See the for some limitations of this feature.

Quotes are required around VALUE if it contains spaces or other special characters, and around the whole argument if the '<=' syntax is used (to prevent shell redirection).

A special feature allows the print conversion to be disabled on a per-tag basis by suffixing any tag name (including 'all') with the '#' character. This has the same effect as the -n option, but for a single tag. See the in the application documentation for more details.

Note: Changes to PDF files are reversible because the original metadata is never actually deleted from these files. See the for details.

Group Priorities

ExifTool prioritizes the following types of meta information when writing:

1) EXIF,   2) IPTC,   3) XMP

Many tag names are valid for more than one of these groups. If a group name is not specified when writing information, then the information is added only to the highest priority group for which the tag name is valid (however, the information is updated in all groups where the tag already existed). The priority of the groups is given by the list above. Specifically, this means that new information is added preferentially to the EXIF group, or to the IPTC group if no corresponding EXIF tag exists, or finally to the XMP group.

Alternatively, information may be written to a specific group only, bypassing these priorities, by providing a group name for the tag. The "" section above gave the syntax rules for exiftool command-line arguments to do this. Any family 0, 1, 2 or 7 group name may be used when writing information, although not all groups are writable.

The "-tagsFromFile" Option

A special ExifTool option allows copying tags from one file to another. The command-line syntax for doing this is "-tagsFromFile SRCFILE". Any tags specified after this option on the command line are extracted from source file and written to the destination file. If no tags are specified, then all writable tags are copied. This option is very simple, yet very powerful. Depending on the formats of the source and destination files, some of tags read may not be valid in the destination file, in which case they aren't written.

This option may also be used to transfer information between different tags within a single image or between different images. See the in the application documentation for more details.

Some ExifTool options (-config, -if, -p, -api filter, -api filterw and copying arguments like "-DSTTAG<STR") have the ability to execute Perl code from external files or within command-line arguments. This may be a security problem if ExifTool is executed from another application that blindly passes untrusted file names on the command line (since they may be interpreted as ExifTool options if they begin with a dash). To be secure the calling application must either place file names after the "--" option, or ensure that input file names do not start with a dash (U+002D) or a Unicode minus sign (U+2212). One way to accomplish this is to prefix input file names with a known directory name, eg.) "./FILENAME".

Have you ever forgotten to set the date/time on your digital camera before taking a bunch of pictures? ExifTool has a time shift feature that makes it easy to apply a batch fix to the timestamps of the images (eg. change the "Date Picture Taken" reported by Windows Explorer). Say for example that your camera clock was reset to 2000:01:01 00:00:00 when you put in a new battery at 2005:11:03 10:48:00. Then all of the pictures you took subsequently have timestamps that are wrong by 5 years, 10 months, 2 days, 10 hours and 48 minutes. To fix this, put all of the images in the same directory ("DIR") and run exiftool:

exiftool "-DateTimeOriginal+=5:10:2 10:48:0" DIR

The example above changes only the DateTimeOriginal tag, but any writable date or time tag can be shifted, and multiple tags may be written with a single command line. Commonly, in JPEG images, the DateTimeOriginal, CreateDate and ModifyDate values must all be changed. For convenience, a called AllDates has been defined to represent these three tags. So, for example, if you forgot to set your camera clock back 1 hour at the end of daylight savings time in the fall, you can fix the images with:

exiftool -AllDates-=1 DIR

See () for details about the syntax of the time shift string.

Note: Not all date/time information is covered by the AllDates shortcut. Specifically, the filesystem date/time tags are not included, and this command will reset FileModifyDate to the current date/time as it should when the file is modified, unless either the -P option is used, or FileModifyDate is set to something else. To shift FileModifyDate along with the other tags, add -FileModifyDate-=1 to the command above.

By writing a new value to the FileName and/or Directory tags, files can be renamed and/or moved to different directories. This can be a very powerful tool in combination with the -d (date format) option for organizing images by date/time. For example, the following command renames all images in directory "DIR" according to the individual file's creation date in the form "YYYYmmdd_HHMMSS.ext".

exiftool "-FileName<CreateDate" -d "%Y%m%d_%H%M%S.%%e" DIR

Or a new directory can be specified by setting the value of the Directory tag. For example, the following command moves all images originally in directory "DIR" into a directory hierarchy organized by year/month/day:

exiftool "-Directory<DateTimeOriginal" -d "%Y/%m/%d" DIR

for more details about this powerful feature.

There is a significant overhead in loading ExifTool, so performance may be greatly improved by taking advantage of ExifTool's batch processing capabilities (the ability to process multiple files or entire directories with a single command) to reduce the number of executed commands when performing complex operations or processing multiple files. [One exiftool user documented a 60x speed increase by processing a large number of files with a single command instead of running exiftool separately on each file.] Also, the -execute option may be used to perform multiple independent operations with a single invocation of exiftool, and together with the -stay_open option provides a method for calling applications to avoid this startup overhead.

It has also been observed that the loading time of ExifTool for Windows increases significantly when Windows Defender is active. Disabling Windows Defender may speed things up significantly.

The processing speed of ExifTool can be improved when extracting information by reducing the amount of work that it must do. Decrease the number of extracted tags by specifying them individually (-TAG) or by group (-GROUP:all), and disable the composite tags (-e) and the print conversions (-n) if these features aren't required. Note that the exclude options (-x or --TAG) are not very efficient, and may have a negative impact on performance if a large number of tags are excluded individually.

The -fast option can significantly increase speed when extracting information from JPEG images which are piped across a slow network connection. However, with this option any information in a JPEG trailer is not extracted. For more substantial speed benefits, -fast2 may be used to also avoid extracting MakerNote information if this is not required, or -fast4 if only pseudo System tags are required.

When writing, avoid copying tags (with -tagsFromFile) or using the -if or -fileOrder option because these will add the extra step of extracting tags from the file. Without these the write operation is accomplished with a single pass of each file.

However, note that when the -csv option is used, information from all files is buffered in memory before the CSV output is written. This may be very memory intensive and result in poor performance when reading a large number of files in a single command.

The "exiftool" script provides a command-line interface to the Image::ExifTool Perl library module which is part of the ExifTool distribution. The Image::ExifTool module can be used in any Perl script to provide easy access to meta information. Here is an example of a very simple script that uses Image::ExifTool to print out all recognized meta information in a file:

#!/usr/bin/perl -w
use Image::ExifTool ':Public';
my $file = shift or die "Please specify filename";
my $info = ($file);
foreach (keys %$info) {
    print "$_ : $info->{$_}\n";
}

Note that some tag values may be returned as SCALAR references indicating binary data. The simple script above does not handle this case.

See the for more details.

Below are some free utilities which take advantage of the ExifTool engine:

There is still much unknown information in the maker notes for many camera models. (To see this information, run exiftool with the -U option.) In this area, ExifTool is very much a collaborative effort, and development relies heavily on the input from camera owners to help decode new meta information. If you manage to figure out what any of it means, send me an e-mail (philharvey66 at gmail.com) and I'll add your new discoveries to ExifTool. Many thanks to all who have helped so far...

Thanks to everyone who has sent in bug reports, comments, or suggestions, and special thanks to the following people for their valuable input and/or additions to the code:

This is free software; you can redistribute it and/or modify it under the same terms as .

ExifTool is free, but due to popular request I am providing a way for those who feel the need to send me some money. It is really not necessary, but thank you very much if you decide to make a contribution:

$

(Your generous donations have provided the funds used to register exiftool.org and pay for web site hosting, and for the Mac Mini used to generate distribution files, run the necessary Windows virtual machine, and maintain source-code and forum backups.)

If you have any comments, suggestions or questions, please post to the so other people may benefit from your experiences. (I check the forum at least as often as my email.) Otherwise, if you must contact me directly, my e-mail address is on the first line of the README file in the full distribution. Thanks.   - Phil Harvey