Skip to content

burgdev/immichporter

Repository files navigation

Immichporter

Immichporter

Import your Google Photos structure and sharing info into Immich — metadata only, no image data.

Documentation | PyPI


Warning

  • Still experimental: Google Photos export works in some cases, but stability issues remain.
  • Only works in English

Immichporter retrieves metadata not available in google takeout, including shared albums, assets, and shared users. You can use this data to update assets in Immich, re-add users to shared albums, and even move assets to their correct owners.

Important

  • This tool does not download any images from google photos. It only extracts the information into a local database.
  • Make sure to manually save all shared pictures in google photos before running a takeout.

Use google takeout to export your google photos assets and immich-go to import the data into immich.

Installation

Run it directly with uv (recommended):

uvx immichporter -h

or install it:

Using:

uv add immichporter

Or with pip:

pip install immichporter

Usage

NOTE: You need to import the assets into immich first, before running photos sync to immich.

# Show help
immichporter --help

# login is required the first time, the session is saved
immichporter gphotos login

# add all albums to the database
immichporter gphotos albums

# add all photos for each album to the database
# it can run multiple times and only processes the not fully processed albums again
immichporter gphotos photos

# multiple runs might be needed until everything is correct,
# you can check with if every album is fully processed
immichporter db show-albums --not-finished
# run again
immichporter gphotos photos --not-finished

# edit/update users
immichporter db show-users
immichporter db edit-users # select which users should be added to immich

# see the database with https://sqlitebrowser.org
sqlitebrowser immichporter.db

# !! CAUTION: create a backup of your immich database before running this commands !!

export IMMICH_ENDPOINT=http://localhost:2283
export IMMICH_API_KEY=your_api_key
export IMMICH_INSECURE=1

# this steps are needed to get the immich ids into the 'immichporter.db' sqlite database
# and create non existing users and albums in immich
immichporter immich update-albums
immichporter immich update-users

# delete ablums (optional) if you want to start over
# !! this delete all albums in immich !!
# this is only needed if you have different album names in immich
immichporter immich delete-albums

# sync albums to immich (create albums and users, add assets to albums)
immichporter sync-albums --dry-run  
immichporter sync-albums

TODO

  • get all ablums from gphotos
  • get all metadata from photos inside the albums (shared with, timestamp, ...)
  • update user information (local DB)
  • create or update albums in immich
  • create or update users in immich
  • add/update assets to albums in immich
  • move assets to correct user (needs to be tested)
  • improve documentation
  • interactive wizard with ui (web or gui ...)
  • submit changes to server for an admin to review and update

Development

Dependencies

Setup

To set up the development environment:

# Clone the repository
git clone https://github.com/burgdev/immichporter.git
cd immichporter

# Install development dependencies
just install
source .venv/bin/activate

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for details.

License

MIT - See LICENSE for details.

About

Retrieve metadata not available in google takeout, including shared albums, assets, and shared users. You can use this data to update assets in Immich, re-add users to shared albums, and even move assets to the correct owners.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors

Languages