Software development, photography, jokes, ....

Sites by me

tas-logoTransportation Administration System
snoezelkussen-logo-kleinstSnoezelen Pillows for Dementia
ikzoekeenbegeleider-logoBegeleiders voor gehandicapten
Laat uw hond het jaarlijkse vuurwerk overwinnen
Betuweroute en Kunst
logo 50x50Hey Vos! Je eigen emailadres?
Kunst in huis? Nicole Karrèr maakt echt bijzonder mooie dingen
nettylogo2Kunst in huis? Netty Franssen maakt ook bijzonder mooie dingen
Professionele opvang bij Gastouderbureau
Salarisadministratie en belastingadvies bij
De Zaak Loont
Zutphense Bomenstichting

Hosting Favorites

ANU Internet Services
XelMedia .internet services


Google Translate
jQuery UI
YourHead Stacks API
Favicon Generator. For real.
Check HTTPS problems

Marc's Place

icon (rond)

 A GUI for Exiftool to modify EXIF data

Download for Mac OS X 64bit
Download for Mac OS X 32bit
Download for Mac OS X (PPC)

What SetEXIFData offers is: renaming photos or videos, get EXIF dates/times from the file name of the photo or video, increment dates/times and sequence numbers, geotag photos and videos and store the found address, add camera info, add or replace keywords, modify the Finder's Date created or Date modified, etc..

SetEXIFData uses the excellent EXIFtool, which you should install first (I have included it in the download for your convenience). SetEXIFData uses EXIFtool to write most wanted EXIF data into an image or movie container (mov, m4v, mp4) - what EXIFtool supports.
SetEXIFData also uses the command-line tool dcraw (it is included in the download too, for your convenience) to read and display the thumbnail from RAW images which are not supported by your current version of the Camera Raw-extension in macOS X.
And the nice toolbar icons come from Drew Wilson.

System Requirements

Both 32bit and 64bit versions of SetEXIFData run on macOS 10.7 or higher.
However, on macOS 10.7, the thumbnail-preview of RAW images will only be rendered if macOS 10.7 supports that type of RAW image, because dcraw only works on macOS 10.8 or higher.


As of v5.0, SetEXIFData is shareware. You can keep on using it unregistered forever, with a batch processing limit of only 5 photos a time.
If you make a donation, in return you'll get a serial number mailed to your Paypal email address which removes the 5 photos limitation and any 'unregistered' messages.
You can of course also choose to keep on using the PPC version, which is donation-ware, but will only receive bug fixes as long as my PPC Mac lives on.

If you have donated for SetEXIFData in the past, please e-mail me your Paypal transaction-reference and I will e-mail you your serial number. I am asking you to take action yourself, because email addresses on file are not always actual anymore.

If you have received your serial number, enter your Paypal email address and serial number in the appropriate fields at the bottom of the 'About…'-window. Simply closing this window will save your registration.

sed-00-registration-1'About…'-window when unregisteredsed-00-registration-2'About…'-window when registered



How to use SetEXIFData

(click on a title below to open its contents)

Accessing the Mac OS X Address Book

You can use your Mac Contacts to geotag your photos. To allow SetEXIFData to read your contacts, you'll have to allow it first:


If you do not allow this, the 'Select contact…' pop-up menu wil be disabled.

Your choice is seen in SetEXIFData, because the popup menu either has data or not. This yes/no value is recorded and set as a preference in 'Preferences…':

If this setting is unchecked, SetEXIFData will not try to access your contacts. If you later decide to allow access to your contacts, you might get the following message:

If SetEXIFData keeps asking to allow to access your contacts each time you start the app, despite you clicking 'Ok' every time, you can change the setting manually in System Preferences -> Security & Privacy -> Privacy -> Contacts -> SteEXIFData.

Note: when you allow this, only addresses with a street address and a first- or last-name will be listed.
Note on privacy: SetEXIFData does nothing with your contacts, but creating a pop-up menu for easy geotagging.

The Toolbar

process 032The Process button processes all the files in the list.
Drag a bunch of images onto the SetEXIFData window, fill all relevant EXIF data into the screen fields and then click on Process to 'process' the image files: this will add/overwrite EXIF data, set file dates, etc.. The list window will be cleared when processing is done.
reload 032The Start over button clears all fields, except the Artist and Copyright fields.

The 'Preferences...'-menu

You'll find various preferences settings under the 'Preferences...'-menu


