FlowLogix MirrorImmich extracts title, description, tags, GPS location and album information created in Apple macOS Photos and creates a directory that includes symlinks to photos and their extracted metadata in sidecar .xmp files.
This directory can then be rsync’d to Immich external library.
MirroImmich needs to be run on a Mac with access to the Photos library. All photos need to be downloaded locally from iCloud (if iCloud is being used) for metadata extraction to work correctly.
-
Creates a directory structure to be used as an external library in Immich.
-
Exports titles, descriptions, GPS location, and keywords / tags.
-
Note: Appends titles and descriptions, since Immich only has one description field.
-
-
Generates
.xmpsidecar files. -
Exports edited photos, if they are edited.
-
Creates albums in Immich based on Apple Photos albums.
-
Marks favorites in Immich based on Apple Photos favorites.
Docker Compose is the recommended installation method.
-
Download Latest Release Zip
-
Unzip the downloaded file.
-
Run
docker compose up -dto start the container. -
Browse http://localhost:9090 to access MirrorImmich.
You can also create .env file in the same directory as docker compose file,
with the following variables:
IMMICH_API_URL=https://my.immich.instance
IMMICH_API_KEY=<my_immich_api_key>
# Optional: set maximum memory heap size (default is 512m)
# MAX_HEAP_SIZE=2g
# Override default photos library location and names if needed
# PICTURES_DIRECTORY=${HOME}/Pictures
# PHOTOS_LIBRARY_NAME=Photos Library
# EXTRACTED_PHOTOS_NAME=extracted-photos|
Note
|
Docker needs to have "full disk access" to be able to read Photos library |
|
Note
|
New releases are uploaded on Docker Hub and
release date in this repository does not indicate latest update to the Docker image. Check Docker Hub for the latest image. |
There are existing solutions for uploading photos to Immich. However, none of those solutions access Apple macOS Photos internal database to extract metadata that was entered into Apple Photos on the Mac. All other solutions extract data from the metadata from the photo and video files themselves. Unfortunately that data is incomplete and does not include manually entered data in Apple Photos on the Mac.
Here is the configuration screen:
Configuration Screen
Here is the result screen from a test run. As you can see, the results are read from the Photos SQLite database:
Result Screen
Apple Photos Info Panel:
As you can see, it is marked as Favorite. It has a title, description, and keywords. With iCloud and almost all other services, only "my description" gets transferred. Some will take keywords, but none transfer all metadata.
Photos Info Panel
Desired Result in Immich:
The Photos title and description are combined into Immich’s description field.
Immich Result
Tags in Immich:
Immich Tags
If anybody is interested in it and/or wants to help me finish it up (or has any other feedback), please let me know.
Over the past year, I have been battling with properly exporting and syncing my Apple Photos on the Mac (33k of them) with Immich. I have tried about 40 options that exist now. Nothing works 100%.
The problem is that macOS Photos stores all metadata in a SQLite database, and not in the photo/video files themselves. That database schema is complex and often messy. Since this metadata isn’t 100% compatible with Immich, it needs to be processed before being put into .xmp sidecar files. This is where existing options fall short, often failing to preserve 100% of the metadata.
MirrorImmich is a custom exporter developed to solve this specific problem.