|
| 1 | +ExifTool by Phil Harvey (philharvey66 at gmail.com) |
| 2 | +---------------------------------------------------------------------------- |
| 3 | + |
| 4 | +ExifTool is a customizable set of Perl modules plus a full-featured |
| 5 | +command-line application for reading and writing meta information in a wide |
| 6 | +variety of files, including the maker note information of many digital |
| 7 | +cameras by various manufacturers such as Canon, Casio, DJI, FLIR, FujiFilm, |
| 8 | +GE, HP, JVC/Victor, Kodak, Leaf, Minolta/Konica-Minolta, Nikon, Nintendo, |
| 9 | +Olympus/Epson, Panasonic/Leica, Pentax/Asahi, Phase One, Reconyx, Ricoh, |
| 10 | +Samsung, Sanyo, Sigma/Foveon and Sony. |
| 11 | + |
| 12 | +Below is a list of file types and meta information formats currently |
| 13 | +supported by ExifTool (r = read, w = write, c = create): |
| 14 | + |
| 15 | + File Types |
| 16 | + ------------+-------------+-------------+-------------+------------ |
| 17 | + 360 r/w | DR4 r/w/c | JNG r/w | ODP r | RIFF r |
| 18 | + 3FR r | DSS r | JP2 r/w | ODS r | RSRC r |
| 19 | + 3G2 r/w | DV r | JPEG r/w | ODT r | RTF r |
| 20 | + 3GP r/w | DVB r/w | JSON r | OFR r | RW2 r/w |
| 21 | + A r | DVR-MS r | JXL r | OGG r | RWL r/w |
| 22 | + AA r | DYLIB r | K25 r | OGV r | RWZ r |
| 23 | + AAE r | EIP r | KDC r | ONP r | RM r |
| 24 | + AAX r/w | EPS r/w | KEY r | OPUS r | SEQ r |
| 25 | + ACR r | EPUB r | LA r | ORF r/w | SKETCH r |
| 26 | + AFM r | ERF r/w | LFP r | ORI r/w | SO r |
| 27 | + AI r/w | EXE r | LIF r | OTF r | SR2 r/w |
| 28 | + AIFF r | EXIF r/w/c | LNK r | PAC r | SRF r |
| 29 | + APE r | EXR r | LRV r/w | PAGES r | SRW r/w |
| 30 | + ARQ r/w | EXV r/w/c | M2TS r | PBM r/w | SVG r |
| 31 | + ARW r/w | F4A/V r/w | M4A/V r/w | PCD r | SWF r |
| 32 | + ASF r | FFF r/w | MACOS r | PCX r | THM r/w |
| 33 | + AVI r | FITS r | MAX r | PDB r | TIFF r/w |
| 34 | + AVIF r/w | FLA r | MEF r/w | PDF r/w | TORRENT r |
| 35 | + AZW r | FLAC r | MIE r/w/ | PEF r/w | TTC r |
| 36 | + BMP r | FLIF r/w | MIFF r c | PFA r | TTF r |
| 37 | + BPG r | FLV r | MKA r | PFB r | TXT r |
| 38 | + BTF r | FPF r | MKS r | PFM r | VCF r |
| 39 | + CHM r | FPX r | MKV r | PGF r | VRD r/w/c |
| 40 | + COS r | GIF r/w | MNG r/w | PGM r/w | VSD r |
| 41 | + CR2 r/w | GPR r/w | MOBI r | PLIST r | WAV r |
| 42 | + CR3 r/w | GZ r | MODD r | PICT r | WDP r/w |
| 43 | + CRM r/w | HDP r/w | MOI r | PMP r | WEBP r |
| 44 | + CRW r/w | HDR r | MOS r/w | PNG r/w | WEBM r |
| 45 | + CS1 r/w | HEIC r/w | MOV r/w | PPM r/w | WMA r |
| 46 | + CSV r | HEIF r/w | MP3 r | PPT r | WMV r |
| 47 | + CZI r | HTML r | MP4 r/w | PPTX r | WTV r |
| 48 | + DCM r | ICC r/w/c | MPC r | PS r/w | WV r |
| 49 | + DCP r/w | ICS r | MPG r | PSB r/w | X3F r/w |
| 50 | + DCR r | IDML r | MPO r/w | PSD r/w | XCF r |
| 51 | + DFONT r | IIQ r/w | MQV r/w | PSP r | XLS r |
| 52 | + DIVX r | IND r/w | MRC r | QTIF r/w | XLSX r |
| 53 | + DJVU r | INSP r/w | MRW r/w | R3D r | XMP r/w/c |
| 54 | + DLL r | INSV r | MXF r | RA r | ZIP r |
| 55 | + DNG r/w | INX r | NEF r/w | RAF r/w | |
| 56 | + DOC r | ISO r | NRW r/w | RAM r | |
| 57 | + DOCX r | ITC r | NUMBERS r | RAR r | |
| 58 | + DPX r | J2C r | O r | RAW r/w | |
| 59 | + |
| 60 | + Meta Information |
| 61 | + ----------------------+----------------------+--------------------- |
| 62 | + EXIF r/w/c | CIFF r/w | Ricoh RMETA r |
| 63 | + GPS r/w/c | AFCP r/w | Picture Info r |
| 64 | + IPTC r/w/c | Kodak Meta r/w | Adobe APP14 r |
| 65 | + XMP r/w/c | FotoStation r/w | MPF r |
| 66 | + MakerNotes r/w/c | PhotoMechanic r/w | Stim r |
| 67 | + Photoshop IRB r/w/c | JPEG 2000 r | DPX r |
| 68 | + ICC Profile r/w/c | DICOM r | APE r |
| 69 | + MIE r/w/c | Flash r | Vorbis r |
| 70 | + JFIF r/w/c | FlashPix r | SPIFF r |
| 71 | + Ducky APP12 r/w/c | QuickTime r | DjVu r |
| 72 | + PDF r/w/c | Matroska r | M2TS r |
| 73 | + PNG r/w/c | MXF r | PE/COFF r |
| 74 | + Canon VRD r/w/c | PrintIM r | AVCHD r |
| 75 | + Nikon Capture r/w/c | FLAC r | ZIP r |
| 76 | + GeoTIFF r/w/c | ID3 r | (and more) |
| 77 | + |
| 78 | +See html/index.html for more details about ExifTool features. |
| 79 | + |
| 80 | +ExifTool can be downloaded from |
| 81 | + |
| 82 | + https://exiftool.org/ |
| 83 | + |
| 84 | +RUNNING |
| 85 | + |
| 86 | +The exiftool script can be run right away without the need to install |
| 87 | +Image::ExifTool. For example, from within the exiftool directory you can |
| 88 | +extract the information from one of the included test files by typing: |
| 89 | + |
| 90 | + ./exiftool t/images/ExifTool.jpg |
| 91 | + |
| 92 | +If you move the exiftool script to a different directory, you must also |
| 93 | +either move the contents of the lib directory or install the Image::ExifTool |
| 94 | +package so the script can find the necessary libraries. |
| 95 | + |
| 96 | +Note: If you are using the Windows cmd shell, you may need to rename |
| 97 | +'exiftool' to 'exiftool.pl' to run it directly from the command line. |
| 98 | +Alternatively, you can run exiftool with the command 'perl exiftool'. |
| 99 | + |
| 100 | +IF YOU ARE STILL CONFUSED |
| 101 | + |
| 102 | +The exiftool script is a command line application. You run it by typing |
| 103 | +commands in a terminal window. The first step is to determine the name of |
| 104 | +the directory where you downloaded the ExifTool distribution package. |
| 105 | +Assuming, for example, you downloaded it to a folder called "Desktop" in |
| 106 | +your home directory, then you would type the following commands in a |
| 107 | +terminal window to extract and run ExifTool: |
| 108 | + |
| 109 | + cd ~/Desktop |
| 110 | + gzip -dc Image-ExifTool-12.34.tar.gz | tar -xf - |
| 111 | + cd Image-ExifTool-12.34 |
| 112 | + ./exiftool t/images/ExifTool.jpg |
| 113 | + |
| 114 | +Note: These commands extract meta information from one of the test images. |
| 115 | +To use one of your images instead, enter the full path name of your file in |
| 116 | +place of "t/images/ExifTool.jpg". |
| 117 | + |
| 118 | +INSTALLATION |
| 119 | + |
| 120 | +You can install the Image::ExifTool package to make it available for use by |
| 121 | +other Perl scripts by typing the following: |
| 122 | + |
| 123 | + perl Makefile.PL |
| 124 | + make |
| 125 | + make test |
| 126 | + make install |
| 127 | + |
| 128 | +Notes: |
| 129 | + i) You need root access for the last step above. |
| 130 | + |
| 131 | + ii) Some Perl installations (like the standard OSX installation) may not |
| 132 | + contain the necessary files to complete the first step above. But no |
| 133 | + worries: You can install ExifTool manually by moving 'exiftool' and the |
| 134 | + 'lib' directory to any directory in your current PATH (ie. /usr/bin). |
| 135 | + |
| 136 | + iii) In Windows, "dmake" or "nmake" may be used if "make" is not |
| 137 | + available. |
| 138 | + |
| 139 | +(Also see html/install.html for more help with installation.) |
| 140 | + |
| 141 | +DEPENDENCIES |
| 142 | + |
| 143 | +Requires Perl version 5.004 or later. No other special libraries are |
| 144 | +required, however the following modules are recommended for decoding |
| 145 | +compressed and/or encrypted information from the indicated file types, and |
| 146 | +for calculating digest values and providing other features listed below: |
| 147 | + |
| 148 | + Archive::Zip (ZIP, DOCX, PPTX, XLSX, ODP, ODS, ODT, EIP, iWork) |
| 149 | + Compress::Zlib (DNG, PNG, PDF, DCM, MIE and SWF files) |
| 150 | + Digest::MD5 (PDF files, IPTC information, and JPG Extended XMP) |
| 151 | + Digest::SHA (PDF with AES-256 encryption) |
| 152 | + IO::Compress::Bzip2 (RWZ files) |
| 153 | + Time::HiRes (for generating ProcessingTime tag) |
| 154 | + POSIX::strptime (for inverse date/time conversion) |
| 155 | + Time::Piece (alternative to POSIX::strptime) |
| 156 | + Unicode::LineBreak (for column alignment of alternate-language output) |
| 157 | + Win32::API (for proper handling of Windows file times) |
| 158 | + Win32::FindFile (for Windows Unicode directory support, app only) |
| 159 | + Win32API::File (for Windows Unicode file names and file times) |
| 160 | + IO::Compress::RawDeflate (for writing FLIF images) |
| 161 | + IO::Uncompress::RawInflate (for reading FLIF images) |
| 162 | + |
| 163 | +COPYRIGHT AND LICENSE |
| 164 | + |
| 165 | +Copyright 2003-2021, Phil Harvey |
| 166 | + |
| 167 | +This is free software; you can redistribute it and/or modify it under the |
| 168 | +same terms as Perl itself. |
| 169 | + |
| 170 | +DISTRIBUTION FILES |
| 171 | + |
| 172 | +Below is a list of the files/directories included in the full ExifTool |
| 173 | +distribution package: |
| 174 | + |
| 175 | + Changes - Revision history |
| 176 | + MANIFEST - Full list of distribution files |
| 177 | + META.json - Standard CPAN dependency file (JSON format) |
| 178 | + META.yml - Standard CPAN dependency file (YAML format) |
| 179 | + Makefile.PL - Makefile for installation |
| 180 | + README - This file |
| 181 | + arg_files/ - Argument files to convert metadata formats: |
| 182 | + exif2iptc.args - Arguments for converting EXIF to IPTC |
| 183 | + exif2xmp.args - Arguments for converting EXIF to XMP |
| 184 | + gps2xmp.args - Arguments for converting GPS to XMP |
| 185 | + iptc2exif.args - Arguments for converting IPTC to EXIF |
| 186 | + iptc2xmp.args - Arguments for converting IPTC to XMP |
| 187 | + iptcCore.args - Complete list of IPTC Core XMP tags |
| 188 | + pdf2xmp.args - Arguments for converting PDF to XMP |
| 189 | + xmp2exif.args - Arguments for converting XMP to EXIF |
| 190 | + xmp2gps.args - Arguments for converting XMP to GPS |
| 191 | + xmp2iptc.args - Arguments for converting XMP to IPTC |
| 192 | + xmp2pdf.args - Arguments for converting XMP to PDF |
| 193 | + config_files/ - Sample ExifTool configuration files: |
| 194 | + acdsee.config - Definitions for writing ACDSee XMP regions |
| 195 | + age.config - Calculate Age of person in photo |
| 196 | + bibble.config - Definitions for writing Bibble XMP tags |
| 197 | + convert_regions.config - Convert between MWG, MP and IPTC regions |
| 198 | + cuepointlist.config - Extract cue points and labels as a list |
| 199 | + depthmap.config - Extract Google DepthMap images |
| 200 | + example.config - General example showing config features |
| 201 | + fotoware.config - Definitions for writing Fotoware XMP tags |
| 202 | + gps2utm.config - Generate UTM coordinate tags from GPS info |
| 203 | + gpsdatetime.config - Make GPSDateTime from CreateDate+SampleTime |
| 204 | + nksc.config - Decode tags in Nikon ViewNX NKSC files |
| 205 | + photoshop_paths.config - For extracting or copying Photoshop paths |
| 206 | + picasa_faces.config - Convert from Picasa to MWG/MP face regions |
| 207 | + rotate_regions.config - Rotate MWG and MP region tags |
| 208 | + tiff_version.config - Determine the version of a TIFF file |
| 209 | + time_zone.config - Calculate time zone from EXIF tags |
| 210 | + exiftool - The exiftool application (Perl script) |
| 211 | + fmt_files/ - Output formatting example files: |
| 212 | + gpx.fmt - Format file for creating GPX track |
| 213 | + gpx_wpt.fmt - Format file for creating GPX waypoints |
| 214 | + kml.fmt - Format file for creating KML placemarks |
| 215 | + kml_track.fmt - Format file for creating KML track |
| 216 | + html/ - HTML documentation |
| 217 | + html/TagNames/ - HTML tag name documentation |
| 218 | + lib/ - ExifTool Perl library modules |
| 219 | + perl-Image-ExifTool.spec - Red Hat Packaging Manager specification file |
| 220 | + t/ - Verification test code |
| 221 | + t/images/ - Verification test images |
| 222 | + |
| 223 | +ADDITIONAL INFORMATION |
| 224 | + |
| 225 | +Read the following files included in the full distribution for more |
| 226 | +information: |
| 227 | + |
| 228 | + html/index.html - Main ExifTool documentation |
| 229 | + html/install.html - Installation instructions |
| 230 | + html/history.html - Revision history |
| 231 | + html/ExifTool.html - API documentation |
| 232 | + html/TagNames/index.html - Tag name documentation |
| 233 | + html/geotag.html - Geotag feature |
| 234 | + html/faq.html - Frequently asked questions |
| 235 | + html/filename.html - Renaming/moving files |
| 236 | + html/metafiles.html - Working with metadata sidecar files |
| 237 | + html/struct.html - Working with structured XMP information |
| 238 | + lib/Image/ExifTool/README - ExifTool library modules documentation |
| 239 | + |
| 240 | +and if you have installed Image::ExifTool, you can also consult perldoc or |
| 241 | +the man pages: |
| 242 | + |
| 243 | + perldoc exiftool |
| 244 | + perldoc Image::ExifTool |
| 245 | + perldoc Image::ExifTool::TagNames |
| 246 | + |
| 247 | + man exiftool |
| 248 | + man Image::ExifTool |
| 249 | + man Image::ExifTool::TagNames |
| 250 | + |
| 251 | +Note: If the man pages don't work, it is probably because your man path is |
| 252 | +not set to include the installed documentation. See "man man" for |
| 253 | +information about how to set the man path. |
| 254 | + |
| 255 | +---------------------------------------------------------------------------- |
0 commit comments