Datenmigration von Google Fotos in die eigene Nextcloud

Status quo

Bisher habe ich Google Fotos zur automatischen Sicherung meiner mit dem Smartphone aufgenommenen Bilder und Videos genutzt. Über das Webinterface habe ich die Aufnahmen überall zur Verfügung und kann sie in Alben sortieren und mit anderen teilen. „Schnell mal 10 Bilder über einen Messenger versenden“ kam für mich nicht in Frage, da viele Messenger die Bilder verkleinern und somit dem Empfänger nicht die ganze Qualität zur Verfügung steht.

automatische Sicherung in Google Fotos

Google lässt dem Benutzer die Wahl, in welcher Qualität seine Bilder in der Cloud gesichert werden. Man kann zwischen „Hohe Qualität“ und „Originalqualität“ wählen. Der Unterschied ist, dass bei „Originalqualität“ die Aufnahmen so hochgeladen werden, wie sie aufgenommen wurden. Die Datei wird dabei auf euren gebuchten Speicherplatz angerechnet. Die Sicherung mit der Einstellung „Hohe Qualität“ verkleinert die Aufnahmen, Bildern auf 16 MP und Videos auf 1080p. Da ich jedoch öfter Aufnahmen erstelle, welche über 16 MP (PhotoSphere, Panorama, 20 MP Bilder, …) oder 1080p (4k, Zeitlupe, …) liegen, kam für mich nur die Option „Originalqualität“ in Frage.

meine Intention

Nach kurzer Zeit wurde der kostenlose Speicherplatz knapp. Durch das „100 GB Abo“ für 1,99€ pro Monat konnte hier für einige Zeit Abhilfe geschaffen werden. Es war jedoch abzusehen, dass man auf längere Sicht entweder alte Aufnahmen löschen oder ein weiteres Abo buchen muss. Man könnte sagen, es ist mittlerweile 5 vor 12, oder genauer 94,49 vor 100, daher habe ich mich nach weiteren Alternativen umgesehen. Da ich seit kurzem auch eine eigene Nextcloud-Instanz betreibe, liegt es natürlich nahe meine Aufnahmen in selbige zu migrieren.

wie kommt man an die Daten

Google bietet verschiedene Wege an um an die gesicherten Dateien zu kommen, jedoch muss man sich mit einigen Einschränkungen abfinden.

Download über das Webinterface

Über das Webinterface von Google Fotos kann man mehrere Bilder markieren und als Archiv herunterladen. Dies ist mit etwas Handarbeit verbunden und führt dazu, dass man das selbe Bild mehrfach herunterladen wird. Ist ein Bild in mehreren Alben enthalten, wird es in allen Alben aufgelistet und zum Download angeboten. In der Übersicht alle Bilder zu markieren ist bei der Menge meiner Aufnahmen leider nicht mehr ohne Weiteres möglich.

Google Takeout

Google stellt mit Takeout ein Werkzeug zur Verfügung, mit welchem ihr euch alle gespeicherten Daten herunterladen könnt. Ihr müsst nur die gewünschten Daten aus der Liste der Anwendungen auswählen und erhaltet ein von Google geschnürtes Archiv zum Download. Das habe ich vor Längerem mal mit meinen bei Google Fotos gesicherten Bildern getan und durfte danach ein in 62 Teile gesplittetes Archiv herunterladen. Es ist aktuell jedoch nach dem Auswählen der Daten möglich, die Archivgröße auf bis zu 50 GB zu erhöhen, was den Download erheblich vereinfacht.

Positiv hervorheben möchte ich noch, dass in dem Archiv auch verschiedene Meta-Daten als JSON-Datei enthalten sind. Darin enthalten sind z.B. Daten zum Album (Erstellungszeit, Zugriffsrechte, Titel, …) und auch zu den Bildern (Beschreibung, Namen, verlinkte Personen, Kommentare, Koordinaten, …).

Umweg über Google Drive

