How to backup your family photo archive for free for life (only works before 1 June 2021)

Peter Troshin
10 min readFeb 8, 2021

I am sure you have a family photo archive with thousands of photos, years of memory. Hopefully it’s all backed up but a secondary backup is never a bad thing. You can save all of your memories for free to Google Photos till the 1 of June 2021, so hurry up before it’s not too late!

I am sure you know that you can store as many photos and videos as you like on Google Photos service. If you already have all your media on Google Photos — congratulations! Many of my friends are like this, because the only camera they use is a smartphone camera and a Google Photos app takes care of backing the pictures up. However, I personally use more than one not-so-smart camera and have a bunch of pictures that have been accumulating on my Synology drive for many years. On the same drive there is a collection of 35mm films that I digitised a few years ago. Of course, this is all backed up to an external cloud drive. However, I do not consider this sufficient. If you read small text on pretty much every cloud drive provider you will learn that while they are doing their best to avoid the data loss, you cannot count on them completely. If you are lucky your data is stored redundantly, that is when each byte is duplicated on different physical drives. However, more commonly only one copy of your data exists on the cloud and should the physical disk containing a portion of your data fail, you will lose some of your files. Therefore, in most cases you cannot rely on a single cloud backup for your media.

What I said above about the Google Photos service is not entirely accurate. It only offers unlimited storage for images below a maximum resolution of 16 MP and videos below full HD 1080p resolution. I do not think it’s possible to store any media in RAW camera formats under free tier. So, clearly if you are a serious photographer, Google Photos cannot be your only backup system. However, I think in 30 years from now, when I want to show my pictures to the grandchildren it would not matter what format they are in. But it would matter if the pictures are still around and are easily accessible. So, Google Photos is likely to be up to the job. I think 16MP is quite a generous resolution for the pictures and full HD is not bad for the videos either. In fact, a few years ago you were lucky to have a camera capable of producing such images/videos. So, for many pictures digitised from film or taken before the era of high-resolution cameras, this is plenty.

Unfortunately, this is changing from 1 of June 2021. Google Photos service will no longer offer any free storage for the photos or videos (outside of 15GB allowance that includes all other data that you might have under your Google account). Good news is — you still have some time before that day. So, what can you do?

Prepare your media

First you need to prepare your pictures. If your media were not prepared it could be really difficult to find a particular picture among many. This is because Google Photo service will try to arrange all of your media chronologically.

Google Photos Timeline

It does that by looking into metadata in each of your pictures. There are many formats and types of metadata, but the one most widely supported is EXIF. In essence, image metadata is a small piece of structured information about the media, like when and where it was taken, camera, aperture, shutter speed, ISO etc. You can even embed your name and address into the metadata if you want it.

If you only have pictures taken by the mobile phone then in most cases you are ready to upload them to Google Photos without much preparation. This is because mobile phone would write the date when the pictures were taken as well as the geographical coordinates (depending on the settings) into each picture’s metadata. However, if your pictures were not taken by the digital camera, or even if they were, you might need to do some work. Most digital cameras do to not come with GPS, so they do not know where the pictures were taken. Most do not synchronise the clock with any time server and you need to remember to set the correct time on the camera. Finally, if you have digitised slides, or negatives, that come from pre-digital age, you have a lot of work to do before you are ready for upload. Why is that? This is because digitised photos would not have correct metadata in them — the date on the pictures would be the date when you have scanned them, not the date when they were taken, and there is likely to be no location at all.

I would highly recommend you check and write into each picture at least the date when the image was taken before uploading. Some common video formats, like MP4 also support metadata, and Google Photos can read it. Thus, you can also do that for these video files.

While many photo editors can read metadata only a few can write it, and even fever write it in a way that Google Photo service understands. My favourite tool for working with metadata is exiftool — it’s an excellent tool written and maintained by Phil Harvey. I use exiftool to correct the dates for all my pictures and videos in MP4/MOV formats as well as to set the location. I would love to do it for other kind of videos that I have, but unfortunately, I am yet to find the tool that can write that kind of information into more exotic video formats.

Here is a couple of examples:

To set the same date “2008:09:05 14:00:00” on all the pictures in the album located at /path/to/the/album use this command:

exiftool -overwrite_original_in_place "-DateTimeOriginal=2008:09:05 14:00:00 -ModifyDate=2008:09:05 14:00:00" "/path/to/the/album"

I like setting at least two dates for the files the DateTimeOriginal and the ModifyDate and this command does exactly that. Option overwrite_original_in_place instructs exiftool to avoid creating a backup copy of the modified files. It might be a bit risky, but I trust the tool as it was working for me without any issues, and I do not want to deal with the backups later on. Still initially for you it might be a good idea to run the command without -overwrite_original_in_place flag, to ensure exiftool processed your files without any issues.

You can also add the location where the picture(s) were taken if you know it. Here is how I do it for digitised 35mm films. I look up the longitude and latitude for the picture(s) on Google Maps. For this I simply find and zoom in on the place where the photos were taken and right click on the map. First thing in the drop-down list that appears is the pair of coordinates. Say the coordinates are latitude 40.689 and longitude -74.0445, I than write them into my pictures with the following command

exiftool -overwrite_original_in_place -GPSLatitude*=40.6892 -GPSLongitude*=-74.0445 "/path/to/the/album"

