exiftool-vendored.pl 13.0.1 → 13.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/bin/Changes +269 -20
  2. package/bin/MANIFEST +10 -0
  3. package/bin/META.json +1 -1
  4. package/bin/META.yml +1 -1
  5. package/bin/README +3 -3
  6. package/bin/arg_files/exif2xmp.args +4 -0
  7. package/bin/arg_files/xmp2exif.args +2 -1
  8. package/bin/build_geolocation +1 -1
  9. package/bin/exiftool +356 -213
  10. package/bin/lib/File/RandomAccess.pm +1 -1
  11. package/bin/lib/File/RandomAccess.pod +2 -2
  12. package/bin/lib/Image/ExifTool/AAC.pm +1 -1
  13. package/bin/lib/Image/ExifTool/AES.pm +1 -1
  14. package/bin/lib/Image/ExifTool/AFCP.pm +6 -6
  15. package/bin/lib/Image/ExifTool/AIFF.pm +2 -2
  16. package/bin/lib/Image/ExifTool/APE.pm +2 -2
  17. package/bin/lib/Image/ExifTool/APP12.pm +1 -1
  18. package/bin/lib/Image/ExifTool/ASF.pm +2 -2
  19. package/bin/lib/Image/ExifTool/Apple.pm +11 -9
  20. package/bin/lib/Image/ExifTool/Audible.pm +1 -1
  21. package/bin/lib/Image/ExifTool/BMP.pm +1 -1
  22. package/bin/lib/Image/ExifTool/BPG.pm +1 -1
  23. package/bin/lib/Image/ExifTool/BZZ.pm +1 -1
  24. package/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
  25. package/bin/lib/Image/ExifTool/BuildTagLookup.pm +46 -26
  26. package/bin/lib/Image/ExifTool/CBOR.pm +5 -2
  27. package/bin/lib/Image/ExifTool/Canon.pm +68 -28
  28. package/bin/lib/Image/ExifTool/CanonCustom.pm +1 -1
  29. package/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
  30. package/bin/lib/Image/ExifTool/CanonVRD.pm +1 -1
  31. package/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
  32. package/bin/lib/Image/ExifTool/Casio.pm +1 -1
  33. package/bin/lib/Image/ExifTool/Charset.pm +1 -1
  34. package/bin/lib/Image/ExifTool/DICOM.pm +1 -1
  35. package/bin/lib/Image/ExifTool/DJI.pm +196 -30
  36. package/bin/lib/Image/ExifTool/DNG.pm +1 -1
  37. package/bin/lib/Image/ExifTool/DPX.pm +1 -1
  38. package/bin/lib/Image/ExifTool/DV.pm +1 -1
  39. package/bin/lib/Image/ExifTool/DarwinCore.pm +1 -1
  40. package/bin/lib/Image/ExifTool/DjVu.pm +1 -1
  41. package/bin/lib/Image/ExifTool/EXE.pm +138 -33
  42. package/bin/lib/Image/ExifTool/Exif.pm +29 -16
  43. package/bin/lib/Image/ExifTool/FITS.pm +3 -3
  44. package/bin/lib/Image/ExifTool/FLAC.pm +1 -1
  45. package/bin/lib/Image/ExifTool/FLIF.pm +3 -3
  46. package/bin/lib/Image/ExifTool/FLIR.pm +1 -1
  47. package/bin/lib/Image/ExifTool/Fixup.pm +1 -1
  48. package/bin/lib/Image/ExifTool/Flash.pm +1 -1
  49. package/bin/lib/Image/ExifTool/FlashPix.pm +17 -21
  50. package/bin/lib/Image/ExifTool/Font.pm +2 -2
  51. package/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
  52. package/bin/lib/Image/ExifTool/FujiFilm.pm +1 -1
  53. package/bin/lib/Image/ExifTool/GE.pm +1 -1
  54. package/bin/lib/Image/ExifTool/GIF.pm +144 -93
  55. package/bin/lib/Image/ExifTool/GIMP.pm +1 -1
  56. package/bin/lib/Image/ExifTool/GM.pm +1 -1
  57. package/bin/lib/Image/ExifTool/GPS.pm +34 -30
  58. package/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
  59. package/bin/lib/Image/ExifTool/Geolocation.dat +0 -0
  60. package/bin/lib/Image/ExifTool/Geolocation.pm +19 -9
  61. package/bin/lib/Image/ExifTool/Geotag.pm +46 -12
  62. package/bin/lib/Image/ExifTool/GoPro.pm +120 -8
  63. package/bin/lib/Image/ExifTool/H264.pm +1 -1
  64. package/bin/lib/Image/ExifTool/HP.pm +2 -2
  65. package/bin/lib/Image/ExifTool/HTML.pm +1 -1
  66. package/bin/lib/Image/ExifTool/HtmlDump.pm +1 -1
  67. package/bin/lib/Image/ExifTool/ICC_Profile.pm +81 -2
  68. package/bin/lib/Image/ExifTool/ICO.pm +1 -1
  69. package/bin/lib/Image/ExifTool/ID3.pm +8 -8
  70. package/bin/lib/Image/ExifTool/IPTC.pm +10 -7
  71. package/bin/lib/Image/ExifTool/ISO.pm +1 -1
  72. package/bin/lib/Image/ExifTool/ITC.pm +1 -1
  73. package/bin/lib/Image/ExifTool/Import.pm +5 -4
  74. package/bin/lib/Image/ExifTool/InDesign.pm +2 -2
  75. package/bin/lib/Image/ExifTool/InfiRay.pm +1 -1
  76. package/bin/lib/Image/ExifTool/JPEG.pm +38 -5
  77. package/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
  78. package/bin/lib/Image/ExifTool/JSON.pm +1 -1
  79. package/bin/lib/Image/ExifTool/JVC.pm +1 -1
  80. package/bin/lib/Image/ExifTool/Jpeg2000.pm +10 -9
  81. package/bin/lib/Image/ExifTool/Kodak.pm +1 -1
  82. package/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
  83. package/bin/lib/Image/ExifTool/LIF.pm +1 -1
  84. package/bin/lib/Image/ExifTool/LNK.pm +2 -2
  85. package/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
  86. package/bin/lib/Image/ExifTool/Lang/de.pm +1 -1
  87. package/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
  88. package/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
  89. package/bin/lib/Image/ExifTool/Lang/es.pm +1 -1
  90. package/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
  91. package/bin/lib/Image/ExifTool/Lang/fr.pm +1 -1
  92. package/bin/lib/Image/ExifTool/Lang/it.pm +1 -1
  93. package/bin/lib/Image/ExifTool/Lang/ja.pm +1 -1
  94. package/bin/lib/Image/ExifTool/Lang/ko.pm +1 -1
  95. package/bin/lib/Image/ExifTool/Lang/nl.pm +1 -1
  96. package/bin/lib/Image/ExifTool/Lang/pl.pm +1 -1
  97. package/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
  98. package/bin/lib/Image/ExifTool/Lang/sk.pm +1 -1
  99. package/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
  100. package/bin/lib/Image/ExifTool/Lang/tr.pm +1 -1
  101. package/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
  102. package/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
  103. package/bin/lib/Image/ExifTool/Leaf.pm +1 -1
  104. package/bin/lib/Image/ExifTool/LigoGPS.pm +409 -0
  105. package/bin/lib/Image/ExifTool/Lytro.pm +1 -1
  106. package/bin/lib/Image/ExifTool/M2TS.pm +57 -18
  107. package/bin/lib/Image/ExifTool/MIE.pm +15 -6
  108. package/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
  109. package/bin/lib/Image/ExifTool/MIFF.pm +1 -1
  110. package/bin/lib/Image/ExifTool/MISB.pm +1 -1
  111. package/bin/lib/Image/ExifTool/MNG.pm +1 -1
  112. package/bin/lib/Image/ExifTool/MOI.pm +1 -1
  113. package/bin/lib/Image/ExifTool/MPC.pm +1 -1
  114. package/bin/lib/Image/ExifTool/MPEG.pm +1 -1
  115. package/bin/lib/Image/ExifTool/MPF.pm +1 -1
  116. package/bin/lib/Image/ExifTool/MRC.pm +1 -1
  117. package/bin/lib/Image/ExifTool/MWG.pm +1 -1
  118. package/bin/lib/Image/ExifTool/MXF.pm +3 -3
  119. package/bin/lib/Image/ExifTool/MacOS.pm +3 -2
  120. package/bin/lib/Image/ExifTool/MakerNotes.pm +1 -1
  121. package/bin/lib/Image/ExifTool/Matroska.pm +22 -6
  122. package/bin/lib/Image/ExifTool/Microsoft.pm +2 -2
  123. package/bin/lib/Image/ExifTool/Minolta.pm +1 -1
  124. package/bin/lib/Image/ExifTool/MinoltaRaw.pm +1 -1
  125. package/bin/lib/Image/ExifTool/Motorola.pm +1 -1
  126. package/bin/lib/Image/ExifTool/Nikon.pm +457 -103
  127. package/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
  128. package/bin/lib/Image/ExifTool/NikonCustom.pm +6 -6
  129. package/bin/lib/Image/ExifTool/NikonSettings.pm +1 -1
  130. package/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
  131. package/bin/lib/Image/ExifTool/OOXML.pm +8 -8
  132. package/bin/lib/Image/ExifTool/Ogg.pm +1 -1
  133. package/bin/lib/Image/ExifTool/Olympus.pm +1 -1
  134. package/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
  135. package/bin/lib/Image/ExifTool/Opus.pm +1 -1
  136. package/bin/lib/Image/ExifTool/Other.pm +1 -1
  137. package/bin/lib/Image/ExifTool/PCX.pm +1 -1
  138. package/bin/lib/Image/ExifTool/PDF.pm +49 -18
  139. package/bin/lib/Image/ExifTool/PGF.pm +1 -1
  140. package/bin/lib/Image/ExifTool/PICT.pm +1 -1
  141. package/bin/lib/Image/ExifTool/PLIST.pm +4 -4
  142. package/bin/lib/Image/ExifTool/PLUS.pm +1 -1
  143. package/bin/lib/Image/ExifTool/PNG.pm +20 -8
  144. package/bin/lib/Image/ExifTool/PPM.pm +12 -3
  145. package/bin/lib/Image/ExifTool/PSP.pm +1 -1
  146. package/bin/lib/Image/ExifTool/Palm.pm +1 -1
  147. package/bin/lib/Image/ExifTool/Panasonic.pm +27 -3
  148. package/bin/lib/Image/ExifTool/PanasonicRaw.pm +1 -1
  149. package/bin/lib/Image/ExifTool/Parrot.pm +1 -1
  150. package/bin/lib/Image/ExifTool/Pentax.pm +1 -1
  151. package/bin/lib/Image/ExifTool/PhaseOne.pm +4 -4
  152. package/bin/lib/Image/ExifTool/PhotoCD.pm +1 -1
  153. package/bin/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
  154. package/bin/lib/Image/ExifTool/Photoshop.pm +65 -4
  155. package/bin/lib/Image/ExifTool/PostScript.pm +1 -1
  156. package/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
  157. package/bin/lib/Image/ExifTool/Protobuf.pm +270 -0
  158. package/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
  159. package/bin/lib/Image/ExifTool/QuickTime.pm +327 -88
  160. package/bin/lib/Image/ExifTool/QuickTimeStream.pl +199 -195
  161. package/bin/lib/Image/ExifTool/README +12 -2
  162. package/bin/lib/Image/ExifTool/RIFF.pm +21 -6
  163. package/bin/lib/Image/ExifTool/RSRC.pm +1 -1
  164. package/bin/lib/Image/ExifTool/RTF.pm +2 -2
  165. package/bin/lib/Image/ExifTool/Radiance.pm +1 -1
  166. package/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
  167. package/bin/lib/Image/ExifTool/Real.pm +1 -1
  168. package/bin/lib/Image/ExifTool/Reconyx.pm +1 -1
  169. package/bin/lib/Image/ExifTool/Red.pm +1 -1
  170. package/bin/lib/Image/ExifTool/Ricoh.pm +4 -4
  171. package/bin/lib/Image/ExifTool/Samsung.pm +6 -2
  172. package/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
  173. package/bin/lib/Image/ExifTool/Scalado.pm +1 -1
  174. package/bin/lib/Image/ExifTool/Shift.pl +1 -1
  175. package/bin/lib/Image/ExifTool/Shortcuts.pm +1 -1
  176. package/bin/lib/Image/ExifTool/Sigma.pm +1 -1
  177. package/bin/lib/Image/ExifTool/SigmaRaw.pm +1 -1
  178. package/bin/lib/Image/ExifTool/Sony.pm +6 -5
  179. package/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
  180. package/bin/lib/Image/ExifTool/Stim.pm +1 -1
  181. package/bin/lib/Image/ExifTool/TagInfoXML.pm +6 -5
  182. package/bin/lib/Image/ExifTool/TagLookup.pm +7028 -6968
  183. package/bin/lib/Image/ExifTool/TagNames.pod +12079 -11630
  184. package/bin/lib/Image/ExifTool/Text.pm +4 -3
  185. package/bin/lib/Image/ExifTool/Theora.pm +1 -1
  186. package/bin/lib/Image/ExifTool/Torrent.pm +3 -3
  187. package/bin/lib/Image/ExifTool/Trailer.pm +318 -0
  188. package/bin/lib/Image/ExifTool/Unknown.pm +1 -1
  189. package/bin/lib/Image/ExifTool/VCard.pm +3 -3
  190. package/bin/lib/Image/ExifTool/Validate.pm +6 -6
  191. package/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
  192. package/bin/lib/Image/ExifTool/WPG.pm +1 -1
  193. package/bin/lib/Image/ExifTool/WTV.pm +1 -1
  194. package/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
  195. package/bin/lib/Image/ExifTool/WriteExif.pl +3 -3
  196. package/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
  197. package/bin/lib/Image/ExifTool/WritePDF.pl +1 -1
  198. package/bin/lib/Image/ExifTool/WritePNG.pl +1 -1
  199. package/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
  200. package/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
  201. package/bin/lib/Image/ExifTool/WriteQuickTime.pl +170 -79
  202. package/bin/lib/Image/ExifTool/WriteRIFF.pl +17 -6
  203. package/bin/lib/Image/ExifTool/WriteXMP.pl +3 -3
  204. package/bin/lib/Image/ExifTool/Writer.pl +89 -96
  205. package/bin/lib/Image/ExifTool/XISF.pm +1 -1
  206. package/bin/lib/Image/ExifTool/XMP.pm +28 -13
  207. package/bin/lib/Image/ExifTool/XMP2.pl +106 -3
  208. package/bin/lib/Image/ExifTool/XMPStruct.pl +2 -3
  209. package/bin/lib/Image/ExifTool/ZIP.pm +2 -2
  210. package/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
  211. package/bin/lib/Image/ExifTool/iWork.pm +1 -1
  212. package/bin/lib/Image/ExifTool.pm +467 -228
  213. package/bin/lib/Image/ExifTool.pod +118 -72
  214. package/bin/perl-Image-ExifTool.spec +1 -1
  215. package/bin/windows_exiftool.txt +96 -51
  216. package/package.json +6 -6