sed-07-a-rename-prefs sed-10-b-geotag-prefs

How to add photos and access the preview window

You can drag and drop files on the application icon in the Finder or in the Dock, whether it is running or not. The selected files will show up in the list. If the application is already running, the newly dropped files will be added to the current list.



When you click a file path, a new window opens with a preview of the image and all current EXIF, XMP, etc. data.
You can have multiple preview windows of different photos open at the same time.
When you hit the BACKSPACE or DEL (Fn + Backspace) key, the selected file path is removed from the list of photos.
When you double-click on a row in the EXIF-list inside a preview window, the value of the right column is copied to the clipboard.

Caption/Description and Auto fill

Type something to describe the photo.

With the Auto fill check box set, SetEXIFData automatically updates the description properties of all listed photos with their respective actual file names.

This modifies the following META-data : Caption-Abstract, Description, ImageDescription, ObjectName, Title, XPSubject and XPTitle.

Document name, Auto fill and Rename photos

Type the original name of the document in here. Then you can change the name of the document in the Finder and still see what its original name was.

With the Auto fill check box set, SetEXIFData automatically updates the DocumentName property of all listed photos with their respective actual file names.

This modifies the following META-data : DocumentName.

Rename photos afterwards

With the Rename check box set, SetEXIFData will also actually rename all photos in the list. You can write the EXIF date, time and an image number in the new file name.

The renaming of photos takes place after all files have received the new EXIF data. Which means that if you have specified a new Date/Time with or without an interval, that calculated date will be used for the placeholders.

To automatically rename a file or files, do the following:
  • Enter a new name in the 'Document name' field. You can use the following placeholders:
    %d = will be replaced by a date in the form YYYYMMDD.
    %s = will be replaced by a time in the form HHMMSS.
    %t = will be replaced by a time in the form HHMM.
    %x = will be replaced by a number in the form XXXXXX (depends on the preference-setting).
    %n = will be replaced by the current file name.
    Preferences window for 'Rename'-settings sed-07-a-rename-prefs
    Date/time EXIF fields
    The first date/time found in the default search order - 'DateTimeOriginal', 'CreateDate', 'DateTimeDigitized', 'GPSDateTime', 'SubSecDateTimeOriginal', 'ModifyDate' or 'FileModifyDate', will be used for the date and time placeholders. You can change the search order under 'Preferences...'.
    Image Number EXIF fields
    The placeholder %x will be replaced with the first number found in the default search order: 'SequenceNumber', 'ImageNumber', 'ImageCount', 'ShutterCount', 'ShotNumberSincePowerUp', 'SubSecTime', 'SubSecTimeOriginal' or 'SubSecTimeDigitized'.
    The latter three will also be used if 'SubSecDateTimeOriginal' is present in the Date/Time search order list under 'Preferences...', where you can change the search order.
    The number will, by default, be formatted as 3 digits long: for example, the number 1 will be formatted as 001 and 1000 will be left as 1000. You change the length of the number under 'Preferences...': from 3 to 6 digits long.
    Example pattern
    (you can add your own text in front, in between or at the end)
    Minimum # of digits set to 6:
    -> img-065036-burst.jpg
    -> img-065037-burst.jpg
    -> img-065038-burst.jpg
    Minimum # of digits set to 5:
    -> img-65036-burst.jpg
    -> img-65037-burst.jpg
    -> img-65038-burst.jpg
    Minimum # of digits set to 4 or less:
    -> img-65036-burst.jpg
    -> img-65037-burst.jpg
    -> img-65038-burst.jpg
    (only lower numbers will be prepended with zeros)
    Tip: if you only want to rename files without adding any EXIF data first, leave everything empty, add your list of photos and use a 'DocumentName' like %d_%s.%x-%n.
  • Tick the checkbox 'Rename'. The checkbox 'Auto fill' is automatically checked, too. 'Auto fill' stores the current file name in the EXIF 'DocumentName' property.
    If you uncheck 'Auto fill' with 'Rename' checked, the 'DocumentName' property will not be modified.
  • If a date or time placeholder is used and no date is found in the EXIF data, the file will not be renamed.
  • If a new file name is already in use in that folder, a space and a sequence number is added to the file name, which will be incremented with each duplicate file name. Say a file is renamed to '20150401_151112.jpg' and the next photo would get the same name based on the EXIF data, then the name will become: '20150401_151112 1.jpg' and the next '20150401_151112 2.jpg', etc.
  • If renaming a file is bounced by MacOS X, you will get a notification via Growl and via a dialog window with the reason why.


