PhotoLab won't read keywords from DOP files created elsewhere

A friend of mine sent me a raw file with a PhotoLab .dop file containing keywords.

When I added that image and its .dop file to my PhotoLab PhotoLibrary, PhotoLab could not see the keywords.

I’m running PhotoLab 6 on macOS 13.5 and my friend is running PhotoLab 6 on macOS Monterey (macOS 12).

Has anyone else seen such a problem?

1 Like

This page might answer your question:
https://userguides.dxo.com/photolab/en/managing-metadata/#the_keywords_palette
where it says:

Keywords entered are stored in the DxO PhotoLab database, but not in the images themselves (RGB files), nor in the sidecars (.dop or .xmp) of RAW files. The keywords are included with the images when they are exported.

I see. But that doesn’t seem consistent with the contents of the .dop file:

Sidecar = {
	Date = "2023-08-18T18:17:04.1880000Z",
	Software = "DxO PhotoLab 6.8.1 54",
	Source = {
		CafID = "C27406a",
		Items = {
			{
			Albums = "",
			ColorLabel = "8x10",
			CreationDate = "2023-08-18T17:11:52.1320000Z",
			IPTC = {
				contactAddress = "4533 Belfast River Road",
				contactCity = "Richmond Hill",
				contactCountry = "USA",
				contactCreator = "Bob Rockefeller",
				contactEmail = "bob@bobrockefeller.com",
				contactPhone = "912-401-7777",
				contactPostalCode = "31324",
				contactState = "Georgia",
				contactWebsite = "www.bobrockefeller.com",
				contentDescription = "OLYMPUS DIGITAL CAMERA",
				imageCity = "Nags Head",
				imageCountry = "USA",
				imageState = "North Carolina",
				rightsUsageTerms = "",
				statusCopyrightNotice = "© Bob Rockefeller",
			},
			Keywords = {
				{
					"Sky LrC",
				},
				{
					"Sky KW",
				},
			},

The keywords are there.

1 Like

If that is the case, how are we meant to send an image to someone else for further work?

I don’t rely on the database at all and have always seen everything written to the DOP files.

As Bob said, the keywords are being written to the DOP, it’s just that the receiving computer doesn’t seem to be reading them.

@bobrocke does PL read keywords from an XMP sidecar?

Yes, it does.

I know when I have Lightroom update keywords and write them into my DNG files, PhotoLab sees that something has changed and adds a small icon in the corner of the frame in Library view. I usually click that to ask it to import, but you can also explicitly use File > Metadata > Read from image to do the same. Have you tried this? I know it shouldn’t be necessary as it should read on first discovery, but :man_shrugging: maybe it’s different.

I have tried to force PhotoLab to read the data, but I don’t write it to the RAW file, rather to the XMP file.

I have the same problem when reading .dop file generated on my old Win PC with my Mac (unfortunately this is not the only issue when moving from win to MacOS).
Obviously keywords are included in the .dop file but not read out in the first instance. Try out the following as I would be interested, if you have the same effect:

  • Copy a raw file plus sidecar .dop into another folder. Even in case the .dop has been generated on the same machine, I don’t see the keywords in PL6.
  • Leave PL6, overwrite only the .dop file in that folder with exactly the same .dop file. Open with PL6 I have now a Master (M) without keywords plus a virtual copy (1) and surprisingly this virtual copy has the keyword.

Copying the raw and dop files into another folder does cause PhotoLab to lose the keywords.

I, too, find a master without keywords and a virtual copy with keywords.

That is just bizarre!

This little test proofs all the data is included in the .dop sidecar, but for whatever reason is not read out. For a few files I would not care, just copy metadata from virtual copy, paste into the master and delete VC. But not for several k of files.

It’s very disturbing. Others have pointed out the relative fragility of PhotoLab’s database. If the reading of DOP files isn’t reliable, the file management underpinnings of PhotoLab may not be sound.

I have just tried the way back: files generated on my Mac (M2Pro) copied the the Win10 PC, both woth latest version of PL6. The result is even more confusing: 2 out of the 6 test files get immidiatly a VC, one of them shows the keywords, the other not. Remaining 4 files are ok, keywords are included, no VC. Overwriting .dop files generates 2nd version of VC, remaining 4 files are still ok.

OK. I have analysed and played.

I took a RAW file with an accompanying XMP sidecar, into which Lightroom had written “Sky LrC” as a keyword, but without a DOP file.

Opening this file in PL6 shows this keyword correctly, along with all the other metadata imported from the XMP sidecar.

Then I added “Sky PL” as another keyword, closed PL6 and reopened it.

Lo and behold, both keywords have been written to both the DOP and XMP are present.

But, only if I have the following checkbox set in Preferences…


if I unset the checkbox…

… and do the same routine, then any changes made will only be applied to the DOP file and not the XMP sidecar. unless I use the File menu to explicitly write the metadata changes to the XMP sidecar.


If I then send all three files to someone else, they may not have a database entry for the newly added keyword, the XMP won’t contain it either and, thus, this is what happens…


The only reference that PL can find to the new keyword is in the DOP, which it attempts to show. But then it appears that PL goes on to read the database, doesn’t find the new keyword, takes the database as final authority and removes the “Sky PL” keyword as it “synchronises” the two.

Can @bobrocke, @Bert and anyone else please try out this scenario, just to make sure I’m not going totally daft?

Of course, if you rely on the database, make sure to do a backup before deleting it.


Just one of the many joys of not sticking to the principle of SPOD (single point of definition)

1 Like

If we think of the DOP files as a kind of database backup, and don’t restore the full photo archive in one go, this behavior could lead to a less than optimal restore.

I’ll try to test a bit later with all auto-r/w off and will report back.

Whatever the conditions and results might be, I’d find a more granular possibility to set read or write DOP and XMP a very welcome improvement, specially in view of the fact that the syncing decision does not ask for confirmation when metadata is actually synchronized.

One of the reasons that I have been saying all along is that the DOP file should only contain the image edits and the history, especially windows history and nothing else. The XMP file should only contain the meta data and nothing else. Only then should the database read those two files for DxO’s own housekeeping. Once the session is finished, the database should be emptied and only anything necessary for DxO’s housekeeping on close down, should be left in it.

Whether we should have the option to turn these on or off is for others to decide. I personally do not think they should be selectable. They should be permanently on.

I get the same behavior. Bizzare!

It appears that PhotoLab is using the database as the single source of truth. But it picks a poor way to de-conflict differences.

1 Like

Let me explain my situation a bit more prior to responding.

I‘m using DXO since about 2006, I believe it was Optics Pro V3 at that time. Never had any issues, even when switching from Optics Pro 11 to Photolab. The update from PL4 to PL5 caused trouble, as Photolab was creating lots of virtual copies. It took me hours to clean up the database (that is history, so forget it). All this on various Win PCs, in the beginning all files on PC, later I moved all files to an NAS (DS218 first, now DS918). I never had issues with moving files and I never was in need of using .xmp sidecars. I‘m not using LR or any other, therefore I don‘t have .xmp files created.
Now I‘m running MacOS on MacMini M2Pro. After setting up PL6 on Mac the DXO database should be more or less empty, right? Since there is no database, PL6 should be reading .dop (and .xmp when available) to fill the database. All the data I want is in the .dop files including the keywords. It is only, PL6 is for whatever reason not moving this information in the database. There is no such keyword in the database, so the keyword in .dop is ignored? If the .dop is overwritten with exactly the same .dop file, a VC is generated showing the keyword (may be because of a different time stamp?), so it is included.

Thus I‘m with @bobrocke: It appears that PhotoLab is using the database as the single source of truth. But it picks a poor way to de-conflict differences.

@Joanna: Thanks for taking time to look into that. As I have not been creating and using .xmp file until now, it will not help me solving my problems. Nevertheless, I hope to find a timeslot the next days to anwer your question.

Tests showed that keywords are transferred through DOP files. This is how I tested:

  • XMP autosync off
  • DOP read/write off
  • Databases, DOP and XMP files deleted before testing
  • Added a keyword when DPL ran on macOS Sonoma (beta)
  • Manually exported the DOP file
  • Booted the Mac from macOS Monterey
  • XMP autosync off
  • DOP read/write off
  • Databases, DOP and XMP files deleted
  • Manually imported DOP files
    → the keyword was correctly read from the DOP file
  • from there on, keywords were read as expected

Imo, this means that DPL is handling keywords from DOP files correctly.

System config:
Bildschirmfoto 2023-08-20 um 22.18.35

  • The volume “Ablage” contains the test images
  • PhotoLab apps are installed on the other volumes (but could be on “Ablage” too)

I need to test again, it seems. But using the same OS.

I can turn off XMP autosync, but how do I turn off DOP read/write?

When you import/export DOP files, is that copying them from folder to folder?

Check out PhotoLab’s settings. Look at all tabs to learn what’s in them.