Script that organizes the Google Photos Takeout archive into one big chronological folder

exif, exif-data, google-photos, google-takeout, json, python-scripts
pip install google-photos-takeout-helper==2.3.0


AUR total Github Releases downloads latest version downloads resolved Github issues commit activity

Google Photos Takeout Helper πŸ“ΈπŸ†˜

What is this for 🧐

If you ever want to move from Google Photos to other platform/solution, your fastest choice to export all photos is Google Takeout πŸ₯‘

But when you download it, you will find yourself with zips with hundreds of little folders with weird .json files inside 🍝. What if you want to just have one folder with all photos, in chronological order? Good luck copying all of that πŸ™ƒ

This script does just that - it organizes and cleans up your Takeout for you 🧹😌

It will take those zips, extract everything from them, set their and file last modified correctly, and put it in one big folder (or folders divided by a month) πŸ—„

How to use:

Since v3.2.0, gpth is interactive πŸŽ‰ - you don't need to type any complicated arguments - just get your zips, run it, and follow prompted instructions πŸ’ƒ

If you want, you can still use it with args (for scripts etc) - run --help to see them πŸ§‘β€πŸ’»

  1. Get all your photos in Google Takeout πŸ“₯

    • "deselect all" and then select only Google Photos
    • deselect all "album folders" - folders with name of some album, and select only "year folders" - folders named like "Photos from 20.." - don't worry, all of your photos are in "year folders" anyway.

    (Note: don't unzip them, gpth will do it for you πŸ˜‰)

  2. Download the executable for your system from releases tab πŸ›’

    • On Windoza: just double-click the downloaded .exe πŸŽ‰ - tell windoza defender that it's safe, and follow prompted instructions 🧾
    • On Mac/Linux: open terminal, cd to the folder with downloaded executable and run it:
      # if you have Mac with M1/M2 chip, you need to enable x86 emulation
      # otherwise, just skip it
      softwareupdate --install-rosetta
      cd Downloads # probably
      # add execute permission for file
      chmod +x gpth-macos # or gpth-linux
      # run it πŸƒ
      ./gpth-macos # or ./gpth-linux
      # follow prompted instructions πŸ₯°

If I helped you, you can consider donating me β˜•

I spent a lot of time fixing bugs and making this work stable πŸ’– - would be super thankful for any donations πŸ₯°

Donate using ko-fi Donate using Liberapay Donate

After exporting πŸ€”

Be aware if you move your photos on your Android phone... ☝

(99% of the times), if you move some files in Android, their creation and modification time is reset to current.

"Simple Gallery" app usually keeps original file creation time when moving and coping (but I don't guarantee it). It's also pretty cool - check it out:

What to do when you got rid of Google Photos? What are the alternatives? πŸ—Ί

  • I really recommend you using Syncthing for syncing your photos and files across devices. It does so through your local Wi-Fi, so you're not dependent on any service or internet connection. It will also keep original file creation date and metadata, so it resolves Android issue that I mentioned before.

  • If you want something more centralized but also self-hosted, Nextcloud is a nice choice, but its approach to photos is still not perfect. (And you need to set up your own server)

  • Guys at Photoprism are working on full Google Photos alternative, with search and AI tagging etc, but it's stil work in progress

Other Takeout projects

I used this tool to export my notes to markdown - you can then edit them with any markdown editor you like :)

Where is the Python script 🐍 ??

Yeah, the whole thing got re-written in Dart, and now it's way more stable and faster. If you still want Python for some reason, check out v2.x - in releases/tags

TODO (Pull Requests welcome):

  • GPS data: from JSON to Exif - Thank you @DalenW πŸ’– still thank you, but it is now missing in the Dart version
  • Writing data from .jsons back to EXIF data
  • Some way to handle albums - THANK YOU @bitsondatadev 😘 πŸŽ‰ πŸ’ƒ