Type the name of the artist ;-)

This modifies the following META-data : Artist, Creator, Author and By-line.


Type your copyright text. Symbols are replaced :
  • © : Copyright (c)
  • ™ : Trademark (tm)
  • ® : Registered Trademark (r)
This modifies the following META-data : copyright, copyrightnotice and rights.


Here you can add free text.

This modifies the following META-data : UserComment, XPComment.

Overwrite original in place

Check this setting when you want the modifications done on the original file.
If you uncheck this setting, each file is first copied to [filename.ext]_original before the modifications are made.

Date/Time to use

Choose which Date/Time you want to use for the Date/Time original tag. The first option is the default setting and uses the Date/Time original entry fields, described next. The last option requires the entry field File name pattern to be used, which defines what to retrieve from the file's name. See further below for a detailed explanation.

With either option 2 or 3 selected, all other date/time entry fields and checkboxes will be disabled, except the relevant ones.

Date/Time Original

The date and time when the artwork was made.
If you want to use this, you should fill it out completely - parts of a date are not possible and will be set to 0 (zero).

This modifies the following META-data : datetimeoriginal. No other dates that may be present in the EXIF data will be modified.

Fixed time to add to or subtract from each photo

You can add or subtract a fixed amount of time to or from a batch of photo's. This is especially handy when you forgot to set daylight savings time or went from one time zone to another. If you subtract, make sure the minus sign only occurs once, at the leftmost entry.

This feature is enabled when you leave the Date/Time Original empty.

Here's an example where we shall subtract one hour and thirty minutes from each photo:


Interval to add to or subtract from each photo

The interval feature is enabled when you enter a Date/Time Original.
The text 'Fixed time to add or subtract' changes to 'Interval to add or subtract'.

The interval is a number of days, hours, minutes and/or seconds you want to add to the 'Date/Time Original' for each next image. The first image gets the entered Date/Time Original and the next image gets the Interval added or subtracted - and so forth.

To use the interval, you need a starting point. SetEXIFData is meant for batch processing and thus does not read data from a photo to modify. Instead you, as a user, provide the data as you want it to be and that is what SetEXIFData then writes to the photo(s).
So you need to enter a date/time for the first picture, then you can add or subtract days or hours for the second picture and so on. If you subtract, make sure the minus sign only occurs once, at the leftmost entry.

Here's an example where we shall subtract one hour:


Here, the first image is set to the date + time:


The next image gets 1 hour subtracted from the date in SetEXIFData:


The next image would have 18:05 and so forth.

You can also add a sequence number to a photo, or add burst-seconds. Whatever you like it to be!
To do this, first enter a starting number in the last entry field of 'Date/Time original', usually 1. This is what the '.xxx' represent in the format-example on the right.
Next, enter a number to add, usually 1.

If you only want to add a sequence number, you do not need to enter dates and/or times.

This modifies the following META-data : SequenceNumber, ImageCount, ImageNumber, SubSecTime, SubSecTimeOriginal. When 'Set Creation Date/Time ...' is checked, also 'SubSecTimeDigitized' will be set.

Set Creation Date/Time to Date/Time Original above

Check this setting when you want the Creation Date to have the same date as the Date/Time Original you entered above. This is handy for photos you scanned off a 35mm film or from the print. Only you know when it was taken, so the original date is the same as the creation date. This setting does not modify the file's creation date in the Finder - which is not an EXIF date.

This modifies the following META-data : createdate, timecreated, datecreated and additionally in case of a movie-file modifydate, trackcreatedate, trackmodifydate, mediacreatedate, mediamodifydate.


Preserve File Date/Time of original file

Check this setting when you want to retain the dates in the Finder - which are not EXIF dates. The new file will have the same Finder dates as the original file. If you uncheck this setting, the modified file will get today's date as creation and modification date in the Finder.


Original data of a scanned image before processing:
After processing with Preserve File Date/Time of original file unchecked:
After processing with Preserve File Date/Time of original file checked:
Result in Finder:

Note: 'Preserve File Date/Time of original file' and 'Set the File Modify Date/Time to the Date/Time Original' are mutually exclusive.

