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.inior 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
rawpyandimageiopackages. 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.iniin 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
feffbe0568beb18616cdba5f9dec8adef9738b7c1804bb0dd75e0c4f403d17e5
|
|
| MD5 |
b10561f9b5602b6793c886e0a598d071
|
|
| BLAKE2b-256 |
4ade14f6e2c0ad0e288cc91c48bda4990a41c7d8689b2420e692f6573f40c9c4
|
File details
Details for the file immich_sync-0.1.0-py3-none-any.whl.
File metadata
- Download URL: immich_sync-0.1.0-py3-none-any.whl
- Upload date:
- Size: 20.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89e3d84fb5896e78907a60e4aa7782badfbad9eb5673056381a77594115c4b06
|
|
| MD5 |
3bc736d9af88b8ecee90210172535515
|
|
| BLAKE2b-256 |
7f465b08a7c12bd9f931786c70239873ca2153a67fc28c06699fa611eeba32a7
|