How to View Image Metadata with ExifTool on Mac

Displaying all the metadata of an image is ExifTool’s bread and butter operation, and yet it’s also where ExifTool really shines. Here are several ways to use it.

Screenshot of ExifTool output listing available metadata fields
Text & Photos By David Coleman
Last Revised & Updated:

I MAY get commissions for purchases made through links in this post.

Viewing the metadata embedded in an image file is ExifTool’s bread and butter. It’s about the most basic function ExifTool can do, and yet it’s also one of its most useful and shows, right off the bat, why ExifTool is so useful.

That’s because it is unusually thorough in accessing image metadata. Not just EXIF and IPTC fields, but all (or sometimes near all) the other types of metadata embedded in an image as well.

There are other apps that do a decent job. Like Preview, which is built into Mac. Lightroom, PhotoMechanic, Capture One, and so on, do good jobs of being able to view, sort, and edit many types of metadata. And there are some really useful plugins available, like Jeffrey Friedl’s Metadata Viewer plugin for Lightroom, that can great expand their capabilities (that plugin happens to use ExifTool under the hood).

But ExifTool (by Phil Harvey) really shines in this respect, and if you want to be confident that you’re seeing as much of the image’s metadata as it is possible to see, it’s the best specialized tool for the job.

How to View All Image Metadata Using ExifTool

I’m going to assume you’ve already installed ExifTool. If not, I have a separate guide on how to install ExifTool on Mac. You can find some alternative methods here.

View Metadata for an Individual Image

Once it’s installed, you can start using it. We’re going to start with displaying the metadata that’s embedded in an individual image.

It’s a very basic command:

exiftool myimage.jpg

Replace: Change myimage.jpg with the name of the image file you want to inspect.

Tip: In that basic command, it assumes you’ve navigated to the folder holding the image or at least are using the full path of the target image. But there’s an even simpler option in Mac to locate the file in this case. That’s to combine Finder and Terminal.

Type exiftool followed by a space into Terminal, and then drag the file from Finder. That will automatically add the path to the dragged-and-dropped image.

Output the Metadata as a Text File

That most basic version just displays the output in the Terminal window. But you can also divert the output to a text file. Or, as it’s called more technically, Output Redirection.

Use this command:

exiftool image.jpg > metadata.txt

That will save a text file displaying the metadata alongside the original image.

Multiple Image Files With Corresponding Text Files

Taking that up a level, you can scan multiple image files and output a text file alongside each.

for f in *; do
    if exiftool -q -if "$f" >/dev/null; then
        txtfile="${f%.*}.txt"
        exiftool "$f" > "$txtfile"
    fi
done

Output Metadata from Multiple Images in a CSV Spreadsheet

Use this to output a single CSV spreadsheet file that you can then view in Excel or Google Sheets.

exiftool -csv . > _metadata.csv

NB: The period here towards the end signifies the current folder. If you’re not running this from the folder with the images, then replace that with whatever the /path/to/images is. You can check your current folder location by running the pwd command in Terminal.

As is, this displays every metadata field that ExifTool can find in these images, which might be a lot or not much, depending on what fields are embedded in the files.

But it might also be overkill for what you need and may result in a very large file with many columns. See the next example for a more targeted approach that narrows down the fields it looks for.

Output Specific Metadata Fields from Multiple Images in a CSV Spreadsheet

If you’d like a more targeted approach, you can specify individual fields to include.

Here’s an example:

exiftool -csv -Model -DateTimeOriginal -GPSLatitude -GPSLongitude . > metadata.csv

The quickest way to get the full list is to type this command:

exiftool -list

But you’ll notice that’s rather a lot. And it’s hard to wade through. So you can narrow it down. Here’s an example, searching for any metadata fields that include “GPS”.

exiftool -list | grep GPS

A crucial part of that is that you must use the field names as ExifTools recognizes them, not what some other apps might have changed to friendly names. The -list command guarantees that they’re the names that ExifTools sees and understands.

