Carry your Lightroom culling into DaVinci Resolve.
A small, free, cross-platform tool that reads star ratings, colour labels, pick/reject flags and keywords from your photo library's XMP (sidecars or embedded) and writes a CSV you can import straight into DaVinci Resolve's Media Pool — so the work you did culling in Lightroom (or any XMP-writing app) comes with you when you switch to grading stills in Resolve.
lr2resolve /path/to/Photos -o resolve_import.csv --stats
Then in Resolve: File → Import Metadata To → Media Pool.
Resolve is increasingly capable for stills, and a lot of photographers are moving there (subscription fatigue, one tool for photo + video, colour-grading power). But when you leave Lightroom, your ratings and colour labels don't come with you — Resolve won't read them from your raws in a way that populates its own Rating / Clip Color fields, and pushing them across by hand is impractical for thousands of frames.
The individual pieces to solve this exist (Resolve documents a CSV metadata import; exiftool can read XMP; there are paid macOS utilities that build Resolve CSVs from Finder tags / EXIF). What was missing — as far as we could find — is a free, open, cross-platform tool aimed specifically at the stills-photographer migration: read Lightroom's XMP rating + colour label semantics and map them onto Resolve's fields, with the real-world file-matching pitfalls handled. That's what this is.
Prior art, honestly: this is not the first tool to put metadata into Resolve via CSV, and it doesn't claim to be. It's a focused, free, Windows/macOS/Linux tool for the specific Lightroom→Resolve photo culling case. If a paid tool already covers your platform and needs, use it. PRs to broaden coverage are very welcome.
| From (XMP) | To (Resolve) | Notes |
|---|---|---|
xmp:Rating (0–5 stars) |
Rating | 1:1 |
xmp:Label (Red/Yellow/Green/…) |
Clip Color (default) | or Flags, or both |
xmp:Label |
Flags (optional) | flags support Red; clip colours don't |
xmpDM:Pick / xmp:Pick (±1) |
Flags (Green/Red) | often empty for Lightroom-Classic-only libraries |
dc:Subject / hierarchical |
Keywords (optional) | enables auto Smart Bins |
dc:Description / caption |
Description (optional) |
Only files that actually carry metadata produce a row, so the CSV stays small even across a huge library.
Requires Python 3.9+ and exiftool on your PATH
(or pass --exiftool /path/to/exiftool).
pip install lr2resolve # once published to PyPI
# or, from source:
git clone https://github.com/Paulo-Ink/lr2resolve
cd lr2resolve && pip install -e .# Simplest — raws + sidecars in a folder tree
lr2resolve ~/Photos -o resolve_import.csv
# See coverage first, write nothing
lr2resolve ~/Photos --stats --dry-run
# Send colour labels to BOTH clip colour and flags, and bring keywords
lr2resolve ~/Photos -o out.csv --label-target both --with-keywords
# Point at a specific exiftool on Windows
lr2resolve "D:\Photos" -o out.csv --exiftool "D:\tools\exiftool.exe"- Put your media in the Media Pool.
- File → Import Metadata To → Media Pool, choose the CSV.
- In the dialog:
- ✅ Match using filename
- ✅ Ignore file extensions when matching
- ❌ Match using clip start and end Timecode (untick — stills have no meaningful TC; leaving it on breaks the match)
- Merge: Only update metadata items with entries in the source file
Your ratings appear in the Rating column and your labels colour the clips. Build Smart Bins on Clip Color / Rating to filter your keepers.
See docs/WORKFLOW.md for the full end-to-end guide
(including optionally baking metadata into the raws first) and
docs/GOTCHAS.md for the pitfalls we hit and solved.
Every mapping is data-driven and overridable with a JSON file:
{
"label_to_clip_color": { "Red": "Pink", "Rot": "Pink", "Grün": "Green" },
"media_extensions": [".arw", ".dng", ".jpg"]
}lr2resolve ~/Photos -o out.csv --config my_mappings.jsonThis is the main extension point for the community — non-English Lightroom label text, custom label sets, extra raw formats, house conventions.
Issues and PRs welcome — see CONTRIBUTING.md. Good first
areas: more camera raw extensions, a reverse mode (Resolve → XMP), a small GUI,
and confirming behaviour across Resolve versions.
MIT — see LICENSE.