So I started the Google Takeout process because I want to move my photos from Google Photos to Immich.
Google emailed me saying the archives are ready… uh… I have to download 81 zip files, each 2GB big… 😬
Is there an easy way to download all of these files? Or do I have to click “download” 81 times and hope the downloads don’t get interrupted?
This worked pretty well for me, although constructing the cli command took a little elbow grease. This video proved to be very helpful.
Here’s the commands I ended up using:
Testing Upload Process
Before performing the actual upload, test the process with this command:
Actual Upload
Once testing is successful, perform the full upload:
Remove Duplicates
If you’ve previously uploaded photos before syncing your phone, remove duplicates with:
immich-go.exe -server http://[server.ip:port} -key [apikey} duplicate -yes
Excellent! This is my next question.
I’ve already partially synced my Google Photos library by installing Immich on my Android phone and enabling Immich backups. But I see that the oldest photo in Google Photos is way older than what Immich has.
So now I’m worried that when I run
immich-go
with the full takeout archives, I’m going to get a ton of duplicates because half of my library is already on immich.What’s the
duplicate
command? I can’t find it in the CLI…$ immich-go duplicate --help Error: unknown command "duplicate" for "immich-go" Run 'immich-go --help' for usage. unknown command "duplicate" for "immich-go" $ immich-go --help An alternative to the immich-CLI command that doesn't depend on nodejs installation. It tries its best for importing google photos takeout archives. Usage: immich-go [command] Available Commands: archive Archive various sources of photos to a file system completion Generate the autocompletion script for the specified shell help Help about any command stack Update Immich for stacking related photos upload Upload photos to an Immich server from various sources version Give immich-go version Flags: -h, --help help for immich-go -l, --log-file string Write log messages into the file --log-level string Log level (DEBUG|INFO|WARN|ERROR), default INFO (default "INFO") --log-type string Log formatted as text of JSON file (default "text") -v, --version version for immich-go Use "immich-go [command] --help" for more information about a command. $ immich-go version immich-go version:0.27.0, commit:64221e90df743148a8795994af51552d9b40604f, date:2025-06-29T06:22:46Z