Skip to content

XMP

XMP (Extensible Metadata Platform) is the standard sidecar file format supported by Adobe Lightroom. While YAML files might be easier to understand, read and edit for humans, using the XML-based XMP format simplifies importing metadata from Lightroom and we can leverage a documented standard. Ideally, data can be kept in sync continuously between PhotoPrism and other photo management applications.

A proof-of-concept for reading Title, Copyright, Artist and Description is implemented but full support is a lot more work, contributions welcome. One issue is proper XML parsing in Go as basic types like date and time are not supported by xml.Unmarshaler. GPS coordinates are not stored as float but as a string like 52,27.5814N.

The original plan to build upon go-xmp didn't work out as we couldn't read many fields, so we're using pure Go for now until we find a way to get the data we need with go-xmp. It might be a bug and/or it's an issue with our specific XMP files.

Please send more XMP files for testing (pull request):

https://github.com/photoprism/photoprism/tree/develop/internal/meta/testdata

Todo

  • Experiment with Adobe Lightroom to see how it uses sidecar files. The new version doesn't seem to use XMP to automatically sync metadata anymore, probably because Adobe focuses on cloud storage. Needs further investigation.
  • Create a matrix showing what fields are used/supported by which application/tool (Photoshop, Lightroom, Darktable and others, see
  • Read http://www.exiv2.org/tags-xmp-crs.html (Camera Raw Schema)

Issues ##