Child pages
  • Exif Metadata Extraction Tool
Skip to end of metadata
Go to start of metadata


In the Archives we use ExifTool by Phil Harvey to extract tagged metadata from file, particularly images.



Example of syntax:

exiftool -csv -r /Users/nwilson/Desktop/20120430_3_publicationsphotos_2001 > /Users/nwilson/Desktop/20120430_3_publicationsphotos_2001/meta/metadata.csv

  • Writes a csv file of all tagged metadata, recursively going through all of Users/nwilson/Desktop/20120430_3_publicationsphotos_2001 and writing that information to /Users/nwilson/Desktop/20120430_3_publicationsphotos_2001/meta/metadata.csv

exiftool -X /Volumes/ARCHIVES/SIPS/1-unprocessed/20120605_HonorsCompsTheater2012/THE_TEMPEST_10_27_2011.mp4 > /Users/nwilson/Desktop/metadata.xml 

  • Writes an XML file of all tagged metadata non-recursively for THE_TEMPEST_10_27_2011.mp4 and writes the results to metadata.xml.

exiftool -r -X /Volumes/ARCHIVES/SIPS/11-Bagit/20120429_NoonNewsBulletinSamples1996 > /Volumes/ARCHIVES/SIPS/11-Bagit/20120429_NoonNewsBulletinSamples1996/meta/exif.xml

  • Writes and XML file of all tagged metadata recursively for 20120429_NoonNewsBulletinSamples1996 and writes the result to a new xml file in /Volumes/ARCHIVES/SIPS/11-Bagit/20120429_NoonNewsBulletinSamples1996/meta/exif.xml

exiftool -r -X /Volumes/ARCHIVES/SIPS/11-Bagit/20120429_NoonNewsBulletinSamples1996 > /Volumes/ARCHIVES/SIPS/11-Bagit/20120429_NoonNewsBulletinSamples1996/meta/exif.xml ; exiftool -X /Volumes/ARCHIVES/SIPS/1-unprocessed/20120605_HonorsCompsTheater2012/THE_TEMPEST_10_27_2011.mp4 > /Users/nwilson/Desktop/metadata.xml

  • Writes an XML file first for all files in the 20120429_NoonNewsBulletinSamples1996 directory, and then an XML file for THE_TEMPEST_10_27_2011.mp4.  The ";" separator allows you to run a series of commands.  For more information on different conditions you can apply see:

Batch Processing - Setup and Running

Creates a batch process for extracting metadata on a series of directories and those directory contents.  Note: All directories to be processed must be in the same directory.  

ExifTool will create 2 output files named "exif.xml" and "exif.csv" and place them in a folder called "meta" in the directory being processed.  If no meta directory is present, the script will make one.


Open a terminal by going to Applications/Utilities/Terminal

Open bash_profile by typing "nano ~/.bash_profile"

Paste in the following text:

echo "----------------------"
echo "Extracting tagged metadata for all directories in "$1"."
echo "----------------------"
for dir in "$1"/*; do

if test -d "$dir"; then

if test ! -d "$dir"/meta; then

echo "----------------------"

echo "No 'meta' subdirectory exists in "$dir". Creating a 'meta' directory in "$$

echo "----------------------"

mkdir "$dir"/meta


echo "----------------------"
echo "Extracting tagged metadata from "$dir" and writing results to "$dir"/meta/exif.xml."
echo "----------------------"
exiftool -r -X "$dir" > "$dir"/meta/exif.xml
exiftool -csv -r "$dir" > "$dir"/meta/exif.csv


echo "----------------------"
echo "Tagged metadata extraction complete."
echo "----------------------"

Hit Control O and Return to write your changes.  

Hit Control X to exit.

Close and restart the terminal.


Enter in the terminal "exifbatch PATHTODIRECTORY"

Every directory in the PATHTODIRECTORY you gave will each be bagged up one after the other.  

  • No labels