Als Softwareentwickler war der erste Gedanke natürlich „ich nutze einfach das Google Fotos API“. Jedoch stellt man schnell fest, dass es selbiges nicht gibt. Im Gegensatz zu einigen anderen Google Diensten existiert hier kein API das man ansteuern kann. Es gibt jedoch in den Einstellungen von Google Drive die Option „Google Fotos-Ordner erstellen“. Sie sorgt dafür, dass eure Aufnahmen in eurer Ablage im Ordner „Google Fotos“ nach Jahr und Monat in Unterordner sortiert erscheinen. Damit haben wir die Möglichkeit über das Google Drive API auf die Fotos und Filme zuzugreifen.

Aufnahmen mittels Rclone kopieren

Der zweite Gedanke war „das hat doch bestimmt schon jemand vor mir gemacht“. Nach einer kurzen Suche findet man etliche Programme, welche über das Drive API auf die Daten zugreifen können. Bei dieser Migration sollen die Daten direkt von einem Debian-System abgerufen werden. Ich habe mich für Rclone entschlossen, da es einfach einzurichten ist und sich über die Shell bedienen lässt. Der Zugriff auf Google Drive lässt sich ebenso leicht einrichten. Da ich den Zugriff über Rclone auch für weitere Projekte nutzen will, habe ich auch den Punkt „Making your own client_id“ umgesetzt. Dies hat unter anderem den Vorteil, dass ich selbst prüfen kann, wie viele API-Aufrufe von meiner Rclone-Installation ausgeführt werden und wie nahe ich dem API-Limit komme.

Die Aufnahmen können mit dem folgenden Befehl kopiert werden:

Die Erklärung der Parameter kann hier nachgelesen werden. Das Zielverzeichnis liegt direkt im Unterordner der Nextcloud-Instanz des Benutzers, der später Zugriff auf die Daten haben soll.

Nextcloud über neue Daten informieren

Die kopierten Daten erscheinen nicht automatisch im Webinterface des Nextcloud-Benutzers. Hierzu müssen wir zuerst den Besitzer auf Dateisystemebene auf den Benutzer ändern, unter welchem Nextcloud ausgeführt wird. Hierzu kann folgender Befehl verwendet werden:

Damit hat Nextcloud zwar Zugriff auf die Daten, weiß jedoch noch nichts von ihrer Existenz. Hierzu muss das Verzeichnis erst von Nextcloud gescannt werden. Dies erfolgt laut Nextcloud-Dokumentation mittels folgendem Befehl (im Nextcloud-Ordner ausführen):

automatische Sicherung umstellen

Damit in Zukunft die Aufnahmen automatisch in meiner Nextcloud-Instanz gesichert werden, nutze ich die Nextcloud-Android-App. Hierzu genügt es den Punkt „Auto-Upload“ im Appmenü zu öffnen und den Upload einzelner Ordner einzustellen. Wie die Google-Fotos-App kann auch hier bestimmt werden, ob der Upload nur im WLAN oder während des Ladevorgangs erfolgen soll. Ich habe hier noch die Option „Verwende Unterordner“ aktiviert. Hierdurch wird beim Upload die selbe Ordnerstruktur (Jahr/Monat) verwendet, wie sie bereits durch die Übernahme aus Google Drive vorliegt.

Die bisherige Datensicherung über die Goolge-Fotos-App kann entweder ausgeschaltet, oder so eingestellt werden, dass sie die Aufnahmen nur noch in der „Hohe Qualität“-Stufe sichert.

Speicherplatz in Google Drive freigeben

Mein Ziel war es, den belegten Speicherplatz in Google Drive durch den Umzug der Bilder frei zu bekommen. Nachdem die Aufnahmen in Originalqualität nun in meiner Cloud abgelegt wurden, können sie entweder aus Google Photos / Drive gelöscht oder auf die von Google als „Hohe Qualität“ angegebenen Größe verkleinert werden. Ich habe mich für letzteres entschlossen und die Verkleinerung über die Taste „SPEICHERPLATZ FREIMACHEN“ in den Einstellungen von Google Fotos  durchgeführt.