Skip to main content

Import photos from various sources to Immich

Project description

Immichporter

Immichporter

Google photos to immich importer helper

Documentation | PyPI


[!WARNING]

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

Immichporter exports google photos information into a sqlite database which can be used to import the information back into immich.

[!IMPORTANT]

  • This tool does not download any images from google photos. It only exports the information into a 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.

Use immichporter to get all assets and user per album and update/create all albums in immich again. It can add all users again to shared albums and you can even move assets to the correct user.

Installation

Run it directly with uv (recommended):

uvx immichporter -h

or install it:

Using:

uv add immichporter

Or with pip:

pip install immichporter

Usage

# 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

immichporter-0.0.4.tar.gz (173.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

immichporter-0.0.4-py3-none-any.whl (595.4 kB view details)

Uploaded Python 3

File details

Details for the file immichporter-0.0.4.tar.gz.

File metadata

  • Download URL: immichporter-0.0.4.tar.gz
  • Upload date:
  • Size: 173.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for immichporter-0.0.4.tar.gz
Algorithm Hash digest
SHA256 246e1656adafa14c84232d9e569d47ef5d4680302a4c176f3fa7eed780010eff
MD5 d3514417ed1d20f5a1935246fabbd042
BLAKE2b-256 43b7312f97e0e074ce93b3691b4e480535e44c1f85c9c3280df9afccb8288d50

See more details on using hashes here.

Provenance

The following attestation bundles were made for immichporter-0.0.4.tar.gz:

Publisher: publish-pypi.yml on burgdev/immichporter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file immichporter-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: immichporter-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 595.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for immichporter-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 fe3f15d65180c5107d4b75a76431e9abae8d9a4cb30107932ada9a0bf9dfe64a
MD5 716af157fee322aeedea3ef6fd0f9a7b
BLAKE2b-256 dc570fe8a096db4b370773ae25f2ebc9fa4be4802001d277f62f6a84f278a27e

See more details on using hashes here.

Provenance

The following attestation bundles were made for immichporter-0.0.4-py3-none-any.whl:

Publisher: publish-pypi.yml on burgdev/immichporter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page