# ExifTool Version History

RSS feed: https://exiftool.org/rss.xml

Note: The most recent production release is Version 12.76. (Other versions are considered development releases, and are not uploaded to MetaCPAN.)

Jan. 31, 2024 - Version 12.76 (production release)

- Properly implement patch of 12.45 to avoid duplicating raw data when writing Sony ARW images where the raw data is double-referenced as both strips and tiles
- Improved handling of bad offsets in HtmlDump output

Jan. 30, 2024 - Version 12.75 (production release)

- CORRUPTION WARNING: Fixed bug introduced in 12.45 which could result in corrupted Sony ARW images from some newer models when rewriting lossless compressed ARW images which were previously edited by 12.44 or earlier
- Added ability to read C2PA JUMBF metadata from PDF and SVG files
- Added ability to extract JUMBF metadata as a block
- Added read support for C2PA (JUMBF-format) files
- Removed "date before 1970" warning entirely since 64-bit systems should be able to handle dates in this range
- Improved Canon FocusMode decoding
- Fixed bug introducd in 12.74 which could cause "Undefined subroutine" runtime error when reading MIE files

Jan. 23, 2024 - Version 12.74

- Added a couple of new Nikon lenses (thanks Chris)
- Added write support for a few new QuickTime Keys tags
- Decode ShutterCount for Canon EOS R5 (thanks John Moyer)
- Improved error messages in the case of file read errors
- Enhanced tag name strings (eg. -if and -p option arguments) to allow values of multiple matching tags to be concatenated when a group name of "All" is specified
- Enhanced -p option to add -p- feature which avoids adding trailing newline
- Changed warning from "Shift results in negative time" to "Shift results in date before 1970"
- Patched calculation of GPSDateTime for the timed metadata in Track3 of Garmin videos so the API QuickTimeUTC option is no longer required
- Fixed conversion error when writing QuickTime:GoogleTrackDuration
- Fixed misidentification of non-TIFF-format files containing DNGVersion tag
- Fixed bug where Avoid-ed XMP structures could be created when writing another same-named structure
- Internal Changes:
  - Changed form of all new() calls to accommodate backward incompatibilities in recent versions of Perl
  - Changed order of InsertTagValues() arguments
  - DateFmt() now returns value of formatted date/time string

Jan. 10, 2024 - Version 12.73

- Added write support for Leica XMP-xmpDSA tags
- Added read support for timed GPS from Yada RoadCam Pro 4K dashcam videos
- Added read support for PNG cpIp chunk
- Added range checks on lat/long values when writing QuickTime:GPSCoordinates
- Decode a number of new values for Ricoh GR III tags
- Decode a new Leica tag
- Improved handling of Brotli compression errors
- Enhanced API NoWarning option to also apply to app "Warning:" outputs
- Identify PNG Plus files
- Changed name of Pentax ISOAutoParameters to ISOAutoMinSpeed and improved decoding
- Fixed writing of date/time tags in XMP-xmpMM:Pantry structure
- API Changes:
  - Added LimitLongValues option to provide control over tags which previously had a hard-coded length limit

Dec. 29, 2023 - Version 12.72

- Added read support for AAC audio files
- Added a new QuickTime Keys Android tag
- Added a number of new values for some Ricoh GR III tags
- Decode timed metadata from Intsa360 Ace Pro MP4 videos
- Decode GPSDateTime milliseconds in timed Insta360 metadata
- Decode timed metadata from INNOV K5 TS videos
- Decode a number of new GoPro timed-metadata tags
- Decode a few new Xiaomi EXIF tags
- Fixed writing of JPG/ARW images from some newer Sony models to preserve HiddenData

Dec. 21, 2023 - Version 12.71

