Bei meinem Vorhaben, vollständig von der iCloud auf meine lokale Nextcloud zu wechseln, wurde ich vor ein paar Herausforderungen gestellt. Unter anderem auch mit den Medien. Für iCloud hatte ich mittlerweile den 50GB Speicherplan am laufen - und dieser war voll. In Zahlen heißt das rund 21'000 Fotos und Videos auf der Cloud.
Zugegebenermaßen hat die iCloud schon ein paar Vorteile - vor allem, wenn man mehrere Geräte von Apple besitzt. Man sieht auf allen Geräten alle Fotos und Videos der gesamten Timeline. Dank der Vorschaubilder und Laden in voller Auflösung erst bei Abruf wird nur wenig Speicherplatz auf den Endgeräten benötigt. Trotz der Vorteile muss man sich eins bewusst machen: Es werden immer mehr Medien und deshalb wird man mit der Zeit auch immer mehr Speicherplatz benötigen. Außerdem ist man immer von der Internetleitung abhängig um vollen Zugriff auf persönliche Fotos und Videos zu erhalten.
Ich will mich komplett von der iCloud loslösen, neben den Kontakten, dem Kalender, den Notizen habe ich mich dazu entschlossen, all meine Medien herunterzuladen um diese dann lokal und sortiert ablegen zu können. Und das möglichst einfach. Aus diesem Grund habe ich mir ein Tool programmiert: Local iCloud Media Sort
Das Tool ist optimiert den Einsatz zur Wiederherstellung von Fotos, Videos und Alben aus einem exportierten iCloud-Medienbackup. Mehr dazu erfährst du im Kapitel Was macht das Tool?.
Zum Kapitel springen Wege, um Fotos und Videos herunterzuladen
Es gibt mehrere Möglichkeiten, die Medien der iCloud herunterzuladen. Zum einen geht das über die Webseite der iCloud. Dort kann man Fotos und Videos in 1000er Paketen auswählen und direkt herunterladen. Leider sind hier keine Meta-Daten enthalten, was ein Sortieren und Organisieren so gut wie unmöglich macht. Wenn man ein paar Fotos herunterladen möchte ist das aber wahrscheinlich der einfachste Weg.
Zudem ermöglicht der iCloud-Client nach der Installation auf dem eigenen PC die Synchronisierung der Medien in einem spezifischen Ordner. Hat man diesen erstmal eingerichtet werden alle Medien auf der iCloud mit dem lokalen Rechner synchronisiert.
Aus mehreren Gründen habe ich mich für die dritte Option entschieden, obwohl sie weniger offensichtlich ist, ist diese für meine Zwecke die effizienteste Methode: Ich habe eine Kopie meiner Daten angefordert. Diese Methode ist für das Local iCloud Media Sort-Tool essentiell, da nur diese Methode alle benötigten Meta-Informationen und Daten zu allen Alben enthält.
Zum Kapitel springen Anfordern der Daten bei Apple
Neben den Daten zu Kontakten, Kalendern, Karten, Mail, Dateien und Co. kann man bei Apple auch eine komplette Kopie der iCloud Fotos anfordern. Diese Kopie umfasst die gesamte iCloud Mediathek inklusive Fotos, Videos und sogar Daten zu verfügbaren Alben. Letzters war neben den Meta-Daten in den Fotos mit einer der Gründe, warum ich mich für diese Methode entschieden habe.
Der Vorteil an dieser Methode ist, dass wir alle Daten gebündelt herunterladen können. Dabei kann man vor dem Anfordern festlegen, wie groß die einzelnen Datenpakete sein sollen. Hier bietet es sich an die Größe anhand der Internetleitung und Leistung des PCs festzulegen, da diese natürlich nach den Download auch noch entpackt werden müssen.
Man kann aus einer der folgenden Dateigrößen wählen:
- 1 GB
- 2 GB
- 5 GB
- 10 GB
- 25 GB
Nach dem Absenden der Anfrage wird der Prozess angestoßen. Dies kann je nach Anzahl der Medien lt. Aussage von Apple bis zu sieben Tage dauern. Sobald der Vorgang abgeschlossen ist erhält man eine Email mit den Downloadlinks zu den einzelnen .zip-Archiven in der definierten maximalen Größe. Diese beinhalten dann alle Fotos und Videos der iCloud.
Zum Kapitel springen Local iCloud Media Sort
Zum Kapitel springen Was macht das Tool?
TL;DR: Es sortiert all deine iCloud Fotos und Videos aus einem Backup und stellt dabei auch die Alben wieder her. Die Alben umfassen dabei nicht nur die selbst erstellten Alben, sondern auch die Alben, die automatisch erstellt wurden. Darunter fallen unter anderem automatische Rückblicke, Zusammenfassungen, Ereignisse oder Sammlungen von Orten. Eben alle Alben die in iCloud hinterlegt sind.
Man kann die Power der Apple-KI verwenden, um die automstisch erstellten Alben und Anreicherungen ebenfalls sortiert auf die Seite zu legen. Du kannst gerne direkt zur Installation des Tools wechseln um die Sortierung direkt zu beginnen. Ich empfehle dir vorher dennoch genauer nachzuvollziehen, was mit deinen Medien während des Sortierprozesses passiert.
Zum Kapitel springen Allgemeine Sortierung
Das Tool verwendet ein systematisches Sortierformat, basierend auf dem Jahr und Datum. Es erstellt einen dedizierten Ordner für jedes Jahr, in dem sich Unterordner für jeden Monat befinden. Diese monatlichen Ordner enthalten die Medien, die diesem spezifischen Zeitraum entsprechen. Diese Struktur ermöglicht eine chronologische und intuitive Organisation deiner Mediendateien, sodass es einfach ist, Medien basierend auf der Zeit, in der sie aufgenommen wurden, zu finden.
output
├── 2017
│ └── 09
| ...
├── 2018
│ ├── 03
│ ├── 04
│ ...
├── 2019
│ ├── 01
│ ├── 02
│ ...
│ ├── 11
│ └── 12
├── 2020
│ ...
Zum Kapitel springen Alben
Zusätzlich zur chronologischen Sortierung von Mediendateien bietet das Tool auch einen Mechanismus für die Handhabung von Fotoalben. Die Alben befinden sich auf derselben hierarchischen Ebene wie die jährlichen Ordner, was eine klare und deutliche Trennung zwischen der standardmäßigen chronologischen Sortierung und der albumorientierten Organisation bietet.
Medien Dateien, die Teil eines Albums sind, werden aus Bequemlichkeit und Klarheit zweimal gespeichert. Erstens erscheinen sie in der standardmäßigen chronologischen Sortierstruktur, organisiert nach Jahr und Monat. Zweitens werden sie zusätzlich auch innerhalb des entsprechenden Albumordners platziert.
alben
├── Vereinigte_Arabische_Emirate_Aug_2021_Reise-08076d62
├── Vereinigte_Arabische_Emirate_Aug_2021_Reise1-08076d62
├── Vierbeinige_Freunde_2019-7d8b843a
.....
├── Sommer_2018-b6dcb1c1
├── New_York_Mrz_2020_Reise1-79480de0
├── New_York_Mrz_2020_Reise-f8f7d8b9
└── Zusammen_Im_Laufe_der_Jahre-cebd5c39
Aufgrund der spezifischen Art und Weise, wie Apple Medien und Alben exportiert, ist es nicht ungewöhnlich, dass ein einzelnes Album auf zwei oder mehr verschiedene Ordner aufgeteilt ist. Diese aufgeteilten Alben können jedoch in der Regel relativ leicht anhand ihrer Namen identifiziert und korrigiert werden:
Vereinigte Arabische Emirate Aug 2021 Reise
Vierbeinige Freunde 2019
Sommer 2018
New York Mrz 2020 Reise
Zusammen Im Laufe der Jahre
Ebenfalls ist es normal, dass auf diesen aufgeteilten Alben-Ordnern teilweise auch gleiche Bilder gespeichert sein können. Das ist kein Problem, denn alle gleichen Bilder tragen auch den denselben Namen. Die Alben-Ordner können also einfach gemerged und Dateien überschrieben werden, ohne dass Bilder verloren gehen. So werden lediglich Duplikte eliminiert.
Es ist wichtig zu beachten, dass nicht alle Alben 100% vollständig in ihren ursprünglichen Zustand wiederhergestellt werden können. Aufgrund der Nuancen von Apples Exportstruktur kann es vorkommen, dass mehrere Dateien denselben Namen teilen. Diese Situation entsteht oft, wenn verschiedene Geräte zu iCloud hochladen, was zu Dateinamenduplikaten führt. Oder beim Gerätewechsel, was das Gleiche zur Folge hat.
Zum Kapitel springen Dateinamen
Während der Ausführung dieses Tools werden alle Dateien umbenannt und verschoben. Es wird empfohlen, mit Kopien der Dateien zu arbeiten, falls das Ergebnis nicht wie gewünscht ausfällt. Die ursprünglichen Dateinamen werden verworfen und ein einheitliches Namensschema wird für die Dateiumbenennung übernommen:
TT-MM-JJJJ SS-MM-SS ${5-stelliger-Hash}.${Erweiterung}
Diese Namenskonvention stellt sicher, dass jede Datei eindeutig identifiziert wird und gleichzeitig ein klares und konsistentes Format beibehalten wird. Die Struktur des Dateinamens umfasst das Datum und die Uhrzeit, zu der das Foto oder Video aufgenommen wurde, gefolgt von einem 5-stelligen Hash für zusätzliche Einzigartigkeit und schließlich die ursprüngliche Erweiterung der Datei.
Beispiel für umbenannte Dateien:
├── 29-12-2018 21-36-00 4bf70.HEIC
├── 29-12-2018 21-53-00 c0ebf.jpg
├── 29-12-2018 23-16-00 9712d.JPG
├── 29-12-2018 23-43-00 e8377.mp4
├── 30-12-2018 00-09-00 30954.mp4
├── 30-12-2018 00-16-00 89d1a.mp4
├── 30-12-2018 00-19-00 11d45.JPG
├── 30-12-2018 00-48-00 4866c.jpg
Zum Kapitel springen Benchmark
Ich habe die Sortierung meiner Medien mit den folgenden Statistiken abgeschlossen:
- Insgesamt verarbeitete Medien: 21.079
- Insgesamt wiederhergestellte Alben: 247
Zum Kapitel springen Datensammlung
Dieser Schritt beinhaltete das Sammeln aller notwendigen Daten aus CSV-Dateien, die die Grundlage für die Sortierung und Albumerstellung bilden.
- Dauer: 98 Millisekunden
Zum Kapitel springen Mediensammlung
In diesem Schritt werden alle Bilder und Videos gelesen. Dieser Schritt ist entscheidend für die Vorbereitung der Medien für die Sortierung und Zuordnung zu Alben.
- Dauer: 1,02 Sekunden
Zum Kapitel springen Generierung der Daten
Dies beinhaltete das Generieren einer umfassenden JSON-Datei, die detaillierte Informationen über jede Mediendatei enthält. Die JSON-Datei dient als Referenzpunkt für die Sortierung und Albumerstellung.
- Details: Zeilen: 105.384; Länge: 3.298.306 Zeichen
- Dauer: 375 Millisekunden
Zum Kapitel springen Sortierung der Medien und Erstellen der Alben
Der zeitaufwendigste Schritt, bei dem alle Bilder gemäß der vordefinierten Struktur (Jahr und Monat) sortiert und Alben entsprechend den aus den CSV-Dateien erhaltenen Daten erstellt wurden. Dies kann natürlich je nach System und Festplatte variieren.
- Dauer: 3 Minuten, 44,6 Sekunden
Zum Kapitel springen Fehler bereinigen
Diese Dauer berücksichtigt die Zeit, die für die Behandlung und Behebung von Fehlern im Zusammenhang mit der Sortierung von Medien anhand von Metadaten aufgewendet wurde. Dies deutet auf die Herausforderungen hin, die während des Sortierungsprozesses aufgetreten sind.
- Dauer: 2,40 Sekunden
Zum Kapitel springen Installation des Tools
Solltest du Hilfe benötigen, kannst du mich über den makesmart Discord-Server erreichen.
-
Installiere Node.JS für dein System
-
Lade dir das Git-Repository des Tools herunter
-
Gehe in den Ordner und setze den Befehl
npm install
ab, um Abhängigkeiten zu installieren -
Lösche
.empty
Dateien in den folgenden Ordnern:collectedMedia
csv_data
output
source
-
Entpacke alle .zip-Archive aus dem iCloud-Backup in den
source
-Ordner
Das Tool kann Unterordner verarbeiten, sie müssen nur innerhalb dessource
-Ordners extrahiert werden. Die zip-Archive dürfen sich nicht in demsource
Ordner befinden. -
Führe diese Befehle in folgender Reihenfolge im heruntergeladenen Ordner aus:
node 10_collect_csv.js
node 11_collect_media.js
node 12_csv_to_json.js
node 13_sort_by_json.js
node 00_sort_by_metadata.js
Nun sollten die meisten Dateien sortiert sein. Fehlerhafte Dateien verbleiben im ./output/failed
.
Zum Kapitel springen Konvertieren der Fotos
Wenn du genug Zeit hast, kannst du auch noch den Befehl node 14_convert_heic_to_jpeg.js
ausführen. Der Befehl verwendet ein Node-Modul um die Fotos von .heic
in .jpg
zu konvertieren. Der Nachteil dieses Node-Moduls ist: Es ist nicht das Schnellste!
Bei einer Dauer von 1 - 4 Sekunden pro Bild hat bei mir der gesamte Konvertierungsprozess knapp 13h gedauert.
Das war für mich kein Problem, da ich den Prozess einfach über Nacht auf meinem Homeserver ausgelagert hatte. Ich bin mir jedoch sicher, dass es dort draußen auch schnellere Tools gibt um die Fotos zu konvertieren.