The range of fields available is vast. But here’s a shortlist of some of the most commonly helpful to photographers.

  • DateTimeOriginal: The original date and time when the photo was taken.
  • Model: The camera model used to take the photo.
  • Make: The manufacturer of the camera.
  • FocalLength: The focal length of the lens, in mm.
  • FocalLengthIn35mmFormat: Focal length adjusted to a 35mm format for comparison.
  • ISO: The ISO sensitivity setting of the camera.
  • ExposureTime: The shutter speed or exposure time, often in fractions of a second.
  • Aperture: The aperture size at which the photo was taken, represented as an f-number.
  • LensModel: The model of the lens used.
  • LensMake: The manufacturer of the lens.
  • Flash: Information about whether the flash fired.
  • ExposureCompensation: Any exposure compensation set, usually in EV.
  • WhiteBalance: The white balance setting of the camera.
  • MeteringMode: The metering mode used for the photo (e.g., spot, matrix).
  • GPSLatitude and GPSLongitude: The GPS coordinates where the photo was taken.
  • GPSAltitude: The altitude where the photo was taken, if available.
  • Creator or Artist: The photographer or creator of the image.
  • Copyright: Copyright information.
  • ImageWidth and ImageHeight: The dimensions of the image.
  • FileType: The format of the image file (e.g., JPEG, RAW)

And they can be specified in a command like so:

exiftool -Model -Make -FocalLength -ISO -ExposureTime -Aperture -LensModel -Flash -WhiteBalance -MeteringMode -GPSLatitude -GPSLongitude -Creator -Copyright -ImageWidth -ImageHeight -FileType /path/to/image.jpg

Combine ExifTool with Mac Folder Actions: The Bee’s Knees Version

With a number of my other guides on using command-line tools for working with images on Mac, I’ve combined them with Mac Folder Actions to create drop folders. With those, you simply drop files into them to have the image conversion or other operation run automatically. They can be really useful for photography workflows.

You can do the same here, although it’s probably not quite as useful as when performing other tasks. But if you find yourself often need to extract metadata from images, perhaps for a stock agency, then you can set up a drop folder to save time next time.

You can create a watched folder to automatically extra image metadata for any image files dropped into it by using macOS’s Folder Actions with Automator:

  1. Create a Folder Action in Automator.
  2. Use “Run Shell Script” with Pass input as as arguments.
  3. Set the Shell to /bin/zsh.
  4. Insert the script to convert HEIC to JPG.

There’s all sorts of ways to customize it. Here’s the one I use, which I’m calling the Bee’s Knees version because it:

  • Creates a single CSV with just the specified fields. The file is called _metadata.csv.
  • Creates an individual text file corresponding to each image. Each text file includes every metadata field that’s visible to ExifTool for that image.
#!/bin/bash

for f in "$@"
do
    # Skip if the file is a text or CSV file
    if [[ $f == *.txt || $f == *.csv ]]; then
        continue
    fi

    # Get the directory of the current file
    dir=$(dirname "$f")

    # Define the CSV file path in the same directory as the image
    csvfile="${dir}/_metadata.csv"

    # Define the text file path for individual metadata
    txtfile="${f%.*}.txt"

    # Extract complete metadata and save it to the text file
    /usr/local/bin/exiftool "$f" > "$txtfile"

    # Check if this is the first file and add headers to the CSV
    if [ ! -f "$csvfile" ]; then
        /usr/local/bin/exiftool -csv -DateTimeOriginal -Model -Make -FocalLength -ISO -ExposureTime -Aperture -LensModel -Flash -WhiteBalance -GPSLatitude -GPSLongitude -Creator -Copyright -ImageWidth -ImageHeight -FileType "$f" > "$csvfile"
    else
        # Append metadata without headers for subsequent files
        /usr/local/bin/exiftool -csv -DateTimeOriginal -Model -Make -FocalLength -ISO -ExposureTime -Aperture -LensModel -Flash -WhiteBalance -GPSLatitude -GPSLongitude -Creator -Copyright -ImageWidth -ImageHeight -FileType "$f" | tail -n +2 >> "$csvfile"
    fi
done

Useful ImageMagick Tasks for Photographers

I’ve put together some separate guides with ImageMagick recipes for particular tasks that I’ve found useful in a photography workflow.

Stay tuned: I’ll add them here as I create new o

Profile photo of David Coleman | Have Camera Will Travel | Washington DC-based Professional Photographer

Text & Photos by David Coleman

I'm a professional photographer based in Washington DC. Seven continents, up mountains, underwater, and a bunch of places in between. I've been shooting for 30+ years, and my my photos and time-lapse videos have appeared in a bunch of different publications from major newspapers to magazines and books, billboards, TV shows, professional sports stadiums, museums, and even massive architectural scrims covering world-famous buildings while they're being renovated. You can see some of my travel photography here and here.

Leave a Comment