My friend Diane was visiting her granddaughter, and, as one does, she was giving tech support to her daughter-in-law. She wanted to bounce ideas off of someone so she brought me in with the “phone a friend” option.
The problem to be solved was one I hadn’t given much thought to, but which I suspect many people face. Her daughter-in-law had a 256GB MacBook Air, and as often happens, her Photos Library wouldn’t fit on her internal disk.
If you’re not intimately familiar with iCloud Photo Library, let me explain the two options. You can choose to have full-sized images download to your device or you can choose optimized images. The optimized images option gives you thumbnails of every photo in your library, and when you select a thumbnail, it downloads the full-sized image. It also has some other magic sauce that is supposed to keep your most recent and most recently accessed images in full size for quick retrieval. If you’ve got a good Internet connection, it’s kind of the best of both worlds – all of your full-sized images are available on-demand but you don’t pay for local storage for all that data.
Since Diane’s daughter-in-law has only a 256GB drive in her Mac, she has been running with optimized images with iCloud Photo Library. This works perfectly for her. But she realized that she doesn’t have a backup of the full-sized images as they only exist on Apple’s servers. She wanted a way to back up these images locally, which is a very reasonable thing to expect to be able to do.
If she was a geek, she’d probably also have a Mac mini or an iMac with a bigger drive where the full-res images could be stored, and she could run backups from that machine. But how do you back up the full-res images if you don’t have a bigger Mac onto which to download the images? This was a question I’d never pondered before.
Before calling me, Diane tried to change the Photos Library on the Mac in question to full-sized images, since she really had no idea how big the library actually was. It ran overnight and eventually stopped when it ran out of disk space. This put the MacBook Air in a bad state where doing just about anything caused an alert about not having enough disk space. Diane flipped it back to optimized, but it didn’t obey until she rebooted the Mac. The MacBook Air was back in fighting shape but the question of how to back up the photos was still in play.
Diane and I noodled the problem together. We first walked through whether there was some way to download the photos to an external drive. Technically it is possible to have your Photos Library on an external drive, but it’s one of those tricks that you have to fuss with all the time, and she’d have to always have this external drive tethered to her notebook. Not really a clean solution.
Diane asked whether there was some way to use iCloud.com to help with this problem. I did some experiments and found a solution that definitely will work. It’s a bit of a tedious process, and it does involve a very nerdy step, but no bit of it is technically difficult. We’re going to download all of the photos from icloud.com to an external drive, but we have to do a couple of things first.
Step 1: Change the location of downloads in your web browser
By default, your browser is probably set to put any downloads into your Downloads folder. Since our goal is to get these full-sized images onto an external drive, we need the downloads to go to the external drive. I’ll use Safari as an example of the steps to achieve this.
In Safari, open Safari Preferences, and on the General tab you’ll find a dropdown for File Download Location. Change it from its current location (probably Downloads) to the option “Other…” and then choose the external drive.
Step 2: Log into iCloud.com
Next, navigate to icloud.com, authenticate, and open Photos. We want to make sure all of the photos in the library are available, so on the left sidebar, make sure that Photos is chosen under where it says Library, not Favorites or any other option.
In the toolbar above the images, you’ll see a slider to change the size of the thumbnails. We’re going to be selecting a lot of images, so I’d suggest sliding all the way to the left for the smallest thumbnails possible.
Step 3: Download Images
In the upper right, you should see five icons.
- A cloud with an up arrow that allows you to upload photos to iCloud Photo Library
- A plus button that allows you to create albums and folders
- A square with an up arrow that allows you to share images
- A cloud with a down arrow which allows you to download images
- A trash can to delete images
You’ve probably guessed that this cloud with the down arrow icon is what we need for the final step. If you hover over the cloud with the down arrow, you’ll see a very tiny grey downward chevron. Tap that nearly invisible chevron and you’ll be offered the option to download unmodified Originals, or Most compatible including edits.
If you’ve carefully edited your photos, by cropping, fixing lighting, etc, then you definitely want to change it to Most compatible. If you don’t use the downward chevron, the downloaded images default to unmodified originals and will give you the images exactly as captured or imported.
Now that we know how this works, I would suggest selecting just a few images at first, and then downloading in the format you desire. Verify that the downloads to your external drive are there and are of the expected size, before going on with the big download.
Strategies for Downloading with Organization
Once you’re confident that the process works, it’s time to start the big download. Technically you can use Command-A to select all of your photos and then tap that download icon, and if absolutely nothing goes wrong for the duration of the work, you’ll be golden. Do you feel lucky? I didn’t think so.
Ideally, it would be nice if we had a way to easily view year by month by month or even year by year in icloud.com, but they don’t give us that option. You might think you could create smart albums for each year in the Apple Photos app and then use those to narrow things down in icloud.com, but smart albums don’t sync icloud.com.
In Apple Photos on your Mac, you could create smart albums by year, and then create regular albums by year and drag and drop the photos from the smart albums to the regular albums. Create year folders on your external drive as well. This process would really help you have organized photos on this external drive.
If you’re as particular as I am, you might even make albums by month in this process and put them in year folders, but maybe that’s just me.
Whether you export a single image or a range of images, the download you get from exporting from iCloud.com will be a zip file entitled “iCloud Photos.zip”. When you unzip the file, you’ll have a folder called iCloud Photos. This would make it easy to change the title right after a download to say “2016-05” for May of 2016.
The two options we had to download from iCloud.com were “originals” or “most compatible” which included any edits we’d made to our images. “Compatible” means not Live Photos. Instead of Live Photos, you’ll find two files: an HEIC which is the key photo from the Live Photo, and a second file of the same file that is the teeny video from the Live Photo. It’s not ideal, but as a backup, this is still pretty good.
The Creation Dates are All Wrong!
But there’s a problem with this whole process. For yet another reason I cannot explain, Apple does not preserve the capture dates for the images as the creation date for the downloaded files. All of the creation dates of the image files will be the date you downloaded them instead of the date the photo was taken. 🤦🏼♀️
As an added curiosity, the modify dates on all of the files was 4 hours in the future!
The good news is that image files have what’s called EXIF data embedded in them, and one of the data items is the original capture date. So the image knows when it was taken, it’s just that macOS is using the date the image was downloaded as the creation date. We need to figure out how to change the file creation date to be the image’s original capture date from the EXIF data.
There are a lot of tools out there with nice graphical user interfaces (GUIs) that will help you mess around with the EXIF data. Most of them let you change the EXIF data, but some let you extract the data, and some allow doing bulk actions on many files at once. Virtually all of these tools cost money, and I wasn’t willing to buy them all in order to make a recommendation on which one you should buy.
Instead, I’m going to suggest a very easy and free solution to this problem. It’s also super nerdy. But it’s EASY nerdy. We’re going to use a free command-line tool in the Terminal called exiftool.
Step 1: Install Homebrew
We’re going to install exiftool using a package manager called Homebrew from https://brew.sh. Open the Terminal (in Applications/Utilities). Copy and paste the following to install Homebrew (or follow the instructions at brew.sh):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
You may see a lot of glop go by onscreen and unless you see giant warnings that everything went wrong, you can safely ignore all the glop.
Step 2: Install exiftool
The joy of Homebrew is that to install tools, you simply type
brew install in the terminal, followed by the name of the tool you want to install. So now type:
brew install exiftool
Again, you may see glop on screen but don’t worry your pretty little head about it.
Step 3: Changing the creation dates to match the capture date
Believe it or not, we’re ready to start changing the dates of the image files to match the capture date stored in the EXIF data of the images.
Thanks to a contributor to the exiftool.org forums named Stargeek, the very simple command to make this work is the one line:
exiftool '-FileCreateDate<CreateDate' '-FileModifyDate<ModifyDate' -api QuickTimeUTC /path/to/files
Typing the path to the files is a really annoying, especially if your folder names have spaces in them (you have to escape out the spaces with backslashes or put the path in quotes). There’s an easier way than typing it out. Copy and paste into the Terminal just the first part of the command:
exiftool '-FileCreateDate<CreateDate' '-FileModifyDate<ModifyDate' -api QuickTimeUTC
Add a space to the end of the command but don’t hit enter. Now open a Finder window to the folder containing your downloaded images. At the top of that window, you should see the name of the folder created by opening the zip file from icloud.com. If you haven’t changed it, the name will be iCloud Photos. Hover over the folder title in the toolbar of the Finder window for a second (or click on the name if you’re impatient like I am), and a little icon of a folder will be revealed. This icon is called the “proxy icon”, and it identifies the path to the folder.
When you can see the proxy icon, simply drag it onto your Terminal window and it will pop the full path into the command we just typed. My command looked like this when I was done, with the long, annoying path to the files that was automatically entered by dragging the proxy icon:
exiftool '-FileCreateDate<CreateDate' '-FileModifyDate<ModifyDate' -api QuickTimeUTC /Users/allison/Documents/deleteme/new\ photos\ test/iCloud\ Photos
Now hit the enter key to execute the command, and in short order, you will see the dates of the files begin to change to their true capture date. Keep in mind that some images don’t have the capture date available. Screencaptures don’t know their capture date, and obviously, images you’ve scanned in don’t know their original capture date either unless you have added it manually.
I put a few images in the shownotes to illustrate how your image files will look before and after pasting in this one-line command. The first two files are still showing today’s date because they were both screenshots, but the rest of the files have the correct date and time. That little
-api QuickTimeUTC bit is what adjusted the time correctly.
I did warn this was nerdy, but you really only had to copy and paste three commands into your Terminal and you were done, it cost you no money, and it actually works!
I enjoyed the journey of figuring out how to do this, but it is really a bummer this is such a complicated process. I wish Apple would make it a lot easier. Part of me is truly hoping I missed something really obvious and one of you will write to me and say, “Well actually Allison…” and give us a far easier solution.
After I wrote this up, I did get a “Well actually Allison…” from Teddy in the comments section of the blog post.
He pointed out that you can download all of your photos from applied.apple.com. The path is:
Data & Privacy > Manage your Data & Privacy > Request a Copy of your Data > iCloud Photos
He wondered whether perhaps this method of downloading the images might correctly put the capture date as the file creation date. I took a look at the process and in the last step, Apple explains that they’ll be sending you chunks of specific size (1, 2, 5, 10, 25GB). I considered pushing the button, but my Photos Library is 774GB and I didn’t think I’d live long enough to get that download. I wondered if it might send me a chunk at a time. Instead of testing the idea, I reached out in Slack and asked if someone with a much smaller library might try it for me. Both @NuclearJon and @MacLurker said they had small libraries and would give it a try.
Instead of Apple downloading a chunk at a time to them, Apple said they’d prepare the data but it would take up to SEVEN DAYS to prepare! @MacLurker’s Library is only 2.5GB but she got the same message as @NuclearJon.
Luckily it didn’t take 7 days (but it did take 3 days) for @MacLurker’s data to arrive. Sadly when she opened the zip file, all of the file creation dates were today’s date just like with the download from iCloud.com, and they even had the modified date four hours in the future like with iCloud.com downloads.
She did get one more interesting bit. They shipped her a CSV file that contained all of the image names and the import date of each file. I have no idea why you’d want or need to know the date an image was imported but, they give it to you anyway.
If you have a large Photo Library, downloading from appleid.apple.com might be an easier way because you can just push the button and wait, instead of doing a select all and downloading in real-time. If you’re an organized person like me, I still think doing a year or even smaller chunks using Smart Albums dragged into real albums from Photos is a better way to go.
I really want to thank @MacLurker and @NuclearJon for checking into this and especially Teddy for discovering this idea in the first place.
This Just In
UnderTheLionRock (in the comments below) pointed us to a Macworld article where reader Todd had found a much more elegant and repeatable solution.
The basic idea is to create a second user account on the small-disk Mac, and connect it to your iCloud account, but instead of having it save your images and videos to the internal drive, point it to an external drive. Presuming you buy a big enough external drive, you can then tell it to download full-sized originals to this external Photos Library. Every time you want to make a backup of your full-sized originals, simply switch accounts, connect the drive, wait for it to synchronize and you’re good to go. This is a brilliant solution and far better than anything I thought up. Thank you to UnderTheLionRock, Macworld reader, Todd, Macworld author Glenn Fleishman, and the entire community for pitching in on this interesting problem to be solved.