Using the OS X Photos app to archive photos and videos from iOS devices

As soon as Apple released the new “Photos” app as part of OS X Yosemite 10.10.3, I wanted to see whether the app could be used along with iCloud Photo Library to archive photos and videos taken on iOS devices on to the Mac wirelessly, without any data loss or format conversion.

Since the introduction of iCloud I do most phone-related tasks wirelessly, rather than via iTunes. I install software updates wirelessly. I backup my iOS devices to iCloud, not my Mac. I sync my calendar, contacts, bookmarks and other data via iCloud or Dropbox.

The only time I still physically connect my phone to my computer is when I need to copy photos and videos from the phone, to archive or edit them in another application, which is a bit of a pain.

Of course, not everyone will want to archive their photos and videos—they might want to just keep them all in their iCloud Photo Library. But that uses up iCloud storage, which costs money. At some point, if you use iCloud Photo Library, there will probably be photos and videos you want to remove from your online library, but not actually delete—in other words, you’ll want to archive them.

Until now, I’ve archived photos and videos using the Apple utility Image Capture, which has been around for years. Connect the phone to the computer, run /Applications/Image, and it displays all the photos and videos on the phone—then simply drag and drop them into Finder to archive them.

Can the same thing be achieved wirelessly using the Photos app? It seems that it can, as long as you follow these steps:

  • Ensure iCloud Photo Library is enabled on both the iPhone and Mac
  • Enable “Download and Keep Originals” on the iPhone, and “Download Originals to this Mac” on the Mac
  • Once the photos/videos have synced, then in the Photos app:
    • to export a single photo/video, open it and choose File > Export > Export Unmodified Original…
    • to export multiple photos/videos, click on the Albums tab and open the album they are in (e.g. All Photos), then shift-click or marquee-select the ones you want to export, then choose File > Export > Export Unmodified Original…

The binary files exported from the Photos app in this way are identical to the files exported the old way over USB using the Image Capture app, with the added bonus of being transferred wirelessly instead of having to physically connect your device.

However, if you export a photo/video by simply dragging the image out of the Photos app, then the resulting file is not identical to the original. In particular:

  • the overall file size is slightly smaller (for example, a 2 MB photo shrunk to 1.7 MB)
  • for videos, the file size is smaller and the extension is changed from .MOV to .m4v
  • the file has the created/modified timestamp of when the export was made, rather than when the photo/video was taken (although the correct timestamp is still present in the image metadata)
  • location data is missing, unless you have Photos > Preferences > “Metadata: Include location information for published items” enabled, which might not be a good idea

All of these issues are avoided by using File > Export > Export Unmodified Original: the resulting file is binary identical to the original on your phone, and has the timestamp of when the photo/video was taken.

I confirmed the files are identical for both photos and videos using the “diff” command. Here’s the output for a video file I tested—the first line compares the Image Capture file with the one exported from Photos using Export Unmodified Original, and the second compares the Image Capture file with the one dragged from the Photos app:

$ diff IMG_2565-dragged-from-image-capture.MOV IMG_2565-exported-from-photos.MOV 
$ diff IMG_2565-dragged-from-image-capture.MOV IMG_2565-dragged-from-photos.m4v 
Binary files IMG_2565-dragged-from-image-capture.MOV and IMG_2565-dragged-from-photos.m4v differ