Embed Keywords to Photos with Free Exiftool

Our content is reader-supported. Posts may contain affiliate links. If you make purchases from our links, we may earn commissions at no cost to you. Learn more.

Embedding metadata keywords and titles to stock photo images for stock photography using free exiftool in Apple's MacOS

This article will show how to automate embedding metadata into stock photo images using the free Exiftool program on Apple’s MacOS and Windos PC operating systems for your stock photography business.

Many stock photographers use Adobe Lightroom or Adobe Bridge to manually add keywords to stock photos. This is very inefficient. While we have a tutorial on how to embed metadata to images in Adobe Bridge, do not use this method. Instead, incorporate the free Exiftool program into your workflow to make it fast and efficient.

Ways to Supply Metadata to Stock Photography Platforms

There are generally three approaches available to provide your keywords, title, description and other metadata to stock photography platforms.

1. Manual Copy and Paste

The first approach is to manually copy and paste the title, description and keywords for each photo or video and for each stock photo platform like so. This is a highly inefficient and cumbersome method and you should avoid it as much as possible.

2. Upload CSV Metadata File

The second approach is to supply keywords, titles and descriptions to stock photo agencies by uploading a CSV metadata file after you upload your images. Many, if not all, stock photo platforms accept CSV metadata files for both stock videos and stock photos. We made a tutorial on how to use Upload CSV metadata function, if you’d like to learn more.

3. Embed Metadata in Media Files

The third approach is to embed your metadata directly into your stock photo and video files before uploading. When you upload your media files with embedded metadata such as title, description and keywords, stock photo platforms will get hold of this metadata and you won’t have to copy and paste anything. While using Adobe Bridge is somewhat better compared to the first approach, it is a manual method that still involves a lot of clicking.

There is a much faster way to embed metadata using the free Exiftool program, which is the topic of this tutorial. Exiftool is a free, widely popular small program written in the Perl programming language that lets you read/write various metadata in images, videos and many other media format files. This method is our personal choice and we highly recommend it.

Embedding Metadata in Stock Photos Using Exiftool

There are several steps to perform on Apple’s MacOS or Windows PC.

Step 1: Install Exiftool

Start with the installation webpage for Exiftool maintained by Phil Harvey. Here, there are instructions on how to download and install the program.

Apple MacOS

Download the dmg installation file and double-click on it. You may see a message that the program cannot be opened. The solution is to go to the Security and Privacy settings in your System preferences and allow the app installation to proceed.

Embedding metadata keywords and titles to stock photo images for stock photography using free exiftool in Apple's MacOS

After the installation, you can check that the program indeed works. Go to Finder’s applications and then the utilities folder and start the terminal, which lets you execute text format commands. Type “exiftool” into the command line and you should see the help documentation for the program. Hit the “q” button to exit out of the Exiftool program.

Windows PC

Download the Exiftool standalone executable file in a zip archive. Extract and rename the executable from “exiftool(-k).exe” to “exiftool.exe”. This step is necessary because having “(-k)” option will pause the program at the end of its execution and we do not want any interruptions. Next, take the “exiftool.exe” file and copy it into “C:\WINDOWS” folder. This will put the file into so-called Windows’ PATH, meaning that you can just type “exiftool” into your command prompt and Windows will recognize it as the call to the the Exiftool executable program.

Next is to test that Exiftool works. Press the Windows “Start” button and type “command prompt” and start the app. Windows’ command prompt app is the analogue of MacOS’s terminal. Type “exiftool” in your command prompt and then press Enter. You should see the help documentation for the program displayed. Press “q” to exit out of the documentation.

Step 2: Prepare Metadata in CSV File

To write metadata using Exiftool, you can execute a certain command for each JPEG file individually. This is not what we are after here. We want to process a batch of JPEG files simultaneously. Luckily, Exiftool has a special command that lets you take metadata from a CSV (comma separated values) spreadsheet file and then embed it into a list of stock photo files. The CSV format can be easily opened and manipulated using any spreadsheet software you have on your computer, such as Excel, LibreOffice or even Google Sheets.

I created a CSV file to write metadata into stock photo files that you can download for your own use for MacOS or Windows. These two CSV files are almost identical except for folder paths that are slightly different for each operating system.