@@ -5,7 +5,7 @@
5
5
  #
6
6
  # URL: https://exiftool.org/
7
7
  #
8
- # Legal: Copyright (c) 2003-2024, Phil Harvey (philharvey66 at gmail.com)
8
+ # Legal: Copyright (c) 2003-2025, Phil Harvey (philharvey66 at gmail.com)
9
9
  # This library is free software; you can redistribute it and/or
10
10
  # modify it under the same terms as Perl itself.
11
11
  #------------------------------------------------------------------------------
@@ -520,9 +520,9 @@ set to undef to pass through EXIF "ASCII" values without recoding. Set to
520
520
  =item CharsetFileName
521
521
 
522
522
  External character set used for file names passed to ExifTool functions.
523
- When set in Windows, this triggers use of Windows wide-character i/o library
524
- routines (requires Win32API::File). Default is undef. May also be set to
525
- an empty string to avoid "encoding not specified" warnings on Windows.
523
+ Default is undef but "UTF8" is assumed in Windows if the file name contains
524
+ special characters and is valid UTF8. May also be set to an empty string to
525
+ avoid "encoding must be specified" warnings on Windows.
526
526
 
527
527
  =item CharsetID3
528
528
 
@@ -613,8 +613,10 @@ different when copying tags with L</SetNewValuesFromFile>.
613
613
  Format for printing date/time values. See C<strftime> in the L<POSIX>
