Skip to content

charleszwang/GoogleTakeoutLivePhotosHelper

Repository files navigation

Google Takeout Live Photos Helper

Transform your messy Google Takeout exports into organized Live Photos!

When you export photos from Google Photos, Live Photos get split into separate image and video files. This tool puts them back together and organizes everything neatly.

πŸ’‘ Quick Migration Tip

If you still have access to Google Photos and just want to migrate to iCloud:

  1. Open Google Photos app on your phone
  2. Select a whole month of photos
  3. Share β†’ Save to Device
  4. This tool is mainly for people who've lost access to their photos on Google Photos, such as when you're forced to storage downgrade

πŸ’– Support This Project

If this tool helps you organize your Google Photos, please consider supporting its development:

Donate with PayPal

⭐ Also consider starring this repository to help others discover it!


Python License

Windows GUI macOS GUI Linux GUI

⬇️ Direct Downloads

πŸ”’ Privacy & Security

Your photos stay 100% private:

  • 🏠 All processing happens locally on your computer
  • 🚫 Nothing sent to any servers - completely offline
  • πŸ” Open source - you can see exactly what it does

🎯 What it does

Before: Messy folders with thousands of scattered files
After: Clean folders with Live Photos paired up and other media organized

The tool:

  1. Finds your Live Photos (photo + video pairs)
  2. Puts them back together in one organized folder
  3. Sorts all other photos and videos separately
  4. Removes duplicates (optional)
  5. Creates a clean, organized photo library

πŸš€ Easy Download & Run (Recommended)

You do NOT need Python for the recommended method. Just download the standalone GUI for your OS from the Releases page and run it.

  • Windows: Download google-takeout-helper-gui-Windows.exe and double‑click to run.
    • If SmartScreen appears: More info β†’ Run anyway.
  • macOS: Download google-takeout-helper-gui-macOS.
    • First run: right‑click β†’ Open (to bypass Gatekeeper on unsigned apps).
  • Linux: Download google-takeout-helper-gui-Linux.
    • Make it executable, then run:
      chmod +x google-takeout-helper-gui-Linux
      ./google-takeout-helper-gui-Linux

Alternatively, you can run from source with Python:

  1. Install Python 3.8+ from python.org
  2. Clone or download this repository
  3. Run the GUI:
    python google_takeout_live_photos_helper.py --gui

Cross-platform - works on Windows, macOS, and Linux! πŸŽ‰

πŸ“‹ Setting Up Your Google Takeout Data

IMPORTANT: Before using this tool, you need to properly set up your Google Takeout data:

  1. Download Google Takeout: Go to Google Takeout and export your Google Photos
  2. Unzip all files: Google Takeout gives you multiple ZIP files - unzip ALL of them
  3. Create Takeout folder: Create a folder called Takeout
  4. Merge all exports: Move all the unzipped Takeout folders into your main Takeout folder

Expected structure:

Takeout/                          # ← Your main folder
β”œβ”€β”€ Google Photos/
β”‚   β”œβ”€β”€ Photos from 2023/
β”‚   β”‚   β”œβ”€β”€ IMG_1234.HEIC        # ← Still image
β”‚   β”‚   β”œβ”€β”€ IMG_1234.MOV         # ← Live Photo video
β”‚   β”‚   └── IMG_5678.JPG
β”‚   └── Photos from 2022/
β”‚       β”œβ”€β”€ IMG_9999.HEIC
β”‚       └── Videos/
β”‚           └── IMG_9999.MOV     # ← Cross-folder Live Photo
└── (other Google services data)

πŸ–₯️ Using the GUI (Easiest)

  1. Launch the app (downloaded from Releases). Or run from source: python google_takeout_live_photos_helper.py --gui
  2. Toggle dark mode if the interface is too bright (πŸŒ™ Dark Mode button)
  3. Select your Takeout folder - click "Browse Takeout Folder"
  4. Choose output location - click "Browse Output Folder"
  5. Check "Dry run" to preview first (recommended!)
  6. Click "πŸš€ Process Photos"
  7. Review results and run again without dry run if happy

