Skip to main content

Immichporter

Immichporter

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

Documentation | PyPI


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.

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.

Metadata

Release files for immichporter 0.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for immichporter 0.0.5
File Size Uploaded Provenance Actions
immichporter-0.0.5.tar.gz 174.0 kB With provenance Details for immichporter-0.0.5.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for immichporter 0.0.5
File Interpreter ABI Platform Actions
immichporter-0.0.5-py3-none-any.whl Python 3 none any Details for immichporter-0.0.5-py3-none-any.whl

Total release size: 769.6 kB

Release files / immichporter-0.0.5.tar.gz

Download URL immichporter-0.0.5.tar.gz
Size 174.0 kB
Tags Source
SHA-256 checksum
How to use checksums
4da43ca100134d5c3dd7e0cddfc73d5e03d8fd862684c1862e20a7868dabbae0
BLAKE2b-256 checksum
How to use checksums
b6c594520b964bcf4bda91213ea5b2dc65f514f0ea0ebf2a8df70da081b97690
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2025.

Transparency log

Release files / immichporter-0.0.5-py3-none-any.whl

Download URL immichporter-0.0.5-py3-none-any.whl
Size 595.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8cc0f2837997a72b04f46412a8aa368f8f95400dfd11a5c1bbeaefbbda4b3fc7
BLAKE2b-256 checksum
How to use checksums
5b84bdf4cc2d5e0ea56da73be51d1565744286ae2976e101cd21324a28aea431
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2025.

Transparency log

Security for immichporter 0.0.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for immichporter-0.0.5.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2025.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page