614
614
  package and L<https://exiftool.org/filename.html#codes> for details about
615
615
  the format string. If the date can not be converted, the value is left
616
- unchanged unless the StrictDate option is set. Timezones are ignored. The
617
- inverse conversion (ie. when calling L</SetNewValue>) is performed only if
616
+ unchanged unless the StrictDate option is set. ExifTool adds a few
617
+ additional format specifiers (C<%f>, C<%s> and C<%z>), see
618
+ L<https://exiftool.org/filename.html#codes> for more details. The inverse
619
+ conversion (ie. when calling L</SetNewValue>) is performed only if
618
620
  POSIX::strptime or Time::Piece is installed. The default setting of undef
619
621
  causes date/time values to remain in standard EXIF format (similar to a
620
622
  DateFormat of "%Y:%m:%d %H:%M:%S").
@@ -809,8 +811,30 @@ Reference units for writing GPSSpeed when geotagging:
809
811
 
810
812
  Time shift to apply to all extracted date/time PrintConv values. Does not
811
813
  affect ValueConv values. Value is a date/time shift string (see
812
- L<Image::ExifTool::Shift(3pm)|Image::ExifTool::Shift.pl>), with a leading
813
- '-' for negative shifts. Default is undef.
814
+ L<Image::ExifTool::Shift(3pm)|Image::ExifTool::Shift.pl>) with a leading
815
+ '-' for negative shifts, or a tag name with option group prefix followed
816
+ by '+' or '-' then the shift string. Default is undef.
817
+
818
+ Note: When specifying a number of months and/or years to shift, the tag for
819
+ the starting date should be specified so the number of days can be
820
+ determined unambiguously. For example:
821
+
822
+ 'createdate-1:0:0 0:0:0' - shift back by the length of the
823
+ year before the CreateDate value
824
+ 'xmp:createdate+0:2:0 0' - shift forward by the length of
825
+ the 2 months after XMP:CreateDate
826
+
827
+ If the starting tag is not specified, or the specified tag isn't available,
828
+ then the shift is calculated based on the first shifted tag.
829
+
830
+ =item GPSQuadrant
831
+
832
+ This option is used to specify the GPS quadrant in the case where a warning
833
+ was issued because the GPS quadrant couldn't be determined. The value is a
834
+ 2-character code where the first character is 'N' or 'S' and the second
835
+ character is 'E' or 'W' (case insensitive). If this option is not set and
836
+ the quadrant is unknown, a warning is issued and the quadrant is assumed to
837
+ be 'NE'.
814
838
 
815
839
  =item Group#
816
840
 
@@ -840,7 +864,7 @@ used. Set to 0 for absolute offsets. Default is undef.
840
864
  =item IgnoreGroups
841
865
 
842
866
  Comma-separated list of group names to ignore when reading. The group names
843
- are case insensitive and may be preceeded by a family number. Set to undef
867
+ are case insensitive and may be preceded by a family number. Set to undef
844
868
  to clear the previous IgnoreGroups list. Default is undef.
845
869
 
846
870
  =item IgnoreMinorErrors
@@ -865,7 +889,7 @@ to undef to clear the previous IgnoreTags list. Default is undef.
865
889
 
866
890
  =item ImageHashType
867
891
 
868
- Sets type of hash algorithem used for the ImageDataHash tag calculation.
892
+ Sets type of hash algorithm used for the ImageDataHash tag calculation.
869
893
  Supported options are 'MD5', 'SHA256', and 'SHA512'. Default is 'MD5'.
870
894
 
871
895
  =item Lang
@@ -981,7 +1005,7 @@ normally. Currently this feature applies only to GM PDR data (see
981
1005
  L<Image::ExifTool::TagNames/GM Tags>). Setting this option automatically
982
1006
  sets L</IgnoreTags> to "all", and L</ExtractEmbedded> to 1. Default is
983
1007
  undef.
984
-
1008
+
985
1009
  =item QuickTimeHandler
986
1010
 
987
1011
  Flag set to add an 'mdir' Handler to a newly created Meta box when adding