πŸ“‹ Step-by-Step CLI Walkthrough

If you prefer using the command line, here's a complete example:

Step 1: Prepare Your Data

# You should have a structure like this:
# Takeout/
# β”œβ”€β”€ Google Photos/
# β”‚   β”œβ”€β”€ Photos from 2023/
# β”‚   └── Photos from 2022/

πŸ“² What to do with the output files

You’ll get two files per Live Photo pair:

  • Still photo: .HEIC or .JPG
  • Motion clip: .MOV

Use them like this:

🍎 Apple Photos / iCloud (recommended)

  • macOS: Photos β†’ File β†’ Import… β†’ select everything in LivePhotos/ (drag‑and‑drop works too).
  • For big libraries: turn on iCloud Photos on both Mac and iPhone, import on Mac, let it sync to your phone. Faster and more reliable than AirDrop.

πŸ” Back to Google Photos

  • First get the pairs into the iPhone Photos app (see above), then open Google Photos on iPhone and enable Backup & sync.
  • Keep the app open on Wi‑Fi and power until it says β€œBackup complete”.
  • Desktop uploads of random HEIC+MOV pairs don’t always recreate Live Photos correctly.

(Optional) Make pairs import better into Apple Photos

If Apple Photos isn’t recognizing some pairs as Live Photos, enable:

  • CLI: add --prepare-apple (runs after processing)
  • GUI: check β€œPrepare for Apple Photos import (adds identifiers)”

This writes a matching identifier to each photo/video pair using a bundled ExifTool so Photos can link them reliably. Safe, non-destructive, and skippable.

Step 2: Run the Tool

# Simple mode (recommended) - always try dry run first!
python google_takeout_live_photos_helper.py \
  --root ~/Downloads/Takeout \
  --output-dir ~/Desktop/OrganizedPhotos \
  --dry-run

# This will show you what would be created:
# ~/Desktop/OrganizedPhotos/LivePhotos/     ← Your Live Photos
# ~/Desktop/OrganizedPhotos/OtherMedia/     ← Everything else

Step 3: Review and Run for Real

# If you're happy with the dry run results, run for real:
python google_takeout_live_photos_helper.py \
  --root ~/Downloads/Takeout \
  --output-dir ~/Desktop/OrganizedPhotos \
  --dedupe-leftovers

# Add --verbose to see detailed progress
# Add --show-issues to see potential problems

Step 4: Check Your Results

# You'll now have organized folders:
ls ~/Desktop/OrganizedPhotos/LivePhotos/     # Your Live Photos
ls ~/Desktop/OrganizedPhotos/OtherMedia/     # Other photos/videos

⚠️ Important Notes

Storage Warning

  • Default (symlinks): No extra storage used - just creates shortcuts
  • Copy mode (--copy): Doubles your storage usage ⚠️

Deduplication

  • Enable with --dedupe-leftovers to prevent same file in both output folders
  • Highly recommended for cleaner results

Orphaned Videos

  • Tool automatically detects short videos that might be missing their photo partners
  • Use --show-issues to see detailed analysis

πŸ› Troubleshooting

"No Google Takeout folders found"

  • Make sure you unzipped ALL the download files
  • Check that you have folders named "Google Photos" or "Photos from YYYY"

"No Live Photos found"

  • Your export might not contain Live Photos
  • Check the "Other Media" folder for all your files

GUI won't launch

  • Download the standalone executable instead (no Python needed)
  • Or install tkinter: brew install python-tk (macOS)

🀝 Contributing

Contributions welcome! Feel free to open issues or submit pull requests.

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ”— Related Tools & Projects

Complementary tools that work well with this project:

Why this tool is unique:

  • 🎯 Only tool specifically designed for Google Takeout Live Photos pairing
  • πŸ–₯️ User-friendly GUI unlike command-line alternatives
  • πŸ†“ Free and open source unlike expensive photo management software
  • πŸ”„ Handles the exact problem of split Live Photos in Takeout exports