Showing posts with label Aperture. Show all posts
Showing posts with label Aperture. Show all posts

Wednesday, March 06, 2024

Aperture will launch on an M2 Air running Ventura 13.6.3 and will browse an existing Aperture Library.

This was a bit of a shock. Aperture won't run on Intel Monterey without an OS hack (Retroactive). I was cleaning up an M1 Air that had a copy of Aperture on it and on a whim I clicked it. Aperture was there via Migration Assistant. No Retroactive needed.

Aperture launched. No complaints. I could browse my old 600GB Library.

So I copied just the app from my Application folder to an external drive and then launched it on a different M2 Air. Same. Just launched. I could browse and search. Much faster than on my old Air running Mojave.

I have not tried doing anything with it other than search and browse. I'm basically stunned and I figure it could mess up my old Library.

I'm still healing from my years long slog to migrate the Library to Photos.app/iCloud. Being able to browse the old Library is very helpful for understanding what migrated and what didn't. (Yes, Photos.app is mostly a huge regression.)

See also: I shared this on Apple Discussions. I'm curious if Apple will remove the post; they are pretty aggressive about removing posts these days.

Update 3/28/2024: I recently got an older M1 which I updated to Sonoma. Aperture launches and quits on this machine. So now I need to test on an M2 running Sonoma.

Update 3/30/2024: And ... it crashes on an M2 running Sonoma. So this is only a weird curiosity and not very useful.

Sunday, October 29, 2023

Scripting Photos.app in Ventura (and maybe Sonoma) with AppleScript, Automator, and Shortcuts

[This post will be gradually developed. At the moment search engines return almost nothing on the current mess topic so even in its initial state it should be helpful.]

I recently moved my Aperture Photo Library from a machine running Mojave (last version OS with Aperture support) to one running Ventura and Photos.app. The migration was unspeakable.

Under Monterey there were a number of AppleScripts that mitigated key missing features in Photos (like batch rename). Some seem to ship from Apple with the OS. Others could be found online. Several appear in a compendium of user tips and scripts from Apple Discussions. But things have changed since Mojave and Monterey...

