# ExifTool by Phil Harvey

## Read, Write and Edit Meta Information!

Also available --> Utility to fix Nikon NEF images corrupted by Nikon software

Note: IP's that access web pages too quickly will be blocked, and I have had to get even more strict about blocking access to the forum to help deal with a plague of badly-behaving AI bots. Send an email with your IP address to exiftool@gmail.com if you think you have been wrongly denied access.

Installing | Tag Names | Resources | History | Forum | FAQ
--- | --- | --- | --- | --- | ---

Features
User Comments
Supported File Types
System Requirements
Running ExifTool
Example Output
Tag Names Explained
Tag Groups
Writing Information
Writer Limitations
Known Problems
Security Issues
Date/Time Shift
Renaming Files
Performance
ExifTool Library
Additional Resources
New Discoveries
Acknowledgements
License
Donate
Background
Contact Me

(To reduce load on the exiftool.org server, the download links now point to SourceForge)

--> Click here for the checksums of all distribution packages.

> Download Version 13.59 (7.9 MB) - May 27, 2026

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 Apple, Canon, Casio, DJI, FLIR, FujiFilm, GE, Google, 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-13.59_32.zip (11.4 MB)
> 64-bit: exiftool-13.59_64.zip (11.2 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-13.59.pkg (5.7 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.

The version number of the latest ExifTool release may be found here, and the name of the most recent alternate geolocation database is here.

## Features

- Powerful, fast, flexible and customizable
- Supports a large number of different file formats
- Reads EXIF, GPS, IPTC, XMP, JFIF, MakerNotes, C2PA JUMBF, GeoTIFF, ICC Profile, Photoshop IRB, FlashPix, AFCP, ID3, Lyrics3 and more...
- Writes EXIF, GPS, IPTC, XMP, JFIF, MakerNotes, GeoTIFF, ICC Profile, Photoshop IRB, AFCP and more...
- Reads and writes maker notes of many digital cameras
- Reads timed metadata (eg. GPS track) from MOV/MP4/M2TS/AVI videos
- Reads GM PDR data from videos written by cars such as Corvette and Camero
- Numerous output formatting options (including tab-delimited, HTML, XML and JSON)
- Multi-lingual output (cs, de, en, en-ca, en-gb, es, fi, fr, it, ja, ko, nl, pl, ru, sk, sv, tr, zh-cn or zh-tw)
- Compares two files for metadata differences
- Generates SVG-format output plots from file metadata
- Geotags images from GPS track log files (with time drift correction!)
- Generates track logs from geotagged images
- Geolocation feature identifies nearest city based on GPS position (and visa versa)
- Shifts date/time values to fix timestamps in images
- Renames files and organizes in directories (by date or by any other meta information)
- Extracts thumbnail images, preview images, and large JPEG images from RAW files
- Copies meta information between files (even different-format files)
- Reads/writes structured XMP information
- Deletes meta information individually, in groups, or altogether
- Sets the file modification date (and creation date in Mac and Windows) from EXIF information
- Supports alternate language tags in XMP, PNG, ID3, Font, QuickTime, ICC Profile, MIE and MXF information
- Processes entire directory trees
- Creates text output file for each image file
- Creates binary-format metadata-only (MIE, EXV) files for metadata backup
- Automatically backs up original image when writing
- Organizes output into groups
- Conditionally processes files based on value of any meta information
- Ability to add custom user-defined tags
- Support for MWG (Metadata Working Group) recommendations
- Ability to read tags from multiple files simultaneously, allowing metadata to be compared and combined between files
- Generates MD5/SHA256/SHA512 hashes of image data only for many file types (for comparison and validation of image data)
- Recognizes tens of thousands of different tags
- Tested with images from thousands of different camera models
- Advanced verbose and HTML-based hex dump outputs

## A Note to Unix Power-Users

> 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.)

## What People are Saying about ExifTool

> "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 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

> "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 to manipulate metadata" - Nine Degrees Below Photography

> "... 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

## Supported File Types

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=`).

> File Type | Support | Description | EXIF | IPTC | XMP | ICC 1 | 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 | -
> CAP | R | Microsoft Network Monitor Capture | - | - | - | - | - | R PCAP
> 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 CanonVRD 2
> 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 CanonVRD 2
> 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 CanonVRD 2
> 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 CanonVRD 2
> DSF | R | DSD Stream File | - | - | - | - | - | R DSF ID3 Lyrics3
> 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
> FIT | R | Garmin Flexible and Interoperable data Transfer | - | - | - | - | - | R Garmin
> 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 Photoshop 3
> JP2, JPF, JPM, JPX, JPH | R/W | JPEG 2000 image [Compound/Extended/High-throughput] | R/W/C3 | R/W/C3 | R/W/C | R | - | R/W/C Jpeg2000, R Photoshop 3
> 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
> KVAR | R | Kandao Video Asset Resource | - | - | - | - | - | R KVAR
> 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, LRF | 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, ODT | R | 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
> PCAP, PCAPNG | R | Packet Capture (Next Generation) | - | - | - | - | - | R PCAP
> PCD | R | Kodak Photo CD Image Pac | - | - | - | - | - | R PhotoCD
> PCX | R | PC Paintbrush | - | - | - | - | - | R PCX
> PDB, PRC | R | Palm Database | - | - | - | - | - | R Palm
> PDF | 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 GeoTIFF 1, R/W Trailers
> TNEF | R | Transport Neutral Encapsulation Format | - | - | - | - | R | R TNEF
> TORRENT | R | BitTorrent description file | - | - | - | - | - | R Torrent
> TTF, TTC | R | True Type Font/Collection | - | - | - | - | R | R Font
> TXT | R | Text files | - | - | - | - | - | R Text
> URL | R | Windows URL Link (INI format) | - | - | - | - | - | R INI
> 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 CanonVRD 2
> VSD | R | Microsoft Visio Drawing (FPX-like) | - | - | R | R | - | R FlashPix
> VSDX | R | Microsoft Visio Drawing XML | - | - | - | - | - | R XML ZIP
> 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
> WOFF | R | Web Open Font Format | - | - | - | - | R | R Font
> WOFF2 | R | Web Open Font Format 2 | - | - | - | - | R | R Font
> WPG | R | WordPerfect Graphics | - | - | - | - | - | R WPG
> WTV | R | Windows recorded TV show | - | - | - | - | - | R WTV
> WV, WVP | R | WavPack audio | - | - | - | - | - | R WavPack RIFF ID3 Lyrics3 APE
> 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

> 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

### Supported JPEG Meta Information

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

> JPEG Meta Information | Support | Description
> --- | --- | ---
> APP0 - JFIF | R/W/C | JPEG File Interchange Format
> APP0 - JFXX | R | Extended JFIF
> APP0 - CIFF | R/W | Camera Image File Format (used by some Canon models)
> APP0 - AVI1 | R | JPEG AVI information
> 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 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 - 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 - Ricoh | R | Ricoh 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, 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
> MPF trailer | R | Multi-Picture Format images
> 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)

> 1 Some of these trailers are also supported for TIFF-format and QuickTime-format files.

## System Requirements

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 package is available which includes Strawberry 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.

## Running ExifTool

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.

### Running in Windows

i) From the command line:

The Perl application ("`exiftool`") is run by typing "`perl exiftool`". Alternately, you may be able to rename it to "`exiftool.pl`" and type "`exiftool.pl`", but this requires that the proper Windows associations have been made for the "`.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).exe
> | Print meta information in window and pause before terminating.
>     exiftool(-k -a -u -g1 -w txt).exe
> | Generate output "`.txt`" files with detailed meta information.
>     exiftool(-k -o %d%f.xmp).exe
> | Generate sidecar "`.xmp`" files.
>     exiftool(-copyright='Phil Harvey').exe
> | Add copyright information (and don't pause before terminating).

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

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

## Example Output

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

### Verbose and HtmlDump Output

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

### Compare Two Files for Metadata Differences

The `-diff` option provides a method to show the metadata differences between two files. For example, here is a comparison of two files excluding System and 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

## Tag Names Explained

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:

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

### Shortcut Tags

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.

## Tag Groups

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, APP10, 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, Garmin, GeoTiff, GIF, GIMP, GM, GoPro, H264, HTML, ICC_Profile, ID3, IPTC, ISO, ITC, JFIF, JPEG, Jpeg2000, JSON, JUMBF, Kandao, 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, AADAccelFeatures, AC3, AccelData, Activity, Adobe, AdobeCM, AdobeDNG, AFCP, AIFF, AntChannelID, AntRx, AntTx, APE, APP2, Apple, AROT, ASF, Audible, AudioItemList, AudioKeys, AudioUserData, AuxBattery, AVI1, AviationAttitude, Barometer, BeatIntervals, BikeProfile, BloodPress, CadenceZone, CameraEvent, CameraIFD, Canon, CanonCustom, CanonDR4, CanonRaw, CanonVRD, Capabilities, Casio, CBOR, Chapter#, ChronoShotData, ChronoShotSession, CIFF, ClimbPro, Composite, Connectivity, Course, CoursePoint, DevDataID, DeviceInfo, DeviceSettings, DICOM, DiveAlarm, DiveApneaAlarm, DiveGas, DiveSettings, DiveSummary, DJI, DjVu, DjVu-Meta, DNG, Ducky, DV, EPPIM, Event, ExdDataConceptConfig, ExdDataFieldConfig, ExdScreenConfig, EXE, ExerciseTitle, EXIF, ExifIFD, ExifTool, FieldCaps, FieldDescr, File, FileCaps, FileCreator, FileID, FITS, FLAC, Flash, FlashPix, FLIR, Font, FotoStation, FujiFilm, FujiIFD, Garmin, GE, GeoTiff, GIF, GIMP, GlobParamIFD, GM, Goal, Google, GoPro, GPS, GraphConv, GSpherical, GyroData, H264, HP, HR, HRMProfile, HRV, HRVStatusSummary, HRVValue, HRZone, HSA_HRData, HSA_SPO2Data, HSAAccelData, HSABodyBattery, HSAConfigData, HSAEvent, HSAGyroData, HSARespirData, HSAStepData, HSAStressData, HSAWristTemp, 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, Jump, JVC, KDC_IFD, Keys, KFIX, Kodak, KodakBordersIFD, KodakEffectsIFD, KodakIFD, KVAR, KyoceraRaw, Lap, Leaf, LeafSubIFD, Leica, Length, LNK, Lyrics3, Lytro, M-RAW, M2TS, MAC, MacOS, MagData, MakerNotes, MakerUnknown, Matroska, MaxMetData, MediaJukebox, MemoGlob, MesgCaps, Meta, MetaIFD, MetZone, 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, MonitorHRData, MonitorInfo, Monitoring, Motorola, MPC, MPEG, MPF0, MPImage, MS-DOC, MXF, NapEvent, Nextbase, Nikon, NikonCapture, NikonCustom, NikonScan, NikonSettings, NineEdits, Nintendo, NITF, NMEA, OBDIIData, Ocad, Ogg, OHRSettings, Olympus, OneDSensorCal, OnePlus, OpenEXR, Opus, Palm, Panasonic, PanasonicRaw, Parrot, PDF, Pentax, PhaseOne, PhotoCD, PhotoMechanic, Photoshop, PICT, PictureInfo, PNG, PNG-cICP, PNG-pHYs, PostScript, PowerZone, PreviewIFD, PrintIM, ProfileIFD, PSP, Qualcomm, QuickTime, Radiance, RAF, RAF2, RawBBI, Rawzor, Real, Real-CONT, Real-MDPR, Real-PROP, Real-RA3, Real-RA4, Real-RA5, Real-RJMD, Reconyx, Record, Red, RespirationRate, Ricoh, RIFF, RMETA, RSRC, RTF, Samsung, Sanyo, Scalado, Schedule, SDMProfile, SEAL, SegFile, SegLap, SegLeaderboard, SegmentID, SegPoint, Session, Set, Sigma, SigmaRaw, SkinTempOvernight, SlaveDevice, SleepAssessment, SleepDisruptOvernight, SleepDisruptPeriod, SleepLevel, Software, Sony, SonyIDC, SpeedZone, SPIFF, Split, SplitSummary, SPO2Data, Sport, SR2, SR2DataIFD, SR2SubIFD, SRF#, Stim, StressLevel, SubIFD, SVG, System, TankSummary, TankUpdate, Theora, ThreeDSensorCal, TimeInZone, Torrent, Totals, Track#, Track#ItemList, Track#Keys, Track#UserData, TrainingFile, TrainingSettings, TSCorrelation, UserData, UserProfile, VCalendar, VCard, Version0, Video, VideoClip, VideoDescr, VideoFrame, VideoItemList, VideoKeys, VideoTitle, VideoUserData, Vivo, VNote, Vorbis, WatchfaceSettings, WeatherAlert, WeatherConditions, WeightScale, Workout, WorkoutSess, WorkoutStep, 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, ZonesTarget
> 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.

## Writing Meta Information

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.)

