Part One. Migration to iCloud

Overview

Recently we have decided to move all our data from Google Suite of apps to iCloud. Over the years, we moved all our data (files, emails, photos) from iCloud, Dropbox and Microsoft cloud services to Google. Even though Google Suite was suitable for our business and personal use, with closing our photo business, we no longer needed all the services. In addition, we have been Apple product users for more than a decade, and with the introduction of the Apple One subscription made sense for us to consolidate everything in iCloud.

I have separate articles where I wrote about our migration journey to iCloud:

  • Part Two. Transfer Google Drive Files to iCloud
  • Part Three. Migrate Google Emails to iCloud Custom Domain

The main question I have to answer was: How to transfer all the photos from Google Photos to iCloud Photos?

iCloud Photos

iCloud Photos, also known as Apple Photos, is one of the iCloud services that give you an option to keep your photos and videos securely stored in the iCloud.

Migration Options

Many search results describe steps on downloading photos from Google Photos and uploading them one by one or in bulk to iCloud Photos.

I checked most of the articles, and there are three options for photos migration:

  • Enabling the “Google Photos” folder on the Google Drive
  • Doing Album by Album download and upload to iCloud
  • Or using Google Takeout (this is the option I went with)

Enable Google Photos folder on Google Drive

When I am writing this article, December 2021, the first method doesn’t work anymore. There’s no option to enable the “Google Photos” folder on Google Drive. I checked it in the web browser, Google Drive app for Mac and Windows, and iOS. It seems that Google took that option away some time ago.

Download Separate Photo Albums

The second option is to do Album by Album download from Google Photos. I have thousands of photos and videos in dozens of the albums, and it will take some time and a lot of clicking. One more thing to remember is a limit of 500 photos to download at one time from the Google Photos website.

Google Takeout Service

Over the last 10-15 years, I have accumulated more than 90k photos and videos and roughly 30 shared and personal albums. I’ve scanned many images from 90x and uploaded them to Google Photos as well. So yeah, you can tell I’m into photography. With that being said, both options mentioned above were not viable to me.

The last option in the list is to use the Google Takeout service. The official Google Photos support article talks about their Takeout service. This was promising because it allows me to do the bulk download of all the data I have in my Google account.

I was excited and thought it would be easy to migrate all the photos to iCloud.

I was surprised to see that all the photo and video files were split in two - one file is an actual photo or video, and the second has the same name but JSON extension. I’ve checked one of the JSON files and found that all photo/video file EXIF metadata was stored there. So the actual photo/video file was stripped of some of that metadata, and most importantly, the creation date was altered to one when a Takeout download was done.

That was not acceptable, and I needed some way of combining those two file types together for all my library.

Fixing Photo EXIF Metadata

Looking through the Internet didn’t give me many details until I’ve found this article https://legault.me/post/correctly-migrate-away-from-google-photos-to-icloud. The author took a well-known tool ExifTool and wrapped it around in the friendly and easy-going app - Metadata Fixer. You can download it and try it out on the first 100 photos. You’ll need to pay around US$30 for the full-featured version of the app.

The app’s author was generous enough to provide a command-line that the app uses in the background, going through all the folders and files from Google Takeout and combining EXIF metadata with actual files.

First, you will need to download and install a free tool - ExifTool by downloading it from the official website. And after that, run the following command line, providing the path to your Google Takeout unzipped folder in the DirToProcess variable below.

This is what I did with my photo library. First, I downloaded all the archives with photos and videos. After that, unzipped them and ran the following command line:

1
exiftool -r -d %s -tagsfromfile "%d/%F.json" "-GPSAltitude<GeoDataAltitude" "-GPSLatitude<GeoDataLatitude" "-GPSLatitudeRef<GeoDataLatitude" "-GPSLongitude<GeoDataLongitude" "-GPSLongitudeRef<GeoDataLongitude" "-Keywords<Tags" "-Subject<Tags" "-Caption-Abstract<Description" "-ImageDescription<Description" "-DateTimeOriginal<PhotoTakenTimeTimestamp" -ext "*" -overwrite_original -progress --ext json <DirToProcess>

Conclusion

It took some time to go through all the folders and files, but in the end, I’ve received my files with correct EXIF data that I was able to import to the iCloud library on my MacMini.

Happy dance, I have all the photos and videos moved to iCloud Photos.