Changing IPTC copyright data with ExifTool
I developed a feature to show IPTC copyright information automatically next to the image embedded on a WordPress website. While testing, I had to create and change some IPTC information on these images.
As a macOS user who is not a professional photographer, I didn’t have a tool at hand that could manipulate IPTC data, so I was looking for one.
I ended up using the free command-line tool ExifTool by Phil Harvey.
While it is well documented on their homepage, I wanted to keep track of the most important commands for my use cases around copyright information. Hence, this blog post.
By the way, ExifTool is available for macOS and Windows.
Install ExifTool
To kick things off, I installed ExifTool on my MacBook. The simplest method is via Homebrew, a package manager already installed on my system. Open Terminal and enter:
brew install exiftool
Alternatively, download ExifTool directly from the official ExifTool website for other installation options.
Viewing IPTC Metadata
With ExifTool installed, I can view image metadata in the terminal. I first navigate to the image’s directory.
Remember to replace myimage.jpg
with your file’s name.
To see all image metadata, I execute the following:
exiftool myimage.jpg
Code language: Bash (bash)
To see only IPTC metadata, I execute
exiftool -IPTC:All myimage.jpg
Code language: Bash (bash)
Or I only look at specific metadata like this:
exiftool -IPTC:CopyrightNotice myimage.jpg
Code language: Bash (bash)
Why do I check IPTC metadata with ExifTool?
I mainly check the metadata using macOS’s own Preview app. I only have to open the image in it and go to Tools > Information or hit ⌘ + I
on my keyboard.
Then I also upload the image into WordPress to check if it reads the metadata since that is my actual use case.
However, some of the labels in Preview or WordPress differ from those used in the IPTC metadata, so it helps me double-check them in ExifTool.
I also noticed the same information shows in different places in Preview, like in the “TIFF” and” IPTC” tabs. Looking at the metadata in ExifTool helps me to see how they are actually stored.
Editing IPTC Metadata
The reason I installed ExifTool was to edit metadata. So let’s get into that.
Here are the key IPTC tags, most of them for my purpose of adding copyright and credit information for IPTC.
Copyright:
exiftool -IPTC:CopyrightNotice="My Copyright Notice" myimage.jpg
Code language: Bash (bash)
Credit Line:
exiftool -IPTC:Credit="Credit Information" myimage.jpg
Code language: Bash (bash)
Caption:
exiftool -IPTC:Caption-Abstract="Your Caption" myimage.jpg
Code language: Bash (bash)
By-line (Creator):
exiftool -IPTC:By-line="Creator’s Name" myimage.jpg
Code language: Bash (bash)
Headline:
exiftool -IPTC:Headline="Your Headline" myimage.jpg
Code language: Bash (bash)
Explore more tags at Exiftool IPTC Tag Names.
You can also learn more about their meaning from the IPTC Photo Metadata Standard.
General Tags
I first tried to use some general tags, like
exiftool -copyright="Thomas" myimage.jpg
Code language: Bash (bash)
While this did indeed create a “Copyright” image metadata entry, it didn’t show in Preview or WordPress.
Using the following created the actually used copyright information in IPTC.
exiftool -copyrightnotice="Thomas" myimage.jpg
Code language: Bash (bash)
credit
is another essential copyright-related information.
exiftool -credit="Thomas" myimage.jpg
Code language: Bash (bash)
Deleting IPTC Metadata
When playing around with the tags, I created a lot of unneeded IPTC and image image meta. To clean all IPTC metadata up, I used
exiftool -IPTC:All= myimage.jpg
Code language: Bash (bash)
You can also use this pattern with any other examples from this post.
ExifTool keeps the original
When ExitfTool makes a change, it creates a copy of your file by adding _original
to the extension.
So, the original version of myimage.jpg
is stored as myimage.jpg_original
.
This annoyed me a bit since, with the changed extension, I could no longer open the file with any program on my Mac without changing the file name. You can add -overwrite_original
to the command to prevent that file from being created.
exiftool -IPTC:All= -overwrite_original myimage.jpg
Code language: Bash (bash)
Verifying IPTC Metadata Changes
Post-editing, I quickly confirm my changes. To check a specific tag, I use:
exiftool -IPTC:CopyrightNotice myimage.jpg
Code language: Bash (bash)
This command verifies the applied changes.
Troubleshooting
Correct file path
Encountering a “File not found” error typically indicates incorrect file paths or names. I prefer to navigate to the image folder in Terminal before I execute any ExifTool command, but one could also use the full path of an image in another folder.
Use the correct tags
When I started experimenting with this, I thought that the correct record tag for the copyright was using
exiftool -IPTC:copyright
Code language: Bash (bash)
though I learned that it should be
<code>exiftool -IPTC:CopyrightNotice</code>
Code language: Bash (bash)
Some googling helped, and I eventually found the ExifTool ApplicationRecord Tags on their official website.
Conclusion
I found Exiftool to be an indispensable tool for handling IPTC metadata on macOS.
This overview will hopefully help me return to the commands most relevant in my work with Image Source Control.
FAQ
Some answers to questions people sent me about this post.
To overwrite specific IPTC fields in all images within a folder and its subfolders, use the following ExifTool command:exiftool -r -IPTC:FieldName="New Value" /path/to/directory
-r
: Operates recursively through the directory and subfolders.FieldName
: The name of the IPTC field you want to change.New Value
: The value you want to set for this field./path/to/directory
: The path to your main folder.
Always back up your data before running recursive commands.
Yes, multiple IPTC fields can be changed in one command. Here’s how:exiftool -r -IPTC:FieldName1="New Value1" -IPTC:FieldName2="New Value2" /path/to/directory
Each -IPTC:FieldName="New Value"
represents a field to be changed.
Add as many field assignments as needed, separated by spaces.
Questions? Feedback? How can I help?
Reach out directly via the contact form.