--->UPDATE<--- Aperture Exporter is now compatible with MacOS 10.14 Mojave.  You can get the newest version (1.4.0) here right now and is available for purchase directly from us.  We are unsure of when we will return to the Mac App Store.

 

The Mystery of Aperture Not Able to Embed Metadata Into Some JPEGs

It seems there are some cases where Aperture just can’t write out IPTC metadata to JPEGs for some crazy reason. In the cases I’ve examined even using Aperture’s ability to write IPTC metadata to the original fails. 
 
The result is always the same; a modal dialog box in Aperture stating that IPTC metadata could not be included for some files.  It doesn't say why, just that it couldn't do it.
 
I’ve been investigating this dialog for some time now. It is not a permissions error nor is it a problem with the aperture library.  It is most certainly a metadata structure issue within the JPEG that Aperture can't deal with. 
 
What I've found is that if the JPEG is regenerated or the metadata is refreshed using an appropriate external utility Aperture will be happy again.  In one experiment, I simply added a keyword to an affected JPEG using preview.app.  In another case, I rotated an image using preview.app.
 
That's great, but I've still not been able to isolate exactly in what way the metadata structure is affecting Aperture's ability to embed metadata into existing/exported JPEGs.  If I'm able to determine that I'd be able to have Aperture Exporter detect these problematic images.
 
So what can be done for now as a workaround?  Certainly it isn't practicle to open up each and every JPEG in your library in preview.app just to add some random keyword.  This is especially true if you have Aperture manage your library images.
 
The best method I've come accross so far is to use a command line tool called exiftool.  

ExifTool is a platform-independent Perl library plus a command-line application for reading, writing and editing meta information in a wide variety of files. ExifTool supports many different metadata formats including EXIFGPSIPTCXMPJFIFGeoTIFFICC ProfilePhotoshop IRBFlashPixAFCP and ID3, as well as the maker notes of many digital cameras by CanonCasioFLIRFujiFilmGEHP,JVC/VictorKodakLeafMinolta/Konica-MinoltaNikonNintendoOlympus/EpsonPanasonic/LeicaPentax/AsahiPhase OneReconyxRicohSamsungSanyoSigma/Foveon and Sony.

ExifTool is also available as a stand-alone Windows executable and a Macintosh OS X package:  (Note that these versions contain the executable only, and do not include the HTML documentation or other files of the full distribution above.)

It is freely available from http://owl.phy.queensu.ca/~phil/exiftool/

To use exiftool on one of my managed test libraries I did the following:

  1. Backed up the library.  Don't skip this step.  Better safe than sorry.
  2. Open terminal.app
  3. Use the following command:

exiftool  -overwrite_original -all:all= -tagsfromfile @ -all:all -unsafe -ext jpg -ext JPG -r /path/to/your/ApertureLibrary.aplibrary/Masters

This command line tells exiftool to process all managed JPEG images in your library.   It will read the meatadata in a JPEG image, then re-write it, thus regenerating the metadata structure.  Note that this does not affect the image itself, so you don't need to worry about loss due to recompression.

If you have referenced images in your library you'll want to run this command on the folder(s) containing your referenced images.  Just change the the last path component of the command to point at the folder(s) in question.