@@ -1006,7 +1030,7 @@ when written. According to the QuickTime specification date/time values
1006
1030
  should be UTC, but many digital cameras store local time instead (presumably
1007
1031
  because they don't know the time zone), so the default is to not convert
1008
1032
  these times (except for Canon CR3 files, which always use UTC times). This
1009
- option also disables the autodetection of incorrect time-zero offsets in
1033
+ option also disables the auto-detection of incorrect time-zero offsets in
1010
1034
  QuickTime date/time values, and enforces a time zero of 1904 as per the
1011
1035
  QuickTime specification.
1012
1036
 
@@ -1028,6 +1052,11 @@ current RequestTags list. Groups are requested by adding a colon after the
1028
1052
  name (eg. "MacOS:"). Names are converted to lower case as they are added to
1029
1053
  the list. Default is undef.
1030
1054
 
1055
+ =item SaveBin
1056
+
1057
+ Flag to save binary values of tags, accessible through calls to L</GetValue>
1058
+ with a value type of "Bin".
1059
+
1031
1060
  =item SaveFormat
1032
1061
 
1033
1062
  Flag to save EXIF/TIFF format type as the family 6 group name when
@@ -1176,13 +1205,18 @@ details about the tags. Level 3 adds a hex dump of the tag data, but with
1176
1205
  limits on the number of bytes dumped. Levels 4 and 5 remove the dump limit
1177
1206
  on tag values and JPEG segment data respectively.
1178
1207
 
1208
+ =item WindowsLongPath
1209
+
1210
+ Support long path names in Windows. Enabling this option automatically
1211
+ enables the WindowsWideFile feature. Default is 1.
1212
+
1179
1213
  =item WindowsWideFile
1180
1214
 
1181
- Force the use of wide-character Windows I/O functions when the
1182
- L</CharsetFileName> option is used. This may be necessary when files are on
1183
- a network drive and the current directory name contains Unicode characters.
1184
- By default, the wide-character functions are used only if the specified file
1185
- path contains Unicode characters.
1215
+ Force the use of wide-character Windows I/O functions. This may be
1216
+ necessary when files are on a network drive and the current directory name
1217
+ contains Unicode characters. Without this option the wide-character
1218
+ functions are used only if the specified file path contains Unicode
1219
+ characters.
1186
1220
 
1187
1221
  =item WriteMode
1188
1222
 
@@ -1257,8 +1291,9 @@ CharsetPhotoshop, CharsetQuickTime, CharsetRIFF, Composite, ExtendedXMP,
1257
1291
  ExtractEmbedded, FastScan, FixBase, HtmlDump, HtmlDumpBase, IgnoreGroups,
1258
1292
  IgnoreMinorErrors, IgnoreTags, Lang, LargeFileSupport, MakerNotes,
1259
1293
  MDItemTags, NoPDFList, Password, QuickTimeUTC (enforced 1904 time zero),
1260
- RequestAll, RequestTags, SaveFormat, SavePath, ScanForXMP, Struct, TextOut,
1261
- Unknown, Verbose, WindowsWideFile, XAttrTags and XMPAutoConv.
1294
+ RequestAll, RequestTags, SaveBin, SaveFormat, SavePath, ScanForXMP, Struct,
1295
+ TextOut, Unknown, Verbose, WindowsLongPath, WindowsWideFile, XAttrTags and
1296
+ XMPAutoConv.
1262
1297
 
1263
1298
  =item Return Value:
1264
1299
 
@@ -1397,7 +1432,8 @@ The following ExifTool options are effective in the call to L</WriteInfo>:
1397
1432
 
1398
1433
  ByteOrder, Charset, CharsetEXIF, CharsetFileName, CharsetIPTC, Compact,
1399
1434
  Compress, FixBase, IgnoreMinorErrors, NoMultiExif, NoPDFList, Password,
1400
- QuickTimeHandler, QuickTimePad, Verbose, WindowsWideFile and WriteMode.
1435
+ QuickTimeHandler, QuickTimePad, Verbose, WindowsLongPath, WindowsWideFile
1436
+ and WriteMode.
1401
1437
 
1402
1438
  =head2 GetTagList
1403
1439
 
@@ -1535,14 +1571,15 @@ StrictDate and TimeZone.
1535
1571
 
1536
1572
  1) Tag key, or case-sensitive tag name with optional group prefix(es)
1537
1573
 
1538
- 2) [optional] Value type: 'PrintConv', 'ValueConv', 'Both', 'Raw' or
1574
+ 2) [optional] Value type: 'PrintConv', 'ValueConv', 'Both', 'Raw', 'Bin' or
1539
1575
  'Rational'
1540
1576
 
1541
1577
  The default value type is 'PrintConv' if the PrintConv option is set,
1542
1578
  otherwise the default is 'ValueConv'. A value type of 'Both' returns both
1543
- ValueConv and PrintConv values as a list. 'Rational' returns the raw
1544
- rational value as a string fraction for rational types, or undef for other
1545
- types.
1579
+ ValueConv and PrintConv values as a list. 'Raw' returns the raw decoded tag
1580
+ value. 'Bin' returns the original binary data for EXIF tags if the
1581
+ L</SaveBin> option was set. 'Rational' returns the raw rational value as a
1582
+ string fraction for rational types, or undef for other types.
1546
1583
 
1547
1584
  =item Return Values:
1548
1585
 
@@ -2394,7 +2431,8 @@ Get a list of available API options. (See L</Options> for option details.)
2394
2431
  =item Return Values:
2395
2432
 
2396
2433
  Reference to list of available options. Each entry in the list is a list
2397
- reference with 3 items: 0=Option name, 1=Default value, 2=Description.
2434
+ reference with 4 items: 0=Option name, 1=Default value, 2=Description,
2435
+ 3=flag set if option is undocumented.
2398
2436
 
2399
2437
  my $opts = Image::ExifTool::<b>AvailableOptions</b>();
