Wednesday, March 06, 2024
Aperture will launch on an M2 Air running Ventura 13.6.3 and will browse an existing Aperture Library.
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:
- Remove previews for all images without adjustments including RAW.
- 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.
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
- Nothing happens. You select images, click done and you don't get the usual save all vs save selected dialog.
- 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.
exiftool -tagsfromfile ./iphone_burst.jpeg -makernotes ./target_photosexiftool -G ./target_photos/gopro_burst_1.JPGexiftool -BurstUUID="$(uuidgen)" ./target_photos -overwrite_original_in_placeexiftool -BurstUUID ./target_photos
- In Aperture eliminate all but one image for each burst (as above).
- Use keywords to tag these images.
- Revert to original and remove previews.
- Review version names and update filenames to match version names with a distinctive filename suffix like _iPhoneBurst.
- Export as test library
- In test library open package and view folders of masters and identify images.
- 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/'.
- Move Aperture test library to Monterey machine and convert to Photos Library.
- Review behavior.
- Created test library
- Installed ExifTools DMG, no Perl install required
- Found that iPhone non-burst images lack the BurstUUID Tag completely
- ExifTools can't remove individual tags in MakerNotes but it's possible to remove the entire MakerNotes: exiftool -MakerNotes= noMakerNotes.jpg
- 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.
MicroBurstTest NoBurstUUIDRebuilt: FAIL with Photos ConversionMicroBurstTest: PASS with PowerPhotos Conversion, 4 images in burst, can editMicroBurstTest NoBurstUUID: PASS with PowerPhotos Conversion 4 separate photosBurstTestLibrary 2: FAIL with PowerPhotos Conversion, image selection bug.
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.
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 😳.
- Remove all flags from images.
- Empty rejected and trash
- Regenerate previews for my Video search folder for which many were lacking previews for some inexplicable reason.
- Document photo count: 57,518 items
- Update previews - this always seems to require regeneration for about 1300 JPEG for no good reason
- Keyword cleanup - review the keyword hierarchy
- Run repair database (again) - recheck image count, check for creation of "recovered ..." album/project. (no changes found).
- Update Aperture Vault.
- Lock Current.aplibrary to prevent further changes to it.
- Unlock Current.aplibrary and rename it Current_20231016.aplibrary
- Run: exiftool -r -overwrite_original -P -progress -MakerNotes= -if '$BurstUUID ne "" ' ./Current_20231016.aplibrary
- Run PowerPhotos Conversion
- 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".
- Verify current system library has all images local.
- Organize current system library so all albums are in one folder
- Backup current system library.
- search for album in Photos search.
- 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)
- Decide if there's a folder I should create to group things. If not then delete keyword.
- 2012 post on iPhoto to Aperture - video issues
- iPhoto 8 to Aperture 3/17/2012
- Aperture wouldn't show iPhoto event/album comments in shared libraries 1/12/2012
- Video format choices sucked in 2011 too. 7/2/2011 (How should I?)
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)
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:
- 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.
- Flatten the keyword hierarchy (the marvelous hierarchy is from a time when giants walked the earth).
- Regenerate images from RAW (this will take eons and is high risk).
- Be sure image locations and face recognition (never worked) are turned off.
- Simplify all smart albums not supported by Photos.app.
- Create an empty shell of current Library, then use that to import all images from past Library. Confirm everything is correct.
- Rebuild database to confirm no errors.
- Per Apple’s migration directions, create full-sized “previews”.
- Ensure iCloud is empty of images and that Photos.app destination library is empty with no iCloud sync. Disconnect from network.
- Import into Photos.app
- Validate.
Update 2/17/2020: Avalanche claims ability to migrate from Aperture to Lightroom (Mojave and up). I'm looking for reviews.
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.)
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):
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:
- Export a small Project as a Library.
- Open the small Project and delete its contents. Now it’s an empty shell with my settings in it.
- Import my existing Library into it. So everything is written with the latest version of Aperture.
- 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.