Private photo metadata review

XMP Sidecar Metadata Conflict & Merge Workbench

Compare two sidecars for the same photo, choose metadata sources and preview a proposed merge. Ratings, labels, keywords and Camera Raw edits keep file and line evidence.

Baseline sidecar

Candidate sidecar

Both files must describe the same asset. Matching RDF subjects do not establish identity. Supported: XML 1.0 UTF-8, one RDF subject, scalar attributes/elements, Bag/Seq/Alt arrays and atomic structured properties. Each file: 2 MiB, 30,000 elements, 64 levels, 2,000 properties. No DTD, external entities or network lookups. Worker timeout: 30 seconds.

Ready to compare locally.

Sidecar values, filenames and reports remain local and are masked from session recordings. No input content is sent to analytics. Clear removes data from this tab.

Resolve XMP rating, label and keyword conflicts

Properties are matched by their namespace URI and local name, so different prefixes do not create false differences. Each row shows the baseline and candidate values, their source file and line, and the selected source. Simple scalar attributes and elements compare alike. Unordered Bag item order is ignored for comparison; sequences and language alternatives retain order. This is a two-file comparison, so a conflict means differing values, not proof of concurrent editing or which file is newer.

Enrichment preserves existing baseline metadata and fills missing properties from the candidate. It unions only unqualified, simple-text dc:subject Bags, using exact case-sensitive terms. A blank baseline value is still present, so it is preserved. Hierarchical Lightroom keywords are separate metadata and do not automatically synchronize with flat keywords. Explicit source choices can keep baseline, choose candidate, union eligible flat keywords or omit a property.

Keep Camera Raw Develop metadata together

All properties in the Adobe Camera Raw namespace are selected as one bundle, including process version and structured settings. Enrichment imports a candidate bundle only if the baseline has no Camera Raw properties. An explicit bundle choice replaces the complete set, including removal of properties absent from that source. The workbench does not render an image, evaluate slider meaning, convert edit engines, verify profiles or masks, read a Lightroom catalog or consult companion ACR files.

Supported XMP and deterministic exports

The bounded reader supports XML 1.0 UTF-8 with ASCII markup names and Unicode values, a bare RDF document or an x:xmpmeta wrapper, and one explicit rdf:about subject across descriptions. XMP scalar properties, RDF Bag/Seq/Alt arrays, URI values, resource structures and unknown schema trees are preserved as atomic properties. Qualified and structured values are compared structurally; this is not a full RDF/XMP schema validator or semantic equivalence checker. Duplicate properties, multiple subjects, unsupported RDF identity attributes, xml:base, typed literals, DTDs and external entities stop processing and block exports.

Proposed XMP uses stable namespace prefixes, sorted top-level properties and UTF-8 XML. It preserves property values and selected nested trees while normalizing the wrapper, property attribute form, namespace declarations and packet formatting. Comments, processing instructions, toolkit markers and packet padding are omitted. No timestamps, document IDs or catalog status are rewritten. JSON preserves all decisions and the complete proposed XMP; formula-safe CSV and escaped HTML preserve the complete diff. Print / PDF uses your browser’s print dialog. Embedded metadata, multi-file batches, asset authentication and automatic disk overwrite are outside this workflow.

Frequently asked questions

Are my XMP sidecars uploaded?

No. UTF-8 XML parsing, comparison and merging run in a cancellable browser worker. File contents and metadata remain in this tab and are masked from session recordings. Clear removes the inputs and results.

How does enrichment differ from baseline mode?

Baseline mode keeps only baseline properties. Enrichment keeps existing baseline properties, fills properties absent from baseline and unions simple dc:subject keyword Bags. Explicit per-property choices override these defaults. Camera Raw settings use a single whole-bundle source.

Can I combine individual Lightroom Develop sliders?

Camera Raw properties are treated as one bundle. Choose the complete baseline or candidate bundle, or omit it. This avoids automatically mixing process versions, masks and related parameters. Referenced profiles, masks and external files are not verified.

Will a merged XMP fix Lightroom metadata conflicts?

The output is a proposed sidecar for review. Back up both originals, confirm they describe the same asset and validate a copy in the target application. A catalog can hold edits absent from both files, and applications support different metadata schemas.

Official XMP references

Consult Adobe’s XMP data model and serialization specifications, the Camera Raw namespace definition and Lightroom Classic metadata guidance when reviewing sidecars in your target application.