2400
2438
  foreach (@$opts) {
@@ -2513,58 +2551,62 @@ Here is a complete list of groups for each of these families:
2513
2551
 
2514
2552
  AAC, AFCP, AIFF, APE, APP0, APP1, APP11, APP12, APP13, APP14, APP15, APP2,
2515
2553
  APP3, APP4, APP5, APP6, APP7, APP8, APP9, ASF, Audible, Canon, CanonVRD,
2516
- Composite, DICOM, DNG, DV, DjVu, Ducky, EXE, EXIF, ExifTool, FITS, FLAC,
2517
- FLIR, File, Flash, FlashPix, Font, FotoStation, GIF, GIMP, GM, GeoTiff,
2518
- GoPro, H264, HTML, ICC_Profile, ID3, IPTC, ISO, ITC, JFIF, JPEG, JSON,
2519
- JUMBF, Jpeg2000, LNK, Leaf, Lytro, M2TS, MIE, MIFF, MISB, MNG, MOI, MPC,
2520
- MPEG, MPF, MXF, MakerNotes, Matroska, Meta, Ogg, OpenEXR, Opus, PDF, PICT,
2521
- PLIST, PNG, PSP, Palm, PanasonicRaw, Parrot, PhotoCD, PhotoMechanic,
2522
- Photoshop, PostScript, PrintIM, QuickTime, RAF, RIFF, RSRC, RTF, Radiance,
2523
- Rawzor, Real, Red, SVG, SigmaRaw, Sony, Stim, Theora, Torrent, Trailer,
2554
+ Composite, DICOM, DjVu, DNG, Ducky, DV, EXE, EXIF, ExifTool, File, FITS,
2555
+ FLAC, Flash, FlashPix, FLIR, Font, FotoStation, GeoTiff, GIF, GIMP, GM,
2556
+ GoPro, H264, HTML, ICC_Profile, ID3, IPTC, ISO, ITC, JFIF, JPEG, Jpeg2000,
2557
+ JSON, JUMBF, Leaf, LNK, Lytro, M2TS, MakerNotes, Matroska, Meta, MIE, MIFF,
2558
+ MISB, MNG, MOI, MPC, MPEG, MPF, MXF, Ogg, OpenEXR, Opus, Palm, PanasonicRaw,
2559
+ Parrot, PDF, PhotoCD, PhotoMechanic, Photoshop, PICT, PLIST, PNG,
2560
+ PostScript, PrintIM, Protobuf, PSP, QuickTime, Radiance, RAF, Rawzor, Real,
2561
+ Red, RIFF, RSRC, RTF, SigmaRaw, Sony, Stim, SVG, Theora, Torrent, Trailer,
2524
2562
  VCard, Vorbis, WTV, XML, XMP, ZIP
2525
2563
 
2526
2564
  =item Family 1 (Specific Location):
2527
2565
 
2528
- AAC, AC3, AFCP, AIFF, APE, ASF, AVI1, Adobe, AdobeCM, AdobeDNG, Apple,
2529
- Audible, CBOR, CIFF, CameraIFD, Canon, CanonCustom, CanonDR4, CanonRaw,
2530
- CanonVRD, Casio, Chapter#, Composite, DICOM, DJI, DNG, DV, DjVu, DjVu-Meta,
2531
- Ducky, EPPIM, EXE, EXIF, ExifIFD, ExifTool, FITS, FLAC, FLIR, File, Flash,
2532
- FlashPix, Font, FotoStation, FujiFilm, FujiIFD, GE, GIF, GIMP, GM, GPS,
2533
- GSpherical, Garmin, GeoTiff, GlobParamIFD, GoPro, GraphConv, H264, HP, HTC,
2566
+ AAC, AC3, Adobe, AdobeCM, AdobeDNG, AFCP, AIFF, APE, APP10, APP2, Apple,
2567
+ ASF, Audible, AudioItemList, AudioKeys, AudioUserData, AVI1, CameraIFD,
2568
+ Canon, CanonCustom, CanonDR4, CanonRaw, CanonVRD, Casio, CBOR, Chapter#,
2569
+ CIFF, Composite, DICOM, DJI, DjVu, DjVu-Meta, DNG, Ducky, DV, EPPIM, EXE,
2570
+ EXIF, ExifIFD, ExifTool, File, FITS, FLAC, Flash, FlashPix, FLIR, Font,
2571
+ FotoStation, FujiFilm, FujiIFD, Garmin, GE, GeoTiff, GIF, GIMP,
2572
+ GlobParamIFD, GM, Google, GoPro, GPS, GraphConv, GSpherical, H264, HP, HTC,
2534
2573
  HTML, HTML-dc, HTML-ncc, HTML-office, HTML-prod, HTML-vw96, HTTP-equiv,
2535
- ICC-chrm, ICC-clrt, ICC-header, ICC-meas, ICC-meta, ICC-view, ICC_Profile,
2536
- ICC_Profile#, ID3, ID3v1, ID3v1_Enh, ID3v2_2, ID3v2_3, ID3v2_4, IFD0, IFD1,
2537
- IPTC, IPTC#, ISO, ITC, InfiRay, Insta360, InteropIFD, ItemList, JFIF, JFXX,
2538
- JPEG, JPEG-HDR, JPS, JSON, JUMBF, JVC, Jpeg2000, KDC_IFD, Keys, Kodak,
2539
- KodakBordersIFD, KodakEffectsIFD, KodakIFD, KyoceraRaw, LNK, Leaf,
2540
- LeafSubIFD, Leica, Lyrics3, Lytro, M-RAW, M2TS, MAC, MIE-Audio, MIE-Camera,
2541
- MIE-Canon, MIE-Doc, MIE-Extender, MIE-Flash, MIE-GPS, MIE-Geo, MIE-Image,
2542
- MIE-Lens, MIE-Main, MIE-MakerNotes, MIE-Meta, MIE-Orient, MIE-Preview,
2543
- MIE-Thumbnail, MIE-UTM, MIE-Unknown, MIE-Video, MIFF, MISB, MNG, MOBI, MOI,
2544
- MPC, MPEG, MPF0, MPImage, MS-DOC, MXF, MacOS, MakerNotes, MakerUnknown,
2545
- Matroska, MediaJukebox, Meta, MetaIFD, Microsoft, Minolta, MinoltaRaw,
2546
- Motorola, NITF, Nextbase, Nikon, NikonCapture, NikonCustom, NikonScan,
2547
- NikonSettings, NineEdits, Nintendo, Ocad, Ogg, Olympus, OpenEXR, Opus, PDF,
2548
- PICT, PNG, PNG-cICP, PNG-pHYs, PSP, Palm, Panasonic, PanasonicRaw, Parrot,
2549
- Pentax, PhaseOne, PhotoCD, PhotoMechanic, Photoshop, PictureInfo,
2550
- PostScript, PreviewIFD, PrintIM, ProfileIFD, Qualcomm, QuickTime, RAF, RAF2,
2551
- RIFF, RMETA, RSRC, RTF, Radiance, Rawzor, Real, Real-CONT, Real-MDPR,
2552
- Real-PROP, Real-RA3, Real-RA4, Real-RA5, Real-RJMD, Reconyx, Red, Ricoh,
2553
- SPIFF, SR2, SR2DataIFD, SR2SubIFD, SRF#, SVG, Samsung, Sanyo, Scalado,
2554
- Sigma, SigmaRaw, Sony, SonyIDC, Stim, SubIFD, System, Theora, Torrent,
2555
- Track#, UserData, VCalendar, VCard, VNote, Version0, Vorbis, WTV, XML, XMP,
2556
- XMP-DICOM, XMP-Device, XMP-GAudio, XMP-GCamera, XMP-GCreations, XMP-GDepth,
2557
- XMP-GFocus, XMP-GImage, XMP-GPano, XMP-GSpherical, XMP-LImage, XMP-MP,
2558
- XMP-MP1, XMP-PixelLive, XMP-aas, XMP-acdsee, XMP-album, XMP-apple-fi,
2559
- XMP-ast, XMP-aux, XMP-cc, XMP-cell, XMP-crd, XMP-creatorAtom, XMP-crs,
2560
- XMP-dc, XMP-dex, XMP-digiKam, XMP-drone-dji, XMP-dwc, XMP-et, XMP-exif,
2561
- XMP-exifEX, XMP-expressionmedia, XMP-extensis, XMP-fpv, XMP-getty, XMP-hdr,
2562
- XMP-hdrgm, XMP-ics, XMP-iptcCore, XMP-iptcExt, XMP-lr, XMP-mediapro,
2563
- XMP-microsoft, XMP-mwg-coll, XMP-mwg-kw, XMP-mwg-rs, XMP-nine, XMP-panorama,
2564
- XMP-pdf, XMP-pdfx, XMP-photomech, XMP-photoshop, XMP-plus, XMP-pmi,
2565
- XMP-prism, XMP-prl, XMP-prm, XMP-pur, XMP-rdf, XMP-sdc, XMP-swf, XMP-tiff,
2574
+ ICC-chrm, ICC-cicp, ICC-clrt, ICC-header, ICC-meas, ICC-meta, ICC-view,
2575
+ ICC_Profile, ICC_Profile#, ID3, ID3v1, ID3v1_Enh, ID3v2_2, ID3v2_3, ID3v2_4,
2576
+ IFD0, IFD1, InfiRay, Insta360, InteropIFD, IPTC, IPTC#, ISO, ITC, ItemList,
2577
+ iTunes, JFIF, JFXX, JPEG, JPEG-HDR, Jpeg2000, JPS, JSON, JUMBF, JVC,
2578
+ KDC_IFD, Keys, Kodak, KodakBordersIFD, KodakEffectsIFD, KodakIFD,
2579
+ KyoceraRaw, Leaf, LeafSubIFD, Leica, LNK, Lyrics3, Lytro, M-RAW, M2TS, MAC,
2580
+ MacOS, MakerNotes, MakerUnknown, Matroska, MediaJukebox, Meta, MetaIFD,
2581
+ Microsoft, MIE-Audio, MIE-Camera, MIE-Canon, MIE-Doc, MIE-Extender,
2582
+ MIE-Flash, MIE-Geo, MIE-GPS, MIE-Image, MIE-Lens, MIE-Main, MIE-MakerNotes,
2583
+ MIE-Meta, MIE-Orient, MIE-Preview, MIE-Thumbnail, MIE-Unknown, MIE-UTM,
2584
+ MIE-Video, MIFF, Minolta, MinoltaRaw, MISB, MNG, MOBI, MOI, Motorola, MPC,
2585
+ MPEG, MPF0, MPImage, MS-DOC, MXF, Nextbase, Nikon, NikonCapture,
2586
+ NikonCustom, NikonScan, NikonSettings, NineEdits, Nintendo, NITF, Ocad, Ogg,
2587
+ Olympus, OnePlus, OpenEXR, Opus, Palm, Panasonic, PanasonicRaw, Parrot, PDF,
2588
+ Pentax, PhaseOne, PhotoCD, PhotoMechanic, Photoshop, PICT, PictureInfo, PNG,
2589
+ PNG-cICP, PNG-pHYs, PostScript, PreviewIFD, PrintIM, ProfileIFD, PSP,
2590
+ Qualcomm, QuickTime, Radiance, RAF, RAF2, Rawzor, Real, Real-CONT,
2591
+ Real-MDPR, Real-PROP, Real-RA3, Real-RA4, Real-RA5, Real-RJMD, Reconyx, Red,
2592
+ Ricoh, RIFF, RMETA, RSRC, RTF, Samsung, Sanyo, Scalado, SEAL, Sigma,
2593
+ SigmaRaw, Sony, SonyIDC, SPIFF, SR2, SR2DataIFD, SR2SubIFD, SRF#, Stim,
2594
+ SubIFD, SVG, System, Theora, Torrent, Track#, Track#ItemList, Track#Keys,
2595
+ Track#UserData, UserData, VCalendar, VCard, Version0, VideoItemList,
2596
+ VideoKeys, VideoUserData, Vivo, VNote, Vorbis, WTV, XML, XMP, XMP-aas,
2597
+ XMP-acdsee, XMP-acdsee-rs, XMP-album, XMP-apdi, XMP-apple-fi, XMP-ast,
2598
+ XMP-aux, XMP-cc, XMP-cell, XMP-crd, XMP-creatorAtom, XMP-crs, XMP-dc,
2599
+ XMP-Device, XMP-dex, XMP-DICOM, XMP-digiKam, XMP-drone-dji, XMP-dwc, XMP-et,
2600
+ XMP-exif, XMP-exifEX, XMP-expressionmedia, XMP-extensis, XMP-fpv,
2601
+ XMP-GAudio, XMP-GCamera, XMP-GContainer, XMP-GCreations, XMP-GDepth,
2602
+ XMP-getty, XMP-GFocus, XMP-GImage, XMP-GPano, XMP-GSpherical, XMP-hdr,
2603
+ XMP-HDRGainMap, XMP-hdrgm, XMP-ics, XMP-iptcCore, XMP-iptcExt, XMP-LImage,
2604
+ XMP-lr, XMP-mediapro, XMP-microsoft, XMP-MP, XMP-MP1, XMP-mwg-coll,
2605
+ XMP-mwg-kw, XMP-mwg-rs, XMP-nine, XMP-panorama, XMP-pdf, XMP-pdfx,
2606
+ XMP-photomech, XMP-photoshop, XMP-PixelLive, XMP-plus, XMP-pmi, XMP-prism,
2607
+ XMP-prl, XMP-prm, XMP-pur, XMP-rdf, XMP-sdc, XMP-seal, XMP-swf, XMP-tiff,
2566
2608
  XMP-x, XMP-xmp, XMP-xmpBJ, XMP-xmpDM, XMP-xmpDSA, XMP-xmpMM, XMP-xmpNote,
2567
- XMP-xmpPLUS, XMP-xmpRights, XMP-xmpTPg, ZIP, iTunes
2609
+ XMP-xmpPLUS, XMP-xmpRights, XMP-xmpTPg, ZIP
2568
2610
 
2569
2611
  =item Family 2 (Category):
2570
2612
 
@@ -2804,6 +2846,10 @@ for the system. In Windows this also has the effect of activating Unicode
2804
2846
  filename support via the special Windows wide-character i/o routines if
2805
2847
  Win32API::File is available.
2806
2848
 
2849
+ Note that setting the L</WindowsWideFile> or L</WindowsLongPath> option
2850
+ causes L</CharsetFileName> to default to 'UTF8' in Windows if not defined,
2851
+ and L</WindowsLongPath> is set by default in ExifTool 13.07 and later.
2852
+
2807
2853
  =item Internal Character Sets:
2808
2854
 
2809
2855
  The encodings used to store strings in the various metadata formats. These
@@ -2987,7 +3033,7 @@ specified by the L</Charset> option.
2987
3033
 
2988
3034
  =head1 AUTHOR
2989
3035
 
2990
- Copyright 2003-2024, Phil Harvey
3036
+ Copyright 2003-2025, Phil Harvey
2991
3037
 
2992
3038
  This library is free software; you can redistribute it and/or modify it
2993
3039
  under the same terms as Perl itself.
@@ -1,6 +1,6 @@
1
1
  Summary: perl module for image data extraction
2
2
  Name: perl-Image-ExifTool
3
- Version: 13.00
3
+ Version: 13.17
4
4
  Release: 1
5
5
  License: Artistic/GPL
6
6
  Group: Development/Libraries/Perl
@@ -734,6 +734,13 @@ OPTIONS
734
734
  API option was used). Multiple databases may be imported in a
