Also available --> Utility to fix Nikon NEF images corrupted by Nikon software
Note: IP's that agressively download multiple copies of the distribution files or access web pages too quickly will be blocked.
Download Version 12.97 (7.1 MB) - Sept. 25, 2024
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, Lyrics3, as well as the maker notes of many digital cameras by Canon, Casio, DJI, FLIR, FujiFilm, GE, GoPro, HP, JVC/Victor, Kodak, Leaf, Minolta/Konica-Minolta, Motorola, Nikon, Nintendo, Olympus/Epson, Panasonic/Leica, Pentax/Asahi, Phase One, Reconyx, Ricoh, Samsung, Sanyo, Sigma/Foveon and Sony.
ExifTool is also available as a 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.)
Windows 32-bit: exiftool-12.97_32.zip (10.8 MB) 64-bit: exiftool-12.97_64.zip (10.6 MB)
The Windows executable archives include Perl. Just download and un-zip
the appropriate 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.
Note that if you move the .exe to another folder, you must also move
the "exiftool_files
" folder to the same location.
(The Windows packages are based on work by Oliver Betz, and use his launcher. Oliver also provides self-installing versions of these executables. See this forum post if you have any problems/comments with these versions.)
MacOS Package: ExifTool-12.97.pkg (5.1 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 installation instructions for help installing ExifTool on Windows, MacOS and Unix systems.
If you feel 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 application documentation. (This is common mistake number 3.)
"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
"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
"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
"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..." - Find My Electric
"... it's super awesome, it's super reliable and after many years of development it's still being updated!" - P_W999 blog
"... 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
"... it is total fucking gibberish to me." - Reddit Linux Questions
ExifTool can Read, Write and/or Create files in the following formats. Also
listed are the support levels for EXIF, IPTC (IIM), XMP, ICC_Profile, C2PA (JUMBF) and other
metadata types for each file format. C2PA metadata is not currently Writable, but may be
Deleted from some file types by deleting the JUMBF group (ie. -JUMBF:all=
).
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 Phocus incompatibility, 7 Old metdata is never actually deleted
File Type Support Description EXIF IPTC XMP ICC1 C2PA Other 3FR R Hasselblad RAW (TIFF-based) R R R R R - 3G2, 3GP2 R/W 3rd Gen. Partnership Project 2 a/v (QuickTime-based) R/W3 R/W3 R/W/C - R/D R/W/C QuickTime 3GP, 3GPP R/W 3rd Gen. Partnership Project a/v (QuickTime-based) R/W3 R/W3 R/W/C - R/D R/W/C QuickTime 7z R 7z Archive - - - - - R ZIP A R Unix static library code Archive - - - - - R EXE AA R Audible Audiobook - - - - - R Audible AAC R Advanced Audio Codec - - - - - R AAC AAE R Apple edit information (XML PLIST-based) - - - - - R PLIST AAX R/W Audible Enhanced Audiobook (QuickTime-based) R/W3 R/W3 R/W/C - R/D R/W/C QuickTime ACR R American College of Radiology ACR-NEMA (DICOM-like) - - - - - R DICOM AFM, ACFM, AMFM R Adobe [Composite/Multiple Master] Font Metrics - - - - - R Font AI, AIT R/W Adobe Illustrator [Template] (PS or PDF) R/W/C4 R/W/C4 R/W/C5 R/W/C4 - R/W/C PDF PostScript, R Photoshop AIFF, AIF, AIFC R Audio Interchange File Format [Compressed] - - - - R R AIFF ID3 Lyrics3 APE R Monkey's Audio - - - - R R APE ID3 Lyrics3 ARQ R/W Sony Alpha Pixel-Shift RAW (TIFF-based) R/W/C R/W/C R/W/C R/W/C R/D R/W Sony SonyIDC ARW R/W Sony Alpha RAW (TIFF-based) R/W/C R/W/C R/W/C R/W/C R/D R/W Sony SonyIDC ASF R Microsoft Advanced Systems Format - - R - - R ASF AVI R Audio Video Interleaved (RIFF-based) R3 - R - R R RIFF AVIF R/W AV1 Image File Format (QuickTime-based) R/W/C - R/W/C R/W R/D R/W QuickTime BMP, DIB R Windows BitMaP / Device Independent Bitmap - - - - - R BMP BPG R Better Portable Graphics R - R R - R BPG BTF R BigTIFF (64-bit Tagged Image File Format) R R R R R - C2PA, JUMBF R C2PA JPEG Universal Metadata Box Format - - - - R R Jpeg2000 CHM R Microsoft Compiled HTML format - - - - - R EXE COS R Capture One Settings (XML-based) - - - - - R XML CR2 R/W Canon RAW 2 (TIFF-based) (CR2 spec) R/W/C R/W/C R/W/C R/W/C R/D R/W Canon, R/W/C CanonVRD2 CR3 R/W Canon RAW 3 (QuickTime-based) (CR3 spec) R/W/C - R/W/C - R/D R/W Canon QuickTime, R/W/C CanonVRD2 CRM R/W Canon RAW Movie (QuickTime-based) R/W/C - R/W/C - R/D R/W Canon QuickTime CRW, CIFF R/W Canon RAW Camera Image File Format (CRW spec) - - R/W/C - - R/W CanonRaw, R/W/C CanonVRD2 CS1 R/W Sinar CaptureShop 1-shot RAW (PSD-based) R/W/C R/W/C R/W/C R/W/C - R Photoshop CSV R Comma-Separated Values - - - - - R Text CZI R Zeiss Integrated Software RAW (ZISRAW) - - - - - R ZISRAW, R XML DCM, DC3, DIC, DICM R DICOM - Digital Imaging and Communications in Medicine - - - - - R DICOM DCP R/W DNG Camera Profile (DNG-like) R/W/C R/W/C R/W/C R/W/C R/D - DCR R Kodak Digital Camera RAW (TIFF-based) R R R R R - DFONT R Macintosh Data Fork Font - - - - - R Font DIVX R DivX media format (ASF-based) - - R - - R ASF DJVU, DJV R DjVu image (AIFF-like) - - R - - R DJVU DNG R/W Digital Negative (TIFF-based) R/W/C R/W/C R/W/C R/W/C R/D - DOC, DOT R Microsoft Word Document/Template (FPX-like) - - R R - R FlashPix DOCX, DOCM R Office Open XML Document [Macro-enabled] - - - - - R XML ZIP DOTX, DOTM R Office Open XML Document Template [Macro-enabled] - - - - - R XML ZIP DPX R Digital Picture Exchange - - - - - R DPX DR4 R/W/C2 Canon DPP version 4 Recipe - - - - - R/W/C CanonVRD2 DSS, DS2 R Digital Speech Standard [2] - - - - - R Olympus DYLIB R MacOS Mach-O executable and library files - - - - - R EXE DV R Digital Video - - - - - R DV DVB R/W Digital Video Broadcasting (QuickTime-based) R/W3 R/W3 R/W/C - R/D R/W/C QuickTime DVR-MS R Microsoft Digital Video Recording (ASF-based) - - R - - R ASF EIP R Capture One Enhanced Image Package (ZIP-based) R - - - - R XML ZIP EPS, EPSF, PS R/W [Encapsulated] PostScript Format R/W/C R/W/C R/W/C R/W/C - R/W/C PostScript, R Photoshop EPUB R Electronic Publication (ZIP/XML-based) - - - - - R XML ZIP ERF R/W Epson RAW Format (TIFF-based) R/W/C R/W/C R/W/C R/W/C R/D R/W Olympus EXE, DLL R DOS/Windows executable and library files - - - - - R EXE EXIF R/W/C Exchangeable Image File Format metadata (TIFF-based) R/W/C - - - R/D - EXR R Open EXR (Extended Range) R - R - - R OpenEXR EXV R/W/C Exiv2 metadata file (JPEG-based) R/W/C R/W/C R/W/C R/W/C R/D Supported JPEG Meta Information F4A, F4B, F4P, F4V R/W Adobe Flash Player 9+ Audio/Video (QuickTime-based) R/W3 R/W3 R/W/C - R/D R/W/C QuickTime FFF R/W6 Hasselblad Flexible File Format (TIFF-based) R/W/C R/W/C R/W/C R/W/C R/D - FFF R FLIR Systems thermal image File Format - - - - - R FLIR FITS R Flexible Image Transport System - - - - - R FITS FLA R Macromedia/Adobe Flash project (FPX-like) - - R R - R FlashPix FLAC R Free Lossless Audio Codec - - - - R R FLAC ID3 Lyrics3 FLIF R/W Free Lossless Image Format R/W/C - R/W/C R/W/C - R FLIF FLV R Flash Video - - R - - R Flash FPF R FLIR Public image Format - - - - - R FLIR FPX R FlashPix image - - R R - R FlashPix GIF R/W Compuserve Graphics Interchange Format - - R/W/C R/W/C R/D R/W/C GIF GLV R/W Garmin Low-resolution Video (QuickTime-based) R/W3 R/W3 R/W/C - R/D R/W/C QuickTime GPR R/W GoPro RAW (DNG-based) R/W/C R/W/C R/W/C R/W/C R/D - GZ, GZIP R GNU ZIP compressed archive - - - - - R ZIP HDP, WDP, JXR R/W Windows HD Photo / Media Photo / JPEG XR (TIFF-based) R/W/C R/W/C R/W/C R/W/C R/D - HDR R Radiance RGBE High Dynamic-Range - - - - - R Radiance HEIC, HEIF, HIF R/W High Efficiency Image Format (QuickTime-based) R/W/C - R/W/C R/W R/D R/W QuickTime HTML, HTM, XHTML R [Extensible] HyperText Markup Language - - - - - R HTML ICC, ICM R/W/C1 International Color Consortium color profile - - - R/W/C - - ICO, CUR R Windows Icon / Cursor - - - - - R ICO ICS, ICAL R iCalendar Schedule - - - - - R VCalendar IDML R Adobe InDesign Markup Language (ZIP/XML-based) - - - - - R XML ZIP IIQ R/W Phase One Intelligent Image Quality RAW (TIFF-based) R/W/C R/W/C R/W/C R/W/C R/D R/W PhaseOne IND, INDD, INDT R/W Adobe InDesign Document/Template - - R/W/C - - - INSP R/W Insta360 Picture (JPEG-based) R/W/C R/W/C R/W/C R/W/C R/D Supported JPEG Meta Information INSV R Insta360 Video (QuickTime-based) - - R - R R QuickTime INX R Adobe InDesign Interchange (XML-based) - - R - - - ISO R ISO 9660 disk image - - - - - R ISO ITC R iTunes Cover Flow artwork - - - - - R ITC J2C, J2K, JPC R JPEG 2000 codestream R3 R3 R R - R Jpeg2000 Photoshop3 JP2, JPF, JPM,
JPX, JPHR/W JPEG 2000 image [Compound/Extended/High-throughput] R/W/C3 R/W/C3 R/W/C R - R/W/C Jpeg2000, R Photoshop3 JPEG, JPG, JPE R/W Joint Photographic Experts Group image R/W/C R/W/C R/W/C R/W/C R/D Supported JPEG Meta Information JSON R JavaScript Object Notation - - - - - R JSON JXL R/W JPEG XL (codestream and ISO BMFF) (Jpeg2000-based) R/W/C - R/W/C - - - K25 R Kodak DC25 RAW (TIFF-based) R R R R R - KDC R Kodak Digital Camera RAW (TIFF-based) R R R R R R Kodak KEY, KTH R Apple iWork '09 Keynote presentation/Theme - - - - - R XML ZIP LA R Lossless Audio (RIFF-based) R3 - R - R R RIFF LFP, LFR R Lytro Light Field Picture - - - - - R Lytro LIF R Leica Image File - - - - - R LIF LNK R Microsoft Shell Link (Windows shortcut) - - - - - R LNK LRV R/W Low-Resolution Video (QuickTime-based) R/W3 R/W3 R/W/C - - R/W/C QuickTime M2TS, MTS, M2T, TS R MPEG-2 Transport Stream (used for AVCHD video) - - - - - R M2TS H264 MISB M4A, M4B, M4P, M4V R/W MPEG-4 Audio/Video (QuickTime-based) R/W3 R/W3 R/W/C - R/D R/W/C QuickTime MACOS R MacOS "._" sidecar file (may have any extension) - - - - - R XAttr RSRC MAX R 3D Studio MAX (FPX-like) - - R R - R FlashPix MEF R/W Mamiya (RAW) Electronic Format (TIFF-based) R/W/C R/W/C R/W/C R/W/C R/D - MIE R/W/C Meta Information Encapsulation (MIE specification) R/W/C R/W/C R/W/C R/W/C R/D R/W/C MIE MIFF, MIF R Magick Image File Format R R R R - R MIFF Photoshop MKA, MKV, MKS R Matroska Audio/Video/Subtitle - - - - - R Matroska MOBI, AZW, AZW3 R Mobipocket electronic book (Palm-based) - - - - - R Palm MOBI MODD R Sony Picture Motion metadata (XML PLIST-based) - - - - - R PLIST MOI R MOD Information file - - - - - R MOI MOS R/W Creo Leaf Mosaic (TIFF-based) R/W/C R/W/C R/W/C R/W/C R/D R Leaf MOV, QT R/W Apple QuickTime Movie R/W3 R/W3 R/W/C - R/D R/W/C QuickTime MP3 R MPEG-1 layer 3 audio - - - - R R MPEG ID3 Lyrics3 APE MP4 R/W Motion Picture Experts Group version 4 (QuickTime-based) R/W3 R/W3 R/W/C - R/D R/W/C QuickTime MPC R Musepack Audio - - - - R R MPC ID3 Lyrics3 APE MPEG, MPG, M2V R Motion Picture Experts Group version 1 or 2 - - - - R R MPEG ID3 Lyrics3 MPO R/W Extended Multi-Picture format (JPEG with MPF extensions) R/W/C R/W/C R/W/C R/W/C R/D Supported JPEG Meta Information MQV R/W Sony Mobile QuickTime Video R/W3 R/W3 R/W/C - R/D R/W/C QuickTime MRW R/W Minolta RAW R/W/C R/W/C R/W/C R/W/C R/D R/W MinoltaRaw Minolta MRC R Medical Research Council - - - - - R MRC MXF R Material Exchange Format - - - - - R MXF NEF R/W Nikon (RAW) Electronic Format (TIFF-based) R/W/C R/W/C R/W/C R/W/C R/D R/W Nikon NikonCapture NKA R Nikon NX Studio Adjustments - - - - - R XML NKSC R/W Nikon Sidecar (XMP-based) - - R/W/C - - - NMBTEMPLATE R Apple iWork '09 Numbers Template - - - - - R XML ZIP NRW R/W Nikon RAW (2) (TIFF-based) R/W/C R/W/C R/W/C R/W/C R/D R/W Nikon NikonCapture NXD R Nikon Capture NX-D adjustments (XMP-based) - - R - - - NUMBERS R Apple iWork '09 Numbers spreadsheet - - - - - R XML ZIP O R Unix compiled code Object - - - - - R EXE ODB, ODC, ODF, ODG,
ODI, ODP, ODS, ODTR Open Document Database/Chart/Formula/Graphics/
Image/Presentation/Spreadsheet/Text (ZIP/XML-based)- - - - - R XML ZIP OFR R OptimFROG audio (RIFF-based) R3 - R - R R RIFF OGG, OGV R Ogg bitstream container - - - - R R FLAC ID3 Lyrics3 Theora Vorbis ONP R ON1 Presets - - - - - R JSON PLIST OPUS R Ogg Opus audio - - - - R R FLAC ID3 Lyrics3 Opus Vorbis ORF, ORI R/W Olympus RAW Format (TIFF-based) R/W/C R/W/C R/W/C R/W/C R/D R/W Olympus OTF R Open Type Font - - - - R R Font PAC R Lossless Predictive Audio Compression (RIFF-based) R3 - R - R R RIFF PAGES R Apple iWork '09 Pages document - - - - - R XML ZIP PCD R Kodak Photo CD Image Pac - - - - - R PhotoCD PCX R PC Paintbrush - - - - - R PCX PDB, PRC R Palm Database - - - - - R Palm R/W7 Adobe Portable Document Format R3 R3 R/W/C R3 R R/W/C PDF, R Photoshop PEF R/W Pentax (RAW) Electronic Format (TIFF-based) R/W/C R/W/C R/W/C R/W/C R/D R/W Pentax PFA, PFB R PostScript Font ASCII/Binary - - - - - R Font PFM R Printer Font Metrics - - - - - R Font PFM R Portable FloatMap - - - - - R PFM PGF R Progressive Graphics File - - - - - R PGF PNG PICT, PCT R Apple Picture file - - - R - R PICT Photoshop PLIST R Apple Property List (binary and XML formats) - - - - - R PLIST PMP R Sony DSC-F1 Cyber-Shot image - - - - - R Sony PNG, JNG, MNG R/W Portable/JPEG/Multiple-image Network Graphics R/W/C3 R/W/C3 R/W/C R/W/C R/D R/W/C PNG PPM, PBM, PGM R/W Portable Pixel/Bit/Gray Map - - - - - R PPM, R/W/C Comment PPT, PPS, POT R PowerPoint Presentation/Slideshow/Template (FPX-like) - - R R - R FlashPix POTX, POTM R Office Open XML Presentation Template [Macro-enabled] - - - - - R XML ZIP PPAX, PPAM R Office Open XML Presentation Addin [Macro-enabled] - - - - - R XML ZIP PPSX, PPSM R Office Open XML Presentation Slideshow [Macro-enabled] - - - - - R XML ZIP PPTX, PPTM R Office Open XML Presentation [Macro-enabled] - - - - - R XML ZIP PSD, PSB, PSDT R/W PhotoShop Document / Large Document / Template R/W/C R/W/C R/W/C R/W/C - R Photoshop PSP, PSPIMAGE R Paint Shop Pro R - - - - R PSP QTIF, QTI, QIF R/W QuickTime Image File R/W3 R/W3 R/W/C - R/D R/W/C QuickTime R3D R Redcode RAW video - - - - - R Red RA R Real Audio - - - - R R Real ID3 Lyrics3 RAF R/W FujiFilm RAW Format R/W/C R/W/C R/W/C R/W/C R/D R/W FujiFilm RAM, RPM R Real Audio/Plug-in Metafile - - - - - R Real RAR R RAR Archive - - - - - R ZIP RAW R Kyocera Contax N Digital RAW - - - - - R KyoceraRaw RAW R/W Panasonic RAW (TIFF-based) R/W/C R/W/C R/W/C R/W/C R/D R/W PanasonicRaw Panasonic RIFF, RIF R Resource Interchange File Format R3 - R - R R RIFF RM, RV, RMVB R Real Media/Video [Variable Bitrate] - - - - - R Real RSRC R Mac OS Resource - - - - - R RSRC Photoshop PostScript Font RTF R Rich Text Format - - - - - R RTF RW2 R/W Panasonic RAW 2 (TIFF-based) R/W/C R/W/C R/W/C R/W/C R/D R/W PanasonicRaw Panasonic RWL R/W Leica RAW (TIFF-based) R/W/C R/W/C R/W/C R/W/C R/D R/W PanasonicRaw Panasonic RWZ R Rawzor compressed image R R R R - R Rawzor SEQ R FLIR Systems image Sequence - - - - - R FLIR SKETCH R Sketch design file - - - - - R JSON ZIP SO R Unix ELF executable and Shared Object files - - - - - R EXE SR2 R/W Sony RAW 2 (TIFF-based) R/W/C R/W/C R/W/C R/W/C R/D R/W Sony SRF R Sony RAW Format (TIFF-based) R R R R R R Sony SRW R/W Samsung RAW format (TIFF-based) R/W/C R/W/C R/W/C R/W/C R/D R/W Samsung SVG R Scalable Vector Graphics (XML-based) - - - - R R SVG SWF R Shockwave Flash - - R - - R Flash THM R/W Thumbnail image (JPEG) R/W/C R/W/C R/W/C R/W/C R/D Supported JPEG Meta Information THMX R Office Open XML Theme - - - - - R XML ZIP TIFF, TIF R/W Tagged Image File Format R/W/C R/W/C R/W/C R/W/C R/D R/W/C GeoTIFF1, R/W Trailers TTF, TTC R True Type Font/Collection - - - - R R Font TORRENT R BitTorrent description file - - - - - R Torrent TXT R Text files - - - - - R Text VCF, VCARD R Virtual Card - - - - - R VCard VNT R Scene7 Vignette (FPX-like) - - - R - R FlashPix VNT R V-Note document - - - - - R VNote VOB R Video Object (MPEG-based) - - - - - R MPEG VRD R/W/C2 Canon DPP Recipe Data - - R/W/C - - R/W/C CanonVRD2 VSD R Microsoft Visio Drawing (FPX-like) - - R R - R FlashPix WAV R Windows digital audio WAVeform (RIFF-based) R3 - R - R R RIFF WEBM R Google Web Movie (Matroska-based) - - - - - R Matroska WEBP R/W Google Web Picture (RIFF-based) R/W/C - R/W/C R/W/C R/D R RIFF WMA, WMV R Windows Media Audio/Video (ASF-based) - - R - - R ASF WPG R WordPerfect Graphics - - - - - R WPG WTV R Windows recorded TV show - - - - - R WTV WV R WavePack lossless audio (RIFF-based) R3 - R - R R RIFF X3F R/W Sigma/Foveon RAW R/W/C R/W/C R/W/C R/W/C R/D R/W Sigma, R SigmaRaw XCF R GIMP native image format R R R R - R GIMP XISF R Extensible Image Serialization Format - - - - - R XISF XLS, XLT R Microsoft Excel Spreadsheet/Template (FPX-like) - - R R - R FlashPix XLSX, XLSM, XLSB R Office Open XML Spreadsheet [Macro-enabled/Binary] - - - - - R XML ZIP XLTX, XLTM R Office Open XML Spreadsheet Template [Macro-enabled] - - - - - R XML ZIP XMP R/W/C Extensible Metadata Platform sidecar file - - R/W/C - - - ZIP R ZIP archive - - - - - R ZIP
ExifTool can Read, Write and/or Create the following types of meta information in JPEG images:
1 All trailers except Samsung, Insta360, PreviewImage and EmbeddedVideo also have R/W support in TIFF images, and the NikonApp trailer is used in NEF/NRW files.
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 APP0 - Ocad R Photobucket Ocad segment APP1 - EXIF R/W/C Exchangeable Image File Format (multi-segment) APP1 - XMP R/W/C Extensible Metadata Platform (multi-segment) APP1 - QVCI R Casio QV-7000SX QVCI information APP1 - FLIR R FLIR thermal imaging data (multi-segment) APP1 - RawThermalImage R Thermal image from Parrot Bebop-Pro Thermal drone APP2 - ICC R/W/C International Color Consortium (multi-segment) APP2 - FPXR R FlashPix Ready (multi-segment) APP2 - MPF R Multi-Picture Format APP2 - InfiRay Version R InfiRay IJPEG Version header APP2 - PreviewImage R Samsung/GE APP2 preview image (multi-segment) APP3 - Kodak Meta R/W Kodak Meta information (EXIF-like) APP3 - Stim R Stereo Still Image format APP3 - JPS R JPEG Stereo image APP3 - ThermalData R DJI RJPEG thermal data (multi-segment) APP3 - ImagingData R InfiRay IJPEG IR+thermal+visible data (multi-segment) APP3 - PreviewImage R Samsung/HP preview image (multi-segment) APP4 - Scalado R (presumably written by Scalado mobile software) APP4 - ThermalParams R Thermal parameters from DJI RJPEG file APP4 - ThermalParams2 R DJI thermal parameters type 2 APP4 - ThermalParams3 R DJI thermal parameters type 3 APP4 - FPXR R FlashPix Ready in non-standard location (multi-segment) APP4 - InfiRay Factory R InfiRay IJPEG Factory Temperature APP4 - PreviewImage R (continued from APP3) APP5 - Ricoh RMETA R Ricoh custom fields APP5 - Samsung UniqueID R Samsung Unique ID APP5 - ThermalCalibration R Thermal calibration data from DJI RJPEG file APP5 - InfiRay Picture R InfiRay IJPEG Picture Temperature APP5 - PreviewImage R (continued from APP4) APP6 - EPPIM R Toshiba PrintIM APP6 - NITF R National Imagery Transmission Format APP6 - HP TDHD R Hewlett-Packard Photosmart R837 TDHD information APP6 - GoPro R GoPro Metadata Format (GPMF) information APP6 - DJI DTAT R DJI Thermal Analysis Tool record (JSON format) APP6 - InfiRay MixMode R InfiRay IJPEG Mix Mode APP7 - Pentax R Pentax APP7 maker notes APP7 - Qualcomm R Qualcomm Camera Attributes APP7 - Huawei R Huawei APP7 maker notes (extract with Unknown option) APP7 - InfiRay OpMode R InfiRay IJPEG Operation Mode APP6 - DJI Info R DJI debug information APP8 - SPIFF R Still Picture Interchange File Format APP8 - InfiRay Isothermal R InfiRay IJPEG Isothermal APP9 - Media Jukebox R Media Jukebox XML information APP9 - InfiRay Sensor R InfiRay IJPEG Sensor Information APP10 - Comment R PhotoStudio Unicode Comment APP11 - JPEG-HDR R JPEG-HDR compressed ratio image APP11 - JUMBF (C2PA) R Jpeg Universal Metadata Box Format (multi-segment) 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/W/C Adobe DCT filter APP15 - GraphicConverter R GraphicConverter quality COM R/W/C JPEG Comment (multi-segment) DQT R (used to calculate the Extra:JPEGDigest tag value) SOF R JPEG Start Of Frame JPEG Trailer 1 Support Description AFCP trailer R/W AXS File Concatenation Protocol (includes IPTC) CanonVRD trailer R/W/C Canon DPP Recipe Data (includes DR4) FotoStation trailer R/W FotoWare FotoStation (includes IPTC) PhotoMechanic trailer R/W Camera Bits Photo Mechanic MIE trailer R/W Meta Information Encapsulation Samsung trailer R Samsung Galaxy trailer Insta360 trailer R Insta360 trailer found in INSP files NikonApp trailer R Nikon trailer added by NX Studio to NEF/NRW files Sony HiddenData trailer R Hidden data written by some Sony models PreviewImage trailer R/W/C (preview image written after JPEG EOI) EmbeddedVideo trailer R (extracted only with ExtractEmbedded option)
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 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 or strawberryperl.com.)
Everyone else (Mac, Unix, etc): Don't worry, you 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
".pl
" extension.
The ExifTool .exe file ("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) Running in the Windows GUI (not from command line):
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 .exe file.
(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 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
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. Valid characters
in a tag name are A-Z (case is not significant), 0-9, hyphen (-)
and underline (_). The tag name may be prefixed by a group name
(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
(not including tags specified with wildcards or by -GROUP:all
).-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 various families. Here is a list of the group names in each family:
Family Group Names 0 (Information Type) AAC, AFCP, AIFF, APE, APP0, APP1, APP11, APP12, APP13, APP14, APP15, APP2, APP3, APP4, APP5, APP6, APP7, APP8, APP9, ASF, Audible, Canon, CanonVRD, Composite, DICOM, DNG, DV, DjVu, Ducky, EXE, EXIF, ExifTool, FITS, FLAC, FLIR, File, Flash, FlashPix, Font, FotoStation, GIF, GIMP, GM, GeoTiff, GoPro, H264, HTML, ICC_Profile, ID3, IPTC, ISO, ITC, JFIF, JPEG, JSON, JUMBF, Jpeg2000, LNK, Leaf, Lytro, M2TS, MIE, MIFF, MISB, MNG, MOI, MPC, MPEG, MPF, MXF, MakerNotes, Matroska, Meta, Ogg, OpenEXR, Opus, PDF, PICT, PLIST, PNG, PSP, Palm, PanasonicRaw, Parrot, PhotoCD, PhotoMechanic, Photoshop, PostScript, PrintIM, QuickTime, RAF, RIFF, RSRC, RTF, Radiance, Rawzor, Real, Red, SVG, SigmaRaw, Sony, Stim, Theora, Torrent, Trailer, VCard, Vorbis, WTV, XML, XMP, ZIP 1 (Specific Location) AAC, AC3, AFCP, AIFF, APE, ASF, AVI1, Adobe, AdobeCM, AdobeDNG, Apple, Audible, CBOR, CIFF, CameraIFD, Canon, CanonCustom, CanonDR4, 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, GM, GPS, GSpherical, Garmin, 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, InfiRay, Insta360, InteropIFD, ItemList, JFIF, JFXX, JPEG, JPEG-HDR, JPS, JSON, JUMBF, JVC, Jpeg2000, KDC_IFD, Keys, Kodak, KodakBordersIFD, KodakEffectsIFD, KodakIFD, KyoceraRaw, LNK, Leaf, LeafSubIFD, Leica, Lyrics3, Lytro, M-RAW, 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, MISB, MNG, MOBI, MOI, MPC, MPEG, MPF0, MPImage, MS-DOC, MXF, MacOS, MakerNotes, MakerUnknown, Matroska, MediaJukebox, Meta, MetaIFD, Microsoft, Minolta, MinoltaRaw, Motorola, NITF, Nextbase, Nikon, NikonCapture, NikonCustom, NikonScan, NikonSettings, NineEdits, Nintendo, Ocad, Ogg, Olympus, OpenEXR, Opus, PDF, PICT, PNG, PNG-cICP, PNG-pHYs, PSP, Palm, Panasonic, PanasonicRaw, Parrot, 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, VCalendar, VCard, VNote, Version0, Vorbis, WTV, XML, XMP, XMP-DICOM, XMP-Device, XMP-GAudio, XMP-GCamera, XMP-GCreations, 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-ast, XMP-aux, XMP-cc, XMP-cell, XMP-crd, XMP-creatorAtom, XMP-crs, XMP-dc, XMP-dex, XMP-digiKam, XMP-drone-dji, XMP-dwc, XMP-et, XMP-exif, XMP-exifEX, XMP-expressionmedia, XMP-extensis, XMP-fpv, XMP-getty, XMP-hdr, XMP-hdrgm, XMP-ics, XMP-iptcCore, XMP-iptcExt, XMP-lr, XMP-mediapro, XMP-microsoft, XMP-mwg-coll, XMP-mwg-kw, XMP-mwg-rs, XMP-nine, XMP-panorama, XMP-pdf, XMP-pdfx, XMP-photomech, XMP-photoshop, XMP-plus, XMP-pmi, XMP-prism, XMP-prl, XMP-prm, XMP-pur, XMP-rdf, XMP-sdc, XMP-swf, XMP-tiff, XMP-x, XMP-xmp, XMP-xmpBJ, XMP-xmpDM, XMP-xmpDSA, XMP-xmpMM, XMP-xmpNote, XMP-xmpPLUS, XMP-xmpRights, XMP-xmpTPg, ZIP, iTunes 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) 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 HexTagIDs API option is set, as are characters in non-numerical ID's which are not valid in a group name. Either decimal or hexadecimal ID's may be used when writing. Note that unlike other group names, family 7 group names are case sensitive.) 8 (File Number) File# (for files loaded via -fileNUM
option)
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 GetGroup
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.
(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:
† See the Writer Limitations for some limitations of this feature.
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
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.
Note: Changes to PDF files are reversible because the original metadata is never actually deleted from these files. See the PDF Tags documentation for 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, 1, 2 or 7 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.
Some ExifTool options (-config
, -if
,
-p
, -fileNUM
, -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"
.
On startup, ExifTool executes user-defined code from the .ExifTool_config file located in the ExifTool directory, the directory specified by the EXIFTOOL_HOME, HOME or HOMEDRIVE+HOMEPATH environment variables, or the current working directory. So care must be taken to make sure that any such file contains only trusted code.
As well, untrusted window title strings should not be used with the
-progress:TITLE
option.
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 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 (download in PDF format) 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
Read here 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 desired tags 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 exception is XMP groups, which are
bypassed in processing so they are never even extracted -- specifying
--XMP-crs:all
and -XMP-crd:all
may speed processing
significantly by avoiding processing of bulky Adobe image-editing information.
The API IgnoreTags option (added in
ExifTool 12.43) may also be used for significant speed benefits in some cases,
especially when memory usage is significant because this may significantly
reduced the required memory.
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/env perl 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.
User-contributed Documentation
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 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:
(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.)
Phil has a master's degree in nuclear physics and is now officially retired from his position at Queen's University where he worked with the Nobel-prize-winning Sudbury Neutrino Observatory (SNO) team and other SNOLab experiments from 1990 to 2020. For SNO he wrote the software to aquire, format, store and display all of the hundreds of terabytes of data generated by the detector; software that continues to be used by SNO+ for their even greater data volume.
ExifTool started as a simple utility used to display metadata from images hosted on the SNO web site, but quickly expanded in scope as Phil got involved with digital photography beginning in 2001. During retirement Phil continues to enjoy digital photography, a hobby which he now applies to bird watching. A selection of his birding pictures may be found in his recent Birds of Kingston book.
If you have any comments, suggestions or questions, please post to the ExifTool Forum so other people may benefit from your experiences. (I will respond in the forum more quickly than by 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