The story in short
End of 2020, I migrated my collection of photos (JPEG, RAW), videos (MOV, MP4, DV and others) and own audio recordings (MP3) from Lightroom 6.14 to Digikam 7.1 on my Mac running Catalina. The process was not trivial but no big headache either, the hardest part was just, as often, to start.
This page is to share my experience with the Lightroom users out there who might consider this step. Here are my key findings. The next chapters go into more details.
- Most importantly: I don’t regret it. Even though I don’t have adapted all my workflows yet, I have a good impression of Digikam and I am convinced that it will be a loyal workhorse for many years
- Digikam is a great DAM (Digital Assert Manager) software. I can screen and tag all my media files. It is more versatile than Lightroom in terms of file formats. For instance, it supports MP3 files (including playback) while Lightroom didn’t. The import/export functions are also very good and flexible. I had to write a Lightroom plugin for the migration process to circumvent some of Lightroom’s limitations, not so with Digikam
- Digikam is faster than Lightroom to browse, tag and screen. I don’t know when it started, but Lightroom was very sluggish. I actually catch myself browsing and rediscovering my files in Digikam just out of pleasure and curiosity, while I used Lightroom only when I had to, even though my Mac is not a clunker (quad-core i7 with 16GB of RAM)
- Digikam’s user interface is more structured than Lightroom’s. I find it easier to comprehend and explore
- While Digikam supports raw files, this feature is not as good and integrated as in Lightroom. In Lightroom, I couldn’t tell where pre or post-processing started. In Digikam, the raw processing is an extra step when opening the image editor, before getting to the other usual tools. The upside is that it allows to integrate with different raw processing tools, like Darktable or RawTherapee. The support of those is not that great on macOS though, so I am sticking to the default (libraw) until I migrate to Linux
- Stability: Digikam crashed a few times during my first experiments, but I didn’t loose any data, and it didn’t happen since I imported all my files. So I would say it’s “stable enough” on macOS, I assume the stability is even better on Linux
I have been a long time Lightroom user. I started with version 4 back in 2012, and invested quite some money and time in it, at least as hobby photograph. I bought all the updates, until Adobe introduced the subscription model. That was a no-go for me, financially, but also out of principle. I don’t have any problem to pay to use software, and I accept the dependency to a proprietary solution up to a point, but having to pay a monthly fee is a deal breaker. The confusion around the product name and strategy didn’t help. So I got stuck with Lightroom 6 since 2017, the last version with an acceptable licensing scheme. It was obviously a dead-end, but since I use the same hardware and the features (mainly importing, tagging, cropping, white balance and exposure corrections), it was good enough.
Until I updated my Mac to Catalina that is, then I realized that some parts of Lightroom 6 were still in 32bit, of which the support has been dropped by Apple in the transition from Mojave to Catalina. The most annoying part was the video playback, since I also shoot and edit videos, and I used Lightroom to manage them together with my images. After the macOS Catalina update, Lightroom couldn’t play any video anymore, so I had to open them in an external player. The other part of Lightroom 6 that is still 32bit is the software activation, which means it would be very cumbersome to switch to another computer or install macOS from scratch, even though my license is still valid.
So it was time to find an alternative. An additional aspect is that I want to get away from Apple. It is a different story, but basically I don’t like the recent events, like this and this, just to name two. It feels like my computer doesn’t belong to me anymore. So replacing Lightroom will also be a first step towards Linux.
The obvious choice was Digikam. It has a broad feature set and is actively developed. It took me something like 5 to 10 hours to migrate most of my collection from Lightroom to Digikam, which is not much compared to the time I spent creating and maintaining it over the years. It took a few more hours for polishing and transferring the video metadata (see below).
My media collection consists of:
- 40.000 JPEG images
- 10.000 RAW images
- 10.000 MOV movies
- 3.000 DV movies
- 2.000 MP4 movies
- 2.000 MPG movies (from old digital cameras)
- 1.000 AVI movies
- 500 MP3 sound recordings
The file structure is derived from the time when I was shooting analog photos, and I created a folder for each (digitalized) roll. The names of the folders are the names of the rolls, like “abc1234”. I kept this system when I later started with digital photography and filming, I just created a new directory on every import from the device to the computer. I have around 1.000 directories, all located in a main root directory:
All these directories and media files were managed in a single Lightroom catalog.
Digikam is not so flexible as Lightroom. In Lightroom, you can have your media files all over the place if you want to. Digikam on the other hand has the concept of “collections” and “albums”. A “collection” is a base directory where media files are stored. You can configure the directories of the collections in the preferences.
The collections are represented in the main window as “albums”. So the root directory of your collection is a parent album so to say, and the sub-directories are “sub-albums”. It sounds more complicated than it is. Just think:
- collection = some root directory containing albums
- albums = directories within a collection containing media files
So in my case, it was very easy. I created one collection pointing to my root directory, and Digikam found a root album with 1.000 sub-albums in it. At this point, I was able to see most of my files, including RAW images and videos, and the playback worked flawlessly. That was already a milestone, since it was the issue that got me starting the migration.
My folder structure is very basic and doesn’t help to find anything or browse through my files. Therefore, I rely on the metadata like events, people or locations, that I entered and maintained in Lightroom over the years. In Digikam, at that point, I was only seeing the data stored by the devices themselves, like the date, the aperture or the camera model.
Lightroom had all the information in its database (e.g. catalog), luckily it is very easy to export it, at least for JPEG and RAW files. By using “Metadata / Save Metadata to file” from the menu, Lightroom exports it:
- for JPEG files, directly in the file itself, as specified by the IPTC standard
- for RAW files, in “sidecar” files, e.g. files with the same name as the RAW image with the addition of the “.xmp” extension. XMP is XML based standard created by Adobe to allow information exchange between different tools, pretty much our use case here
So I selected all my media, and hit “CMD-S”, which is the shortcut for the menu item mentioned below. After a few hours, Lightroom was done with that, so I hit in Digikam “Read metadata from files”, and… it just worked. All my keywords appeared correctly in Digikam, including their hierarchy, since I use hierarchical keywords.
If you have no specific reason to keep the XMP files around, you should disable the options to read and write XMP files in the digiKam preferences, and delete them from the filesystem.
One thing I realized soon though is that my metadata was still missing in Digikam for all my videos (MOV, MP4, AVI…). Lightroom doesn’t export it, unfortunately, so after investigating some options, I ended solving the problem with a homegrown hack:
- in Digikam, add the tag “PLACEHOLDER_TAG” to all files missing metadata from Lightroom
- in Digikam, trigger “Write Metadata to Selected Files”. That will actually write XMP files for all files, including videos
- in Lightroom, I created a Lua plugin that updates the existing XMP file (created by Digikam) with the data from Lightroom. Let it run on all relevant files
- In Digikam, trigger “Read Metadata from Selected Files”. That will read the XMP files back into Digikam, with the information from Lightroom.
The Lightroom plugin can be found on Github. You can download it from there as a ZIP file. Check out the README file for more information.
Exporting edits and corrections
I spent quite some time to make corrections in Lightroom to my photographs, in JPEG or RAW. I didn’t even try to import them in Digikam, I don’t think it is worth the effort since the output will probably never be exactly the same. But I don’t want to loose all the results either. As a compromise, I exported my edited images as JPEG and imported them in Digikam, in addition to the original files.
The first step is to create a smart collection:
Then I exported them:
- in full definition, with the JPEG quality set to 90
- adding them to the catalog
- adding a _lr prefix
Creator, City, Country…
In case you have used the special fields like Creator, City or Country… in Lightroom, you will soon realize that managing them in Digikam is not as handy. You might want to convert the data to tags / keywords. It is very easy using exiftool:
- Export all the metadata to XMP files from Digicam (e.g. enable writing to sidecars, and “Write metadata to files”)
- Run the following commands on the command line:
exiftool ‘-XMP-digiKam:TagsList+<Location/$country/$state/$city/$location’ -ext xmp -r <DIRECTORY>
exiftool ‘-XMP-digiKam:TagsList+<Creator/$creator’ -ext xmp -r <DIRECTORY>
- Import the data into Digikam (“Read metadata from files”)
- Disable the side-cars again if required
To be continued…
As of today, the migration can be seen as successful, even if some parts of my workflows are yet to be tested with Digikam. I will update this page with my findings.