exiftool Application Documentation

- NAME
- SYNOPSIS
- DESCRIPTION
- OPTIONS
- EXAMPLES
- WRITING EXAMPLES
- PIPING EXAMPLES
- AUTHOR
- SEE ALSO

# NAME

exiftool - Read/write meta information in image files

# SYNOPSIS

exiftool [OPTIONS] [-TAG[[+-<]=[VALUE]] or --TAG...] FILE ...

# DESCRIPTION

Read or write meta information in image files. `FILE` may be an image file name, a directory name, or `-` for the standard input. Information is read from the specified file and output in readable form to the console (or written to an output text file with the `-w` option).

To write information in an image file, specify new values using either the `-TAG=VALUE` syntax or the `-AllTagsFromFile` option. This causes exiftool to rewrite `FILE` with the specified information, preserving the original file by renaming it to `FILE_original`. (Note: Be sure to verify that the new file is OK before erasing the original.)

Below is a list of meta information formats and file types supported by exiftool (r = read support, w = write support):

         Meta Information                   File Types
        ------------------          --------------------------
        EXIF           r/w          JPEG   r/w      NEF    r/w
        GPS            r/w          JP2    r        ORF    r
        IPTC           r/w          TIFF   r/w      PEF    r/w
        XMP            r/w          GIF    r/w
        MakerNotes     r/w          THM    r/w
        GeoTIFF        r            CRW    r/w
        ICC Profile    r            CR2    r/w
        Photoshop IRB  r            DNG    r/w
        PrintIM        r            MRW    r

# OPTIONS

Note: Case is not significant for any command-line option (including tag and group names), except for certain single-character options where the corresponding upper case option is defined.

-TAG
  Extract information for specified tag. See Image::ExifTool::TagNames for documentation on available tag names. The tag name may begin with an optional group name followed by a colon. (ie. `-TAG:GROUP`, where `GROUP` is any valid family 0 or 1 group name. Use the `-group` option to list valid group names.) If no tags are specified, all available information is extracted.

--TAG
  Exclude specified tag from extracted information. Same as the `-x` option.

-TAG[+-<]=[VALUE]
  Writes a new value for the specified tag, or deletes the tag if `VALUE` is not specified. Use `+=` to add a value to a list without replacing existing values, and `-=` to delete a specific value from a list. Use `<=` to set the value of a tag from the contents of a file with name `VALUE`. (Note: Quotes are required around the argument in this case to prevent shell redirection.)

-a
  Allow duplicate tag names in the output (otherwise duplicates are suppressed).

-AllTagsFromFile SRCFILE
  Set the value of all writable tags from information in the specified source file.

-b
  Output requested data in binary format. Mainly used for extracting embedded images.

-d FMT
  Set date/time format (consult strftime man page for FMT syntax).

-D
  Show tag ID number in Decimal.

-e
  Print existing tags only -- don't calculate composite tags.

-E
  Escape characters in output values for HTML.

-f
  Force printing of tags even if their values are not found.

