Download Version 8.40 (2.9 MB) - Nov. 21, 2010
ExifTool is a platform-independent Perl library plus a command-line application for reading, writing and editing meta information in a wide variety of files. ExifTool supports many different metadata formats including EXIF, GPS, IPTC, XMP, JFIF, GeoTIFF, ICC Profile, Photoshop IRB, FlashPix, AFCP and ID3, as well as the maker notes of many digital cameras by Canon, Casio, FujiFilm, HP, JVC/Victor, Kodak, Leaf, Minolta/Konica-Minolta, Nikon, Olympus/Epson, Panasonic/Leica, Pentax/Asahi, Ricoh, Samsung, Sanyo, Sigma/Foveon and Sony.
ExifTool is also available as a stand-alone Windows executable and a Macintosh OS X package: (Note that these versions contain the executable only, and do not include the HTML documentation or other files of the full distribution above.)
Windows Executable: exiftool-8.40.zip (3.1 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 (including Windows 7).
Mac OS X Package: ExifTool-8.40.dmg (1.8 MB)
The OS X package installs the ExifTool command-line application and
libraries in /usr/bin. After installing, type "exiftool
" in a
Terminal window to run exiftool and read the application documentation.
Read the installation instructions for help installing ExifTool on Windows, Mac OS X and Unix systems.
"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." - dpreview forum
"While there are a lot of image tools available, nothing comes close for accessing/updating the metadata like ExifTool" - merg's blog
"exiftool is an amazingly powerful Perl module and script" - Brett's Place on the Web
"Fast, reliable and amazingly comprehensive ..." - CPAN ratings
"... the one piece of free software that gets the most detailed exif data of /any/ tool I've found." - gnome mail archives
"... no program or API gets close to ExifTool in terms of robustness, feature count and support." - CE's Blog
"ExifTool makes every other EXIF reader (and writer) than I've seen, including the camera manufacturers' readers, look lame." - photo.net Nikon forum
"Insanely great tool with a long learning curve ..." - Adobe Forums
"... 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!" - Open Photography Forums
ExifTool can Read, Write and/or Create files in the following formats:
File Type Support Description 3FR R Hasselblad RAW (TIFF-based) ACR R American College of Radiology ACR-NEMA (DICOM-like) AFM, ACFM, AMFM R Adobe [Composite/Multiple Master] Font Metrics AI, AIT R/W Adobe Illustrator [Template] (PS or PDF) AIFF, AIF, AIFC R Audio Interchange File Format APE R Monkey's Audio ARW R/W Sony Alpha RAW (TIFF-based) ASF R Microsoft Advanced Systems Format AVI R Audio Video Interleaved (RIFF-based) BMP, DIB R Windows BitMaP / Device Independent Bitmap BTF, TIFF, TIF R BigTIFF (64-bit Tagged Image File Format) COS R Capture One Settings (XML-based) CR2 R/W Canon RAW 2 (TIFF-based) CRW, CIFF R/W Canon RAW Camera Image File Format (CRW specification) CS1 R/W Sinar CaptureShop 1-shot RAW (PSD-based) DCM, DC3, DIC, DICM R DICOM - Digital Imaging and Communications in Medicine DCP R/W DNG Camera Profile (DNG-like) DCR R Kodak Digital Camera RAW (TIFF-based) DFONT R Macintosh Data Fork Font DIVX R DivX media format (ASF-based) DJVU, DJV R DjVu image (AIFF-like) DNG R/W Digital Negative (TIFF-based) DOC, DOT R Microsoft Word Document/Template (FPX-like) DOCX, DOCM R Office Open XML Document [Macro-enabled] DOTX, DOTM R Office Open XML Document Template [Macro-enabled] DYLIB R Mac OS X Mach-O executable and library files EIP R Capture One Enhanced Image Package (ZIP-based) EPS, EPSF, PS R/W [Encapsulated] PostScript Format ERF R/W Epson RAW Format (TIFF-based) EXE, DLL R DOS/Windows executable and library files EXIF R/W/C Exchangable Image File Format metadata (TIFF-based) F4A, F4B, F4P, F4V R Adobe Flash Player 9+ Audio/Video (Quicktime-based) FLA R Macromedia/Adobe Flash project (FPX-like) FLAC R Free Lossless Audio Codec FLV R Flash Video FPX R FlashPix image GIF R/W Compuserve Graphics Interchange Format GZ, GZIP R GNU ZIP compressed archive HDP, WDP R/W Windows HD Photo / Media Photo (TIFF-based) HTML, HTM, XHTML R [Extensible] HyperText Markup Language ICC, ICM R/W/C International Color Consortium color profile IIQ R Phase One Intelligent Image Quality RAW (TIFF-based) IND, INDD, INDT R/W Adobe InDesign Document/Template (XMP metadata only) ITC R iTunes Cover Flow artwork JP2, JPX R/W JPEG 2000 image JPEG, JPG R/W Joint Photographic Experts Group image (see table below) K25 R Kodak DC25 RAW (TIFF-based) KDC R Kodak Digital Camera RAW (TIFF-based) KEY, KTH R Apple iWork '09 Keynote presentation/Theme LNK R Microsoft Shell Link (Windows shortcut) M2TS, MTS, M2T R MPEG-2 Transport Stream (used for AVCHD video) M4A, M4B, M4P, M4V R MPEG-4 Audio/Video (Quicktime-based) MEF R/W Mamiya (RAW) Electronic Format (TIFF-based) MIE R/W/C Meta Information Encapsulation (MIE specification) MIFF, MIF R Magick Image File Format MKA, MKV, MKS R Matroska Audio/Video/Subtitle MOS R/W Creo Leaf Mosaic (TIFF-based) MOV, QT R Apple QuickTime Movie MP3 R MPEG-1 layer 3 audio (uses ID3 information) MP4 R Motion Picture Experts Group version 4 (Quicktime-based) MPC R Musepack Audio MPEG, MPG, M2V R Motion Picture Experts Group version 1 or 2 MPO R/W Extended Multi-Picture format (JPEG with MPF extensions) MQV R Sony Mobile QuickTime Video MRW R/W Minolta RAW NEF R/W Nikon (RAW) Electronic Format (TIFF-based) NMBTEMPLATE R Apple iWork '09 Numbers Template NRW R/W Nikon RAW (2) (TIFF-based) NUMBERS R Apple iWork '09 Numbers spreadsheet ODP, ODS, ODT R Open Document Presentation/Spreadsheet/Text (ZIP/XML-based) OGG R Ogg Vorbis and Ogg FLAC audio ORF R/W Olympus RAW Format (TIFF-based) OTF R Open Type Font PAGES R Apple iWork '09 Pages document R/W Adobe Portable Document Format PEF R/W Pentax (RAW) Electronic Format (TIFF-based) PFA, PFB R PostScript Font ASCII/Binary PFM R Printer Font Metrics PICT, PCT R Apple Picture file PMP R Sony DSC-F1 Cyber-Shot image PNG, JNG, MNG R/W Portable/JPEG/Multiple-image Network Graphics PPM, PBM, PGM R/W Portable Pixel/Bit/Gray Map PPT, PPS, POT R Microsoft PowerPoint Presentation/Slideshow/Template (FPX-like) POTX, POTM R Office Open XML Presentation Template [Macro-enabled] PPSX, PPSM R Office Open XML Presentation Slideshow [Macro-enabled] PPTX, PPTM R Office Open XML Presentation [Macro-enabled] PSD, PSB R/W PhotoShop Drawing / Large Document PSP, PSPIMAGE R Paint Shop Pro QTIF, QTI, QIF R QuickTime Image File RA R Real Audio RAF R/W FujiFilm RAW Format RAM, RPM R Real Audio/Plug-in Metafile RAW R Kyocera Contax N Digital RAW RAR R RAR Archive RAW R/W Panasonic RAW (TIFF-based) RIFF, RIF R Resource Interchange File Format RM, RV, RMVB R Real Media/Video [Variable Bitrate] RSRC R Mac OS Resource RTF R Rich Text Format RW2 R/W Panasonic RAW 2 (TIFF-based) RWL R/W Leica RAW (TIFF-based) RWZ R Rawzor compressed image SO R Unix ELF executable and Shared Object files SR2 R/W Sony RAW 2 (TIFF-based) SRF R Sony RAW Format (TIFF-based) SRW R/W Samsung RAW format (TIFF-based) SVG R Scalable Vector Graphics (XML-based) SWF R Shockwave Flash THM R/W Canon Thumbnail (JPEG) THMX R Office Open XML Theme TIFF, TIF R/W Tagged Image File Format TTF, TTC R True Type Font/Collection VOB R Video Object (MPEG-based) VRD R/W/C Canon DPP Recipe Data WAV R Windows digital audio WAVeform (RIFF-based) WEBM R Google Web Movie (MKV-based) WEBP R Google Web Picture (RIFF-based) WMA, WMV R Windows Media Audio/Video (ASF-based) X3F R/W Sigma/Foveon RAW XCF R GIMP native image format XLS, XLT R Microsoft Excel Spreadsheet/Template (FPX-like) XLSX, XLSM, XLSB R Office Open XML Spreadsheet [Macro-enabled/Binary] XLTX, XLTM R Office Open XML Spreadsheet Template [Macro-enabled] XMP R/W/C Extensible Metadata Platform sidecar file ZIP R ZIP archive
ExifTool can Read, Write and/or Create the following types of meta information in JPEG images:
JPEG Meta Information Support Description APP0 - JFIF R/W/C JPEG File Interchange Format APP0 - JFXX R Extended JFIF APP0 - CIFF R/W Camera Image File Format (used by some Canon models) APP0 - AVI1 R JPEG AVI information APP1 - EXIF R/W/C Exchangeable Image File Format (including maker notes) APP1 - XMP R/W/C Extensible Metadata Platform (multi-segment) APP1 - QVCI R Casio QV-7000SX QVCI information APP2 - ICC R/W/C International Color Consortium (multi-segment) APP2 - FPXR R FlashPix Ready (multi-segment) APP2 - MPF R Multi-Picture Format APP2 - PreviewImage R Samsung large preview (multi-segment) APP3 - Kodak Meta R/W Kodak Meta information (EXIF-like) APP3 - Stim R Stereo Still Image format APP3 - PreviewImage R Hewlett-Packard or Samsung (multi-segment) preview APP4 - Scalado R (presumably written by Scalado mobile software) APP4 - FPXR R FlashPix Ready in non-standard location (multi-segment) APP4 - PreviewImage R Continued Samsung preview from APP3 APP5 - Ricoh RMETA R Ricoh custom fields APP6 - EPPIM R Toshiba PrintIM APP6 - NITF R National Imagery Transmission Format APP6 - HP TDHD R Hewlett-Packard Photosmart R837 TDHD information APP8 - SPIFF R Still Picture Interchange File Format APP10 - Comment R PhotoStudio Unicode Comment APP12 - Picture Info R ASCII-based Picture Information APP12 - Ducky R/W/C Photoshop "Save for Web" APP13 - Photoshop IRB R/W/C Image Resource Block (multi-segment, includes IPTC) APP13 - Adobe CM R Adobe Color Management APP14 - Adobe R Adobe DCT filter APP15 - GraphicConverter R GraphicConverter quality COM R/W/C JPEG Comment (multi-segment) SOF R JPEG Start Of Frame AFCP trailer R/W AXS File Concatenation Protocol (includes IPTC) CanonVRD trailer R/W/C Canon DPP Recipe Data FotoStation trailer R/W FotoWare FotoStation (includes IPTC) PhotoMechanic trailer R/W Camera Bits Photo Mechanic MIE trailer R/W Meta Information Encapsulation PreviewImage trailer R/W/C (preview image written after JPEG EOI)
Requires Perl 5.004 or later. No other libraries or software required.
Windows users: A stand-alone Windows executable 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 activeperl.com.)
Everyone else (Mac, Unix, etc): Don't worry, you should already have Perl installed.
The exiftool application provides a
convenient command-line interface for the
Image::ExifTool 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 installation
instructions 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 complete list of available options with examples.
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 (ie. 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).exePrint meta information in window and pause before terminating. exiftool(-k -a -u -g1 -w txt).exeGenerate output " .txt
" files with detailed meta information. exiftool(-k -o %d%f.xmp).exeGenerate sidecar " .xmp
" files. exiftool(-copyright='Phil Harvey').exeAdd 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 pics/IMG_0315.JPG
File Name IMG_0315.JPG Camera Model Name Canon EOS DIGITAL REBEL Date/Time Original 2003:09:30 13:37:51 Shooting Mode Sports Shutter Speed 1/2000 Aperture 7.1 Metering Mode Evaluative Exposure Compensation 0 ISO 400 Lens 75.0 - 300.0 mm Focal Length 300.0 mm Image Size 3072x2048 Quality Normal Flash Off, Did not fire White Balance Auto Focus Mode AI Servo AF Contrast +1 Sharpness +1 Saturation +1 Color Tone Normal File Size 1606 kB File Number 103-0315 Drive Mode Continuous shooting Owner Name Phil Harvey Serial Number 0560012345 > exiftool -lang ja -h -canon pics/IMG_0315.JPG
ファイル名 IMG_0315.JPG 画像入力機器モデル Canon EOS DIGITAL REBEL オリジナルデータ作成日時 2003:09:30 13:37:51 撮影モード スポーツ 露出時間 1/2000 絞り 7.1 測光モード 評価 露出補正値 0 ISOスピードレート 400 レンズ 75.0 - 300.0 mm レンズ焦点距離 300.0 mm イメージサイズ 3072x2048 品質 標準 ストロボ フラッシュ未発光、強制発光モード ホワイトバランス オート フォーカスモード AIサーボAF コントラスト +1 シャープネス +1 彩度 +1 カラートーン 標準 ファイルのサイズ 1606 kB ファイル番号 103-0315 ドライブモード 連続撮影 オーナー名 Phil Harvey シリアル番号 0560012345
The Verbose (-v
) and HtmlDump (-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 group name
from family 0 or 1 (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 ExifTool Tag Names
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:
-s
command-line option to see the actual tag names instead of the
descriptions shown when extracting information.-f
option may be used to force all specified tags to be displayed.-a
option may be used to extract all tags.#
' character to disable the
print conversion on a per-tag basis. See the
-n option 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 a few shortcut tags
in the Image::ExifTool::Shortcuts module, and allows users to define their own
shortcuts in a configuration file 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
sample configuration file 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 five different families. These groups are:
Family Group Names 0 (Information Type) AFCP, AIFF, APE, APP0, APP12, APP13, APP14, APP15, APP4, APP5, APP6, APP8, ASF, BMP, CanonVRD, Composite, DICOM, DNG, DjVu, Ducky, EXE, EXIF, ExifTool, FLAC, File, Flash, FlashPix, Font, FotoStation, GIF, GIMP, GeoTiff, H264, HTML, ICC_Profile, ID3, IPTC, ITC, JFIF, JPEG, Jpeg2000, LNK, Leaf, M2TS, MIE, MIFF, MNG, MPC, MPEG, MPF, MakerNotes, Matroska, Meta, PDF, PICT, PNG, PSP, PhotoMechanic, Photoshop, PostScript, PrintIM, QuickTime, RAF, RIFF, RSRC, RTF, Rawzor, Real, SVG, SigmaRaw, Stim, Vorbis, XML, XMP, ZIP 1 (Specific Location) AC3, AFCP, AIFF, APE, ASF, AVI1, Adobe, AdobeCM, BMP, CIFF, Canon, CanonCustom, CanonRaw, CanonVRD, Casio, Chapter#, Composite, DICOM, DNG, DjVu, DjVu-Meta, Ducky, EPPIM, EXE, EXIF, ExifIFD, ExifTool, FLAC, File, Flash, FlashPix, Font, FotoStation, FujiFilm, GIF, GIMP, GPS, GeoTiff, GlobParamIFD, GraphConv, H264, HP, 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#, ITC, InteropIFD, JFIF, JPEG, JVC, Jpeg2000, KDC_IFD, Kodak, KodakBordersIFD, KodakEffectsIFD, KodakIFD, KyoceraRaw, LNK, Leaf, LeafSubIFD, Leica, 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, MPC, MPEG, MPF0, MPImage, MakerNotes, MakerUnknown, Matroska, MetaIFD, Microsoft, Minolta, MinoltaRaw, NITF, Nikon, NikonCapture, NikonCustom, NikonScan, Olympus, PDF, PICT, PNG, PSP, Panasonic, Pentax, PhotoMechanic, Photoshop, PictureInfo, PostScript, PreviewIFD, PrintIM, ProfileIFD, QuickTime, RAF, RAF2, RIFF, RMETA, RSRC, RTF, Rawzor, Real, Real-CONT, Real-MDPR, Real-PROP, Real-RA3, Real-RA4, Real-RA5, Real-RJMD, Ricoh, SPIFF, SR2, SR2DataIFD, SR2SubIFD, SRF#, SVG, Samsung, Sanyo, Scalado, Sigma, SigmaRaw, Sony, SonyIDC, Stim, SubIFD, System, Track#, Version0, Vorbis, XML, XMP, XMP-DICOM, XMP-MP, XMP-MP1, XMP-PixelLive, XMP-acdsee, XMP-album, XMP-aux, XMP-cc, XMP-crs, XMP-dc, XMP-dex, XMP-digiKam, XMP-exif, XMP-iptcCore, XMP-iptcExt, XMP-lr, XMP-mediapro, XMP-microsoft, XMP-pdf, XMP-pdfx, XMP-photomech, XMP-photoshop, XMP-plus, XMP-prism, XMP-prl, 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, Document, ExifTool, Image, Location, Other, Printing, Time, Unknown, Video 3 (Document Number) Doc#, Main 4 (Instance Number) Copy#
The exiftool output can be organized based on these groups using the
-g
or -G
option. See the
GetGroup function in the ExifTool library
for a description of the group families.
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.
(Read here for some ramblings on the subject of
writing meta information.)
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 value to a tag list (only valid for List type tags) -[GROUP:]TAG-=VALUE Deletes TAG only if it has the specified value -[GROUP:]TAG<=FILE Sets tag value from contents of specified file
Note that 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
-n option in the application
documentation for more details.
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 "Writing Meta Information" section above gave the syntax rules for exiftool command-line arguments to do this. Any family 0 or 1 group name may be used when writing information, although not all groups are writable.
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 -tagsFromFile option in the application documentation for more details.
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 (ie. 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 shortcut tag 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 Image::ExifTool::Shift.pl for details about the syntax of the time shift string.
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
Read here for more details about this powerful feature.
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.
There is a large 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.
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.
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.
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 = ImageInfo($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 Image::ExifTool Documentation for more details.
Below are some free utilities which take advantage of the ExifTool engine:
Also notable, but not directly based on ExifTool:
The following sources were very useful in helping to decode various types of information:
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 (phil at owl.phy.queensu.ca) 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:
And special thanks to my family for putting up with me and this time-consuming hobby of mine.
This is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
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:
If you have any comments, suggestions or questions, please post to the ExifTool Forum 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