ExifTool is a powerful and versatile software tool for extracting metadata from many different kinds of files, as well as editing it. It's free and open-source, but it's also complicated and takes some effort to learn. This course starts with how to download and install the software, then goes on to how to view metadata in various ways and how to edit it. Beyond that, it covers advanced topics including configuration, copying data between files, conditional operations, and scripting. It looks briefly at the ExifTool Perl API and at ways to invoke ExifTool from other programming languages.
This course will especially benefit students and professionals in digital preservation and digital forensics. It discusses a real-life case study in using ExifTool to discover why a car player had trouble with certain MP3 files.
PDF resources give extensive and exact information on how to do the tasks shown in the lectures, as well as links to external resources.
Students taking this course should be familiar with a command line interface, such as the command shells on Unix, Linux, and OS X. You should be comfortable with doing simple software installation. Ability to write computer code isn't required, though knowledge of Perl is helpful for the more advanced topics.
Interaction is an important part of any course I offer, and I promise to be available for questions.
An overview of the capabilities and practical uses of ExifTool. This lecture, available as a free preview, outlines the scope of the course and will help you to decide whether ExifTool will serve your purposes.
How to download and install ExifTool, and what the system requirements are.
In this lecture you'll learn how to enter ExifTool commands, read all or just some of the metadata in a file, and use various viewing options.
A real-life example of using ExifTool to uncover a product defect. You'll see how ExifTool can be used together with other software tools to identify patterns in files that software handles incorrectly.
Ways to export data using tables, CSV, XML, JSON, and other options. You'll learn how to use raw values, format dates, handle missing values, and use group headings.
How to add, modify, and delete tags with ExifTool. You'll learn the syntax for these operations and the limits which ExifTool imposes. Operating on tag groups and specifying exceptions.Working with tags that have value lists.
A review of the principal concepts covered so far: tags, options, lists, groups, shortcuts, value assignment.
How to work with an ExifTool configuration file. It's actually Perl code, but some things are fairly easy to do.
Using ExifTool to copy tags from one docuent file to another, between a document and a sidecar file, or between sets of files.
How to use the "if" option to perform commands conditionally, based on existing tags. How to write logical expressions and comparisons.
How to use argument files, run multiple commands in one line (execute), and run ExifTool continuously from an input source (stay_open).
A brief look at using ExifTool as a Perl library and invoking it from other programming languages.
How to continue learning about ExifTool. Resources available on the ExifTool site and elsewhere.
I'm an experienced software developer with a strong background in Java, library software, and digital preservation. For eight years I was a software engineer for the Harvard Library. I wrote the bulk of the code for JHOVE, a file identification and analysis tool widely used by libraries and archives. My written work includes the e-book Files that Last and the blog Mad File Format Science.