735
735
  single command.
736
736
 
737
+ Specific tags may be imported from the CSV database by adding
738
+ -*TAG* options to the command, or excluded with --*TAG*, with
739
+ exclusions taking priority. Group names and wildcards are allowed.
740
+ If no tags are specified, then all except FileName and Directory
741
+ are used. Tags are imported in the same order as the database
742
+ entries.
743
+
737
744
  When exporting a CSV file, the -g or -G option adds group names to
738
745
  the tag headings. If the -a option is used to allow duplicate tag
739
746
  names, the duplicate tags are only included in the CSV output if
@@ -779,18 +786,30 @@ OPTIONS
779
786
  -d *FMT* (-dateFormat)
780
787
  Set the format for date/time tag values. The *FMT* string may
781
788
  contain formatting codes beginning with a percent character ("%")
782
- to represent the various components of a date/time value. The
783
- specifics of the *FMT* syntax are system dependent -- consult the
784
- "strftime" man page on your system for details. The default format
785
- is equivalent to "%Y:%m:%d %H:%M:%S". This option has no effect on
786
- date-only or time-only tags and ignores timezone information if
787
- present. ExifTool adds a %f format code to represent fractional
788
- seconds, and supports an optional width to specify the number of
789
- digits after the decimal point (eg. %3f would give something like
790
- .437), and a minus sign to drop the decimal point (eg. "%-3f" would
791
- give 437). Only one -d option may be used per command. Requires
792
- POSIX::strptime or Time::Piece for the inversion conversion when
793
- writing.
789
+ to represent the various components of a date/time value. ExifTool
790
+ implements 3 format codes internally (see below), but other format
791
+ codes are system dependent -- consult the "strftime" man page on
792
+ your system for details. The default format is equivalent to
793
+ "%Y:%m:%d %H:%M:%S". This option has no effect on date-only or
794
+ time-only tags. Requires POSIX::strptime or Time::Piece for the
795
+ inversion conversion when writing. Only one -d option may be used
796
+ per command.
797
+
798
+ Additional format codes implemented internally by ExifTool:
799
+
800
+ 1) %z represents the time zone in "+/-HHMM" format. Adding a colon
801
+ (ie. %:z) adds a colon separator (eg. "-05:00"). If the date/time
802
+ value doesn't contain a time zone then %z gives the system time
803
+ zone for the specified date/time value.
804
+
805
+ 2) %f represents fractional seconds, and supports an optional width
806
+ to specify the number of digits after the decimal point (eg. %3f
807
+ would give something like ".437"). Adding a minus sign drops the
808
+ decimal point (eg. "%-3f" would give "437").
809
+
810
+ 3) %s represents the number of seconds since 00:00 UTC Jan 1, 1970,
811
+ taking into account the specified time zone (or system time zone if
812
+ not specified).
794
813
 
