Wie kann Lightroom Metadaten akzeptieren, die extern zu Fotos hinzugefügt wurden?

Ich arbeite an GeoTagger , einem Tool zum Geotagging von Fotos basierend auf der GPS-Position des Benutzers zum Zeitpunkt der Aufnahme des Fotos (derzeit verwendet es GPS-Daten von https://www.moves-app.com/ ).

Der Prozess beinhaltet das Hinzufügen von EXIF-GPS-Metadaten zu Fotodateien.

Eines der Probleme, die ich habe, ist mit Lightroom: Wenn die Metadaten von Fotos, die in einen Lightroom-Katalog importiert wurden, von außen geändert werden, bietet Lightroom nur zwei Möglichkeiten:

  1. Ersetzen der Katalogmetadaten durch erneutes Importieren aller Metadaten aus der Datei (wodurch alle am Foto in Lightroom vorgenommenen Änderungen verloren gehen).
  2. Um die Metadaten der Datei mit der in Lightroom zwischengespeicherten Version zu überschreiben (wodurch die hinzugefügten Tags entfernt werden).

Ich brauche eine dritte Option: Machen Sie es so, dass die extern hinzugefügten/geänderten Tags dem Lightroom-Katalog hinzugefügt werden, ohne mit einem der vorhandenen herumzuspielen. Oder eine zuverlässige/dokumentierte Möglichkeit, den Katalog direkt zu aktualisieren. Ist dies zu erreichen?

Da Lightroom eine SQLite-Datenbank verwendet, können Sie sie wahrscheinlich direkt mit einem SQLite-Editor bearbeiten, aber das klingt sehr geeky.
Dies könnte die einzige Option sein. Wissen Sie, ob es eine Dokumentation für das Datenbankschema gibt, das LR verwendet?
Jeffrey Friedl hat viele nützliche Tools: regex.info/blog/lightroom-goodies
Vielen Dank! Ich kenne mich mit SQLite aus, frage mich aber, ob die direkte In-DB-Manipulation zumindest teilweise unterstützt und dokumentiert wird.
Wenn Sie Ihre Bearbeitungen in Sidecar-Dateien speichern (was ohnehin eine gute Idee ist), gehen sie nicht verloren. Sie entfernen die Datei aus dem LR-Katalog und fügen sie wieder hinzu; LR liest die neuen Metadaten und wendet die Änderungen aus der Sidecar-Datei an. Beachten Sie jedoch, dass einige Metadaten die Bearbeitungsergebnisse beeinflussen - wie z. B. verwendete Linse -> angewendete Korrekturen; usw.
@Aganju könnte gut sein, das als kurze Antwort zu posten.

Antworten (5)

Wenn Sie die LR-Einstellungen ändern, um Ihre Änderungen in Sidecar-Dateien zu speichern (was ohnehin eine gute Idee ist), gehen sie nicht verloren.

  1. Sie entfernen die Datei dann aus dem LR-Katalog
  2. füge es wieder hinzu; LR liest die neuen Metadaten und wendet die Änderungen aus der Sidecar-Datei an.

Beachten Sie jedoch, dass einige Metadaten die Bearbeitungsergebnisse beeinflussen - wie z. B. verwendete Linse -> angewendete Korrekturen; usw.

Ich kenne keinen direkten Weg, dies zu tun.

Sie können sich die Tools von Jeffrey Friedl ansehen, vielleicht helfen Ihnen einige: http://regex.info/blog/lightroom-goodies .

Wenn Ihnen Ihr Code gefällt, werfen Sie einen Blick in den SDK-Leitfaden von Adobe:

Können Sie dies nicht über das Kartenmodul von LR-5 tun?

Klicken Sie auf „Karte“ , dann in der Fußzeile des Kartenmoduls: Klicken Sie auf das Symbol mit der Zickzacklinie, dann auf „Tracklog laden“, Laden Sie Ihre GPX-Datei, korrigieren Sie einen etwaigen Zeitzonenversatz, klicken Sie auf „Auto-tag selected Fotos". (Dies sind alles Kontextmenüpunkte des Zig-Zag-Icons)

Eine andere, umständlichere Alternative besteht darin, die Dateien zweimal in verschiedene Ordner zu importieren. Klicken Sie dann im Kartenmodul im Filmstreifen auf das Foto, das die zu importierenden GPS-Daten enthält, klicken Sie dann auf die Fotos, denen diese GPS-Metadaten fehlen, klicken Sie dann auf „Metadaten synchronisieren...“, aktivieren Sie die Kontrollkästchen für die GPS-Koordinaten. Löschen Sie optional Fotos aus dem zweiten Ordner, die jetzt nicht mehr benötigt werden.

Ich weiß nicht, ob dies Ihre Anforderungen erfüllt (ich weiß, dass Ihre Frage allgemeiner ist), aber vielleicht hilft es trotzdem.

Super hilfreich, danke @knb. Ich wusste eigentlich nicht, dass Lightroom mit GPX funktioniert. Die Funktion „Metadaten synchronisieren“ klingt ebenfalls interessant.

Wenn Sie speziell für Geotagging zuerst die Geotags hinzufügen und dann in LR importieren, behält LR die Daten und integriert sie. Wenn Sie versuchen, die Daten nach dem Import zu ändern, neigt LR dazu, sich zu beschweren.

Die Funktionen „ Metadaten in Dateien speichern“ / „Metadaten aus Datei lesen“ erfüllen Ihre Anforderungen.

Lightroom bietet eine Funktion zum Schreiben von Bibliotheksmetadaten in XMP-Dateien neben den Originalbildern, daher sollte es möglich sein, Ihr Programm so zu schreiben, dass es diese Sidecar-Dateien betrachtet und die vorhandenen Daten bearbeitet.

Metadaten können mit dem intuitiv benannten Befehl „Metadaten in Dateien speichern“ im Menü „Metadaten“ in Dateien geschrieben werden. Die resultierende XMP-Datei ist sowohl für die Bibliothek als auch für die internen Metadaten des Originalbilds extern. Einzelne XMP-Felder können dann programmatisch manipuliert werden (z. B. das exif:GPSLatitudeFeld). Dadurch wird vermieden, dass aktuelle Metadaten zu irgendeinem Zeitpunkt mit alten Metadaten überschrieben werden, und es bleiben auch Änderungen erhalten, die an den Bildern in Lightroom vorgenommen wurden, sowie alle Metadaten, die manuell in die Bibliothek eingegeben wurden. Nach der Bearbeitung des XMP kann Lightroom mit dem Menüpunkt „Metadaten aus Datei lesen“ die Änderungen wieder in die Bibliothek einlesen.

Vorbehalt 1 : Das Speichern der Bibliotheksmetadaten in die XMP-Datei überschreibt eine vorhandene Datei am selben Speicherort. Das ist eine gute Sache. Dies bedeutet, dass es keine einfache Möglichkeit gibt, zwei Sätze von Metadaten in unterschiedlichen Zuständen zu haben. Als Programmierer mag es für einige lustige Tricks praktisch sein, zwei Metadatenzustände zu haben, aber als Fotograf kann ich persönlich sagen, dass ich viel lieber die Gewissheit hätte, dass es nur einen Zustand gibt.

Vorbehalt 2 : Die Lightroom-API (ab Version 6) scheint keine bequeme Möglichkeit zu bieten, die aktuellen Bibliotheksmetadaten in Dateien zu speichern, bevor sie bearbeitet werden, noch eine Möglichkeit, neue Metadaten in die Bibliothek einzulesen, wenn Ihr Programm beendet ist. Das bedeutet, dass es keine einfache Möglichkeit gibt, programmgesteuert zu garantieren, dass Ihr Code mit Metadatendateien arbeitet, die ihren Status mit den Metadaten im Lightroom-Katalog teilen. Mein Eindruck ist, dass dies eine Sicherheitsmaßnahme ist, um den Status der Bibliotheksmetadaten von Lightroom an der Spitze der Hierarchie zu halten, da die Bibliothek für viele Benutzer den maßgeblichen Status der Daten darstellt.

Die Problemumgehung: Sie müssen sich möglicherweise damit abfinden, den Benutzer zu bitten, die Metadaten manuell zu speichern, bevor Ihr Programm ausgeführt wird, und den Benutzer anzuweisen, die aktualisierten Metadaten nach Abschluss einzulesen. Ich bin selbst kein LR-Plugin-Programmierer, aber ich habe mehrere Plugins verwendet, die dieses Muster verwenden, also kann es gut sein, was notwendig ist. Glücklicherweise ist dies im normalen Gebrauch kein großer Aufwand, da die Menüpunkte „Metadaten in Datei speichern“ und „Metadaten aus Dateien lesen“ im Metadaten-Menü nur einen Klick entfernt sind und wahrscheinlich nur einmal verwendet werden, nachdem alle ausgewählt wurden die Bilder, die in die Operation einbezogen werden sollen.