Set the File Create Date/Time to the Date/Time Original and
Set the File Modify Date/Time to the Date/Time Original

These settings use the DateTimeOriginal EXIF date to modify the Finder's attributes.



Note: 'Preserve File Date/Time of original file' and 'Set the File Modify Date/Time to the Date/Time Original' are mutually exclusive.

Retrieve Date/Time from file name

To use the date/time from a file name, for example from files named 'IMG_000045 15-01-1966.jpg' or '20160428_175402.jpg' do this:

Select the option 'Retrieve Date/Time from file name' from the pop-up menu 'Date to use on the 'Dates and Times'-tab.

Enter a pattern in the 'File name pattern' field. You can use the following patterns to look for a date and time in the file name:
  • xx = the number of characters of the file name to skip before starting to look for a date and time. This is optional, but needed when you have numbers in the file name before the date and time.
  • %y = will look for 4 digits and use it as a year.
  • %m = will look for 2 digits and use it as a month.
  • %d = will look for 2 digits and use it as a day of the month.
  • %h = optional; will look for 2 digits and use it as hours. Defaults to 0 if not present.
  • %i = optional; will look for 2 digits and use it as miniutes. Defaults to 0 if not present.
  • %s = optional; will look for 2 digits and use it as seconds. Defaults to 0 if not present.
  • %x = optional; will look for max. 3 digits and use it as subsecond or sequence number. Defaults to 0 if not present.
The pattern is processed from left to right.

The pattern '%y%m%d%h%i%s%x' will start looking for the date/time and a sequence number from position 1.
The pattern '7%y%m%d%h%i%s' will start looking for the date/time from position 7.
The pattern '%y-%m-%d at %h:%i:%s.%x' will start looking for the date/time from position 1 and will give the same result as the first example, because anything between the patterns is ignored.

You can use the time fields from the 'Date/Time original' and from the 'Add interval' entry-fields, to add a default time and/or sequence number to the found date, if no time or sequence number is present in the file name.
As long as photos with the same date in the name are being processed on a after another, the specified interval will be added. If no interval is specified, all photos will get the same time and sequence number.
When a new date is read from a file name, the process starts over, beginning with the time and/or sequence number in the Date/Time original entry fields.

** Important note ** : the patterns simply take the numbers they encounter and interpret them as what the pattern expects. The spacing of the pattern is irrelevant. To accurately retrieve dates and times from a file's name, the given pattern must match the date/time pattern in the selected file names, qua order of digits. %y%m%d will only interpret dates in file names like YYYYMMDD or YYYY/MM/DD or YYYY-MM-DD. For formats like MM/DD/YYYY or DD-MM-YYYY, etc., you would use the %m%d%y or %d%m%y patterns respectively.

'2017-09-01 13u22m10s 001.jpg' => %y%m%d%h%m%s%x => 21070901132210.001
'2017-09-01 13u22m10s 001.jpg' => %m%d%y%h%m%s%x => 09012017132210.001 (wrong due to a pattern mismatch)
'2017090_1132210 nr. 001.jpg' => %y%m%d%h%m%s%x => 21070901132210.001
'Cool photo taken on 01-09-2017.jpg' => %y%m%d%h%m%s%x => 01092017000000 (wrong due to a pattern mismatch)
'Cool photo taken on 01-09-2017.jpg' => %d%m%y => 20170901000000
'Cool photo taken on 01-09-2017.jpg' => %m%d%y => 20170109000000


Type each keyword on a new line or separate them by a comma.
Keywords will be sorted in alphabetical order before processing takes place. You can sort the keywords interactively by control-clicking (or click with a right mouse button) inside the keywords field. You have to watch closely, because it happens in a flash.

With the TitleCase checkbox set, all keywords are automatically title-cased when you leave the Keyword-field. To preserve pre-v3 behavior, where this was done by default, the checkbox is on by default.

With the or remove all keywords checkbox set, all entered keywords are removed from the Keyword-field, both the Replace and Append-buttons are unchecked and when you process the list, all keywords are removed from all listed photos.

This modifies the following META-data : keywords and subject.

Put found address data in Comment

Check this setting when you want the address data – found by Google Maps while using the Geotagging-feature – stored in the Comment field.
Note that this setting overwrites the contents of the Comment field.

This parameter is checked automatically when you select an address from the 'Select contacts…' pop-up menu.

Geotag and lookup GPS coordinates