795
814
  -D (-decimal)
796
815
  Show tag ID number in decimal when extracting information.
@@ -869,18 +888,29 @@ OPTIONS
869
888
  as simple strings). The -a option is implied when -json is used,
870
889
  but entries with identical JSON names are suppressed in the output.
871
890
  (-G4 may be used to ensure that all tags have unique JSON names.)
891
+
872
892
  Adding the -D or -H option changes tag values to JSON objects with
873
- "val" and "id" fields, and adding -l adds a "desc" field, and a
874
- "num" field if the numerical value is different from the converted
875
- "val". The -b option may be added to output binary data, encoded in
876
- base64 if necessary (indicated by ASCII "base64:" as the first 7
877
- bytes of the value), and -t may be added to include tag table
878
- information (see -t for details). The JSON output is UTF-8
879
- regardless of any -L or -charset option setting, but the UTF-8
880
- validation is disabled if a character set other than UTF-8 is
881
- specified. Note that ExifTool quotes JSON values only if they don't
882
- look like numbers (regardless of the original storage format or the
883
- relevant metadata specification).
893
+ "val" and "id" fields. Adding -l adds a "desc" field, and a "num"
894
+ field if the numerical value is different from the converted "val",
895
+ and "fmt" and "hex" fields for EXIF metadata if the API SaveFormat
896
+ and SaveBin options are set respectively, and the length of the
897
+ "hex" output is limited by the API LimitLongValues setting. The -b
898
+ option may be added to output binary data, encoded in base64 if
899
+ necessary (indicated by ASCII "base64:" as the first 7 bytes of the
900
+ value), and -t may be added to include tag table information (see
901
+ -t for details). The JSON output is UTF-8 regardless of any -L or
902
+ -charset option setting, but the UTF-8 validation is disabled if a
903
+ character set other than UTF-8 is specified.
904
+
905
+ Note that ExifTool quotes JSON values only if they don't look like
906
+ numbers (regardless of the original storage format or the relevant
907
+ metadata specification). This may be a problem when reading the
908
+ JSON via a strongly typed language. However, the API StructFormat
909
+ option may be set to "JSONQ" to force quoting of numbers. As well,
910
+ the -sep option may be used to convert arrays into strings. For
911
+ example:
912
+
913
+ exiftool -j -api structformat=jsonq -sep ", " ...
884
914
 
885
915
  If *JSONFILE* is specified, the file is imported and the tag
886
916
  definitions from the file are used to set tag values on a per-file
@@ -896,6 +926,13 @@ OPTIONS
896
926
  -g). Additionally, tag names in the input JSON file may be suffixed
897
927
  with a "#" to disable print conversion.
898
928
 
929
+ Specific tags may be imported from the JSON database by adding
930
+ -*TAG* options to the command, or excluded with --*TAG*, with
931
+ exclusions taking priority. Group names and wildcards are allowed.
932
+ If no tags are specified, then all except FileName and Directory
933
+ are used. Tags are imported in the same order as the database
934
+ entries.
935
+
899
936
  Unlike CSV import, empty values are not ignored, and will cause an
900
937
  empty value to be written if supported by the specific metadata
901
938
  type. Tags are deleted by using the -f option and setting the tag
@@ -1039,7 +1076,7 @@ OPTIONS
1039
1076
 
1040
1077
  produces output like this:
1041
1078
 
1042
- -- Generated by ExifTool 13.00 --
1079
+ -- Generated by ExifTool 13.17 --
1043
1080
  File: a.jpg - 2003:10:31 15:44:19
1044
1081
  (f/5.6, 1/60s, ISO 100)
1045
1082
  File: b.jpg - 2006:05:23 11:57:38
@@ -1056,8 +1093,9 @@ OPTIONS
1056
1093
  (unless the "All" group is also specified, in which case the values
1057
1094
  of all matching tags are joined).
1058
1095
 
1059
- When -ee (-extractEmbedded) is combined with -p, embedded documents
1060
- are effectively processed as separate input files.
1096
+ The -p output iterates through the family 3 group names, with each
1097
+ sub-document producing additional output when combined with the -ee
1098
+ (ExtractEmbedded) option.
1061
1099
 
1062
1100
  If a specified tag does not exist, a minor warning is issued and
1063
1101
  the line with the missing tag is not printed. However, the -f
@@ -1151,7 +1189,8 @@ OPTIONS
1151
1189
  tab-delimited on a single line. The -t option may be combined with
1152
1190
  -j, -php or -X to add tag table information ("table", tag "id", and
1153
1191
  "index" for cases where multiple conditional tags exist with the
1154
- same ID).
1192
+ same ID), which allows the corresponding tag to be located in the
1193
+ -listx output.
1155
1194
 
1156
1195
  -T (-table)
1157
1196
  Output tag values in table form. Equivalent to -t -S -q -f.
@@ -1471,17 +1510,18 @@ OPTIONS
1471
1510
  images or the audio/video data in WAV/AVI files to search for