This blog post is going to be about scripting in Photos.app for Ventura and Monterey. In my own experimentation I was able to convert a 2019 Automator.app script containing AppleScript (basically it's a wrapper around a traditional AppleScript) into a Shortcuts.app script that runs as a service within Photos.app. To do this I had to enable AppleScript for use with Shortcuts and in Shortcuts details I could add it to the services menu. (Howard Oakley has an overview of the AppleScript to Shortcuts transition and an earlier article on Shortcuts in particular. The Shortcuts user guide article on this seems to have come from Automator but does actually work.)

I wasn't able to get the directions for adding Automator Quick Action Workflows in the Ventura Automator User Guide to work.

So I can batch rename images now from an entry in the Services menu. Yay.

If I find a good repository of Shortcuts I'll link to that. Otherwise I will try hosting them on my personal site or GitHub. I have an Apple Discussions question on the topic.



Thursday, July 06, 2023

Converting from Aperture to Apple Photos: Personal results Jan 2022 through March 2024.

Preface

This blog post was written during conversion of my Aperture local and Photos.app iCloud (System) Libraries to a single integrated Photos.app Library. The first post is from Jan 2022 and I finished the process on 3/7/2024.

One of the very last things I discovered was that Aperture will run on Apple Silicon without Retroactive. I've tested under Ventura but not Sonoma. That is so weird. I have my old Aperture Library and a copy of Aperture.app on an external SSD and if I have post-conversion concerns it's a great help to browse the original Aperture Library.

The post is more-or-less made up of sequential updates. Only a desperate person or an AI would have the patience to read and use the material here. If you are reading this I presume. you are desperate. Some of the things described here for Photos.app migration are also necessary for migration to Adobe Lightroom.

Many Apple have mercy on your soul.

--------------------

I've begun early experiments in converting from Aperture to Apple photos. I've not found any good user descriptions of the process. This post will be updated as I do experiments or use the results of experiments to refine my searches.

Before beginning Jason Snell's freely available book chapter on Aperture conversion is a quick read. I also suggest reviewing a fine photofocus post on moving to Lightroom which might be less of an ordeal than migrating to Photos. I chose Photos because of my distrust of Adobe and my knowledge that any commercial photo management solutions is a hard and eternal lock-in. [1]

Trial 1/9/2022

For my first trial I created a new project from a single JPG image and one version using Aperture under Mojave. I copied it to an Intel Air running Monterey 12.1 and opened it in Photos.

Photos said it could not open the Aperture library. It did not say why.

I then regenerated full sized previews per Apple's directions and I tried again. This time the import proceeded. I could see the Version of my original photo but not the original. I then chose Revert to Original and Photos displayed the original image. Then I tried "Undo Revert" but that did nothing. My Version was lost.

Opening the package I could see a file in the originals folder named with a GUID and a .jpeg extension. It had a size of 2.3MB which is the size of the Aperture original.

I tried to repeat the process but Photos declared that "the content of the Aperture library ... has already been migrated to Photos". The famous léonie of Apple forums explained - the conversion process changes the extension to "migratedphotolibrary", I renamed the extension to .photolibrary and I was able to repeat the import process.

On repeating I saw my Version image. I then tried to edit it and got this message:

"Cannot Start Editing Photos cannot edit this image because it uses an unsupported format"

I explored the new Photos library (Package Contents) and could not find any JPG other than my original. I am puzzled as to how Photos generated the version I could see.

There does not appear to be any way to see the original image other than by reverting to original -- which cannot be undone. There also doesn't seen to be any indication that an original exists! (This appears to be a global Photos problem however).

If one wanted to see both a Version and the Original one would need to export the latests version then open that in Preview, then in Photos revert to Original, and export that. Then compare in Preview.

Update 3/31/2023

I finally resolved the stacks Aperture created when I migrated from iPhotos (original image and iPhoto edited).  The trick was to find all photos with keyword iPhoto Externally Edited (or similar) then save them to an album then in that album remove any that weren't stacked then unstack, delete externally edited, and re-edit originals (non-destructive).

Then I did "Reprocess Originals" for about 8000 RAW images; about 6,000 were reprocessed and about 2,000 didn't need it. That leads Aperture to slowly regenerate previous/thumbnails. It's been about 24h and that is mostly done, I find that I have to periodically pause the task then restart Aperture (or my laptop) and resume. If I really need to regenerate all full sized previews that processing may take a week or so.

Update Preview is also very slow, it in fact may the rate limiting step since I assume "Reprocess Originals" secondarily also updates previews.

Apple's Published Recommendation (for Mojave)

Choose Aperture > Preferences, click the Previews tab, then change the Photo Preview setting to Don't Limit. Close the preferences window.

From the list of projects in the Library inspector, select all of your projects. For example, click the first project listed, then press and hold the Shift key while clicking the last project.

Click the Browser layout button in the toolbar, so that all photos are shown as thumbnails.

Choose Edit > Select All to select all of your photos.

Press and hold the Option key, then choose Photos > Generate Previews.

Aperture now generates full-size previews for every photo in your library. To follow its progress, choose Window > Show Activity from the menu bar. Quit Aperture when processing is complete.

Open the Photos app, then choose your Aperture library when prompted, as pictured above. If you aren't prompted to choose a library, press and hold the Option key while opening Photos. If your Aperture library isn’t listed, click Other Library, then locate and choose your library.

In my testing "Generate Previews" goes very quickly through JPEG originals. DNG images take longer. RAW images may take longer but I think previews were done when "reprocess originals" was run.

I'm going to partition my images by types (including other) to better understand this step. I think unstacking all photos is also wise.

Update 4/8/2023

In testing I found Photos.app (Monterey) only needs Aperture previews for edited images. I've already created previews for all RAW images. Plan is:

  1. Remove previews for all images without adjustments including RAW.
  2. Regenerate high res images for all images that have had adjustments (I already did RAW so don't need to redo those). I think quick view requires previews so I may be able to use that feature to confirm which have previews and which don't.
Update 7/4/2023

What happens to metadata during conversion. Aperture claims it can write IPTC data to images that can handle it. There are many oddball IPTC metadata tags, I've listed only the ones I sometimes used below. Some of these conclusions are based on studying the Photos.app SQLite database.

[3/27/2024: I learned more much later. iOS does not provide access to Photo Titles, only macOS Photos.app shows them (I'm too tired to be angry about this). Captions in both cases are seen only in the Information screen. Contrary to what was documented by Apple below Photos.app uses the term Caption, not "Photos Description". Were I starting over I'd have copied the Title to Caption when I had no existing Caption value set.]

Aperture                   Photos

Version Name               There's no documentation on how
                           Photos is handling Version Name and 
                           suspect it varies by macOS release.
                           In Monterey my test show the Version 
                           Name is at least sometimes used as the               
                           Photos.title rather than the 
                           Aperture title or the filename.
Filename                   Copied to Photos
Title (IPTC)               Copied to Photos
Caption                    Copied as Photos Description
Keywords                   Hierarchy (path) flattened, 
                           and each string becomes a kw
Project Name               Becomes an album (iPhoto Events)
Project Path               Unknown at this time.
Flag                       Not converted
Date                       Seems to use Aperture date
Badges                     Not converted
Location                   This is saved but location name is lost
Named faces                Saved
Star rating                Become keywords (1 star, 2 star)
Headline (IPTC)            Lost but can write to JPEG
Location (IPTC)            Lost but can write to JPEG
City (IPTC)                Lost but can write to JPEG
Creator (IPTC)             Lost but can write to JPEG
Date Created               Unknown at this time
Date (adjusted vs. file date) Image date is used
Last Modified Date        Not converted

I was able to retrieve Apple's documentation from the wayback machine (https://web.archive.org/web/20190515155043/https://support.apple.com/en-us/HT204478) to see how conversion proceeds. Here's a plain text version:

Photos and organization:
Photos and movies migrate without changes. Photos migrate with the adjustments and filters that you applied in Aperture. You can't change the adjustments in Photos, but you can revert to the original image.
Projects and subfolders migrate to folders that are labeled "Aperture Projects" and "iPhoto Events" in the Albums view.
Photos preserves albums.
Photos preserves most Smart Albums. Smart Albums with selection criteria that Photos doesn't support usually migrate to Smart Albums with "(modified)" added to the Smart Album name. If Photos doesn't support any of the Smart Album criteria, it doesn't migrate the Smart Album.
Photo books migrate to Albums.
Photos preserves slideshows. If a slideshow theme isn't available in Photos, it uses the default Photos slideshow theme. 
Photos preserves Faces data.
Keywords and other metadata: 
Photos preserves keywords.
Photos preserves user-defined titles. Images without user-defined titles show as "untitled" in Photos.
Star ratings migrate as similar keywords in Photos, such as "1 Star," "2 Stars," and so on.
Flagged images migrate with the keyword "Flagged" and appear in the "Flagged" Smart Album in the Albums view.
Color labels migrate as keywords, such as "Green" and "Purple."
Photos preserves captions.
Most metadata is preserved in Photos. Some IPTC metadata, including Copyright, won't appear in Photos. This metadata is still associated with the image, and you'll still see it in other applications that show IPTC metadata, like iPhoto and Aperture.
Custom metadata fields don't migrate to Photos. 

It's possible to use AppleScript to copy Version Name to Title. As of 7/2023 the following script was copied from Github

tell application "Aperture"

  set selectedImages to (get selection)

  if selectedImages is {} then

    error "Please select an image."

  else

    repeat with i from 1 to count of selectedImages

      tell library 1

        tell item i of selectedImages

          set versionName to (get value of other tag "VersionName") as string

          log versionName

          make new IPTC tag with properties {name:"ObjectName", value:versionName}

        end tell

      end tell

    end repeat

  end if

end tell

These were PhotoJoseph's 2014 directions for use of this AppleScript

Launch AppleScript Editor and create a new script (File > New).

Paste your clipboard contents into the new window, and click the Compile button to ensure it's all good. If not, just make sure you've copy and pasted all the content from the github page.

Save the AppleScript to the folder ~/Library/Scripts/Applications/Aperture (if any of those folders don't already exist, just create them). Name it something clever like “Copy Version Name to Title field”.

Open the AppleScript Editor preferences and ensure that “Show Script menu in menu bar” is enabled. Without that, you won't be able to access the script from within Aperture. [I think there's a Mojave bug such that this setting may not stick.]

On my not-too-fast Air it takes about 2.5 minutes to process 1000 images. I've set it to do 2000 at a time and check back after 5 minutes. I tried doing 8,000 at a time but that seems to cause Script Editor to hang so the maximum is between 2000 and 8000.

For best performance sort list view by Version name (since it doesn't change), show the Info panel, start at the bottom and select above (2000). The Info panel updates when the script reaches the last row selected.

Update 1/17/2024 - A retrospective note on keywords

This post is basically a chronologic dump of my Aperture slog, but I'm going to stick this update back in time. After I was done with the major migration I had a lot of keyword cleanup to do. Photos can't merge keywords, so this was tedious. Photos also can't handle Aperture keyword hierarchies, it only keeps the keyword itself. Prior to migration it's best to flatten the hierarchy and look for keywords to merge (variation in case, etc).

Update 7/6/2023

From an Apple Discussion post I learned that Apple's conversion process will write the output to the same drive as the input. A tech article on moving the photo library is also helpful to review. Because of the way macOS hard links work (certainly in Monterey and later) the output takes up much less space than one would expect.

I'll be working with a 2TB USB-C/Thunderbolt drive so this is good news.

Fat Cat Software's PowerPhotos also does Aperture conversion. I own it (it mitigates the pain of losing Aperture) so I asked the author about metadata. Note PowerPhotos can browse the original Aperture Library and do conversion even on versions of macOS that don't support Aperture. Here's his response:

Most of that metadata will come through as expected using PowerPhotos. The things I would note:

Version name won't be retained

Aperture projects are stored in the database analogous to iPhoto events. The PowerPhotos conversion mimics Photos' previous migration process, and creates a folder named "iPhoto Events" in the album list, and creates an album for each event/project coming from the source library.

Dates should be retained, though in certain cases there can be oddities with time zones. When you add the Aperture library to PowerPhotos' library list though, you can use the View > Show Subtitle > Date menu item to show the photos' dates and browse through them to see if PowerPhotos is reading them as expected.

For locations, the latitude/longitude will always be retained, but if you had assigned any custom names to particular places in Aperture (e.g. "My House" or whatever), those won't come across.

Star ratings become keywords just like in Photos migration

You're correct that those other IPTC fields will be ignored

Photo stacks should appear as multiple individual photos in PowerPhotos, but again you can double check by browsing through the library first in PowerPhotos to see how they show up.

PowerPhotos is really designed to migrate iPhoto Libraries, it only works on Aperture because they shared a common database. Parts of Aperture that are not supported in iPhotos don't migrate. This includes folder relationships (nested folders are flattened) and all Folder/Event relations. Events end up in a flat list.

Update 7/10/2023 iPhoto Externally Edited Cleanup

I have reviewed all the photos that were edited in early versions of iPhoto (previously I'd done a key subset of these); these were stored in Aperture as stacks with the edited version as the "stack pick". I unstacked and either deleted the non-pick or reedited the original and deleted the edited image. There were about a thousand of these so this took a lot of work.

I have learned that stacks will become separate photos in Photos app with the keyword "stack pick" assigned to the pick. 

Version name assigned to title when title empty

It took about 30-40 repeat applications of the above referenced AppleScript but all empty titles now hold the version name. I could only do about 2,500 images at a time without crashing Aperture and I went through about 58,000 images.

7/18/2023

Consolidate referenced files

I created a smart album of all referenced files and then consolidated them into the database.

7/19/2023

Update or regenerate previews of all images that Aperture identifies as adjusted. This took a very long time to do for RAW, JPEG was fast. Several hundred were identified as needing updated previews. Images I have not adjusted I'm ok with Photos managing with a preview. Before you do the conversion step redo "update previews"; if previews are current it should go quickly. In my case however, after a database rebuild, some had to be redone. I don't know if that was user error or something weird.

Identify other file types: At one time iPhoto/Aperture could hold audio files and even PDFs. Standard Aperture search shows audio files, I exported those and delete date originals. Search does not support PDF file types but I searched on "PDF" and found 5 images. I removed these from Aperture, a few I converted to JPEG and restored to Aperture. In my testing JPEG2000 images were supported as well PSDs, but I converted the latter to JPEG anyway.

Update 7/25/2023

Preparing for merger with existing Apple System Photo Library. I submitted my plan to Apple Discussions for review, basically I plan to make my converted Aperture Library the Apple System Photo Library which should merge with the smaller older iCloud Photo Library I have now.

Photos Preparation (Current System Photo Library)

  • Download all images to my Apple System Photo Library. When you change the download setting in preferences Photos will start bringing down the image files. You can switch to Moments and scroll to bottom of screen to see a transfer progress dialog. A mere 2000 files takes an hour or more on an Intel machine. (Later I did this on an M2 where conversion of a 50,000 image library takes about 3h; that's then followed by Photos' processing that can take days. The conversion is probably 10 times faster on an M2 though.)
  • Backup my current Photo Library
  • Remove images from the Photo Library that have been exported previously to Aperture (I tagged them with keyword) then purge them from iCloud. Allow sync to happen
  • Remove albums that are empty, in general cleanup of the Photo Library
Update 7/26/2023

Repair Library Database: Cmd-Opt on launch gives the option to repair the Aperture Library Database. This is a good measure to make prior to conversion. You can also rebuild the database. In my testing rebuild seemed to work well and I did not have to regenerate Previews for RAW images. It may be wise to do a full database rebuild followed by a database Repair prior to conversion. Look for a Recovery Album to see if anything shows up.

Identify Problematic Video: I have been told it will take weeks to synchronize the ApertureConverted Photos Library. Some old videos may cause the process to hang.  A support article has some advice. As of 7/2023 though I exported the originals of 170 AVI movies and after a bit of experimentation it seemed as though most were fine in both Photos and iCloud. Only 4 that didn't show any preview icon in the Finder needed to be opened in QuickTime ("converted") then saved as .MOV and then they worked. So I will proceed for now without additional video work.

I come across a 2012 blog post that shows I went through the same movie/ video transcoding problem converting from iPhoto to Aperture.  I see that in 2012 I could use QuickTime to change the video file wrapper from ?? to MOV without transcoding and that appears to be what I did for 4 small AVI files.

7/29/2023 - Legacy Media

A comment by léonie (192K "points" on Apple Discussions, I wonder if it's a single person!) sent me to their article on How to Weed out Legacy Media in Photos. Here I see that support for PDFs and audio files was removed, so my intuition to pull those was correct. The problematic items query is excellent. I'm copying his shared image here for posterity. Some of these queries can be done in Aperture but "unable to upload" is Photos.


In Aperture I used this query. I was surprised to find some PSDs and some jp2! However, in my testing Photos including iCloud sync handled both file types (added externally, not through an import).


7/29/2023 - 600 items missing?

UPDATE: I've left this in place but you can skip to the next update for now

I did a test conversion, only took 3h on the M2 Air. Sadly there are 600 fewer items in Photos than in Aperture. I'll document my investigations here using friggin' spaces and a fixed width font because tables aren't supported anywhere any more...

File Type             Aperture       Photos
RAW                     7333                7,333
JPG/JPEG           48,576           48,031

After a full rebuild of the database the JPEG count remained 48,576 and total count was 57,854. After import to photos the result was again 48,031 -- so it's very consistent.

I'm starting my research by focusing on the missing JPG/JPEG. 

It's possible to get a list of all filenames in Photos Library using the Photos SQLite database (see also and a forensics post.) [Update: Simon Willison has the best post on this, including a link to the dog sheep-photos tool and osxphotos]

Sadly, based on my Google Searches and ChatGPT questions there's no way to do this in Aperture. However you can use Aperture's metadata export to create a tab delimited list of some metadata for a list of Aperture images. (Most of the columns are null and I found rows where the title in the list didn't match the title in Aperture or in Photos but it was the best I could do.)

Once I used BBEdit to eliminate duplicates I used an online tool, https://comparetwolists.com, to show me what was in the Aperture list but not in the Photos list. I took that result of 127 rows and then looked for a sample in Photos. Most of the time I could find them, though in at least one instance Photos was using the Aperture Version Name or File Name rather than the Title. I wondered if there was a length limit enforced during conversion (Aperture and Photos have no documented Title length limits.) but I don't think that's the case. I'm continuing to investigate.

Update 8/25/2023: Image count discrepancy - Bursts and Live Images

At least part of the above image count discrepancy is because of the way iPhone "Live Photos" and "Bursts" work. In both cases an Apple proprietary metadata identifier is used to tie files together. In a "Live Photo" it's the assetIdentifier, in a burst it's the burst's BurstUUID. These metadata values are set by iPhone when the image files are created. Aperture doesn't know about these identifiers so in Aperture images that were part of burst and files that make up a Live Photo are all counted separately. On import to Photos they are recognized and the "burst" is counted as one image. If you know how to expand a burst in Photos (it's actually less obvious than I'd like) you'll see the images are still there.

After additional date partitioning to compare mismatches of a limited number of images over a problem date range I found no other causes of image mismatch. I decided the conversion process was not losing images.

Update 8/28/2023: Do all my images have previews?

After all the work done to get reapply legacy (ancient) iPhoto edits I want to be sure every image that needs a preview has one. The gear menu has for the Library has a menu item "Maintain previews for all projects". Despite my preview work it showed a dashed line rather than a check mark. When I chose it about 1600 images were identified as needing previews and those were generated. When I selected ALL 54,000 images and chose "update previews" 1387 were identified as needing a preview update. Even thought those seemed to update normally when I repeated "update previews" I got the same number.

So there's something wrong there. I wasn't able to find out what however. I checked all images "with adjustments" and preview update reported they were all current. I then did a database repair, which caused regeneration of thousands of previews and thumbnails. Despite preview update for all photos always identified 1387 items as needing a preview update. I decided to just live with this.

Update 8/30/2023: Conversion day attempt (did not succeed)

I moved the external SSD with my Aperture Library on it to my Monterey M2 Air and copied it to the Air's external SSD. Then I ran the conversion for the 56K images, it took about 2-3 hours. When completed I could see I had about 170 burst images; that fits the "missing" 600 photos. I'll be going through them and choosing images to save while removing the others.

I then turned off Photos iCloud sync on my legacy Mojave machine and, after confirming I had my copy on the new machine and backups, I deleted my Mojave Photos.app Library. I'll leave that machine on Monterey for now and Aperture will be untouched.

The next step will be to merge my converted Photos.Aperture Library into my existing Photos.System Library. I will wait until Photos is done processing the Photos.Aperture Library; that may take a day or so. There will be backups.

Update 9/12/2023: Burst delete bug (see Apple Discussion)

There's a bug in Photos Monterey and Photos Ventura with managing "Burst" media images generated from an iPhone and stored in Aperture. It may be related to changing either the file name or version name in Aperture. I suspect it's related to version name changes.

The Burst appears to open normally, but count of selected images may be anything from 1 to all and it may not change when an image is selected. Essentially Photos doesn't correctly match the user's selection (user interface) to its internal list of the selected image. I've seen all of the following:
  1. Nothing happens. You select images, click done and you don't get the usual save all vs save selected dialog.
  2. You get the save all or save selected dialog but whatever happens next is unpredictable. Some may be saved. In some cases, perhaps most often, all images in the stack simply disappear. The "recently removed" folder does not appear and the images are not in the system trash. If you rebuild the Photos database they may reappear.
I was able to demonstrate the bug to Apple Level II media support. They confirmed it as an "issue" but said there was no hope of a fix. I was able to show it happen in a Library converted by Monterey in Monterey and also when moving the same Library to a Ventura machine.

I have not found a workaround. I may work within Aperture to identify the bursts there and remove all but one image from each burst. I may try to use ExifTools to remove the MakerNotes (or just Burst ID) from those that remain in Aperture.

[In later testing I tried using the native Photos.app import tool to convert my large Aperture Library. It failed midway through repeatedly. So PowerPhotos became my only option.]

Update 9/12/2023: Eliminating Bursts

From Photos Media Bursts folder I identified the date of oldest and latest burst. Then in Aperture I created a query for that date range restricted to .JPG and camera has iPhone. Then I set Aperture to auto-stack any images .09 seconds apart. I then had about 6,900 images to review. I put those that had a stack count > 0 into a "Probably Bursts" folder. This took about 20 minutes to do 1/3 of the work.

Once I've done a couple of scans this way I'll remove all but one image from each burst. Then I hope to use ExifTools to remove the Burst ID.

Update 9/13/2023: Thoughts on eliminating the burst problem

Ben Smithett wrote a 2020 article on how Apple implemented bursts using Exif.Photo.MakerNote: "key 11 ⁠— this UUID is shared by all photos taken in a single iPhone burst and is what the Photos app uses to identify and group multiple photos into a single burst." He mentions an iOS app - The Photo Investigator and this post. He provides a set of examples for making a set of images appear as a Burst in Photos.app:

exiftool -tagsfromfile ./iphone_burst.jpeg -makernotes ./target_photos
exiftool -G ./target_photos/gopro_burst_1.JPG
exiftool -BurstUUID="$(uuidgen)" ./target_photos -overwrite_original_in_place
exiftool -BurstUUID ./target_photos

I need to look at the MakerNote for a non-Burst iPhone image to see if I need to remove key 11 or set it to some non-burst value (ex: 0, NULL, etc).

My tentative plan of attach:
  1. In Aperture eliminate all but one image for each burst (as above).
  2. Use keywords to tag these images.
  3. Revert to original and remove previews.
  4. Review version names and update filenames to match version names with a distinctive filename suffix like _iPhoneBurst.
  5. Export as test library
  6. In test library open package and view folders of masters and identify images.
  7. In test library run ExifTools to make changes as needed across these files using the -r option. I believe I will need to "clear" key 11 with something like [exiftool -TAG= /path/to/files/]. The -r option is not compatible with wildcard filenames but there's an if option: -if '$Filename=~/_AppleBurst/'.
  8. Move Aperture test library to Monterey machine and convert to Photos Library.
  9. Review behavior.
Update 9/15/2023 - ExifTools
Progress today:
  1. Created test library 
  2. Installed ExifTools DMG, no Perl install required
  3. Found that iPhone non-burst images lack the BurstUUID Tag completely
  4. ExifTools can't remove individual tags in MakerNotes but it's possible to remove the entire MakerNotes: exiftool -MakerNotes= noMakerNotes.jpg
  5. Created a test library and tried converting that on Monterey Photos. I found the same bugs as before with burst photos but the image I removed the MakerNotes from shows as a regular image. Sadly the burst version wasn't imported, perhaps because Photos.app considered it to be a duplicate and excluded the entire burst. See a later comment on duplicate photos and bursts.
My current version of the ExifTool command is:

exiftool -r -overwrite_original -P -progress -MakerNotes= -if '$BurstUUID ne "" ' ./TestSuite.aplibrary 

The -r flag means it will recurse over all subdirectories of the TestSuite Aperture Library, overwrite_orginal manes that the original image is removed, -P keeps the modification date of the original, -progress gives me a list of changed files, -MarkNotes= means the MakerNotes group of tags is removed, the -if statement tests for presence of the BurstUUID. 

The -progress output can be copied out of terminal and with a bit of regex I was able to extract file names (not guaranteed unique!) for 1,564 images stored in Aperture that had a BurstUUID.

You want to remove the MakerNotes from both images and previews. You do want to create previews for every image despite my earlier experiments with not creating previews for non-edited images.

Despite removing the MakerNotes about 68 images still rendered as Bursts. On inspection with ExifTools they don't appear to have MakerNotes and thus no BurstUUID visible to ExifTool. I am mystified. My best guess (see my stackoverflow comment) is that Aperture cached the EXIF data and Photos read it from that cache during the import process.


Update 9/15/2023 - Photos Conversion Duplicate Delete Bug

In a test library I had two versions of a single image in a test album. One had the MakerNotes removed. They also had different titles. After converting to Photos the image with MakerNotes removed was missing, but it's container album said two image were present. After rebuilding the Photos database the album reported one image present.

I don't know if this is "normal" (albeit buggy) Photos behavior or if it's an indirect result of the Burst Bug. I fear it is normal behavior for converting an Aperture Library; that metadata is ignored and perhaps edits and versions are also ignored.

On the other hand with non-Burst images in my testing Photos did retain multiple Aperture Versions from one Master image as long as the images differed.

Update 9/17/2023 PowerPhotos Migration of an Aperture Library

My sanity feels restored. I used PowerPhotos to convert my Aperture Library. This can work with post-Monterey macOS as well as Monterey. The results are reassuring.

PowerPhotos reported 97 images in my Aperture library and 97 images in the post-conversion Photos Library. When I opened Photos it showed 87 images and 10 videos. For the first time the counts agreed!

Most importantly - NO BURSTS. All the burst images are now independent. So there wasn't anything in the Burst images or the Previews; the (flawed) resurrection of the Bursts in the absence of the MakerNotes must have been related to copying some unknown data source (independent cache of EXIF data?) from Aperture. (I did not find BurstUUID in the Aperture.xml file stored in the Photos package by the Photos conversion process.)

I am further evaluating this process but my initial take is that PowerPhotos migration is vastly better than trying to use the native Photos conversion.

Update 9/17/2023: Puzzling test results, need remove BurstUUID and use PowerPhotos conversion

I created a single Aperture test library with a single known burst in it called MicroBurstTest. I also retested my larger BurstTestLibrary.

The results surprised me. To get a reliable translation I needed to use both the ExifTool step and I had to use PowerPhotos.

MicroBurstTest NoBurstUUIDRebuilt: FAIL with Photos Conversion
MicroBurstTest: PASS with PowerPhotos Conversion, 4 images in burst, can edit
MicroBurstTest NoBurstUUID: PASS with PowerPhotos Conversion 4 separate photos
BurstTestLibrary 2: FAIL with PowerPhotos Conversion, image selection bug.

Everything failed when I use Photos native conversion, even if I remove the burstUUID (MakerNotes) from all images and then fully rebuild the Aperture database. I thought that would deal with a hypothetical caching bug but it made no difference. (I didn't try creating an export Library then importing the Export Library into an empty Aperture Library -- mostly because I'm very tired of this and I may have a fix.)

PowerPhotos conversion seemed to work in my small library even if I left the BurstUUID intact, but when I tried a larger library the bursts I tested sometimes behaved properly and sometimes the selected image vanished

I'm hoping I can move on, but for now I'm thinking there are two issues/bugs:

Burst image selection bug: This doesn't happen to every image. I wonder if it's something triggered by version renaming or title or file renaming in Aperture. The image you select can vanish and the count of selected images doesn't match one's selection. I have a few burst images that work properly following a PowerPhotos Conversion but many do not.

Burst reconstruction:  a Burst is reconstructed even though the BurstUUID is gone, I think this is due to Aperture storing EXIF data from an image and not updating that even with a complete database rebuild.

I'm now proceeding to testing running ExifTools against the entire library, then regenerating Previews, then trying the bug library with PowerPhotos.

Update 9/17/2023 PowerTools import of entire library: 57,844 images

After using ExifTool to remove all BurstUUIDs and converting to Photos using PowerPhotos I had 57,844 images imported with one error in the log that I need to look at. Likely a corrupted or incompatible video. The process was slower than Photos native conversion. There were no Bursts in Photos after the import. This number lines up with what I expected.

Update 9/20/2023 Testing ok so far, Aperture clean-up continues.

So far testing is good. I'm cleaning up Aperture for the final migration; I may test Photos in Sonoma to see if the Burst Bugs are any different.

There's a feature that lets you write the modified date into the exif header and maybe the file date; I realize I should carefully do that in Aperture for some of the photos I've re-dated to the time they were taken (vs. when I scanned them).

I posted this summary to the Facebook Aperture Group, when I'm done it will end up as part of an introduction to this post.

If you haven't migrated off Aperture yet  and you hope to keep any of your titles, version names, dates etc time is running out. You should always be able to get your Originals out, but access to edits (Previews) and especially metadata (names, titles, descriptions, folder relationships, etc) is at increasing risk.

So far testing from my latest attempt to migrate to Photos.app is good. As per my prior notes I needed to use:

ExifTool to work around the Burst bugs.
PowerPhotos to do the migration (because of bugs with Photos native conversion)
An Apple Script to copy Version Names to titles. (Apple script itself is on the edge of extinction btw)

There was also a lot of review and cleanup including removing files not supported by Photos (esp iCloud) or most other media apps.

I don't know how migration to anything else would work. Life is way too short to test. I chose Photos seeking safety in numbers. I wish a competitor had a solid "exit" strategy.

If there's any chance you will need to use Photos you should buy PowerPhotos (https://www.fatcatsoftware.com/powerphotos/) *now* and let the dev know of your interest in the Aperture library conversion feature (works in Sonoma). For him the Aperture conversion was very much an afterthought (built atop some old iPhoto conversion). He's a much better dev than the poor intern who got suck with the Photos conversion. PowerPhotos also provides core functionality that should have always been a part of Photos.

I'd recommend saving a copy of my blog post on the process [1]. I'm not immortal, it could go at any time. I'm sure it's wrong and flawed but this kind of knowledge is dying fast. Some things I found in only one old, almost forgotten, web page. You should also assemble the tools I used just in case you end up on Photos somehow.

If you want to send a bill for your time to Tim Cook please do. I figure $20,000 would be about right for me [2]. Apple could have prepared a high quality Aperture export to a well documented public intermediate data model that Lightroom or others could read from with good results. Including documenting Apple's edit rules. They didn't because they didn't (and don't) give a sh*t. (sorry, expletive earned).

I'll clean up my blog post when I'm all done. For now it's relatively agreeable cleanup of existing content in Aperture prior to repeating my migration.

Backups? Oh, yeah, I got backups 😳.

[1] https://tech.kateva.org/2022/01/converting-from-aperture-to-apple.html
[2] Plus a pittance for PowerPhotos and a donation to ExifTool.

Update 10/16/2023: Another migration attempt only partly successful

Today I am making a hard push on the migration. I did not rerun the AppleScript that copied version name to 

In Aperture
  1. Remove all flags from images.
  2. Empty rejected and trash
  3. Regenerate previews for my Video search folder for which many were lacking previews for some inexplicable reason.
  4. Document photo count: 57,518 items
  5. Update previews - this always seems to require regeneration for about 1300 JPEG for no good reason
  6. Keyword cleanup - review the keyword hierarchy
  7. Run repair database (again) - recheck image count, check for creation of "recovered ..." album/project. (no changes found).
  8. Update Aperture Vault.
In Finder
  1. Lock Current.aplibrary to prevent further changes to it.
On target system
  1. Unlock Current.aplibrary and rename it Current_20231016.aplibrary
  2. Run: exiftool -r -overwrite_original -P -progress -MakerNotes= -if '$BurstUUID ne "" ' ./Current_20231016.aplibrary
  3. Run PowerPhotos Conversion
  4. Manually recreate folder hierarchies and folder event relationships. This is bad but it isn't quite as bad as it sounds because when you select a folder on the left panel the albums and subfolders display on the right side. You can multi select those and move them together. I marked my 4 and 5 star (keyword) photos and my slideshow photos as Photos.app "favorites".
Update Oct 29 2023

After the Oct 16 post my big surprise was loss of folder/album relationships due to limitations of Power Photos (updated above). I had to recreate album/folder relationships. It's doable because in some views you can select multiple albums and move them between folders by drag and drop. The PowerPhoto conversion process turns Aperture/iPhoto Folder/Album relationships into keywords with an internal | delimiter. I didn't find the keywords useful but they are a guide to how Albums and Projects in Aperture were organized; I used them to selectively apply the same folder/album relationships in Photos.app. Then I deleted them.

Some photos have incorrect orientation. I think this is related to a bug in an old version of iPhotos (exif orientation tag bug). I believe they were fixed in Aperture but that appears to have been lost in conversion.

Otherwise I've been doing cleanup. Both PowerPhotos and Apple Photos.app will identify and resolve duplicate images but I'm waiting to understand Apple's undocumented rules for metadata management.

I have not yet merged my new library yet with my iCloud Library. I'll be organizing and cleaning up for a while. Keywords alone will take a bit; PowerPhotos made parent albums into keywords so there's a lot to remove.

When I do merge I will
  1. Verify current system library has all images local.
  2. Organize current system library so all albums are in one folder
  3. Backup current system library.
Update 1/17/2024: Post-migration PowerPhotos hierarchy Keyword Cleanup

Since Photos.app was unable to migrate my Aperture Library I used PowerPhotos. That seems to have worked pretty well although since PowerPhotos was made to convert iPhoto Libraries some album/folder/project relationships were lost (however the albums themselves were preserved). PowerPhotos generates keywords that have folder/project/album relationships so these can be used as a guide to creating folder/album relationships in Photos.app. They can also be used as keywords of course, but I ended up with hundred of them so I used them as a guide to recreating folder/album collections that I found useful. Then I deleted them.

This is roughly how I did that
  1. search for album in Photos search.
  2. When click into the album the left pane will open the folder that contains the album (but it doesn't highlight the album -- that's just dumb)
  3. Decide if there's a folder I should create to group things. If not then delete keyword.
In practice I deleted most of these hierarchy keywords. When several albums shared the same "path" then it was often useful to create a container folder. You can select multiple keywords and delete at once.

Some keywords were from albums that were organized in Aperture under Projects. In Photos both the Project and the child Albums become peer albums. In this case the keyword path will include the Aperture Project name and the Album name. Sometimes you might put them both in a folder.

The single window Photos.app UI makes reorganizing folders and albums pretty frustrating, but this was a flaw in Aperture too. To navigate long lists of albums I found sort by name helpful.

I did end up with collections of albums that belonged to an Aperture Folder that were better moved into other Photos.app hierarchies but that can be done over time. Since one cannot search on Folder names in Photos.app 2024 I have to rely more on folder hierarchies than I did in Aperture.


Update 1/17/2024 - Comment on Gamma and Color Profiles.

I realize all my images look darker than I remember. I suspect it's because of Aperture's ability to adjust images for "gamma", screen type and so on. Of course Photos has none of Aperture's extensive color profile and gamma support.

Update 2/6/2024 - Garbage keyword cleanup

Following migration I had multiple instances of the same keyword as upper and lower case. I'm not sure keyword selection is actually case specific in Photos. In all cases the lower case version was not actually used by any images and I removed them. There were about 10-20 oddball keywords I don't recall using in Aperture.

At this point I need to confirm some backups and then, after testing my backup Libraries I'll begin the iCloud merger between my migrated Aperture Library and my original System Library.

Update 2/28/2024 - Duplicate cleanup - time zone bug in conversion

During the conversion process a number of duplicates were created in addition to genuine older duplicates. It looks like correcting times in Aperture (esp timezones) somehow resulted in duplicates during the conversion. I'm using PowerPhotos and native Photos.app duplicate detection to slowly work through the duplicates and decide which to keep.

I think the way Apple's duplicate selection works marking one as a 'Favorite' will bias selection to that one. I saved all my Duplicates to a local folder then inspected them and sometimes marked on as a favorite and the other not. When done I removed the Favorite tag from the images retained in the folder I'd created from Apple's Duplicate list.

Update 3/1/2024 - Syncing with iCloud continues

After resolving duplicates I tested my backups (full image locally) and then made my converted Aperture Library the new System Library. For about 12-24 hours it simply said "Syncing with iCloud". After 1-2 days it started saying "Syncing #### from iCloud". Activity Monitor Network Activity showed lots of traffic with bursts of 20-30sec activity followed by longer intervals of no traffic. I assume it's throttled by Apple's servers. I assume this will take a week or two.

On the machine holding the former Aperture Library the image count hasn't changed but the video count it going up. Other devices show the same Folder/Album and images as before but the total image count is going up. Based on that count I'm guessing I'm about 2/3 done after 3 days. The delays are all on Apple's side.

Update 3/3/2024 - completed syncing with iCloud

It's possible that turning off iCloud shared folders helped the sync go faster. I'll turn them on again when done. [3/27/2024: I recommend turning off shared albums then turning them on when iCloud synchronization has completed.]

After 3-4 days of intermittent bursts of throttled iCloud synchronization I have one large collection that appears to include folders, albums, keywords and images. I merged a small number of new duplicates -- two video and one still. I can't confirm metadata has survived yet.

Update 3/27/2024 - After the migration

It's been several weeks since I turned on iCloud synchronization. That seems to have worked as promised -- which is unusual for anything related to Apple Photos.app. I did discover that iOS does not display Photo Titles; much of what I have now in Photo Titles could be copied to Caption and I am looking into ways to do that especially where Caption is empty. If I succeed that will be a separate blog post. Titles do display (optionally) in macOS photos.

The real strength of Apple Photos.app is making a pile of unorganized photos more valuable to the user. Any active management of Photo metadata or organization, even attaching a comment to a photo, is poorly supported.

I would say the migration succeeded with probably 97% of information salvaged -- at enormous cost. I have thoughts about what this means for, say, Apple antitrust litigation. I believe Apple's de facto monopoly ("Hotel Cupertino") has caused it to lose interest in legacy customers. In retrospect I don't think Apple every worked on an Aperture migration path, I think they just did an iPhoto migration path. Aperture migration was sort-of supported because of the shared iPhoto/Aperture Library format.

Post migration I evaluated Houdah's Photos Workbench. I took me about 5 minutes to go from trial to purchase. With the direction Apple has taken both PowerPhotos and Photos Workbench are necessary purchases. I am also evaluating osxphotos and I will work further on AppleScript supplementation. I believe both osxphotos and Workbench use Apple's PhotoKit APIs.

Historical posts related for shared misery

[1] Laughably I chose Aperture because I figured Apple's user base and resources were large enough that if Aperture died Apple would provide a good migration path. So my choice of Photos is very debatable. What we need is a media management solution that's open source and used by multiple commercial vendors. Ask me if you want the requirements and design spec for this :-).

Sunday, July 25, 2021

Getting photos from iPhone (iCloud) Photos.app to Lightroom, Aperture and other non-Photos products

(Original 1/31/2021, updated 7/25/2021)

Apple's approach to photography is to keep everything in iCloud and to view or edit the images from a macOS or iOS device running Photos.app (there's also some limited web browser access). There's some limited ability to share albums between family members and other groups, but this has been a mess for years and I'm not sure what parts of it are available in which versions of macOS.

This approach doesn't work very well if you want to mange your photo Library outside of Photos.app. How do you keep track of what you've have reviewed and exported within Photos.app? Photos.app no longer tracks what's on the iPhone vs. what's in iCloud; there's no easy way to know what's not been imported if you don't delete all iCloud images.

This is what I do now:

In Mojave Photos.app create smart folder for all photos that lack keyword of “Exported”

In Photos.app on iOS or macOS

1. Clean up bursts

In Photos. app on macOS (Mojave for me)

1. Start Photos.app from my macOS account

2. First pass cleanup in Photos

3. Select all images in Unexported and export as original (I export IPTC as XMP but not sure that’s useful)

4. Assign all images keyword of Exported

In Finder

1. Remove all the small .mov files that come with Apple’s live images.

Now Import into Aperture. Every so often I purge what's in iCloud, the real home is Aperture and its many backups.

Thursday, October 31, 2019

Aperture to Photos.app - preparation (And CYME's Avalanche)

Original 10/31/2019

I despise Apple in general and Tim Cook in particular. I wasn’t always that way. In the 00s I was kind of fond of Apple.  That ended with the way Cook killed Aperture in 2014. Apple could have provided an exit, but they didn’t.

Being unable to leave Apple has not improved my mood over the past six years. The exit cost is too high. On the bright side my Apple resentment has made it easier to resist the Apple watch. So I have a bit more time in my life for family, bikes, skis, and CrossFit. Thanks Tim!

I’ll still be on Aperture into 2020, three years beyond my original plan. The Catalina catastrophe has made staying on Mojave more agreeable. I’ll have to switch sooner or later though, almost certainly by 2021. So I’m working on a list of what I need to do prepare. I’ll update this post with items I think about:
  1. Eliminate all stacks. I have hundreds of unwanted stacks created by Apple’s original hacked up iPhoto to Aperture migration (that was horrible). I need to edit each of the stacked images and remove the duplicate.
  2. Flatten the keyword hierarchy (the marvelous hierarchy is from a time when giants walked the earth).
  3. Regenerate images from RAW (this will take eons and is high risk).
  4. Be sure image locations and face recognition (never worked) are turned off.
  5. Simplify all smart albums not supported by Photos.app.
  6. Create an empty shell of current Library, then use that to import all images from past Library. Confirm everything is correct.
  7. Rebuild database to confirm no errors.
  8. Per Apple’s migration directions, create full-sized “previews”.
  9. Ensure iCloud is empty of images and that Photos.app destination library is empty with no iCloud sync. Disconnect from network.
  10. Import into Photos.app
  11. Validate.
This project will take many months, many backups, and purchase of at least one other 1TB SSD.

Update 2/17/2020: Avalanche claims ability to migrate from Aperture to Lightroom (Mojave and up). I'm looking for reviews.

Update 1/9/2022: Still on Aperture! Reviewing this post I decided to copy Apple's directions for migrating to Photos. (For older photos consider reprocessing before generating previews.)
Choose Aperture > Preferences, click the Previews tab, then change the Photo Preview setting to Don't Limit. Close the preferences window.
From the list of projects in the Library inspector, select all of your projects. For example, click the first project listed, then press and hold the Shift key while clicking the last project.
Click the Browser layout button in the toolbar, so that all photos are shown as thumbnails.
Choose Edit > Select All to select all of your photos.
Press and hold the Option key, then choose Photos > Generate Previews.
Aperture now generates full-size previews for every photo in your library. To follow its progress, choose Window > Show Activity from the menu bar. Quit Aperture when processing is complete.
Open the Photos app, then choose your Aperture library when prompted, as pictured above. If you aren't prompted to choose a library, press and hold the Option key while opening Photos. If your Aperture library isn’t listed, click Other Library, then locate and choose your library.

I tested CYME's Avalanche "export to file system". Unfortunately it doesn't export previews, only the master file. It's designed to translate Aperture's lossless edit directions to an alternative format, then have the receiving system generate the Previews.

Saturday, December 29, 2018

Extend Aperture's lifespan with Adobe DNG Converter for Mac

Aperture on Sierra doesn’t support RAW files from my Canon EOS SL2. I don’t know if there would be any support if I upgraded to High Sierra or Mojave, but I think not. I tried using Canon’s RAW to JPG converter but it was achingly slow and it defeats the purpose of shooting RAW in the first place.

So I’ve been shooting JPEG [1]. Today, through Facebook’s Aperture User Group, I learned that Adobe DNG Converter output can be treated by Aperture in Sierra as a type of RAW format. So I downloaded the app and tried it on a CR2 file from my SL2. It was extremely fast and produced a DNG a few MBs smaller than the CR2 file. Aperture opened it a bit more slowly than I remember it processing my older Canon RAW files, but there no real issues.

Adobe DNG Converter has a truly ugly Mac UI, but I have no problems with that. I suspect DNG is only a minimal archival improvement on CR2 so I’ll mostly continue to shoot JPEG (because everything sucks [1]), but now I have the option to do CR2 when I want better results. Since I already use Image Capture to bring images off my devices rather than Aperture the extra conversion step is a modest cost.

- fn -

[1] Twenty ago I was sure we’d get one of many better lossy image formats, of which JPEG2000 is the only one I can remember now. We never did, partly due to patents and partly for reasons I don’t understand. I think cameras have gotten better at making the best use of JPEG, which itself has iterated over time. In 2018 some SLRs shoot DNG (not Nikon or Canon of course), Apple’s cameras shoot patent-encumbered HEVC (not HEIF, that’s the container damnit), and there’s lots of proprietary RAW. I suppose HEVC is an improvement over RAW, but only by a bit. HEVC is likely to lose out in the long run to AV1 and disappear — with no comment from Apple when it converts. In terms of a practical archival image format we basically have PNG and JPEG with no metadata standard and perhaps some flavor of TIFF. Basically everything sucks, which is very 2018.

Incidentally, the image formats Preview can export to in Sierra when you use the Option key trick (apple doc) — prior to Mountain Lion they were all shown. OpenEXR was from Industrial Light and Magic but it’s as dead as old JPEG-2000. (As near as I can tell Mojave has the same list and it still doesn’t include HEIF/HEVC, which seems a vote of some sort.)

PreviewExportFormats

Saturday, December 30, 2017

iTunes Mac to iPad photo sync is broken

I had a longish holiday break this year, so naturally I spent part of it fighting with another technology regression

This regression was about getting photos from my Mac to my iPad; I use the iPad as a digital photo frame randomly displaying my Aperture (running on Sierra) images tagged as “slideshow” (this drains the battery fairly quickly, so I usually have the iPad charging). Years ago this was painless, but over the last few months I’ve found that only a fraction of my tagged photos make it over to the iPad. Often the process seems to die.

This go round I tried an old Aperture tip to delete the iPod Photo Cache (Apple approved) [1]. That had one effect — image transfer died completely! Instead of telling iTunes to transfer all my Slideshow tagged images (9,019) I had to select year-specific smart album slideshows one at a time (incremental add):

AlbumsCounts

That generally worked, though the ghostly counts shown above in the iTunes 12.7 UI came and went inexplicably. Sometimes a mouseover seemed to trigger an appearance. If they didn’t show up that was a clue that something had gone wrong with the sync. (Infamously iTunes does not log errors to Console. Perhaps because they’d overwhelm console?)

Some part of the OS (or Aperture?) has to regenerate the .ithmb files [2] that are shared, that seems to be a slow process. I think the build process might make use of some data Aperture saves on exiting; that data is also used by the old OS X media browser (itself related to Apple’s old iLife code) [3]. I’m pretty sure some of the .ithmb creation is by an OS thread thought, and that seems to have a low priority. Maybe part of what causes a complete failure with large numbers of files is that iTunes has an arbitrary timeout placed to work around some other iTunes bug [4].

Once I broke down my slideshow into smaller bits and added them incrementally I seemed to have some success. The count (erratically) displayed in iTunes matched what showed on the iPad album counts and the Aperture smart album counts. Then things went south. The numbers transferred started to be a fraction of the Aperture counts. When things settled out I seemed to be stuck at 7,811 on the iPad (same count in iTunes if I mouseover the iTunes content type distribution bar) out of 9,109 in Aperture [5].

I did some half-hearted testing to try to figure out if this was related to filename characters or the like, but I haven’t gotten very far. I did confirm that RAW files don’t have an obvious problem.

The great news is that I learned today that I’m not alone and it’s not an Aperture specific problem! There’s a Macintouch thread on this by riley (quotes others, emphases mine):

So here's an update on the issue with syncing large Photos databases between iOS devices and iTunes.

After posting a number of followups to my Apple bug report, the response I got back from Engineering was that this is a known limitation in iOS, and "we are working to improve this in a future iOS release."

Their suggestion was to sync by starting with just a few albums, and then repeatedly re-sync, adding a few more albums each time. "On subsequent syncs, iOS will not add additional photos unless the sync preferences in iTunes are different from the previous sync, which is why it is necessary to keep adding selected albums each sync, instead of all at once."

… There is a huge discussion of this over on the Apple forums (see “Photos app on iPhone not syncing in iOS 11 ").

Various people have been told various things. Some have been told it is an iOS issue, some an iTunes issue. Personally, I think there are issues in both that are interacting, which are preventing reliable syncs with large photo albums over USB between iTunes and iOS devices.

Two years ago, our then ~40k photo library in Photos would sync the selected items (maybe around 30k photos in various albums) without problem. Perhaps around the time of iOS 10, the syncs needed to be restarted to complete, but eventually it would work. Since iOS 11, some sync, but many do not, and the sync just cancels with a variety of error messages at various points. Sometimes it is a device error, sometimes nothing. Sometimes many of the photos will be on there, but the albums they should be associated with are empty…

… The last update I heard from the person who was helping me was that it was an iTunes issue (at minimum, perhaps iOS too). She said that the Apple engineering team is aware of the issue and working on finding the problem so it can be fixed.

… I also see that since the latest tvOS update and the latest iOS 11 update, many albums are no longer being shared with the Apple TVs.

Hmm. This suggests to force updates one should add or remove some album with every sync. That did not work quite as expected. After I tried using the Media Finder code [3] and the ‘add new album’ trick iTunes said it was synchronizing another 1000+ files (that’s good!) but then the counts in iTunes and iPad dropped from 7,811 to 7303. So that’s just great.[6]

Since I now know this is not just an (abandoned) Aperture problem I added an iTunes feedback comment about the problem. Rumor is Apple processes these, presumably doing some algorithmic text extraction based on volume. So add your voice if you’re interested.

- fn -

[1] It took hours to empty the trash after deleting iPod Photo Cache — despite files being on an SSD. As of 7/2020 the links are all broken, but this is what you do: "find your Aperture or iPhoto library in the Finder. Right-click and select “Show Package Contents” then find “iPod Photo Cache” and delete it."
[2] I changed extension of a copy to .jpg and it rendered as expected. They are fairly high res images, in a small sample I examined one was a 3MB jpg. 
[3] In Sierra’s Open dialog the Media Finder still shows in the left nav pane! Maybe invoking it might trigger some updates? Worth a try to open it and let it run for a while.
[4] It’s widely assumed that iTunes source code is an impenetrable mess with bits left over from pre-Apple days. 
[5] Incidentally “Stacks” are a problem. One of the many bad things Apple did in bridging iPhoto and Aperture was to treat an old iPhoto Edit as an Aperture Stack. This threw away key information — that one image was the new version of another. There are lots of downstream implications. Years later I’m recreating thousands of iPhoto edits in Aperture. One of the problem is that when you tag an image as “slideshow” then transfer to iPad both versions go. I think this can cause the iPad count to be higher than the Aperture count, but of course the problem I haves is in the other direction.
[6] I removed the extra album and then the count went UP to 7,811 again! That album did reference photos that were in other albums, so maybe part of the bug has to do with photos that are in more than one album. I do think there are multiple bugs here though.

Update 12/31/2017 I

There are some JPEG images in my older files that do not show up in either OS X Media Browser (old iLife code) or Sierra’s Screen Saver Library browser and do not transfer to the iPad via iTunes. However, if I export the original and drop it back in again then the image appears normally — this doesn’t appear to be problem with the JPEG. They also render normally in several different apps and EXIF viewers.

Rebuilding the Aperture database does not make a difference.

So this is curious, and potentially an important clue, but to go further I need to understand how Media Browser works.  In my case the bug doesn’t only impact image transfer to my iPhone; it impacts Media Browser as well. I’m now poking around at ~/Library/Application Support/iLifeAssetManagement and ~/Library/Application Support/iLifeMediaBrowser, especially ~/Library/Application Support/iLifeAssetManagement/state/albumshare/Daemon.sqlite.

Update 12/31/2017 II

Finding more “invisibles” but no clear pattern to what’s omitted. Some are quite small - from the days when 100K was a good image size. It’s not size alone though; of a pair of similar old images a 64kb one made it across and a 70k one didn’t.

Update 1/1/2018

Same sync, same everything — but now iPad acts as though it’s been syncing to a different computer. All images removed! It took several tries to get one album to sync, but after it started working I could do about  @1,200 at a time. Now have about 7,700 on iPad out of 9,100 on Mac. I won’t sync iPad to iTunes again until there’s word of a bug fix. Just stick with what’s on there now.

Update 6/9/2018

I thought this was fixed — but it’s broken again. On latest versions of iTunes and iOS 11.3.1, macOS Sierra.

Update 6/9/2018b

I was able to sync 7777 of 7771 (different apps count photos differently, not least due to Aperture’s brain-dead “Stacks” handling of iPhoto imports) photos after installing iOS 4. I don’t know if the bug is fixed or if it’s just that process of installing an iOS update cleared something out. In the latter case it might return.

Update 7/4/2020

It's been a year or two since I last tried syncing. At this time I'm still on Aperture and Mojave. The sync was worse than ever. I wiped my old iPad and restored from iCloud backup and sync actually seemed to work! It saw only 7992 of the 9413 images in my Aperture slide show, but it did import those.

I tried the trick of deleting the iPad Cache in Aperture [1] but on resync it was still 7992/9413. Consistent at least. 

I think there's a bug in Aperture with Sierra and later with generating the images in the iPod Cache. Maybe something iTunes or OS X was supposed to do.

 I suspect the iPad flash memory is also in bad shape. 

The lack of logging or error handling is appalling.


Monday, October 30, 2017

Repairing Aperture database: 1061 recovered images ...

Aperture is an artifact from an age where Apple made ambitious software to handle big challenges.

Those were the days.

It’s not, however, flawless.

Periodically I rebuild the Aperture database. Sometimes all is well. Today there 1061 “recovered” images.

I’ve been through this before so I didn’t panic. I sorted by size and chose 10 version names from the largest 50. I then searched on each name and all of them were in the proper place at a larger size as well as in the “recovered” project. The recovered images were thumbnails.

When I get 10/10 I assume they are all thumbnails (most are a few hundred K vs. images of 3MB to 30MB). So I delete the Recovered Folder.

It is unsettling how often I have to do this.

Saturday, October 28, 2017

How to do a simple random image picture frame type slideshow in iOS 11 on an iPad.

You know how you look for something on the web and you can’t find it?

That’s because it can’t be done with the base OS and nobody talks about the features that Apple has removed. There’s no ad revenue in that.

But I don’t take ads, so here you go.

This post exists to tell you that as of iOS 11 you can’t create a random picture-frame like slideshow on an iPad without a 3rd party app. Yes, the iPad used to be able to this. Once upon a time you could set a random image display up as a lock screen. Later this was moved to the Photos app.

With iOS 10 it died. In Photo albums on an iPad there’s a slideshow button (top right), but it only plays linearly. Which I loathe.

There are slideshow options by the way. They are insanely obscure. Start a slideshow. When an image appears, tap on it. There are a few options. No “shuffle” though.

There used to be an excellent third party app to do picture frame slideshows called Picmatic. My father loved it. He died before I updated his iPad to IOS 10. Good thing, because iOS 10 broke Picmatic and the developer never updated it (damn thing needed #$!$ subscription pricing).

There’s one “Picture Frame” app left on the App Store — LiveFrame.app. It worked with my Google shared libraries, but even though it could “see” my iCloud Shared Libraries it would hang when I tried to use them.

I’ve been fairly disgusted with iCloud Shared Libraries so I decided to try life without them (to be fair all image sharing except Instagram seems to have died). I turned iCloud Shared Libraries off on all my devices. I’d already given up on iCloud Photo Library. Then I went back to the stone age. I connected iTunes 12.7 to my iPad with a Lightning cable and had it sync 8,300 images from my Aperture “slideshow” smart album.

Of course the sync didn’t go easily. The image transfer aborted 3 times — without any notice. Mercifully the sync restarted where it left off. Unlike iCloud Photo Sharing I think iTunes supports a true 1 way sync; updates are relatively painless.

With the photos on my iPad, and no evil iCloudness, LiveFrame.app works. It’s no Picmatic, but it’s there. The developer should go to subscription pricing so they have an incentive to keep it around. There’s zero competition and this app is a perfect fit for subscription (no data lock, nothing to prevent switching).

Note — this slide show doesn’t need a data connection. The images are on the iPad.

So today one Apple thing worked — albeit an old thing. Sort of. That’s pretty good for Apple in 2017. (I can’t believe people are buying the iPhone X. Are they insane?!?)

Sunday, September 03, 2017

Photos.app is as stupid about JPEG Export as iPhoto and Aperture.

Try this experiment.

1. Import a camera produced JPEG into Photos.app. Check the size. Let’s say it’s 6.8MB.

2. Don’t edit the image. Export it as maximum quality JPEG. Check the size. It will be something like 17.2MB.

Even though the image was native JPEG, and it wasn’t edited, Photos.app decompressed and then recompressed it. Adding 11MB of non-value.

Unchanged from iPhoto and, for that matter, Aperture.

There should be a better way. (No, unmodified original is not a better way — because if editing were done, or the original were not JPEG, then you would want the transformation.)

Sunday, June 25, 2017

How I plan to test my Aperture Library against Sierra

It’s almost time for me to move to macOS Sierra, now that the usual post-release beta testing is drawing to a close.

This is what I am doing to test my Aperture Library on Sierra:

  1. Export a small Project as a Library.
  2. Open the small Project and delete its contents. Now it’s an empty shell with my settings in it.
  3. Import my existing Library into it. So everything is written with the latest version of Aperture.
  4. Test with #3.

Apple Discussions have lots of fix and workaround suggestions for early Sierra, but I’m told they are no longer necessary. The things broken in El Capitan and broken in Sierra, but nothing new.