Click the Geotag button to call a window which loads Google Maps:
If you allowed SetEXIFData to read you contacts, you can first select an address via the 'Select contacts…' pop-up menu. When you then click 'Geotag', the map wil try to load the selected address, otherwise it will try to position at the entered Latitude and Longitude, and as default, it will try to position the map at the stored 'Set as startup' coordinates.

'Set as startup' button
Click this button if you want the coordinates you picked to be the startup coordinates when the Google Maps window loads.

You can see, or manually change, these coordinates under 'Preferences...'

'Get coordinates' button
Click this button to pass the coordinates you chose, back to the Latitude, Longitude and Altitude fields. Whether you selected an address via the 'Select contacts…' pop-up menu or not, it is reset to 'Select contacts…'.

This modifies the following META-data : GPSLatitude, GPSLatitudeRef, GPSLongitude, GPSLongitudeRef, GPSAltitude and GPSAltiitudeRef.

Camera Make, Model, Extra Info and Lens Data

Make and Model speak for themselves.
In Extra camera info, you can write things like '10 megapixel, 3x optical zoom'.

This modifies the following META-data : Make, Model, ExifCameraInfo and CameraLabel.
CameraLabel is filled with 'Make, Model'

LensMake and LensModel speak for themselves.
Min. focal (f) length and Max. focal (f) length expect a number like 14, 28, 35, 50, etc.. Do not enter 'mm' after every number.
Max. aperture at min. f and Max. aperture at max. f expect a decimal, like 2.8, 4.5, 5.6, 8.0, etc.. Do not enter 'f' or 'f/' before every decimal.

This modifies the following META-data : LensMake, LensModel, LensInfo and Lens.
Lens is filled with 'LensMake, LensModel'
LensInfo is combined from the two focal and the two aperture fields.

> Creating Presets from Artist/Copyright/Camera, Keywords and Addresses

You create a preset by entering data and clicking the popup menu, on the left of the Artist, Keywords or Geodata fields.
Choose the 'Save XXX as preset...' menu item and you will presented a dialog window to give the preset a name and when you click OK, the current data is saved as a preset. The popup menus can look like these:

Artist presets
Keyword presets
Geotag presets
When you select a preset from here, the 'Select contacts…' pop-up menu is reset to 'Select contacts…'

> A note about RAW files


EXIFtool only supports a limited number of file types for writing EXIF data.
If you get an error-message like this:
then you can head over to and check the 'Supported File Types' table if your file type can be written to: a W should be present in column 4, 5, 6 or 7.
If that would be the case, then you can update to the latest version of EXIFtool yourself, from Phil Harvey's site.


When you click a line which points to a RAW image that is unsupported by Mac OS X, SetEXIFData will try to use dcraw to extract the thumbnail image as a TIFF and use that in the preview window.
To do that, it creates the thumbnail in /tmp and prefixes the filename with sed_ so you can see where these come from.

For example, if you have a RAW image with the name IMG0023.ARW, then the thumbnail's path will be /tmp/sed_img0023.arw.tiff

When SetEXIFData quits normally, it will remove all files whose names begin with sed_ from /tmp.

Note: /tmp is a normal macOS X and Unix folder, which is always completely cleared when the system is restarted.
Note: dcraw only works with macOS 10.8 or higher (see System Requirements at the top of the page)

> A note about file and folder naming

It has been requested that I support a forward slash in file or folder names. Since I find this bad practice, I am not going to support this. Why? This is why:
  • Apple does not support a colon (:) because it is part of HFS's path separating routine.
  • MacOS X's underlying motor is UNIX, which uses the forward slash (/) as a separator in paths.
  • Windows does not allow even more of these kind of characters.
And since many people send photo's to friends and might not know on what OS their friends will be copying the photo to, it is best to restrict the characters for naming folders and photos to a-z, A-Z, -, _, #, $, and the dot.

> A note about the PPC version

Since september 2016 there was a UB version available, for PowerPC and Intel Macs. This is per March 2017 now a PPC-only version. The version number hasn't changed and it does not check for a newer version any more. This PPC version is not the same as the current Intel version, because it doesn't receive any new features. I use my old Powerbook G4 to keep the PPC version bug-free and when it dies, the PPC version maintenance will also stop.

Download for Mac OS X 64bit
Download for Mac OS X 32bit
Download for Mac OS X (PPC)


© 1997- Marc Vos (and others) Contact Me