Also available -->Utility to fix Nikon NEF images corrupted by Nikon software
Note: IP's that agressively download multiple copies ofthe distribution files or access web pages too quickly will be blocked.
Download Version 13.25 (7.3 MB) -Mar. 11, 2025
ExifTool is a platform-independentPerllibrary plus acommand-line application forreading, writing and editing meta information in awide variety of files.ExifTool supports many different metadata formats includingEXIF,GPS,IPTC,XMP,JFIF,GeoTIFF,ICC Profile,Photoshop IRB,FlashPix,AFCP andID3,Lyrics3,as well as the maker notes of many digital cameras byCanon,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 andSony.
ExifTool is also available as aWindows executable and aMacOS package:(Note that these versions contain the executableonly, and do not include the HTML documentation or other files of the fulldistribution above.)
Windows 32-bit: exiftool-13.25_32.zip (11.0 MB) 64-bit: exiftool-13.25_64.zip (10.8 MB)
The Windows executable archives include Perl. Just download and un-zipthe appropriate archive then double-click on "exiftool(-k).exe
" to read theapplication documentation, drag-and-drop files and folders to view metainformation, or rename to "exiftool.exe
" for command-line use.Note that if you move the .exe to another folder, youmust also movethe "exiftool_files
" folder to the same location.
(The Windows packages are based on work by Oliver Betz, and use hislauncher.Oliveralso provides self-installing versions of these executables.Seethis forum postif you have any problems/comments with these versions.)
MacOS Package: ExifTool-13.25.pkg (5.3 MB)
The MacOS package installs the ExifTool command-line application andlibraries in /usr/local/bin. After installing, type "exiftool
" in aTerminal window to run exiftool and read the application documentation.
Read theinstallation instructions for helpinstalling ExifTool on Windows, MacOS and Unix systems.
If you feelthe need to use "find" or "awk" in conjunction with ExifTool, then you probablyhaven't discovered the full power of ExifTool. Read about the-ext
,-if
,-p
and-tagsFromFile
options in theapplication documentation. (This iscommon mistake number 3.)
"It's the gold standard in terms of the image metadata it can access" -Darkroom Photos
"In my experience, nothing but nothing is as complete, powerful, and flexible asPhil 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/updatingthe metadata like ExifTool" -merg's blog
"Fast, reliable and amazingly comprehensive ..."-CPAN ratings
"... the one piece of free software that gets the mostdetailed exif data of /any/ tool I've found."-gnome mail archives
"ExifTool makes every other EXIF reader (and writer) than I'veseen, 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 developmentiterations to continually optimize our platform..."-Find My Electric
"... it's super awesome, it's super reliable and after many years ofdevelopment it's still being updated!" -P_W999 blog
"ExifTool was the first and is (imho) by far the most complete,safe, well-tested, well-documented, and up-to-date software you can use tomanipulate metadata" -Nine Degrees Below Photography
"... it is the mother of all EXIF utilities; the BFG of meta-dataextraction; the Pan Galactic Gargle Blaster of EXIF tools ... This thing willsuck 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 canRead,Write and/orCreate files in the following formats. Alsolisted are the support levels for EXIF, IPTC (IIM), XMP, ICC_Profile, C2PA (JUMBF) and othermetadata types for each file format. C2PA metadata is not currentlyWritable, but may beDeleted 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 toPhocus 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/CQuickTime 3GP, 3GPP R/W 3rd Gen. Partnership Project a/v (QuickTime-based) R/W3 R/W3 R/W/C - R/D R/W/CQuickTime 7z R 7z Archive - - - - - RZIP A R Unix static library code Archive - - - - - REXE AA R Audible Audiobook - - - - - RAudible AAC R Advanced Audio Codec - - - - - RAAC AAE R Apple edit information (XMLPLIST-based) - - - - - RPLIST AAX R/W Audible Enhanced Audiobook (QuickTime-based) R/W3 R/W3 R/W/C - R/D R/W/CQuickTime ACR R American College of Radiology ACR-NEMA (DICOM-like) - - - - - RDICOM AFM, ACFM, AMFM R Adobe [Composite/Multiple Master] Font Metrics - - - - - RFont AI, AIT R/W Adobe Illustrator [Template] (PS orPDF) R/W/C4 R/W/C4 R/W/C5 R/W/C4 - R/W/CPDFPostScript, RPhotoshop AIFF, AIF, AIFC R Audio Interchange File Format [Compressed] - - - - R RAIFFID3Lyrics3 APE R Monkey's Audio - - - - R RAPEID3Lyrics3 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/WSonySonyIDC ARW R/W Sony Alpha RAW (TIFF-based) R/W/C R/W/C R/W/C R/W/C R/D R/WSonySonyIDC ASF R Microsoft Advanced Systems Format - - R - - RASF AVI R Audio Video Interleaved (RIFF-based) R3 - R - R RRIFF AVIF R/W AV1 Image File Format (QuickTime-based) R/W/C - R/W/C R/W R/D R/WQuickTime BMP, DIB R Windows BitMaP / Device Independent Bitmap - - - - - RBMP BPG R Better Portable Graphics R - R R - RBPG BTF R BigTIFF (64-bit Tagged Image File Format) R R R R R - CAP R Microsoft Network Monitor Capture - - - - - RPCAP C2PA, JUMBF R C2PA JPEG Universal Metadata Box Format - - - - R RJpeg2000 CHM R Microsoft Compiled HTML format - - - - - REXE 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/WCanon, R/W/CCanonVRD2 CR3 R/W Canon RAW 3 (QuickTime-based) (CR3 spec) R/W/C - R/W/C - R/D R/WCanonQuickTime, R/W/CCanonVRD2 CRM R/W Canon RAW Movie (QuickTime-based) R/W/C - R/W/C - R/D R/WCanonQuickTime CRW, CIFF R/W Canon RAW Camera Image File Format (CRW spec) - - R/W/C - - R/WCanonRaw, R/W/CCanonVRD2 CS1 R/W Sinar CaptureShop 1-shot RAW (PSD-based) R/W/C R/W/C R/W/C R/W/C - RPhotoshop CSV R Comma-Separated Values - - - - - RText CZI R Zeiss Integrated Software RAW (ZISRAW) - - - - - RZISRAW, R XML DCM, DC3, DIC, DICM R DICOM - Digital Imaging and Communications in Medicine - - - - - RDICOM 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 - - - - - RFont DIVX R DivX media format (ASF-based) - - R - - RASF DJVU, DJV R DjVu image (AIFF-like) - - R - - RDJVU 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 - RFlashPix DOCX, DOCM R Office Open XML Document [Macro-enabled] - - - - - RXMLZIP DOTX, DOTM R Office Open XML Document Template [Macro-enabled] - - - - - RXMLZIP DPX R Digital Picture Exchange - - - - - RDPX DR4 R/W/C2 Canon DPP version 4 Recipe - - - - - R/W/CCanonVRD2 DSS, DS2 R Digital Speech Standard [2] - - - - - ROlympus DYLIB R MacOS Mach-O executable and library files - - - - - REXE DV R Digital Video - - - - - RDV DVB R/W Digital Video Broadcasting (QuickTime-based) R/W3 R/W3 R/W/C - R/D R/W/CQuickTime DVR-MS R Microsoft Digital Video Recording (ASF-based) - - R - - RASF EIP R Capture One Enhanced Image Package (ZIP-based) R - - - - R XMLZIP EPS, EPSF, PS R/W [Encapsulated] PostScript Format R/W/C R/W/C R/W/C R/W/C - R/W/CPostScript, RPhotoshop EPUB R Electronic Publication (ZIP/XML-based) - - - - - R XMLZIP ERF R/W Epson RAW Format (TIFF-based) R/W/C R/W/C R/W/C R/W/C R/D R/WOlympus EXE, DLL R DOS/Windows executable and library files - - - - - REXE EXIF R/W/C Exchangeable Image File Format metadata (TIFF-based) R/W/C - - - R/D - EXR R Open EXR (Extended Range) R - R - - ROpenEXR 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/CQuickTime 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 - - - - - RFLIR FITS R Flexible Image Transport System - - - - - RFITS FLA R Macromedia/Adobe Flash project (FPX-like) - - R R - RFlashPix FLAC R Free Lossless Audio Codec - - - - R RFLACID3Lyrics3 FLIF R/W Free Lossless Image Format R/W/C - R/W/C R/W/C - RFLIF FLV R Flash Video - - R - - RFlash FPF R FLIR Public image Format - - - - - RFLIR FPX R FlashPix image - - R R - RFlashPix GIF R/W Compuserve Graphics Interchange Format - - R/W/C R/W/C R/D R/W/CGIF GLV R/W Garmin Low-resolution Video (QuickTime-based) R/W3 R/W3 R/W/C - R/D R/W/CQuickTime 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 - - - - - RZIP 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 - - - - - RRadiance HEIC, HEIF, HIF R/W High Efficiency Image Format (QuickTime-based) R/W/C - R/W/C R/W R/D R/WQuickTime HTML, HTM, XHTML R [Extensible] HyperText Markup Language - - - - - RHTML ICC, ICM R/W/C1 International Color Consortium color profile - - - R/W/C - - ICO, CUR R Windows Icon / Cursor - - - - - RICO ICS, ICAL R iCalendar Schedule - - - - - RVCalendar IDML R Adobe InDesign Markup Language (ZIP/XML-based) - - - - - R XMLZIP 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/WPhaseOne 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 RQuickTime INX R Adobe InDesign Interchange (XML-based) - - R - - - ISO R ISO 9660 disk image - - - - - RISO ITC R iTunes Cover Flow artwork - - - - - RITC J2C, J2K, JPC R JPEG 2000 codestream R3 R3 R R - RJpeg2000Photoshop3 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/CJpeg2000, RPhotoshop3 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 - - - - - RJSON 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 RKodak KEY, KTH R Apple iWork '09 Keynote presentation/Theme - - - - - RXMLZIP LA R Lossless Audio (RIFF-based) R3 - R - R RRIFF LFP, LFR R Lytro Light Field Picture - - - - - RLytro LIF R Leica Image File - - - - - RLIF LNK R Microsoft Shell Link (Windows shortcut) - - - - - RLNK LRV R/W Low-Resolution Video (QuickTime-based) R/W3 R/W3 R/W/C - - R/W/CQuickTime M2TS, MTS, M2T, TS R MPEG-2 Transport Stream (used for AVCHD video) - - - - - RM2TSH264MISB M4A, M4B, M4P, M4V R/W MPEG-4 Audio/Video (QuickTime-based) R/W3 R/W3 R/W/C - R/D R/W/CQuickTime MACOS R MacOS "._" sidecar file (may have any extension) - - - - - RXAttrRSRC MAX R 3D Studio MAX (FPX-like) - - R R - RFlashPix 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/CMIE MIFF, MIF R Magick Image File Format R R R R - RMIFFPhotoshop MKA, MKV, MKS R Matroska Audio/Video/Subtitle - - - - - RMatroska MOBI, AZW, AZW3 R Mobipocket electronic book (Palm-based) - - - - - RPalmMOBI MODD R Sony Picture Motion metadata (XMLPLIST-based) - - - - - RPLIST MOI R MOD Information file - - - - - RMOI MOS R/W Creo Leaf Mosaic (TIFF-based) R/W/C R/W/C R/W/C R/W/C R/D RLeaf MOV, QT R/W Apple QuickTime Movie R/W3 R/W3 R/W/C - R/D R/W/CQuickTime MP3 R MPEG-1 layer 3 audio - - - - R RMPEGID3Lyrics3APE MP4 R/W Motion Picture Experts Group version 4 (QuickTime-based) R/W3 R/W3 R/W/C - R/D R/W/CQuickTime MPC R Musepack Audio - - - - R RMPCID3Lyrics3APE MPEG, MPG, M2V R Motion Picture Experts Group version 1 or 2 - - - - R RMPEGID3Lyrics3 MPO R/W Extended Multi-Picture format (JPEG withMPF 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/CQuickTime MRW R/W Minolta RAW R/W/C R/W/C R/W/C R/W/C R/D R/WMinoltaRawMinolta MRC R Medical Research Council - - - - - RMRC MXF R Material Exchange Format - - - - - RMXF NEF R/W Nikon (RAW) Electronic Format (TIFF-based) R/W/C R/W/C R/W/C R/W/C R/D R/WNikonNikonCapture 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 - - - - - RXMLZIP NRW R/W Nikon RAW (2) (TIFF-based) R/W/C R/W/C R/W/C R/W/C R/D R/WNikonNikonCapture NXD R Nikon Capture NX-D adjustments (XMP-based) - - R - - - NUMBERS R Apple iWork '09 Numbers spreadsheet - - - - - RXMLZIP O R Unix compiled code Object - - - - - REXE ODB, ODC, ODF, ODG,
ODI, ODP, ODS, ODTR Open Document Database/Chart/Formula/Graphics/
Image/Presentation/Spreadsheet/Text (ZIP/XML-based)- - - - - R XMLZIP OFR R OptimFROG audio (RIFF-based) R3 - R - R RRIFF OGG, OGV R Ogg bitstream container - - - - R RFLACID3Lyrics3TheoraVorbis ONP R ON1 Presets - - - - - RJSONPLIST OPUS R Ogg Opus audio - - - - R RFLACID3Lyrics3OpusVorbis ORF, ORI R/W Olympus RAW Format (TIFF-based) R/W/C R/W/C R/W/C R/W/C R/D R/WOlympus OTF R Open Type Font - - - - R RFont PAC R Lossless Predictive Audio Compression (RIFF-based) R3 - R - R RRIFF PAGES R Apple iWork '09 Pages document - - - - - RXMLZIP PCAP, PCAPNG R Packet Capture (Next Generation) - - - - - RPCAP PCD R Kodak Photo CD Image Pac - - - - - RPhotoCD PCX R PC Paintbrush - - - - - RPCX PDB, PRC R Palm Database - - - - - RPalm R/W7 Adobe Portable Document Format R3 R3 R/W/C R3 R R/W/CPDF, RPhotoshop PEF R/W Pentax (RAW) Electronic Format (TIFF-based) R/W/C R/W/C R/W/C R/W/C R/D R/WPentax PFA, PFB R PostScript Font ASCII/Binary - - - - - RFont PFM R Printer Font Metrics - - - - - RFont PFM R Portable FloatMap - - - - - RPFM PGF R Progressive Graphics File - - - - - RPGFPNG PICT, PCT R Apple Picture file - - - R - RPICTPhotoshop PLIST R Apple Property List (binary and XML formats) - - - - - RPLIST PMP R Sony DSC-F1 Cyber-Shot image - - - - - RSony 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/CPNG 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 - RFlashPix POTX, POTM R Office Open XML Presentation Template [Macro-enabled] - - - - - RXMLZIP PPAX, PPAM R Office Open XML Presentation Addin [Macro-enabled] - - - - - RXMLZIP PPSX, PPSM R Office Open XML Presentation Slideshow [Macro-enabled] - - - - - RXMLZIP PPTX, PPTM R Office Open XML Presentation [Macro-enabled] - - - - - RXMLZIP PSD, PSB, PSDT R/W PhotoShop Document / Large Document / Template R/W/C R/W/C R/W/C R/W/C - RPhotoshop PSP, PSPIMAGE R Paint Shop Pro R - - - - RPSP QTIF, QTI, QIF R/W QuickTime Image File R/W3 R/W3 R/W/C - R/D R/W/CQuickTime R3D R Redcode RAW video - - - - - RRed RA R Real Audio - - - - R RRealID3Lyrics3 RAF R/W FujiFilm RAW Format R/W/C R/W/C R/W/C R/W/C R/D R/WFujiFilm RAM, RPM R Real Audio/Plug-in Metafile - - - - - RReal RAR R RAR Archive - - - - - RZIP RAW R Kyocera Contax N Digital RAW - - - - - RKyoceraRaw RAW R/W Panasonic RAW (TIFF-based) R/W/C R/W/C R/W/C R/W/C R/D R/WPanasonicRawPanasonic RIFF, RIF R Resource Interchange File Format R3 - R - R RRIFF RM, RV, RMVB R Real Media/Video [Variable Bitrate] - - - - - RReal RSRC R Mac OS Resource - - - - - RRSRCPhotoshopPostScriptFont RTF R Rich Text Format - - - - - RRTF RW2 R/W Panasonic RAW 2 (TIFF-based) R/W/C R/W/C R/W/C R/W/C R/D R/WPanasonicRawPanasonic RWL R/W Leica RAW (TIFF-based) R/W/C R/W/C R/W/C R/W/C R/D R/WPanasonicRawPanasonic RWZ R Rawzor compressed image R R R R - RRawzor SEQ R FLIR Systems image Sequence - - - - - RFLIR SKETCH R Sketch design file - - - - - RJSONZIP SO R Unix ELF executable and Shared Object files - - - - - REXE SR2 R/W Sony RAW 2 (TIFF-based) R/W/C R/W/C R/W/C R/W/C R/D R/WSony SRF R Sony RAW Format (TIFF-based) R R R R R RSony SRW R/W Samsung RAW format (TIFF-based) R/W/C R/W/C R/W/C R/W/C R/D R/WSamsung SVG R Scalable Vector Graphics (XML-based) - - - - R RSVG SWF R Shockwave Flash - - R - - RFlash 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 - - - - - RXMLZIP TIFF, TIF R/W Tagged Image File Format R/W/C R/W/C R/W/C R/W/C R/D R/W/CGeoTIFF1, R/WTrailers TTF, TTC R True Type Font/Collection - - - - R RFont TORRENT R BitTorrent description file - - - - - RTorrent TXT R Text files - - - - - RText VCF, VCARD R Virtual Card - - - - - RVCard VNT R Scene7 Vignette (FPX-like) - - - R - RFlashPix VNT R V-Note document - - - - - RVNote VOB R Video Object (MPEG-based) - - - - - RMPEG VRD R/W/C2 Canon DPP Recipe Data - - R/W/C - - R/W/CCanonVRD2 VSD R Microsoft Visio Drawing (FPX-like) - - R R - RFlashPix WAV R Windows digital audio WAVeform (RIFF-based) R3 - R - R RRIFF WEBM R Google Web Movie (Matroska-based) - - - - - RMatroska WEBP R/W Google Web Picture (RIFF-based) R/W/C - R/W/C R/W/C R/D RRIFF WMA, WMV R Windows Media Audio/Video (ASF-based) - - R - - RASF WPG R WordPerfect Graphics - - - - - RWPG WTV R Windows recorded TV show - - - - - RWTV WV R WavePack lossless audio (RIFF-based) R3 - R - R RRIFF X3F R/W Sigma/Foveon RAW R/W/C R/W/C R/W/C R/W/C R/D R/WSigma, RSigmaRaw XCF R GIMP native image format R R R R - RGIMP XISF R Extensible Image Serialization Format - - - - - RXISF XLS, XLT R Microsoft Excel Spreadsheet/Template (FPX-like) - - R R - RFlashPix XLSX, XLSM, XLSB R Office Open XML Spreadsheet [Macro-enabled/Binary] - - - - - RXMLZIP XLTX, XLTM R Office Open XML Spreadsheet Template [Macro-enabled] - - - - - RXMLZIP XMP R/W/C Extensible Metadata Platform sidecar file - - R/W/C - - - ZIP R ZIP archive - - - - - RZIP
ExifTool canRead,Write and/orCreate the following typesof meta information in JPEG images:
1 Some of these trailers are also supported forTIFF-format and QuickTime-format 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 - AROT R HDR Gain Curve 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 byScalado 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 -Qualcomm Dual R Qualcomm Dual Camera Attributes 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 -SEAL R SEAL content authentification APP8 -InfiRay Isothermal R InfiRay IJPEG Isothermal APP9 -Media Jukebox R Media Jukebox XML information APP9 -InfiRay Sensor R InfiRay IJPEG Sensor Information APP9 -SEAL R SEAL content authentification APP10 - URN R Uniform Resource Name 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, includesIPTC) 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 theExtra:JPEGDigest tag value) SOF R JPEG Start Of Frame JPEG Trailer1 Support Description AFCP trailer R/W AXS File Concatenation Protocol (includesIPTC) CanonVRD trailer R/W/C Canon DPP Recipe Data (includesDR4) FotoStation trailer R/W FotoWare FotoStation (includesIPTC) PhotoMechanic trailer R/W Camera Bits Photo Mechanic MIE trailer R/W Meta Information Encapsulation Samsung trailer R Samsung Galaxy trailer Vivo trailer R Trailer written by some Vivo phones OnePlus trailer R Trailer written by some OnePlus phones Google trailer R Trailer written by some Google phones 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, butsome optional Perl modules may be added to enable certain ExifTool features (fordetails, see the DEPENDENCIES section of the README file included in the fulldistribution).
Windows users: AWindows executableversion of ExifTool is available which doesn't require Perl. You can also usethe pure Perl version if you already have Perl installed. (You can get a good,free Perl interpreter fromactiveperl.com orstrawberryperl.com.)
Everyone else (Mac, Unix, etc): Don't worry, you already havePerl installed.
Theexiftool application provides aconvenient command-line interface for theImage::ExifTool Perl package (both included in thefull distribution). Once you have downloaded and extracted the distribution, youcan immediately run exiftool (without building or installing) by typing"DIR/exiftoolFILE
" (or"perlDIR/exiftoolFILE
" in Windows), whereDIR
is the exiftool directory andFILE
is the name of an image file, including directory name. Read theinstallation instructions or the README file includedin the full distribution for help installing ExifTool.
Many command-line options are available to allow you to access a wide rangeof features. Run exiftool with no arguments for acomplete list of available options withexamples.
i) From the command line:
The Perl application ("exiftool
") is run by typing "perlexiftool
". Alternately, you may be able to rename it to"exiftool.pl
" and type "exiftool.pl
", but thisrequires that the proper Windows associations have been made for the".pl
" extension.
The ExifTool .exe file ("exiftool(-k).exe
") should berenamed 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 systemPATH, 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 doublequotes 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 applicationdocumentation, or drag-and-drop files and folders to run exiftool on theselected files.
Simple options may be added inside brackets in the name of the .exe file.(But note that the characters/\?*:|"<>
may notbe used because they are invalid in Windows file names.) In this way, thebehaviour 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 Windowsshortcut for the executable. Using a shortcut has 3 advantages over addingoptions in the file name: 1) different shortcuts may be created withoutrequiring multiple copies of the executable, 2) characters which are invalidin 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 displaymore 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
TheVerbose (-v
) andHtmlDump (-htmlDump
) options print additionalinformation that can be very useful for debugging or when decoding new tags.
The-diff
option provides a method to show the metadata differencesbetween two files. For example, here is a comparison of two files excluding Systemand Composite tags:
>exiftool a.jpg -diff b.jpg --system:all -e
======== diff < a.jpg > b.jpg< [IFD0] Modify Date : 2024:09:05 14:37:40 > : 2024:09:05 14:41:05< [ExifIFD] Exposure Time : 1/400> : 1/1000< [ExifIFD] F Number : 4.0> : 5.6< [ExifIFD] Date/Time Original : 2024:09:05 14:37:40> : 2024:09:05 14:41:05< [ExifIFD] Create Date : 2024:09:05 14:37:40> : 2024:09:05 14:41:05< [ExifIFD] Brightness Value : 8.49765625> : 10.728125< [ExifIFD] Max Aperture Value : 2.8> : 4.0< [ExifIFD] Focal Length : 9.0 mm> : 32.7 mm< [ExifIFD] Focal Length In 35mm Format : 24 mm> : 89 mm< [Sony] Camera Temperature : 36 C> : 35 C< [Sony] Exposure Time : 1/400> : 1/1000< [Sony] Sony Max Aperture Value : 3.0> : 4.1< [Sony] Lens Zoom Position : 0%> : 59%< [Sony] Brightness Value : 8.49765625> : 10.728125< [Sony] WB RGB Levels : 578 256 478> : 592 256 466< [Sony] Focal Length : 9.0 mm> : 32.7 mm< [IFD1] Thumbnail Length : 12771> : 5940< [MPImage1] MP Image Length : 7696566> : 5839721< [MPImage2] MP Image Length : 1167032> : 492263< [MPImage2] MP Image Start : 7699456> : 5840896
A tag name is a "handle" that is used to refer to a specific piece of metainformation. Tag names are entered on the command line with a leading'-
', in the order you want them displayed. Valid charactersin a tag name are A-Z (case is not significant), 0-9, hyphen (-)and underline (_). The tag name may be prefixed by agroup name(separated by a colon) to identify a specific information type or location. Aspecial tag name of "All
" may be used to represent all tags, or alltags in a specified group. For example:
exiftool -filename -imagesize -exif:fnumber -xmp:all image.jpg
A complete list ofExifTool Tag Namesaccompanies this documentation. As well, current lists of available tag namesand writable tag names may be obtained using the exiftool-list
and-listw
options. But perhaps the easiest way to determine a tag nameis to use the-s
option to print the tag names instead ofdescriptions 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 thedescriptions 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 theprint conversion on a per-tag basis. See the-n option in the applicationdocumentation for more information.Shortcut tags represent one or more other tags, and are used like any othertag when reading, writing or copying information.
ExifTool definesa few shortcut tagsin the Image::ExifTool::Shortcuts module, and allows users to define their ownshortcuts in aconfiguration file called".ExifTool_config
" in their home directory or exiftool applicationdirectory. 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, ExposureTimeand 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 thesample configuration file included with the ExifTooldistribution.
Windows tip: You may have difficulty generating a filename beginningwith 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 listof 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, DjVu, DNG, Ducky, DV, EXE, EXIF, ExifTool, File, FITS,FLAC, Flash, FlashPix, FLIR, Font, FotoStation, GeoTiff, GIF, GIMP, GM,GoPro, H264, HTML, ICC_Profile, ID3, IPTC, ISO, ITC, JFIF, JPEG, Jpeg2000,JSON, JUMBF, Leaf, LNK, Lytro, M2TS, MakerNotes, Matroska, Meta, MIE, MIFF,MISB, MNG, MOI, MPC, MPEG, MPF, MXF, Ogg, OpenEXR, Opus, Palm, PanasonicRaw,Parrot, PDF, PhotoCD, PhotoMechanic, Photoshop, PICT, PLIST, PNG,PostScript, PrintIM, Protobuf, PSP, QuickTime, Radiance, RAF, Rawzor, Real,Red, RIFF, RSRC, RTF, SigmaRaw, Sony, Stim, SVG, Theora, Torrent, Trailer,VCard, Vorbis, WTV, XML, XMP, ZIP 1 (Specific Location) AAC, AC3, Adobe, AdobeCM, AdobeDNG, AFCP, AIFF, APE, APP10, APP2, Apple,ASF, Audible, AudioItemList, AudioKeys, AudioUserData, AVI1, CameraIFD,Canon, CanonCustom, CanonDR4, CanonRaw, CanonVRD, Casio, CBOR, Chapter#,CIFF, Composite, DICOM, DJI, DjVu, DjVu-Meta, DNG, Ducky, DV, EPPIM, EXE,EXIF, ExifIFD, ExifTool, File, FITS, FLAC, Flash, FlashPix, FLIR, Font,FotoStation, FujiFilm, FujiIFD, Garmin, GE, GeoTiff, GIF, GIMP,GlobParamIFD, GM, Google, GoPro, GPS, GraphConv, GSpherical, H264, HP, HTC,HTML, HTML-dc, HTML-ncc, HTML-office, HTML-prod, HTML-vw96, HTTP-equiv,ICC-chrm, ICC-cicp, 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, InfiRay, Insta360, InteropIFD, IPTC, IPTC#, ISO, ITC, ItemList,iTunes, JFIF, JFXX, JPEG, JPEG-HDR, Jpeg2000, JPS, JSON, JUMBF, JVC,KDC_IFD, Keys, Kodak, KodakBordersIFD, KodakEffectsIFD, KodakIFD,KyoceraRaw, Leaf, LeafSubIFD, Leica, LNK, Lyrics3, Lytro, M-RAW, M2TS, MAC,MacOS, MakerNotes, MakerUnknown, Matroska, MediaJukebox, Meta, MetaIFD,Microsoft, MIE-Audio, MIE-Camera, MIE-Canon, MIE-Doc, MIE-Extender,MIE-Flash, MIE-Geo, MIE-GPS, MIE-Image, MIE-Lens, MIE-Main, MIE-MakerNotes,MIE-Meta, MIE-Orient, MIE-Preview, MIE-Thumbnail, MIE-Unknown, MIE-UTM,MIE-Video, MIFF, Minolta, MinoltaRaw, MISB, MNG, MOBI, MOI, Motorola, MPC,MPEG, MPF0, MPImage, MS-DOC, MXF, Nextbase, Nikon, NikonCapture,NikonCustom, NikonScan, NikonSettings, NineEdits, Nintendo, NITF, Ocad, Ogg,Olympus, OnePlus, OpenEXR, Opus, Palm, Panasonic, PanasonicRaw, Parrot, PDF,Pentax, PhaseOne, PhotoCD, PhotoMechanic, Photoshop, PICT, PictureInfo, PNG,PNG-cICP, PNG-pHYs, PostScript, PreviewIFD, PrintIM, ProfileIFD, PSP,Qualcomm, QuickTime, Radiance, RAF, RAF2, Rawzor, Real, Real-CONT,Real-MDPR, Real-PROP, Real-RA3, Real-RA4, Real-RA5, Real-RJMD, Reconyx, Red,Ricoh, RIFF, RMETA, RSRC, RTF, Samsung, Sanyo, Scalado, SEAL, Sigma,SigmaRaw, Sony, SonyIDC, SPIFF, SR2, SR2DataIFD, SR2SubIFD, SRF#, Stim,SubIFD, SVG, System, Theora, Torrent, Track#, Track#ItemList, Track#Keys,Track#UserData, UserData, VCalendar, VCard, Version0, VideoItemList,VideoKeys, VideoUserData, Vivo, VNote, Vorbis, WTV, XML, XMP, XMP-aas,XMP-acdsee, XMP-acdsee-rs, XMP-album, XMP-apdi, XMP-apple-fi, XMP-ast,XMP-aux, XMP-cc, XMP-cell, XMP-crd, XMP-creatorAtom, XMP-crs, XMP-dc,XMP-Device, XMP-dex, XMP-DICOM, XMP-digiKam, XMP-drone-dji, XMP-dwc, XMP-et,XMP-exif, XMP-exifEX, XMP-expressionmedia, XMP-extensis, XMP-fpv,XMP-GAudio, XMP-GCamera, XMP-GContainer, XMP-GCreations, XMP-GDepth,XMP-getty, XMP-GFocus, XMP-GImage, XMP-GPano, XMP-GSpherical, XMP-hdr,XMP-HDRGainMap, XMP-hdrgm, XMP-ics, XMP-iptcCore, XMP-iptcExt, XMP-LImage,XMP-lr, XMP-mediapro, XMP-microsoft, XMP-MP, XMP-MP1, XMP-mwg-coll,XMP-mwg-kw, XMP-mwg-rs, XMP-nine, XMP-panorama, XMP-pdf, XMP-pdfx,XMP-photomech, XMP-photoshop, XMP-PixelLive, XMP-plus, XMP-pmi, XMP-prism,XMP-prl, XMP-prm, XMP-pur, XMP-rdf, XMP-sdc, XMP-seal, 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 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 aleading "0x" if theHexTagIDs API optionis set, as are characters in non-numerical ID's which are not valid in a groupname. Either decimal or hexadecimal ID's may be used when writing. Note thatunlike 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 1groups, or-g3:1
to see both family 3 and family 1 group names inthe output. See the-g
option in the exiftool applicationdocumentation for more details, and theGetGroupfunction in the ExifTool library for a description of the group families. Notethat 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 theoriginal, or thoroughly validate the new file before erasing the original.(Read here for some ramblings on the subject ofwriting meta information.)
Tag values are written rather than being extracted if any tag name ends witha '=
' symbol (or if the-tagsFromFile
or-geotag
options are used). The '=
' may be prefixed by'+
', '-
' or '<
' to add a value, removea value or set a value from file. The following table outlines the differentwrite syntaxes:
† See theWriter 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 otherspecial 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-tagbasis 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 applicationdocumentation for more details.
Note: Changes to PDF files are reversible because the originalmetadata is never actually deleted from these files. See thePDF 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 isnot specified when writing information, then the information is added only tothe highest priority group for which the tag name is valid (however, theinformation is updated in all groups where the tag already existed). Thepriority of the groups is given by the list above. Specifically, this means thatnew information is added preferentially to the EXIF group, or to the IPTC groupif no corresponding EXIF tag exists, or finally to the XMP group.
Alternatively, information may be written to a specific group only, bypassingthese priorities, by providing a group name for the tag. The"Writing Meta Information" section above gave the syntaxrules for exiftool command-line arguments to do this. Any family 0, 1, 2 or 7 groupname may be used when writing information, although not all groups are writable.
A special ExifTool option allows copying tags from one file to another. Thecommand-line syntax for doing this is"-tagsFromFileSRCFILE
". Any tags specified after thisoption on the command line are extracted from source file and written to thedestination 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 thesource and destination files, some of tags read may not be valid in thedestination file, in which case they aren't written.
This option may also be used to transfer information between different tagswithin a single image or between different images. See the-tagsFromFileoption 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-linearguments. This may be a security problem if ExifTool is executed from anotherapplication that blindly passes untrusted file names on the command line (sincethey may be interpreted as ExifTool options if they begin with a dash). To besecure the calling application must either place file names after the"--
" option, or ensure that input file names do not start with adash (U+002D) or a Unicode minus sign (U+2212). One way to accomplish this isto prefix input file names with a known directory name, eg.)"./FILENAME"
.
On startup, ExifTool executes user-defined code from the .ExifTool_configfile located in the ExifTool directory, the directory specified by theEXIFTOOL_HOME, HOME or HOMEDRIVE+HOMEPATH environment variables, or the currentworking directory. So care must be taken to make sure that any such filecontains only trusted code.
As well, untrusted window title strings should not be used with the-progress:TITLE
option.
Note that ExifTool NEVER makes an internet connection, so you can beassured that your personal data never leaves your computer.
Have you ever forgotten to set the date/time on your digital camera beforetaking a bunch of pictures? ExifTool has a time shift feature that makes iteasy to apply a batch fix to the timestamps of the images (eg. change the "DatePicture Taken" reported by Windows Explorer). Say for example that your cameraclock was reset to 2000:01:01 00:00:00 when you put in a new battery at2005:11:03 10:48:00. Then all of the pictures you took subsequently havetimestamps that are wrong by 5 years, 10 months, 2 days, 10 hours and 48minutes. 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 dateor time tag can be shifted, and multiple tags may be written with a singlecommand line. Commonly, in JPEG images, the DateTimeOriginal, CreateDate andModifyDate values must all be changed. For convenience, aShortcut tag calledAllDates has been defined torepresent these three tags. So, for example, if you forgot to set your cameraclock back 1 hour at the end of daylight savings time in the fall, you can fixthe images with:
exiftool -AllDates-=1DIR
SeeImage::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 AllDatesshortcut. Specifically, the filesystem date/time tags are not included, and thiscommand will reset FileModifyDate to the current date/time as it should when thefile is modified, unless either the-P
option is used, orFileModifyDate is set to something else. To shift FileModifyDate along with theother tags, add-FileModifyDate-=1
to the command above.
By writing a new value to theFileName and/orDirectory tags,files can be renamed and/or moved to different directories. This can be a verypowerful tool in combination with the-d
(date format) option fororganizing images by date/time. For example, the following command renames allimages in directory"DIR
" according to the individual file'screation 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 theDirectorytag. For example, the following command moves all images originally indirectory"DIR
" into a directory hierarchy organized byyear/month/day:
exiftool "-Directory<DateTimeOriginal" -d "%Y/%m/%d"DIR
Read here for more details about this powerfulfeature.
There is a significant overhead in loading ExifTool, so performance may begreatly improved by taking advantage of ExifTool'sbatch processing capabilities(the ability to process multiple files or entire directories with a singlecommand) to reduce the number of executed commands when performing complexoperations or processing multiple files.†[One exiftool userdocumented a 60x speed increase by processing a large number of files with a singlecommand instead of running exiftool separately on each file.] Also, the-execute
option may be used to perform multiple independentoperations with a single invocation of exiftool, and together with the-stay_open
option provides a method for calling applications toavoid this startup overhead.
It has also been observed that the loading time of ExifTool for Windowsincreases significantly when Windows Defender is active.Disabling WindowsDefender may speed things up significantly.
The processing speed of ExifTool can be improved when extracting informationby reducing the amount of work that it must do. Decrease the number ofextracted tags by specifying desired tags individually (-TAG
) or bygroup (-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 notvery efficient, and may have a negative impact on performance if a large numberof tags are excluded individually. The exception is XMP groups, which arebypassed in processing so they are never even extracted -- specifying--XMP-crs:all
and-XMP-crd:all
may speed processingsignificantly by avoiding processing of bulky Adobe image-editing information.TheAPI IgnoreTags option (added inExifTool 12.43) may also be used for significant speed benefits in some cases,especially when memory usage is significant because this may significantlyreduced the required memory.
The-fast
option can significantly increase speed whenextracting information from JPEG images which are piped across a slow networkconnection. However, with this option any information in a JPEG trailer is notextracted. For more substantial speed benefits,-fast2
may beused 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 usingthe-if
or-fileOrder
option because these will addthe extra step of extracting tags from the file. Without these the writeoperation is accomplished with a single pass of each file.
†However,note that when the-csv
option is used, information from all filesis buffered in memory before the CSV output is written. This may be very memoryintensive and result in poor performance when reading a large number of files ina single command.
The "exiftool
" script provides a command-line interface to theImage::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 accessto meta information. Here is an example of a very simple script that usesImage::ExifTool to print out all recognized meta information in a file:
#!/usr/bin/env perluse 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 indicatingbinary data. The simple script above does not handle this case.
See theImage::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 cameramodels. (To see this information, run exiftool with the-U
option.) In this area, ExifTool is very much a collaborative effort, anddevelopment relies heavily on the input from camera owners to help decode newmeta information. If you manage to figure out what any of it means, send me ane-mail (philharvey66 at gmail.com) and I'lladd your new discoveries toExifTool. Many thanks to all who have helped so far...
Thanks to everyone who has sent in bug reports, comments, or suggestions, andspecial thanks to the following people for their valuable input and/or additionsto the code:
This is free software; you can redistribute it and/or modify it under thesame terms asPerl itself.
ExifTool is free, but due to popular request I am providing a way forthose 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 registerexiftool.org and pay for web site hosting, and for the Mac Mini used to generatedistribution files, run the necessary Windows virtual machine, and maintainsource-code and forum backups.)
Phil has a master's degree in nuclear physics and is now officially retiredfrom his position at Queen's University where he worked with the Nobel-prize-winningSudbury Neutrino Observatory (SNO) teamand other SNOLab experiments from 1990 to 2020. For SNO he wrote the softwareto acquire, format, store and display all of the hundreds of terabytes of datagenerated by the detector; software that continues to be used bySNO+ for their even greater datavolume.
ExifTool started as a simple utility used to display metadata fromimages hosted on the SNO web site, but quickly expanded in scope as Phil gotinvolved with digital photography beginning in 2001. During retirement Philcontinues to enjoy digital photography, a hobby which he now applies to birdwatching. A selection of his birding pictures may be found in his recentBirds of Kingstonbook.
If you have any comments, suggestions or questions, please post to theExifTool Forum so other people maybenefit from your experiences. (I will respond in the forum more quickly thanby email.) Otherwise, if you must contact me directly, my e-mail address is onthe first line of the README file in the full distribution. Thanks. -Phil Harvey