knuspermagier.de
Hallo. Ich bins! Philipp!

Foto-Doppelleben

Jahrelang lebte ich ein Doppelleben. Meine iPhone-Fotos waren in der Photos.app gespeichert und alle richtigen Fotos halt in Lightroom, als RAW-Dateien. Ich wehrte mich immer dagegen, einfach alle Fotos in Photos zu packen, da es mit den RAWs immer zu große Datenmengen waren und allgemein zu viele Fotos, man macht ja doch öfters mal zweihundert Schnappschüsse von der gleichen Sache.

Der große Nachteil: Man guckt sich die Fotos der richtigen Kamera niemals an, denn wann schließt man schonmal die Lightroom-SSD an und blättert durch. Selten. Spätestens als die Photos.app die ganzen Memory-Funktionen mit den generierten Videos bekam, verspürte ich ich die Lust, auch die guten Fotos dort drin zu haben, also begann ich Fotos, die ich in Lightroom schonmal ausgesucht hatte, weil sie zum Beispiel in Fotobüchern oder sowas auftauchten, zu exportieren und in Photos.app zu importieren.

Das klappte auch ziemlich gut und mittlerweile erfreue ich mich an diversen Fotos und finde es auch super, mal eben die Fotos des Island-Urlaubs schnell angucken zu können, ohne größere Umwege gehen zu müssen.


Wie des Öfteren, wenn man irgendwas anfängt und es nicht komplett zu Ende bringt, hatte ich nun, ein Jahr nach der letzten partiellen Export-Aktion, nun allerdings das Problem, dass ich keine Ahnung hatte, welche Bilder ich nun schon importiert hatte und welche nicht, da ich es mir in Lightroom natürlich nicht gesondert markiert hatte.

Um das Projekt abzuschließen brauchte ich nun also eine Liste von Fotos, die ich schon importiert hatte. Was machen wir da am besten? Zum Glück, ist die Photos.app-Library nur eine SQLite-Datenbank.

Tatsächlich ist es wirklich super-einfach. Die Query, die man gegen Datenbank (liegt in ~/Pictures/Photos Library.photoslibrary/database/photos.sqlite) abfeuern muss lautet:

select ZORIGINALFILENAME from ZADDITIONALASSETATTRIBUTES where ZORIGINALFILENAME LIKE '%pwa%'

Natürlich habe ich hier den Vorteil, dass meine Datein alle automatisch so heißen: 20210806-164907-pwa-0172.jpg. Irgendwann inspirierte mich Pablo dazu und jetzt paid es off, dass die Dateien nicht als IMG_0172.jpg im Dateisystem abgelegt werden.


Nun hatte ich also eine Liste von knapp fünftausend Dateinamen, wie finde ich die nun alle in Lightroom und wie markiere ich sie am Besten? Meine erste Idee war es, die Dateinamen einfach in den Filter zu pasten, aber leider schmiert Lightroom ab, wenn man da so viel auf einmal reinpackt, schade.

Zweiter Versuch: Die Anzahl der Suchworte etwas reduzieren. Eigentlich brauche ich ja nur die Tage, am Ende liegt ja alles in Tag-basierten Ordnern im Dateisystem und es reicht mir, die Tage zu markieren und nicht jedes exportierte Foto. Ich schnippel mir also kurz per Regex die ersten acht Zeichen raus und mache folgendes:

cat Photos.sqlite.csv | sort | uniq > sorted.txt

Ja, ich hätte den Regex auch direkt mit in dem Oneliner machen können, aber ich wusste nicht wie, und es kurz in Sublime zu machen, ging schneller. Wichtig ist übrigens sort vor uniq zu machen, sonst klappt es natürlich nicht. Das Ergebnis waren auf jeden Fall nur noch 106 Zeilen in der Datei, das ist ja übersichtlich.

Die paar Zeilen würde ich jetzt gerne doch nochmal ins Lightroom Suchfeld pasten, aber leider stürzt es weiterhin ab, sobald ich in den Filtermodus gehe, weil er die tausenden Dateinamen noch gespeichert hat und das Feld damit prefilled. Tolle Wurst.


Nach einem Optimize Catalogue klappte es aber, juchu. Nun konnte ich also alle Bilder doch noch mit einem “exported-to-photos”-Tag versehen. Leider muss ich die Markierung in der Ordner-Liste doch noch manuell machen.

screenshot-2022-06-25-at-11.18.33.png
Grün heißt exportiert!