1472
1511
  additional metadata. These speed benefits are small when reading
1473
1512
  images directly from disk, but can be substantial if piping images
1474
- through a network connection. For more substantial speed benefits,
1475
- -fast2 also causes exiftool to avoid extracting any EXIF MakerNote
1476
- information, and to stop processing at the IDAT chunk of PNG images
1477
- and the mdat atom of QuickTime-format files (but note that some
1478
- files may store metadata after this). -fast3 avoids extracting
1479
- metadata from the file, and returns only pseudo System tags, but
1480
- still reads the file header to obtain an educated guess at
1481
- FileType. -fast4 doesn't even read the file header, and returns
1482
- only System tags and a FileType based on the file extension. -fast5
1483
- also disables generation of the Composite tags (like -e). Has no
1484
- effect when writing.
1513
+ through a network connection. Also bypasses CRC validation when
1514
+ writing PNG images which can be very slow. For more substantial
1515
+ speed benefits, -fast2 also causes exiftool to avoid extracting any
1516
+ EXIF MakerNote information, and to stop processing at the IDAT
1517
+ chunk of PNG images and the mdat atom of QuickTime-format files
1518
+ (but note that some files may store metadata after this). -fast3
1519
+ avoids extracting metadata from the file, and returns only pseudo
1520
+ System tags, but still reads the file header to obtain an educated
1521
+ guess at FileType. -fast4 doesn't even read the file header, and
1522
+ returns only System tags and a FileType based on the file
1523
+ extension. -fast5 also disables generation of the Composite tags
1524
+ (like -e). Has no effect when writing.
1485
1525
 
1486
1526
  Note that a separate -fast setting may be used for evaluation of a
1487
1527
  -if condition, or when ordering files with the -fileOrder option.
@@ -1882,9 +1922,10 @@ OPTIONS
1882
1922
  The -g and -G options may be used to organize the output by the
1883
1923
  specified family of groups, with -G1 being the default. The -a
1884
1924
  option is implied. Adding -v includes a count of the number of tags
1885
- that are the same in each group. The following text formatting
1886
- options are valid when -diff is used: -c, -charset, -d, -E, -ec,
1887
- -ex, -L, -lang, -n, -s, -sep, -struct and -w.
1925
+ that are the same in each group, and -v2 also indicates when zero
1926
+ tags were the same. The following text formatting options are valid
1927
+ when -diff is used: -c, -charset, -d, -E, -ec, -ex, -L, -lang, -n,
1928
+ -s, -sep, -struct and -w.
1888
1929
 
1889
1930
  -geotag *TRKFILE*
1890
1931
  Geotag images from the specified GPS track log file. Using the
@@ -1899,14 +1940,14 @@ OPTIONS
1899
1940
  exiftool -geotag trk.log image.jpg
1900
1941
  exiftool -geotag trk.log "-Geotime<DateTimeOriginal#" image.jpg
1901
1942
 
1902
- When the "Geotime" value is converted to UTC, the local system
1903
- timezone is assumed unless the date/time value contains a timezone.
1904
- Writing "Geotime" causes the following tags to be written (provided
1905
- they can be calculated from the track log, and they are supported
1906
- by the destination metadata format): GPSLatitude, GPSLatitudeRef,
1907
- GPSLongitude, GPSLongitudeRef, GPSAltitude, GPSAltitudeRef,
1908
- GPSDateStamp, GPSTimeStamp, GPSDateTime, GPSTrack, GPSTrackRef,
1909
- GPSSpeed, GPSSpeedRef, GPSImgDirection, GPSImgDirectionRef,
1943
+ If the "Geotime" value does not contain a time zone then the local
1944
+ system timezone is assumed. Writing "Geotime" causes the following
1945
+ tags to be written (provided they can be calculated from the track
1946
+ log, and they are supported by the destination metadata format):
1947
+ GPSLatitude, GPSLatitudeRef, GPSLongitude, GPSLongitudeRef,
1948
+ GPSAltitude, GPSAltitudeRef, GPSDateStamp, GPSTimeStamp,
1949
+ GPSDateTime, GPSTrack, GPSTrackRef, GPSSpeed, GPSSpeedRef,
1950
+ GPSImgDirection, GPSImgDirectionRef, GPSMeasureMode, GPSDOP,
1910
1951
  GPSPitch, GPSRoll, GPSCoordinates, AmbientTemperature and
1911
1952
  CameraElevationAngle. By default, in image files tags are created
1912
1953
  in EXIF, and updated in XMP only if they already exist. In
@@ -2373,6 +2414,10 @@ WRITING READ-ONLY FILES
2373
2414
  exiftool -if "$fileattributes !~ /Hidden/" ...
2374
2415
 
2375
2416
  READING EXAMPLES
2417
+ The commands below are appropriate for the Windows cmd shell, which is
2418
+ recommended. If running in PowerShell, single quotes would be needed
2419
+ instead of double quotes around arguments containing a dollar sign.
2420
+
2376
2421
  exiftool -a -u -g1 a.jpg
2377
2422
  Print all meta information in an image, including duplicate and
2378
2423
  unknown tags, sorted by group (for family 1). For performance
@@ -2439,7 +2484,7 @@ READING EXAMPLES
2439
2484
  Print one line of output containing the file name and
2440
2485
  DateTimeOriginal for each image in directory "dir".
2441
2486
 
2442
- exiftool -ee3 -p '$gpslatitude, $gpslongitude, $gpstimestamp' a.m2ts
2487
+ exiftool -ee3 -p "$gpslatitude, $gpslongitude, $gpstimestamp" a.m2ts
2443
2488
  Extract all GPS positions from an AVCHD video.
2444
2489
 
2445
2490
  exiftool -icc_profile -b -w icc image.jpg
@@ -2847,7 +2892,7 @@ EXIT STATUS
2847
2892
  the commands if -execute was used).
2848
2893
 
2849
2894
  AUTHOR
2850
- Copyright 2003-2024, Phil Harvey
2895
+ Copyright 2003-2025, Phil Harvey
2851
2896
 
2852
2897
  This is free software; you can redistribute it and/or modify it under
2853
2898
  the same terms as Perl itself.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "exiftool-vendored.pl",
3
- "version": "13.0.1",
3
+ "version": "13.17.0",
4
4
  "description": "Vendored perl ExifTool for Node.js",
5
5
  "main": "./index.js",
6
6
  "homepage": "https://github.com/photostructure/exiftool-vendored.pl#readme",
@@ -32,8 +32,8 @@
32
32
  "release-it": {
33
33
  "hooks": {
34
34
  "before:init": [
35
- "yarn install",
36
- "yarn test"
35
+ "npm i",
36
+ "npm t"
37
37
  ]
38
38
  },
39
39
  "github": {
@@ -41,8 +41,8 @@
41
41
  }
42
42
  },
43
43
  "devDependencies": {
44
- "mocha": "^10.8.0",
45
- "npm-check-updates": "^17.1.9",
46
- "prettier": "^3.3.3"
44
+ "mocha": "^11.1.0",
45
+ "npm-check-updates": "^17.1.14",
46
+ "prettier": "^3.4.2"
47
47
  }
48
48
  }