Skip to content

flowlogix/mirror-immich

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FlowLogix MirrorImmich

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.

Features

  • 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 .xmp sidecar 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.

Installation

Docker Compose is the recommended installation method.

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.

Official web site

MirrorImmich vs. Immich Go, PhotoSync, etc.

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.

Screenshots

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

Metadata Comparison

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

Contributing

If anybody is interested in it and/or wants to help me finish it up (or has any other feedback), please let me know.

The Story

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.

Sponsor this project

  •  
  •  

Packages

 
 
 

Contributors