Skip to main content

Simple immich sync utility

Project description

immich-sync

immich-sync is a simple Python CLI tool for synchronizing photos from an Immich server to a local directory. It supports album selection, checksum-based incremental downloads, and optional RAW image extraction.

Features

  • Incremental sync (download-only) using SHA-1 checksums
  • Concurrent downloads with progress bars
  • Optional RAW thumbnail extraction (requires extra dependencies)
  • Configurable via config.ini or command-line flags

Installation

Install from PyPI (if published) or locally via pip:

# From PyPI
pip install immich-sync

# From local source
git clone https://github.com/youruser/immich-sync.git
cd immich-sync
pip install .[raw]  # include RAW support

Note: RAW thumbnail extraction requires the rawpy and imageio packages. Install with the [raw] extra as shown above.

Configuration

immich-sync can be configured either via a config.ini file or command-line options.

Sample config.ini

[immich]
url = https://your.immich.server
apikey = YOUR_API_KEY
# Local folder where photos will be saved
imagedir = /path/to/photos
# Name of the album to sync
album = Vacation 2024
# Download from RAW files? true or false
raw = true

Command-line overrides

All fields can be overridden on the CLI:

immich-sync \
  --url https://different.immich.server \
  --apikey YOUR_API_KEY \
  --imagedir /path/to/photos \
  --album "Vacation 2025" \
  --raw

These take precedence over the config file, which allows for a hybrid approach. A common usage pattern is to keep the url and apikey in the config file, with album and imagedir passed as CLI args.

Usage

Run the sync with either config file or CLI flags:

# Using config file
immich-sync -c config.ini

# Using CLI arguments
immich-sync \
  --url https://your.immich.server \
  --apikey YOUR_API_KEY \
  --imagedir /path/to/photos \
  --album "Vacation 2024" \
  --raw

Note: By default the tool will parse any file named config.ini in the current working directory.

Example output:

Downloading AssetInfo: 10 assets [================================] 100%
Processing Checksums: 10 assets [==============================] 100%
Overall Download:  75%|=======    | 750M/1.00G [03:45<01:15, 3.2MB/s]
✔ Done! Synced 10 assets.

Development & Testing

All development was done on Linux, with no experimentation on other platforms. There is currently no tests for this tool. uv is used for dependency management as a poetry alternative.

# install uv
pip install uv

# (optional) create a virtual environment and source it
uv venv
source .venv/bin/activate

# install all dependencies
uv sync --extra dev

# run the tool
uv run immich-sync {args}

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

immich_sync-0.1.0.tar.gz (108.4 kB view details)

Uploaded Source

Built Distribution

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

immich_sync-0.1.0-py3-none-any.whl (20.2 kB view details)

Uploaded Python 3

File details

Details for the file immich_sync-0.1.0.tar.gz.

File metadata

  • Download URL: immich_sync-0.1.0.tar.gz
  • Upload date:
  • Size: 108.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.17

File hashes

Hashes for immich_sync-0.1.0.tar.gz
Algorithm Hash digest
SHA256 feffbe0568beb18616cdba5f9dec8adef9738b7c1804bb0dd75e0c4f403d17e5
MD5 b10561f9b5602b6793c886e0a598d071
BLAKE2b-256 4ade14f6e2c0ad0e288cc91c48bda4990a41c7d8689b2420e692f6573f40c9c4

See more details on using hashes here.

File details

Details for the file immich_sync-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for immich_sync-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 89e3d84fb5896e78907a60e4aa7782badfbad9eb5673056381a77594115c4b06
MD5 3bc736d9af88b8ecee90210172535515
BLAKE2b-256 7f465b08a7c12bd9f931786c70239873ca2153a67fc28c06699fa611eeba32a7

See more details on using hashes here.

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