### Syntax

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

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

> † See the Writer Limitations for some limitations of this feature.

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

A special feature allows the print conversion to be disabled on a per-tag basis by suffixing any tag name (including '`all`') with the '`#`' character. This has the same effect as the `-n` option, but for a single tag. See the -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.

### Group Priorities

ExifTool prioritizes the following types of meta information when writing:

> 1) EXIF, 2) IPTC, 3) XMP

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

Alternatively, information may be written to a specific group only, bypassing these priorities, by providing a group name for the tag. The "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.

### The "-tagsFromFile" Option

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

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

## Writer Limitations

- ExifTool will not rewrite a file if it detects a significant problem with the file format.
- ExifTool has been tested with a wide range of different images, but since it is not possible to test it with every known image type, there is the possibility that it will corrupt some files. Be sure to keep backups of your files.
- Even though ExifTool does some validation of the information written, it is still possible to write illegal values which may cause problems when reading the images with other software. So take care to validate the information you are writing.
- ExifTool is not guaranteed to remove metadata completely from a file when attempting to delete all metadata. For JPEG images, all APP segments (except Adobe APP14, which is not removed by default) and trailers are removed which effectively removes all metadata, but for other formats the results are less complete:
  - JPEG - APP segments (except Adobe APP14) and trailers are removed.
  - TIFF - XMP, IPTC, ICC_Profile and the ExifIFD are removed, but some EXIF may remain in IFD0. (The CommonIFD0 Shortcut tag is provided to simplify removal of common metadata tags from IFD0.)
  - PNG - Only XMP, EXIF, ICC_Profile and native PNG textual data chunks are removed.
  - PDF - The original metadata is never actually removed.
  - PS - Only XMP and some native PostScript tags may be deleted.
  - MOV/MP4 - Most top-level metadata is removed.
  - RAW formats - It is not recommended to remove all metadata from RAW images because this will likely remove some proprietary information that is necessary for proper rendering of the image.

