I am seriously considering using darktable as my image processing application. I will probably also use RawTherapee, Gimp and a few other applications. After lots of research and reading it appears that darktable has the following behaviors that will make interchanging data between these programs “problematic” to say the least:
-
darktable only reads the metadata from the file once, unless you set the option to reread said metadata when darktable opens up. Now, this is only a partial solution because most people keep multiple programs open and switch between them. So, darktable will not reread the metadata. There does not seem to be a way to force darktable to re-import the metadata without closing the program and reopening it.
-
darktable stores its metadata in non-standardly-named .xmp files. Essentially, it tacks on an additional .xmp extension AFTER any existing file extension. So, if the original file was photo.jpg, darktable creates photo.jpg.xmp. All other programs would replace the .jpg extension with .xmp, creating a file named photo.xmp (without the jpg part). Now, I understand the logic behind this. Simply changing the file extension might overwrite any .XMP file created by some other program. Using a non-standard file naming scheme sort-of ensures that darktable gets its own, fresh .XMP file to play with.
But this creates a big dilemma when attempting to use any kind of utility to rename files in bulk. I have done a lot of research and some of the programs I have found have been able to recognize that photo.xmp is a sidecar file for photo.jpg. But NONE of them have any clue that photo.jpg.xmp is a sidecar file for photo.jpg. So, it seems the only way to rename any files, once they have been touched by darktable, is to do it manually, one… at… a… time. Taking care to also rename the sidecar file and any other related files. darktable’s FAQ is quite adamant that they will NEVER include a way to rename files from within the program. This seems a little austere, considering how difficult they have made it to rename said files outside of the program.
darktable’s unique sidecar naming scheme also presents a problem when any other program wants to modify related metadata. No other programs recognize that photo.jpg.xmp is a sidecar file for photo.jpg. Therefore, if I want to use some other program to copy tags from darktable’s .XMP files back to the original .JPG file or even to a standardly-named ,XMP file, I seem to be out of luck there as well.
For an open-source program, it sure seems as if the creators of darktable have done everything they can to lock people in to ONLY using darktable for everything.
Now, I have discovered ExifTool, and it looks as if solving these problems MAY be possible using ExifTool. However, ExifTool has a very steep learning curve.
I also know about Lua and the API. However, that, also, has a very steep learning curve.
So, to my questions:
A) Has anyone figured out how to overcome these hurdles? Preferably using a program (or collection of programs) that is as simple as possible. I find it hard to believe that I am the first one to recognize these issues.
B) Is there a way to force darktable to re-import metadata from other sources without closing and reopening the program?
C) If I do contrive a way to update the metadata stored in darktable’s .XMP files, will darktable get confused? Everything I have read says that darktable prioritizes the data in its own database over its .XMP files. So, I cannot be sure if closing and reopening darktable (with the option to re-import metadata turned on) will read the changed data from darktable’s .XMP file. It seems that it may only re-import metadata from the OTHER file types and then, subsequently, overwrite its own .XMP file with only what IT wants to be in there.