- Added a warning if there was an error reading an alternate file with the -fileNUM option
- Added the ability to write QuickTime Keys:Encoder
- Added a few new Canon LensType values (thanks Norbert Wasser)
- Added a new, obscure EXIF tag (thanks Neal Krawetz)
- Decode real-time metadata from Ricoh Theta videos
- Decode SpecularWhiteLevel for more Canon models (github #232)
- Decode Canon DualPixelRaw tag (thanks John Moyer)
- Decode a few new Nikon tags (thanks Warren Hatch)
- Decode more FujiFilm M-RAW tags (thanks Greybeard)
- Improved generation of tag names for some JSON tag ID's containing colons
- Fixed "Undefined subroutine" error when writing makernotes as a block
- Fixed missing ID in family 7 group name for ID3 tags which are not valid for the specified ID3 version
- Fixed bug where some tags from alternate files (with the -fileNUM option) could show up as "not defined" when used in expressions even though they did exist
- API Changes:
  - Added NoMandatory option

Nov. 19, 2023 - Version 12.70 (production release) - "20th Anniversary"

- This marks the 20th anniversary of the initial ExifTool release!
- Added ability to read/delete C2PA CAI JUMBF metadata from TIFF-based images (eg. DNG), QuickTime-based files (eg. MP4) and WebP images, and read JUMBF from other RIFF-based files (eg. WAV, AVI), GIF images and ID3v2 metadata
- Added read/write support for JPH images
- Added ability to read Leica Q3 maker notes
- Added ability to recognize and write FujiFilm M-RAW RAF images (multiple raw images in a single file) and the ability to read preview-less RAF images
- Added support for reading a number of obscure Microsoft EXIF tags
- Added a few new Sony lenses and support for the ILCE-9M3 (thanks Jos Roost)
- Added a couple of new Panasonic Leica lenses
- Added a couple of new Canon RF lenses (thanks Norbert Wasser)
- Added a number of new CPUType values for ELF executables
- Added some new Olympus CameraType values
- Decode a few more ID3v2.2 tags (github #142)
- Decode a few new Canon G5X Mark II tags (thanks Martin B.)
- Decode WB_RGGBLevels for a few more Nikon cameras
- Extract information from FujiFilm M-RAW header
- Improved decoding of a few Nikon Z tags (thanks Warren Hatch)
- Marked misspelt XMP-drone-dji:GPSLongtitude tag to Avoid when writing
- Changed RIFF MaxDataRate conversion to use SI prefixes by default
- Fixed decoding of unknown ColorBalance information for some Nikon models
- Fixed an incorrect Nikon Z LensID
- API Changes:
  - Added ByteUnit option

Oct. 26, 2023 - Version 12.69

- Added support for DNG version 1.7.0.0
- Added a new XMP-GCamera tag
- Added a number of new Nikon Z lenses (thanks Warren Hatch and Stefan)
- Added a number of new XMP-crs tags
- Extract XML metadata from some Hasselblad images
- Tweaked -fast2 option to read metadata from inside mdat atom of HEIC images
- Patched FFF reader to be more tolerant of the mess made by incompetent Hasselblad programmers (wrong IFD count for some values)
- Patched WebP reader to be more tolerant of the mess made by incompetent Google programmers (EXIF with wrong header and XMP with wrong ID)
- Fixed writing of MakerNotes as a block to CR3 images (now properly stored in the CMT3 chunk instead of the ExifIFD) and added ability to delete them from the ExifIFD of CR3 images
- Fixed problem which could cause runtime error when copying MakerNotes from a file that contains multiple maker note blocks
- Fixed problem which could cause "use of uninitialized variable" warnings when reading images from some Nikon cameras
- Fixed List type for new XMP-photomech:CreatorIdentity tag

Oct. 16, 2023 - Version 12.68

- Added preliminary read support for XISF images
- Added the ability to delete CAI JUMBF metadata from PNG images
- Added support for writing Canon burst-roll CR3 images
- Added a new Nikon Z9 SubjectDetection value, and improved Zf support (thanks Warren Hatch)
- Added a couple of new PentaxModelID values
- Added a few couple of new tag values for the Pentax K-3 Mark III Monochrome (github #226)
- Added a new XMP-photomech tag
- Added a new QuickTime ItemList tag
- Added a new Nikon LensID
- Added a new Canon LensType
- Support decimal values for FujiFilm ShadowTone and HighlightTone tags
- Decode some new Sony tags (thanks Jos Roost)
- Decode ShutterCount for Canon EOS R6 (thanks Martin B.)
- Decode QuickTime VideoFullRangeFlag
- Decode JPGCompression for the Nikon D3S
- Enhanced -geotag feature to allow writing QuickTime:GPSCoordinates
- Renamed Panasonic HDRShot tag to MergedImages (forum 15298)
- Fixed problem where some NEF files were misidentified as NRW

Sept. 19, 2023 - Version 12.67

- Added a new Pentax LensType (thanks dmont)
- Added a new FujiFilm FilmMode and FaceElementTypes values (thanks Greybeard)
- Fixed error writing new DataMining tag where URI prefix wasn't being properly added to the value

Sept. 19, 2023 - Version 12.66

- Added a few new Canon LensType values (thanks Norbert Wasser)
- Added conversions for a few Apple:ImageCaptureType values
- Added new XMP tag for PLUS version 2.0.1
- Added a new CanonModelID (thanks Laurent Clevy)
- Decode another tag from Canon 1DS raw images (Hubert Figuière, github #219)
- Decode JPGCompression for newer Nikon models (thanks Warren Hatch)
- Fixed bug introduced in 12.65 where duplicate tags were not returned even when the groups where specified explicitly
- API Changes:
  - Added WindowsWideFile option

Aug. 10, 2023 - Version 12.65

- Added a new QuickTime Keys tag
- Added a new CanonModelID (thanks Laurent Clevy)
- Added a new Canon LensType (thanks Norbert Wasser)
- Added number in brackets to converted Samsung MCCData value
- Decode a number of new Sony tags (thanks Jos Roost)
- Decode a few new FlashPix tags (github #217)
- Improved decoding of Nikon Z9 firmware 4.0 tags (thanks Warren Hatch)
- Improved parsing of PDF:Keywords to support semicolon-separated lists
- Enhanced -api option to show list of available options if no argument is provided
- Lowered priority of IFD1 tags in ARW images so IFD0/SubIFD take precedence
- Changed QuickTime tag names for atID (AlbumTitleID to ArtistID) and plID (PlayListID to AlbumID) (github issue #216), and added cmID (ComposerID)
- Changed Apple:MediaGroupUUID tag name back to ContentIdentifier
- Patched the -d option to handle the %s format code internally when writing (avoids problems due to inconsistent behaviour of this format code in the strptime function on different systems)
- Patched patch of version 12.32 to restore ability to read from named pipes
- Fixed bug which could cause a hang when processing a corrupt BigTIFF image
- Fixed document number for auxiliary image metadata in HEIC files
- Fixed misspelt Apple tag name (thanks Neal Krawetz)
- API Changes:
  - Added AvailableOptions method

June 28, 2023 - Version 12.64

- Added a new Sony LensType (thanks Jos Roost)
- Added config_files/guano.config to the distribution (thanks StarGeek)
- Added support for Garmin Low-resolution Video (GLV) files
- Added JUMBF to the list of deletable groups
- Added (untested) read support for spherical video tags in Matroska videos
- Decode a number of new Nikon Z9 tags (thanks Warren Hatch)
- Decode AmbisonicAudio tags in spherical MP4 vidoes
- Decode another Apple tag
- Improved French translations (thanks Philippe Bonnaure of GraphicConverter)
- Patched to allow writing QuickTime-based videos where the audio/video sample description comes after the sample pointers
- Fixed parsing of GPS from Insta360 videos to properly skip void fixes
- Fixed problem where Apple iPhone 14 images produced invalid XML in -X output when using -struct option
- API Changes:
  - Added StructFormat option to allow JSON-format serialized structures
  - Added NoDups option to eliminate duplicate items from queued values when writing List-type tags

June 8, 2023 - Version 12.63

- Added ability to read/write/create Brotli-compressed metadata in JXL images (requires IO::Compress::Brotli)
- Added partial support for Exif 3.0 specification:
  - Added new EXIF tags
  - Added MPF Original Preservation Image type
  - Support for reading 'utf8' values (but still write only as 'string')
- Added support for Adobe XMP-hdrgm (HDR Gain Map) tags
- Added support for reading 7z files (thanks Amir Gooran, github #205) (but currently this doesn't work for the Windows .exe version because I haven't been able to install Compress::Raw::Lzma for ActivePerl)
- Added XMP-panorama tags
- Added warning if -csv is used with -p
- Added warning if trying to geotag from a UTF-16 track log
- Decode ImageWidth/Height from JXL images using partial codestreams
- Decode more Sony tags for some newer models (thanks Jos Roost)
- Extract GainMapImage (hrgm box) from JXL files
- Extract Guano information from WAV files
- Enhanced ImageDataMD5 feature and renamed to ImageDataHash (with ImageDataMD5 alias for backward compatibility)
- Changed RARVersion tag name to FileVersion
- Fixed bug introduced in 12.46 which could cause a hang when reading a corrupted RIFF-based file
- Fixed writing of Composition:GPSPosition when -n is used
- API Changes:
  - Added ImageHashType option

May 3, 2023 - Version 12.62

- Added basic read support for WPG images
- Added ImageDataMD5 support for HEIC images
- Added support for RAR version 5.0 files (thanks Amir Gooran, github #203)
- Added a few new XMP-aux tags (thanks John Ellis)
- Made Composite tags available for use in -fileNUM argument
- Better handling of FlashPix VT_EMPTY value
- Fixed "Can't write" error when specifying a .webp file for the -o option
- API Changes:
  - Added NoWarning option

Apr. 24, 2023 - Version 12.61

- Added ImageDataMD5 support for J2C and JXL images
- Added support for PDF 2.0 (specification is finally freely available)
- Added ability to extract timed Accelerometer data from Azdome GS63H MP4 videos which don't contain GPS
- Added some new Sony lenses (thanks Jos Roost)
- Decode some new tags for the Sony ZV-E1 (thanks Jos Roost)
- Decode more tags for the Nikon Z30 (thanks Xavier)
- Enhanced -fileNUM option to allow tags from the main file to be used in the file name string
- Validate sample offset and size when calculating ImageDataMD5 for MP4 videos (note: may change ImageDataMD5 value for videos where audio data runs past end of media data)
- Return error when attempting to write a fragmented JXL file
- Improved robustness for determining image size for corrupted JPEG
- Patched to allow Insta360 GPS records of unexpected length and tweaked verification algorithm to determine validity of these records
- Fixed bug introduced in 12.57 where -progress:%f gave runtime warnings
- Fixed "--" option to ignore subsequent -common_args option
- Fixed incorrect ImageDataMD5 for Sony A100 ARW images
- Fixed problem reading new XMP-et:OriginalImageMD5 tag

Apr. 5, 2023 - Version 12.60 (production release)

- Added a new Sony FileFormat value
- Added Validate warning about duplicate EXIF
- Added ability to edit JPEG APP1 EXIF segment with incorrect header
- Decode a few new Sony ARW tags
- Improved -htmldump of non-EXIF-based maker notes
- Enhanced -geotag from CSV files support GPSSpeed (with variable units), "bearing" for GPSTrack, and GPSDateTime in format "dd.mm.YYYY HH:MM:SS"
- Enhanced ImageDataMD5 to also support CRW, RAF, X3F and AVIF images
- Enhanced -efile option to also record updated and created file names
- Family 8 group names may now also be used in Composite Require/Desire tags
- Fixed handling of undefined tags in -if conditions to conform with documentation and match -p and -tagsFromFile behaviour when -m or -f option is used
- Fixed problem where setting the Geotime value didn't work when using an advanced-formatting expression containing a greater-than symbol (>)

History of older versions (back to Nov. 19, 2003 - Version 1.00) -->

<-- Back to ExifTool home page