Einfaches Backup aller iPhone Fotos (macOS)

Einfaches Backup aller iPhone Fotos (macOS)

Update: 2026-10-28 – Die Befehle stehen jetzt in Codeblöcken und lassen sich direkt ins Terminal kopieren (vorher machten die typografischen Anführungszeichen das Kopieren unmöglich). Neu sind die Optionen --retry gegen abgebrochene Exporte und --convert-to-jpeg für HEIC-Fotos, und der Abschnitt zum Löschen von Fotos ist aktualisiert.

Die beste Kamera ist die, welche man immer dabei hat. Das trifft bei mir jedenfalls zu 99,9 % auf mein iPhone zu. Folglich sind im Laufe der Jahre viele zehntausend Fotos und Videos entstanden - mehr oder weniger gelungene ;)

Im Rahmen der Überarbeitung meiner Backup-Strategie wollte ich nun auch diese Fotos in meine Sicherungen einbeziehen. Klar, speichert Apple mir die Fotos auch in der iCloud, aber man weiß ja nie …

50.000 Fotos and counting…

Einzelne Fotos kann man auf vielerlei Arten sichern (aus der Fotos-App auf macOS exportieren, via AirDrop kopieren etc) - aber bei mir haben sich mehr als 50.000 Fotos angesammelt - und da gehen diese Methoden alle in die Knie…

Die folgenden Schritte gelten für macOS.

1. Backup der Fotos

Die Fotos vom iPhone werden in der Photos library von macOS abgelegt. Zu finden sind sie dort unter “~/Pictures/ Photos Library.photoslibrary”. Das Ganze ist ein Archiv und Apple verwaltet darin nicht nur die Fotos und Videos sondern auch jede Menge interne Metainformationen inklusive einer Datenbank mit sqlite - es ist also das Beste, in diesem Archiv nichts zu verändern. Ein erstes, einfaches Backup sichert einfach das ganze Archiv wie es ist. Dabei werden aber Informationen redundant gespeichert (z.B. Thumbnail-Ansichten der Fotos mit einer Auflösung von 1024 Pixel lange Kante) - diese sind eigentlich nicht wirklich notwendig. Außerdem hätte ich gerne die Foto- bzw. Videodateien gesichert ohne Schnickschnack. Weiters ist die Datenstruktur im Archiv sehr unpraktisch: Im Verzeichnis ./originals/ finden sich alle Fotos - aufgeteilt nach einer internen ID (Zahlen 0-9 und Buchstaben A-F). So findet man eigentlich überhaupt nix in diesem Backup ;)

2. Befreien der Fotos aus der Mac-Struktur

Wer also mit dem ganzen Archiv nicht zufrieden ist und seine Fotos gerne selbst OS-unabhängig abgelegt hätte, der kann diese recht flexibel mit dem MacOS Terminalprogramm “osxphotos” erledigen. OK, dazu muss man ein Terminal unter macOS öffnen - vielleicht fällt das nicht für alle unter “einfach”, aber - bear with me - es zahlt sich aus!

Da osxphotos in Python programmiert ist, installiert man es am besten über Homebrew (falls noch nicht installiert, zuerst den Befehl von der Homebrew-Seite ausführen). Dann in einem Terminalfenster:

brew install pipx
pipx ensurepath
pipx install osxphotos

Und schon ist es verwendbar (eventuell ein neues Terminal öffnen, falls osxphotos noch nicht im Pfad ist).

Folgendes Kommando sichert nun alle relevanten Dateien:

osxphotos export ./export --export-by-date --download-missing --update --touch-file --retry 3

Die einzelnen Parameter bewirken dabei folgendes:

Option “export-by-date”: Alle relevanten Dateien (.jpg, .heic, .tiff, .mov) feinsäuberlich in eine Verzeichnisstruktur mit <year>/<month>/<day> kopiert. Dabei wird sogar der originale Dateiname beibehalten (wenn man zB Fotos via AirDrop aufs iPhone kopiert hat oder kein Erstellungsdatum in den EXIF Daten gespeichert werden (wie zB bei Screenshots oder bearbeiteten Fotos mit Apps)

Option “download-missing”: Durch die Einstellung “Optimise iPhone Storage” der Photos app sind nicht alle Fotos auf der lokalen Festplatte. Damit können diese auch nicht exportiert werden. Mit der Option werden die fehlenden Fotos via Photos app von der iCloud heruntergeladen - was natürlich dauert… Am besten in ein neues Verzeichnis exportieren - in ein vorhandenes via --update (siehe nächsten Punkt) hat bei mir nicht geklappt.

Die Originaldatei “Photos Library.photoslibrary” zeigt nach einem Durchlauf mit --download-missing keine Veränderung in der Dateigröße. Das bedeutet wohl, dass die heruntergeladenen Dateien direkt in den Export-Pfad gespeichert werden - fein, weil sie damit nicht mein System-Volume zumüllen.

Option “update”: Da die Zeitstempel der Fotos korrekt im Export gesetzt werden, kann man nun einfach via differenziellem Backup immer die neuen Files wegsichern. Um einen bereits gelaufenen Export nur mit neuen Files zu bespielen stellt osxphotos sogar eine eigene Option zur Verfügung: --update - chapeau! Siehe die Option touch-file.

Option “touch-file”: By default bekommt die exportierte Datei die aktuelle Zeit, was recht wenig Sinn macht. Um die neu erstellte Backupdatei mit dem Originalzeitstempel zu versehen, zu dem das Foto angefertigt wurde empfiehlt sich die Option --touch-file

Option “retry”: Gerade beim Nachladen aus der iCloud bricht der Export einzelner Dateien gerne einmal ab. Mit --retry 3 versucht osxphotos jede fehlgeschlagene Datei bis zu dreimal, bevor es aufgibt.

Anmerkung 1: Das kann eine Weile dauern - bei mir lief der Export gute 55 Minuten bei knapp 50.000 Bilddateien ;) Zusätzlich stürzte der Python-Hilfsprozess damals hin und wieder ab - nur ein Force Quit und erneutes Starten hat bei mir geholfen. Mit --retry und --update kann man einen abgebrochenen Export einfach neu starten, bereits exportierte Dateien werden übersprungen.

Anmerkung 2: Eigentlich wollte ich die Originaldateien nicht verwenden und mit dem Parameter --db eine Kopie verwenden. Dies funktioniert aber scheinbar nicht, wenn man wie ich den Parameter --download-missing verwenden will um fehlende Dateien aus der iCloud nachzuladen.

Anmerkung 3: osxphotos ist ziemlich umfangreich - es lohnt sich die Hilfeseiten dazu durchzulesen, da man damit zB auch flexibel Fotos via Tags abfragen kann und auch den Export anders parametrisieren kann (siehe weiter unten)

Das Ergebnis des Kommandos sieht dann in etwa so aus:

Gut zu sehen: Die Dateien vom 1. Jänner 2022 wurden am iMac von mir erstellt, via AirDrop aufs iPhone gespielt und dort mit Darkroom bearbeitet (dieses hängt dann “ Edited” an den Dateinamen).

Weitere Praktische Optionen

Mit der Option --verbose erhält man detailliertere Infos, was osxphotos eigentlich tut, mit --report export.csv lassen sich diese in eine Datei ausgeben und mit --dry-run sieht man, was der Durchlauf verändern würde.

Wer die Fotos auch dort sichern möchte, wo HEIC nicht angenommen wird, hängt --convert-to-jpeg an: osxphotos speichert HEIC-Fotos dann gleich als JPG. So landen die Handyfotos bei mir auch im Backup zu Amazon Photos.

3. Löschen von Fotos

Bei knapp 50.000 Fotos (auch wenn sie über viele Jahre entstanden sind) kann man einiges löschen. Einen ersten Teil erledigt seit macOS Ventura bzw. iOS 16 die Fotos-App selbst: Unter „Duplikate“ findet sie doppelte Fotos und fasst sie auf Knopfdruck zusammen. Für das eigentliche Aussortieren gibt es weiterhin keinen wirklich praktischen Weg. Aber wie sagt man so schön: A problem for another day.