## Known Problems

- [2026-01-23] Motion-photo HEIC images don't display in Google Photos after being edited by ExifTool. [Fixed in ExifTool 13.49 by writing the 'mpvd' box immediately after 'idat'.]
- [2024-12-16] HEIC images with an HDR gain map may not show the gain map image in Apple Preview after being edited by ExifTool to add new XMP. [Fixed in ExifTool 13.09, and was due to out-of-order item info entries.]
- [2024-08-01] ExifTool for Windows supports a maximum path length of 246 characters for files. Longer path lengths give an "Error opening file" message. [ExifTool 13.07 implements the API WindowsLongPath option by default to patch this problem.]
- [2023-10-02] Panasonic PHOTOfunSTUDIO 9.5 has problems displaying some ExifTool-edited FZ1000 RW2 images, although other software (such as Adobe Lightroom, Digikam and Windows Explorer) have no problems with these.
- [2020-02-18] Hasselblad Phocus software will no longer update the small preview or thumbnail images of FFF files edited by ExifTool. This is perhaps due to some unreferenced preview information in the file that is lost when edited by ExifTool, but this does not seem to have any other effect. [ExifTool 11.88 and later issue a minor error when attempting to write FFF files, but this problem seems to be fixed in Phocus v3.5.4]
- [2019-05-29] Canon Digital Photo Professional 4 (DPP4) will destroy a CR3 image when editing if it had previously been edited by DPP4 followed by ExifTool. [ExifTool 11.45 fixes this by structuring the CR3 to make it safe for editing with DPP4, and may be used to restructure files written by older ExifTool versions.]
- [2018-09-27] The Sony Imaging Edge applications give an error when trying to open ARW or ARQ images edited by ExifTool, although other RAW image utilities including Sony IDC (Sony's older RAW image converter), Adobe Photoshop, Lightroom and DNG Converter, Apple Preview, dcraw, Capture One, Affinity Photo, and LibRaw's SonyPixelShift2DNG have no problems with these.
- [2016-08-03] Some antivirus software has been known to cause problems for the Windows version of ExifTool. Norton Antivirus may delete ExifTool when it is run, Windows Defender may slow down launching of ExifTool or hang it altogether, and Bitdefender Antivirus may block ExifTool from writing files. Presumably this is due to the way the ExifTool package for Windows works -- it unpacks executable files into a temporary directory and runs from there, which apparently may be seen as a threat by antivirus software. A work-around is to add ExifTool to the exclusion list of the antivirus software. [This shouldn't be a problem since the changes to the Windows EXE package in ExifTool 12.88]
- [2016-05-27] Adobe Camera Raw and DNG Converter 9.5.1 fail to recognize edited Samsung SRW images from some models (NX30, NX300, NX2000 and EK-GN120). [This problem was fixed for the NX models in ExifTool 10.26, and writing of EK-GN120 files was disabled in ExifTool 10.95]
- In Windows, ExifTool will not process files with Unicode characters in the file name. This is due to an underlying lack of support for Unicode filenames in the Windows standard C I/O libraries. [This deficiency was addressed in ExifTool 9.79, and ExifTool now supports Windows Unicode file names with some exceptions. See the WINDOWS UNICODE FILE NAMES section of the application documentation for details.]
- [2013-11-08] Apple Spotlight and Preview (OS X 10.8.5) and Adobe Photoshop CC (version 14.0) ignore XMP in PNG images if it comes after the image data, which is where ExifTool adds new XMP. This should be considered as a bug in the Apple and Adobe software since XMP is allowed to exist after the image data according to the XMP and PNG specifications. [ExifTool 9.40 provides the PNGEarlyXMP API option to allow writing XMP before the IDAT chunk, but there are caveats associated with its use. ExifTool 11.58 and later remove this option and always write XMP before IDAT, and 11.63 and later write all text chunks before IDAT.]
- [2013-04-21] Memory available to ExifTool in the Windows EXE version is limited to a few hundred MB. This limitation has been known to cause unreasonably long processing times (almost 7 minutes) for some large EPS files (> 200 MB) which are processed much faster by the Perl version (< 6 seconds). [These memory issues are alleviated by the new Windows EXE package of ExifTool 12.88 and later.]
- [2010-01-12] There is a bug in a number of Adobe utilities which causes some edited Sony ARW images to be displayed with the wrong tone curve. This problem has been observed in Photoshop CS4 Camera Raw 5.6, DNG Converter 5.6 and Lightroom 2.6 with ARW images from the A500, A550, A700, A850 and A900. Other software such as the Sony IDC utility, Apple RAW utilities, dcraw and Capture One have no problems with edited images. [This bug is fixed in Camera Raw 6.3 and LR 3.3]
- [2007-07-06] There is a bug in the Apple RAW file support (OS X 10.4.11) which prevents some edited Pentax PEF images from being displayed properly. Other software such as the Pentax Silkypix software and dcraw have no problems with these images. [This bug is fixed in OS X 10.5.4]

## Security Issues

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.

Note that ExifTool NEVER makes an internet connection, so you can be assured that your personal data never leaves your computer.

## Date/Time Shift Feature

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.

## Renaming and/or Moving Files

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.

## Improving Performance

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 Image::ExifTool Perl Library Module

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.

## Additional Documentation and Resources

- ExifTool Home Page
- ExifTool FAQ
- ExifTool Forum
- ExifTool Tag Names (download in PDF format)
- ExifTool Revision History (RSS feed)
- exiftool Application Documentation (download in PDF format)
- Image::ExifTool API Documentation (download in PDF format)
- Date/Time Shift Module (download in PDF format)
- Sample ExifTool Configuration File (custom user-defined tags)
- Working with Metadata Sidecar Files
- Reading/Writing Structured Information
- Common Mistakes when using ExifTool
- Comments on the Subject of Writing Meta Information
- Problems with current Metadata Standards
- "Under the Hood" of ExifTool
- Canon RAW (CRW) File Format Specification
- MIE 1.1 File Format Specification (pdf)
- ExifTool source code on GitHub
- ExifTool SourceForge project page (alternate discussion forum and home page)
- JPEG Image Samples (and Table of Makernote Types)
- Image::ExifTool at MetaCPAN
- ExifTool Bug Reports (ExifTool Forum -- the preferred method)
- ExifTool Bug Reports (Github)
- ExifTool Bug Reports (CPAN Request Tracker)
- CPAN Testers Matrix (max version with a PASS)

User-contributed Documentation

- ExifTool Tutorial (video in 4 parts -- see this post for links to the videos)
- Using the ExifTool on Linux to read/write Exif Tags to your photo collection (video by Linux By Example)
- Working with jpg Metadata Comments - Exiftool - BASH - Linux Command Line (video by Linux By Example)
- Useful one-line ExifTool commands (.txt file)
- ExifTool tuto en français

### Related Utilities

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

Windows

- Alternate ExifTool Windows Installer and Portable Package by Oliver Betz
- wxETI: A wxWidgets-based Windows interface for Exiftool
- ExifTool GUI for Windows: [unsupported] GUI for viewing meta information with some editing features
- ExifTool GUI v6 for Windows: Updated version of ExifTool GUI (source, documentation)
- Metadata++: View, edit, extract, copy metadata metadata
- Auto ISO Tool: GUI front-end for ExifTool to patch Canon ISO information
- GeoSetter: Utility for showing and changing geo data of image files
- GeoTagNinja: Open-source geotagger for Windows
- AvPicFaceXmpTagger: Write Picasa 3.5 face recognition information as XMP to your images
- FileTagSleuth: MP3, ID3 and EXIF viewer
- PhotoMove: Automatically move photos to directories or folders based on Exif date taken
- AutoJpegTrunk: Tool to remove all metadata from JPEG images
- AdvancedRenamer: Rename files and folders from metadata
- Proxel EXIF Tool: Photoshop plugin based on ExifTool
- EXIFCopy: Copy all EXIF information between files
- Random Photo Screensaver: Photo screensaver with metadata display
- PicaGeoTag: Geolocate your photos
- PictureTools: Tools to view and edit EXIF, screen saver and games (alt link)
- PhotoTags-Synchronizer: Windows GUI for tagging and synchronizing metadata
- DNG Opcodes Editor: Change DNG opcodes and see the effect on the image in real-time
- Photography Toolbox: Organize your digital photographs
- PHOR: Organize your photos with metadata analysis and geotagging

MacOS

- Download a stand-alone PPC droplet to extract preview images from RAW files (thanks to Brett Gross)
- Download three droplets to extract information [exiftool must be installed] (thanks to Rob Lewis)
- MacMetaMod: Droplet for adding Keywords to images
- GPSPhotoLinker: Geotagging on the Mac
- PhotoGPSEditor and PhotoInfoEditor: Geocoding utilities
- MetaDataMover (source): GUI-based automator utility for moving/renaming images
- CS1ToCR2: Utility that uses Sony GPS-CS1 log files to add GPS information to CR2 images
- Geotagger: Droplet for inserting GPS coordinates in your photos
- Raw Photo Processor: Raw converter for MacOS
- GraphicConverter: Full-featured image editor [noteworthy, but not free]
- GeoTag: Geotagging application for iPhone and MacOS
- ImageFuser: Fuses multiple exposures of a scene into one image with improved detail/exposure
- GeoNamesTagger: Docklet to easily update image metadata with location specific information
- SetEXIFData: Add/modify EXIF data in images
- GeoTagster: Geotagging from GPX files ($0.99 paid app)
- Exif Photoworker: Smart rename and organize your photos and videos in a few clicks
- MetaImage: Reads, writes and edits your image metadata in a familiar interface
- MetaScope: Professional metadata editor for photographers, digital asset managers, and creative teams
- Geoalignment: Geotag photos from GPX tracks with interactive time synchronization

Linux

- rawimage: A kfile plugin and thumbnail image handler for RAW formats
- Hugin: Panorama photo stitcher
- FotoPreProcessor: PyQt4-based frontend for exiftool to graphically edit metadata
- ExZenToo: Script for basic ExifTool GUI using Zenity
- PDFMted: A set of bash scripts for easy viewing and editing of PDF metadata
- exiftool-zsh-completion: zsh completion for exiftool
- Image MetaWriter: Batch processing Linux command-line program for adding metadata to images

Android

- ExifTool for Android: View, edit or delete metadata in photo, video and other files
- EXIF Pro - ExifTool for Android: View, edit or delete the metadata of files on Android

Multi-Platform

- ImageIngester: Windows and MacOS image workflow automator
- gpsPhoto: Geotag your images from a GPS (GPX) track log
- renrot: Perl utility to perform various processing tasks on images
- GPicSync: Windows/Linux utility to geocode photos from a GPX track log and create KML files
- FlickFleck: Tool to transfer images from memory card, rotate, rename, and organize by date
- Geotag: Open source Java-based geotagging application
- PhotoGrok: Java-based GUI front-end for ExifTool to display images organized by any EXIF tag
- XnView: View and convert graphic files
- Mapivi: Open-source and cross-platform picture manager
- ResourceSpace: Open source digital asset management system
- fix_corrupted_nef: Utility to fix Nikon D4/D600/D800/D800E NEF images corrupted by Nikon Transfer 1
- pyExifToolGUI: Python-based graphical frontend for ExifTool
- jExifToolGUI: Java-based graphical frontend for ExifTool
- MDQC: AVPreserve tool for metadata quality control across large numbers of digital assets
- FastPhotoTagger: Add metadata to images (requires Java runtime engine)
- Digi-libris: Metadata centric software for the automatic organization of your own catalogue
- FreezeFrame: Photo/video library manager (requires Java 8)
- MemoryMate: Maintain photo and video metadata for family collections
- Mapillary Desktop Uploader: Upload street-level imagery to an open platform database
- Digikam: Open-source digital photo management
- LLMII: Locally Label Metadata and Index Images using AI

Web Browser

- ExifTool-web: ExifTool implementation that runs in the client's web browser
- @uswriting/exiftool: WebAssembly-based API for reading metadata in a web browser or Node.js
- exiftool-write: Fork of @uswriting/exiftool with the ability to write metadata

Online

- The eXif.er: Web-based EXIF editor
- Get-IPTC-Photo-Metadata: Web service showing all IPTC metadata of web and local images (source code)

Lightroom Plugins

- Jeffrey's Geoencoding Plugin for Lightroom: Geoencode your photos from within Lightroom
- Metadata Wrangler: Strip selected metadata components from images as they are exported
- ExifMeta: Make all exif metadata available in Lightroom for lib filtering and smart collections
- FullMetaExport: Export JPEG images from Lightroom with full metadata
- LensTagger: Add EXIF information like aperture and focal length for manual lenses
- DeAspect: Remove aspect ratio information from DNG, CR2 and ORF images to restore full image
- PhotoStation-Upload-Lr-Plugin: Export photos from LR directly to a Synology PhotoStation

Programming

- C++ ExifTool: Performance-oriented C++ interface for the exiftool application (by Phil Harvey)
- Download sample AppleScript to extract tags into AppleScript record (thanks to Rob Lewis)
- Download example of a simple Visual C++ wrapper for exiftool (thanks Mark Borg and 黃瑞昌)
- Download C# version of simple exiftool wrapper (thanks Willem Semmelink)
- Example C# code for running ExifTool with the -stay_open option
- Download Visual Basic 6.0 example script v1.01 for reading tags with exiftool (thanks Michael Wandel)
- Sample VB.NET subroutine to extract a preview image (thanks Claus Beckmann)
- Sample VBA for Mac code to extract start timecode from a WAV file (thanks Adam Newns)
- tagInfoSql: SQLite database of ExifTool tag repository, including Perl script (thanks Wernfried)
- ExifToolIO: .NET wrapper for ExifTool, optimized for speed (using VB.NET)
- ExifToolWrapper: .NET wrapper for ExifTool (using C#)
- MiniExiftool: Ruby library wrapper for ExifTool
- exiftoolr: Ruby wrapper for ExifTool
- pyexiftool: Python wrapper for ExifTool
- PyExifInfo: Another Python wrapper for ExifTool
- PHPExiftool: PHP wrapper for ExifTool (in development)
- ExifTool_PHP_StayOpen: ExifTool PHP fast processing script using -stayOpen and Gearman
- Moss: Collection of Java utilities which includes an exiftool interface
- im4java: Java interface to ImageMagick, ExifTool, and other image utilities
- Java ExifTool: Enhanced Java Integration for ExifTool
- J-ExifTool: Open-source, cross platform Java7 library to read/write Exif tags in images
- exiftool-vendored: Blazing-fast, cross-platform Node.js access to ExifTool
- How to call ExifTool from Delphi, by Bogdan Hrastnik
- Qt5 and Qt6 interface for ExifTool, by Philippe Vianney-Liaud
- exiftoolr: ExifTool functionality from R
- exiftool-rs: ExifTool reimplemented in Rust

### Other Links

- An interview with Phil Harvey (in German), (English translation in PDF format)

## Boldly Go where No Man has Gone Before...

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 (exiftool@gmail.com) and I'll add your new discoveries to ExifTool. Many thanks to all who have helped so far...

## Acknowledgements

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:

- Malcolm Wotton for his help with the D30 Custom Functions
- David Anson for his help sorting out binary file problems on Windows
- Leon Booyens for his suggestions
- Dan Heller for his bug reports, detailed suggestions and guidance
- Wayne Smith for his help figuring out the Pentax maker notes
- Michael Rommel for his bug fixes and additions to the Canon maker notes
- Joseph Heled for help figuring out some of the Nikon D70 maker notes
- Joachim Loehr for adding the Casio type 2 maker notes
- Greg Troxel for his suggestions and for adding ExifTool to pkgsrc
- Thomas Walter for figuring out some Nikon tags
- Brian Ristuccia for more information about some Nikon tags
- Christian Koller for decoding the 20D custom functions
- Matt Madrid for his testing and feedback
- Tom Christiansen for his help decoding some Nikon tags
- Markku Hänninen for help decoding tags for the Olympus E-1
- Frank Ledwon for decoding many new Olympus tags
- Robert Rottmerhusen for decoding many tricky Nikon lens data tags
- Michael Tiemann for decoding a number of new Canon tags
- Albert Bogner for his image samples, testing and useful suggestions
- Rainer Hönle for decoding a number of new Canon 5D tags
- Nilesh Patel for his help with the web page layout
- Jens Duttke for his suggestions, bug reports and help decoding new tags
- Dave Nicholson for decoding new tags in Pentax and Canon maker notes
- Bogdan Hrastnik for his feedback, decoding efforts, user support and ExifTool GUI
- Frank Bijnen for updating the ExifTool GUI, user support, and help with testing
- Igal Milchtaich for decoding many Sony A100 tags
- Laurent Clévy for his work analyzing Canon RAW images
- Warren Hatch for decoding many Nikon tags
- Jos Roost for decoding many Sony tags for various models
- Iliah Borg and LibRaw for decoding many raw development tags
- Bryan K. Williams and Hayo Baan for their help with the ExifTool Forum

## License

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

## Donate

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's Background

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 acquire, 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.

## Contact Me

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

Installing | Tag Names | Resources | History | Forum | FAQ
--- | --- | --- | --- | --- | ---