CSV spreadsheet template for embedding metadata keywords and titles to stock photo images for stock photography using free exiftool in Apple's MacOS

It is important to maintain the exact header with column names as above.

  • SourceFile: the path and name of your JPEG file.
  • ipts:ObjectName: the title for your image.
  • ipts:Caption-Abstract: the description.
  • ipts:Keywords: keywords separated by comma. Each keyword can be a single word or multiple words.
  • xmp:copyrightstatus: indicates copyright status.
  • xmp-xmp-rights:marked: TRUE will mark your image as Copyrighted.
  • artist: the name of the image’s owner.
  • copyrightnotice: the text for your copyright notice.

I tested and confirm that Shutterstock takes description, while Adobe Stock gets hold of title metadata when you upload your images to them. Because most stock photo agencies have only one field that they call either title or description, we typically have exactly the same values in both fields.

MacOS File Path

To get the full path along with the file name of each JPEG image for the SourceFile column in the CSV file, you can use a certain trick in Apple’s MacOS. Open up your TextEdit program from Finder’s application folder. Go to “Format” menu and choose “Make Plain Text” option.

Next, go to your folder with JPEG images, select the ones you want to keyword and title, and drag them into TextEdit program. Doing so will populate full paths and file names. You can copy and paste these paths into your SourceFile column. Each path will likely look like this: “/folder1/folder2/image1.jpg”.

Windows PC File Path

To get paths with file names in Windows, you need to open Windows Explorer and select the desired files. Next, go to “Home” tab and press on the “Copy Path” button as shown below.

Copy path for files in Windows Explorer program

You can paste these paths along with file names into the CSV file and the Windows path will look like “C:\folder1\folder2\image1.jpg”.

Step 3: Execute Exiftool Command

Place your JPEG files in one directory. When you try this algorithm for the first time, I recommend using a backup copy of your files to see if things work right. To write metadata into your stock image files, you need to execute the following command in the terminal for MacOS or in the command prompt for Windows:

exiftool -overwrite_original -sep ", " -csv="/folder1/folder2/metadata.csv" "/folder1/folder2/"
exiftool -overwrite_original -sep ", " -csv="C:/folder1/folder2/metadata.csv"  "C:/folder1/folder2/"

Change paths in your command as needed. The only difference between MacOS and Windows is how paths are indicated. For Windows, use backslashes (“\”) in paths in your CSV file and slashes (“/”) for paths in the command prompt. For MacOS, paths in CSV file and Exiftool command for the terminal use identical symbol notation (“/”).

Let me explain each part of the command.

  • exiftool: is the call to the program itself.
  • -overwrite_original: tells Exiftool not to preserve the original file without metadata. If you skip this option, you will have two sets of files, which are modified files and original files with “_original” appended to the file names.
  • -sep “, ”: separates each keyword with a comma. This is the reason I mentioned that your keyword list in the CSV file must be separated by a comma. If it is separated by something else (e.g. semicolon), you need to change this option. If this option is not present, the entire field of keywords will be embedded as one long string.
  • -csv=”/folder1/folder2/metadata.csv” or -csv=”C:/folder1/folder2/metadata.csv”: points to CSV file that contains your files paths and metadata. Change this path accordingly.
  • “/folder1/folder2/”: a directory where your JPEGs files are located. Also, change it accordingly.

Concluding Remarks

I hope this tutorial helped you identify an area in your stock photography workflow that you can automate by embedding titles, descriptions and keywords to your stock photo images using the free Exiftool. To do so, you would still need to maintain a spreadsheet with records for your JPEG’s metadata, though.

In principle, there are many other metadata fields that you can write/read/edit in your stock photo images using Exiftool. You can take a look and learn about them through Exiftool documentation.

We personally use the Python programming language to fully automate metadata embedding, sorting through and copying files in preparation for submitting or even resubmitting them to stock photography websites.

With a little bit of upfront investment (learning to code, maintaining file records in a proper format), this removes a lot of unnecessary manual work later. Also, if you have a question, feel free to leave a comment below.

Notify of

Inline Feedbacks
View all comments

Subscribe to Our Newsletter

Be in the know about travel and photography.

    We respect your privacy. Unsubscribe at any time.