Export photos from Google Photos and import into Immich

After installing and configuring Immich, I needed to import the photos I had from Google Photos into Immich.

Fairly simple to do, but depending on the size of your photo collection, it might take a while to process all of your photos after importation.

Export photos from Google Photos

While Google does not make it easy to leave their ecosystem, they do allow you to export your data, including your photos.

Browse to: https://takeout.google.com/

Select Deselect all, then scroll down and check off Google Photos

Google Photos selection in Google Takeout

Scroll down to the bottom and click the Next Step button

Under Choose file type, frequency & destination

Frequency : Export once

File type & size :

File type : .zip

File size : 50 GB

Then click Create export

Google Photos Takeout options

You will get an email from Google, informing you that your Google Takeout is ready. Depending on the size of your photo collection, that email might show up in a few minutes, or a few hours.

Email from Google

Download the file(s) from Google Takeout.

You do not need to extract the files!

Import Google Photos takeout into Immich

After downloading the file(s) for your Google Photos from Google Takeout, we'll use immich-go to import them into Immich.

Generate an API key in Immich

To generate an API key for our Immich user:

Account settings >>> API Keys >>> New API Key

Generate API key for Immich import

Under Permissions, check off Select all

API key permissions

You could use less than Select all, and you should, if you're providing some sort of service to people you don't fully trust. See https://github.com/simulot/immich-go/discussions/1032 for details.

However, in my case, it's just family, and close friends, plus once the API key is used to import the photos, I delete the key...

Download pre-built binary of immich-go

  • Browse to https://github.com/simulot/immich-go/releases and download the pre-built binary of immich-go for your operating system (I grabbed the one for 64-bit Linux).

  • Extract the immich-go binary from the download.

  • Move the immich-go binary to the same folder as your Google Photos takeout zip files.

  • Verify that immich-go works:

./immich-go --version
immich-go version 0.27.0

Start the import

If you are doing this on a remote server, I would highly recommend using something like tmux so the import doesn't stop if you get disconnected.

Assuming that the immich-go binary and the Google Photos takeout zip files are in the same directory, start the import:

./immich-go -l immich2.log upload from-google-photos \
--server=http://immich.nodinrogers.com:2283 \
--api-key=DaTyc238hu2V5Dmq9dkMKQHZ9mYGG9AtmG4Vg7dFyaM \
./takeout-2025*

Details on the above command:

  • immich-go - binary used to import photos
  • -l immich2.log - the -l specifies logging, and immich2.log is the name of the log file
  • upload from-google-photos - pretty self explanatory
  • --server= - the IP (or hostname) of the immich server
  • --api-key - the API key we created above
  • ./takeout-2025*.zip - name(s) of the Google Photos takeout files

Note that the screenshots below were taken at different times in uploading, including test uploads, so you may see a difference in the number of photos

Once it starts, you'll see it processing the photos:

immich-go processing photos

Eventually, you will see that the upload is finished and immich-go displays a "You can quit the program safely." message:

immich-go uploads complete

Check out the photos imported in the Immich server

Once the upload is complete, you can see the Immich server stats showing the imported photos:

Immich server stats

I would recommend that, depending on the size of your upload, you let Immich process all of the photos you uploaded, as it will take some time to run through the various options you configured in Immich.

In my case, I imported 35,000 photos and left it alone overnight.

References

Github / simulot / immich-go
https://github.com/simulot/immich-go

Google Takeout
https://takeout.google.com/