-g[#]
  Organize output by tag group (-g0 assumed if # not specified).

-G[#]
  Same as -g but print Group name for each tag.

-H
  Show tag ID number in Hexadecimal.

-group[#]
  List all tag groups for family #. Family 0 assumed if # not specified.

-h
  Use HTML formatting for output (implies -E option).

-i DIR
  Ignore specified directory name. May be multiple `-i` options.

-l
  Use long output format (2-line Canon-style output).

-L
  Convert Unicode characters in output to Windows Latin1 (cp1252) instead of the default UTF8.

-list
  List all valid tag names.

-listw
  List all writable tag names.

-m
  Ignore minor errors (allows writing if some minor errors occur, or extraction of embedded images that aren't in standard JPG format).

-n
  Do not apply print conversion to displayed tag values.

-o OUTFILE
  Set output file or directory name when writing information (otherwise the source file is renamed to `FILE_original` and the output file is `FILE`).

-p FMTFILE
  Print output in the format specified by the given file (and ignore other format options). Tag names in the format file begin with a `$` symbol and may contain an optional group name. Case is not significant. Lines beginning with `#` are ignored. For example, this format file:

          # this is a comment line
          File $FileName was created on $DateTimeOriginal
          (f/$Aperture, $ShutterSpeed sec, ISO $EXIF:ISO)

  produces output like this:

          File test.jpg was created on 2003:10:31 15:44:19
          (f/5.6, 1/60 sec, ISO 100)

-P
  Preserve date/time of original file when writing.

-r
  Recursively scan subdirectories (only meaningful if `FILE` is a directory name).

-s
  Use short output format (add up to 3 -s options for even shorter formats).

-S
  Print tag names instead of descriptions (very short format, same as two -s options).

-t
  Output a tab-delimited list of description/values (useful for database import).

-u
  Extract values of unknown tags (add another `-u` to also extract unknown information from binary data blocks).

-U
  Extract values of unknown tags as well as unknown information from binary data blocks (same as two `-u` options).

-v[#]
  Print verbose messages (# may be 1-4, higher is more verbose).

-ver
  Print version number and exit.

-w EXT
  Write console output to a file with name ending in `EXT` for each source file. The output file name is obtained by replacing the source file extension (including the `.`) with the specified extension.

-x TAG
  Exclude specified tag (may be many -x options). Same as `--TAG`.

-z
  Extract information from .gz and .bz2 compressed images.

# EXAMPLES

exiftool -g a.jpg
  Print all EXIF information sorted by group (for family 0).

exiftool -common dir
  Print common EXIF information for all images in `dir`.

exiftool -S -ImageSize -ExposureTime b.jpg
  Print ImageSize and ExposureTime tag names and values.

exiftool -l -canon c.jpg d.jpg
  Print standard Canon information from 2 image files.

exiftool -r -w .txt -common pictures
  Recursively save common EXIF information for files in `pictures` directory into files with the same names as the images but with a `.txt` extension.

exiftool -b -ThumbnailImage image.jpg > thumbnail.jpg
  Save thumbnail image from `image.jpg` to a file called `thumbnail.jpg`.

exiftool -b -JpgFromRaw -w _JFR.JPG -r .
  Recursively extract JPG image from all Canon RAW files in the current directory, adding '_JFR.JPG' for the name of the output JPG files.

exiftool -b -PreviewImage 118_1834.JPG > preview.jpg
  Extract preview image from JPG file and write it to `preview.jpg`.

exiftool -d '%r %a, %B %e, %Y' -DateTimeOriginal -S -s *.jpg
  Print formatted date/time for all JPG files in a directory.

exiftool -IFD1:XResolution -IFD1:YResolution
  Extract image resolution from IFD1.

# WRITING EXAMPLES

exiftool -comment='This is a new comment' dst.jpg
  Set comment in file (replaces any existing comment).

exiftool -comment= *.jpg
  Remove comment from all JPG files.

exiftool -keywords=EXIF -keywords=editor dst.jpg
  Replace existing keyword list with two new keywords (`EXIF` and `editor`).

exiftool -keywords+=word dst.jpg
  Add a keyword (`word`) to the current list of keywords.

exiftool -category-=xxx dir
  Delete only the specified category (`xxx`) from all files in directory.

exiftool -AllTagsFromFile src.crw dst.jpg
  Set the values of all writable tags from information in `src.crw`, and update `dst.jpg` with this new information.

exiftool '-ThumbnailImage<=thumb.jpg' dst.jpg
  Set the thumbnail image from specified file (Note: The quotes are neccessary to prevent shell redirection).

exiftool -xmp:city=Kingston dst.jpg
  Write a tag to the XMP group (otherwise in this case the tag would get written to the IPTC group since `City` exists in both, and IPTC has priority).

exiftool -Canon:ISO=100 dst.jpg
  Set `ISO` only in the Canon maker notes.

exiftool -LightSource-='Unknown (0)' dst.tiff
  Delete `LightSource` tag only if it is unknown with a value of 0.

exiftool -whitebalance-=auto -WhiteBalance=tung dst.jpg
  Set `WhiteBalance` to `Tungsten` only if it was previously `Auto`.

# PIPING EXAMPLES

cat a.jpg | exiftool -
  Extract information from stdin.

cat a.jpg | exiftool -iptc:keywords+=fantastic - > b.jpg
  Add an IPTC keyword in a pipeline, saving output to a new file.

# AUTHOR

Copyright 2003-2005, Phil Harvey

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

# SEE ALSO

Image::ExifTool, ExifTool Tag Names, Shortcut Tags

exiftool Application Documentation