I just spent the past 2 weekends migrating from Lightroom CC with just under 1TB of photos, mostly RAWs, making up about 50,000 files. I kind of made it up as I went and I spent a lot of time testing and validating. I’m going to do a writeup here to hepefully help ayone else coming acrross this and/or in case someone has ideas.
My Requirements:
- Move all photos off Lightroom and preserve both RAW files and snapshot renders at high quality. I intend on staying on Lightroom because it’s my editor of choice. I’ve litigated Darktable in comments on Lemmy, and while I love the software and the concept, I use Lightroom for my semi-professional work
- (The hard part) Metadata. I absolutely need my album organization, my picks, and my star ratings from Lightroom. More on this below
- All data must move to my self-hosted Immich with a TrueNAS pool behind it. The stack is Proxmox running a Truenas VM and a Debain VM. The Debian VM runs docker where Immich runs. Connectivity is driven by Netbird mesh VPN. That is a limitation for sharing and I’m ok with it.
Getting your pictures out
- Adobe doesn’t make this easy just below the surface. There are open source tools intended to help one migrate from Lighroom Classic catalogs to Immich, but CC is very different. The export options are very particular.
- Adobe lets you export a massive dump of pictures and renders as a real export option. It’s through their website and it will email you when a dump is ready. Said dump will contain multiple zip files each with RAWs and renders. NO Metada or structure is included and NO edit data.
- You can “Archive” from Lightroom CC (tested on Mac) and that will output originals + the edit file AND it will preserve the root album from which your photo came. But no metadata beyond that (no ratings, folder structure, picks). The bad part is that this deletes your files once it’s done. You can still restore fromTrash but this is definitely a hostile action against users.
- You can just output EVERYTHING. This is for the truly insane as you sit there and wait for Lightroom to render each one of your pictures individually. If you do original + edits, that returns the same thing as Archive but without structure.
- The secret 4th option: you can (as of this writing) parse Lightroom’s internal catalog and get Albums, picks, star ratings, and folder structure. This was a massive unlock for me. This file was at
~/Library/Application Support/Adobe/Lightroom/
My solution going forward
Because I was discovering this as I went, I tried some version of all of the options above, but going forward, I have a process which should be much easier.
First, I will parse the catalog which is a SQLite db and extract the newest “version” of each picture and the content I care about. I will store it in a CSV for long-term holding.
Once metadata is stored, I’ll go and request the archive through the website. That will take a few hours to possibly days (it took me about 2 hours on a Friday night). Once that’s done, you get an email and a link to a personalized site. You have to parse the (for me) 50+ links and download them sequentially. It took me a few hours to download 1 TB limited by my local bandwidth (for which I’m eternally grateful). With my TrueNAS storage, I have the luxury of landing the data and uploading it to Immich separately.
For XMPs, the edit data, you have to get that from a local source so either export originals or the desktop app “Archive All” option.
You’ll have to decide what you need and maybe you have fewer requirements than me.
Landing the Pictures
The next challenge is grabbing all of that data, pictures and ratings and applyhing them in Immich. Luckily, it has a fantastic API so I can script the whole thing. Most of the mapping happened by picture name and there were a few times where I had to dig into exif to identify a picture. Overall, i think I had 40 or so files out of 50k+ which couldn’t be mapped.
Encountered Problems:
- As mentioned before, this was a try-it-until-it-works situation for me. I had to download all of my pictures 2 times by 2 different methods (I didn’t document this but there was an SMB share involved).
- Stars are a new object and I had to manually enable it in Immich
- I couldn’t replicated nested album functionality in Immich and chose to keep the root album name + a tag of the folder structure. That worked well for me
- Lightroom tags could not be exported. I don’t use them a lot but that could be a blocker for some.
Disclaimer
- Every word in this write up was written by me on my keyboard
- I used a self-hosted local AI to do this work.
- I know enough to be in control even at a technical level, but the time savings on this project with AI really made it possible
- The AI found the catalog and parsed the data out of it. It would not have occurred to me.
Future
- I have all of this work on my personal Forgejo and if there’s enough interest, I may post publicly, though this write-up should serve as a starting point for anyone who wants to replicate my process
Incredible how software companies can be actively hostile to customers.
Yikes.
I’ve dabbled with LR enough to know the basics but haven’t done much in the way of importing files, so most of my photos are sat in storage.
I want to be rid of Adobe entirely. Is Immich as straightforward to use as LR?
Immich is not like Lightroom at all.
Immich is more akin to Google Photos or Apple Photos. It’s a library ONLY. Lightroom is for developing raws, publishing, and storing.
Oh. Ok thanks. I need to do my research.