Of course, this is quite a coarse-grained approach, but I find it is too much of a hassle to look up every picture location. I am happy if I know what city the pictures were taken. You can do the same with your MP4, MOV and some other video files.

If you possess an Android phone and had your Google Location history enabled, you can take that data from Google (make sure to select KML format) and use it to geotag your pictures.

exiftool -overwrite_original_in_place -geotag="path/to/the/LocationHistory.kml" "path/to/the/album"

After this operation you would have an accurate location written into your pictures, assuming you had your phone with you when you were taking the pictures and the digital camera date time matched your phone’s and was recorded into the picture’s metadata. You can do the same for MP4 videos

exiftool  -geotag="path/to/the/LocationHistory.kml"  -overwrite_original_in_place "-xmp:geotime<createdate" -ext mp4 "path/to/the/album"

This command is telling exiftool to attempt to write geotags into any MP4 file under path/to/the/album directory, use locations from the LocationHistory.kml file and use EXIF create date of the MP4 file for matching. If for some reason the media you are trying to geotag does not have create date in its EXIF section you can use a different metadata date time field for geotagging. I find metadata for video files to be rather patchy or missing altogether. To check the metadata for media file you can use something like this

exiftool -s "path/to/the/media"

If your camera date was not correct, and that resulted in an incorrect creation time and date for your pictures, you have two options when it comes to geo tagging. You can correct the creation date of your pictures using exiftool or you can tell exiftool to add or subtract a few hours from the time the pictures were taken. Use “-geosync=(-)hh:mm:ss” parameter to the above commands to achieve that, where hh:mm:ss are hours, minutes and seconds to match to the location on your location history timeline. You can see more example of geo-tagging on Phil’s website

You can check if your pictures/videos have geo-location already using this command

exiftool -location:all -n  "path/to/the/album"

exiftool is very capable and can help you with a lot of things so check out website for more recipes.

At the moment, Google Photos shows the location of each picture/video but that is about it. I imagine it would be nice to be able to see where all my pictures were taken on the map, be able to zoom in and explore. I think it’s just a matter of time before Google implement similar. Once they have transitioned to pay for use model, they would be competing with a lot of other players in this area and would have to differentiate.

Upload your media to Google Photos

Now that your media is properly dated and possibly geo-located, you are ready to upload it to Google Photos. There are a few pieces of software I know of that can do that

  1. Backup and Sync
  2. Google Photos app for Android and IOS
  3. Google Photos web interface.

I personally do not like any of them. Using 1 and 2 you can no doubt sync the media files to Google Photos, but you have absolutely no control over how this is done. Maybe I am old fashioned, but I like to organise my pictures in folders and treat each of them as an album. If you use tools 1 or 2, all your pictures are uploaded in bulk and you are going to lose all of your folder structure completely.

This leaves only the third method, because using it, it is possible to preserve the organisation by creating albums for each media folder. However, I find it to be rather labour intensive. I have a few hundred folders, which I need to turn into the albums and sync to Google Photos and I do not want to create each one manually.

Recently I discovered a new open-source tool called gphotos-uploader-cli that does an excellent job of preserving your album structure and uploading media to Google Photos. It is using the official Google Photos API for this job. While the tool is in alpha and comes with a number of limitations, I have already successfully uploaded ~30K files to Google Photos. Also, the tool does not resize your media to fit into Google Photos free tier, so initially you would need to purchase a bit more storage from Google, so you can upload your media in original quality and then ask Google to resize — Recover storage.

You can only ask Google to recover storage once in 24 hours, so size your disk appropriately. I opted in for 100 GB, as my upload speeds are not that great. There is no need to keep paying for the extra space after you uploaded all the files, you should be able to compress them all into the free tier.

By default, gphotos-uploader-cli only uploads compressed pictures that end with low case extension, like jpg, png and the likes. Before starting to upload my pictures, I did not release what a zoo of different file types I had in my photo collection, chances are yours is the same. Therefore, I found it is best to change the defaults to include all file types and then exclude what you do not want to be uploaded. Here is an example of config that worked for me

Jobs:[ {
SourceFolder: /Volumes/PHOTOS_NEW
CreateAlbums: folderName
DeleteAfterUpload: false
IncludePatterns: [ "_ALL_FILES_" ]
ExcludePatterns: ["**/*.xml", "**/*.XML", "**/*.original","**/*.auh", "**/*.AUH" ]

The above is the configuration fragment that you might want to customise. It is telling gphotos-uploader-cli to take all the files from /Volumes/PHOTOS_NEW except the files ending with .xml, .auh or .original extensions, originals will not be removed after the upload is completed.

Finally, Google Photo albums only give you one level of grouping. In other words - it would work well, if you do not have subfolders. If you have subfolders, then you would lose all relations between the parent folder and the subfolder while uploading to Google Photos. Fortunately you can model deeply nested folders using CreateAlbums: folderPath option of gphotos-uploader-cli. In such a case the album name would contain all of it parent names. For example, if you have a photos/London folder, and two subfolders Shard and Chinatown, after uploading them to Google Photos you would have photos/London, photos/London/Shard, photos/London/Chinatown albums. Not ideal, but a real saver if you tend to organise your photos into deeply nested folder hierarchies.

Good luck with saving all of your memories and let’s hope that Google will keep its promise of free storage in the years to come, but even if it is not, you have your archive well organised :-)

P.S. I am not associated with any of the products, tools or services I mentioned in this article, and I have not been paid to promote them. This article contains my personal opinion only.