Was sind die JSON-Dateien in Google Takeout?
Was in der .json-Datei neben jedem Foto aus dem Google-Takeout-Export steht, warum Google sie mitliefert und ob Sie sie löschen dürfen.
Sie haben den Google-Fotos-Export entpackt, und die Hälfte der Dateien sind keine Fotos. Neben jedem Bild liegt eine .json-Datei mit einem Namen wie IMG_3391.HEIC.supplemental-metadata.json. Sie haben sie nicht bestellt, kaum ein Programm kann sie öffnen, und es sind Tausende.
Das ist kein Müll. In diesen Dateien stecken die Aufnahmedaten und Orte, die Google nicht in Ihre Bilder geschrieben hat.
Warum Google sie mitliefert
Google Fotos speichert alles, was es über ein Foto weiß, in seiner eigenen Datenbank: wann es aufgenommen wurde, wo, in welchem Album es liegt, ob Sie es als Favorit markiert haben und welche Daten oder Orte Sie von Hand korrigiert haben. Die Bilddatei selbst trägt diese Informationen im EXIF-Block, oder auch nicht. Screenshots und Chat-Bilder haben in der Regel keine. Änderungen, die Sie in Google Fotos gemacht haben, landen nie in der Datei.
Beim Export gibt Google Ihnen die Bilddatei mehr oder weniger so zurück, wie sie hochgeladen wurde. Der Datenbankeintrag wird nicht in die Datei zurückgeschrieben. Stattdessen legt Google ihn als kleine Textdatei neben das Bild. Diese Textdatei ist die sogenannte Sidecar-Datei, und JSON ist nur das Format, in dem sie geschrieben ist.
Was darin steht
Öffnen Sie eine davon mit dem Editor, TextEdit oder einem Code-Editor. Eine typische Datei sieht, etwas gekürzt, so aus:
{
"title": "IMG_3391.HEIC",
"description": "",
"imageViews": "12",
"creationTime": {
"timestamp": "1690120442",
"formatted": "Jul 23, 2023, 2:34:02 PM UTC"
},
"photoTakenTime": {
"timestamp": "1689929130",
"formatted": "Jul 21, 2023, 9:25:30 AM UTC"
},
"geoData": {
"latitude": 48.8583,
"longitude": 2.2945,
"altitude": 35.0,
"latitudeSpan": 0.0,
"longitudeSpan": 0.0
},
"geoDataExif": {
"latitude": 48.8583,
"longitude": 2.2945,
"altitude": 35.0
},
"url": "https://photos.google.com/photo/...",
"googlePhotosOrigin": {
"mobileUpload": {
"deviceType": "IOS_PHONE"
}
}
}
Die Felder, auf die es ankommt:
photoTakenTime ist das Aufnahmedatum, so wie Google Fotos es angezeigt hat. Der timestamp zählt Sekunden seit dem 1. Januar 1970, in UTC. Wenn Sie ein Datum in Google Fotos korrigiert haben, steht Ihre Korrektur hier. Dieses Feld ist das richtige.
creationTime ist der Zeitpunkt des Uploads zu Google. Bei einem Foto, das am selben Tag aufgenommen und gesichert wurde, stimmen beide überein. Bei einem Scan eines Abzugs von 1985, hochgeladen 2021, liegen Jahrzehnte dazwischen.
geoData ist der Ort, wie Google Fotos ihn kannte, einschließlich eines Ortes, den Sie von Hand gesetzt haben. geoDataExif ist der Ort, der beim Upload im EXIF der Datei stand. Hat ein Foto keinen Ort, stehen in beiden Blöcken Nullen: 0.0, 0.0, ein Punkt im Atlantik. Behandeln Sie lauter Nullen als "unbekannt", nicht als echten Ort. Mehr dazu in Google Takeout: Standort fehlt.
description ist die Bildunterschrift, falls Sie eine eingetippt haben. people listet markierte Personen, wenn vorhanden. favorited ist bei Favoriten true. title ist der ursprüngliche Dateiname, was nützlich ist, weil Takeout den tatsächlichen Dateinamen manchmal kürzt.
Die Album-Dateien
In jedem Albumordner liegt außerdem eine metadata.json, die das Album beschreibt, nicht ein Foto. Sie enthält den Albumtitel, manchmal ein Datum und eine Markierung für geteilte Alben. Sie ist klein und harmlos. Werkzeuge, die Alben importieren, etwa immich-go, lesen sie.
Warum die Namen so seltsam sind
Ältere Exporte nannten die Datei IMG_3391.HEIC.json. Seit 2024 heißt sie IMG_3391.HEIC.supplemental-metadata.json. Google kürzt lange JSON-Namen außerdem bei 46 Zeichen, sodass ein Pixel-Foto einen Partner namens PXL_20230721_092530123.jpg.supplemental-m.json bekommt. Teilen sich zwei Fotos einen Namen, wandert der Zähler in der JSON-Datei an eine andere Stelle: IMG_3391(1).HEIC gehört zu IMG_3391.HEIC.supplemental-metadata(1).json. Die Details stehen in supplemental-metadata.json erklärt.
Dürfen Sie sie löschen?
Ja, aber erst, nachdem Sie sie benutzt haben. Löschen Sie die JSON-Dateien zuerst, sind die Daten und Orte darin weg. Ihre Fotos zeigen dann für immer das Download-Datum, und der einzige Weg zurück ist ein neuer Takeout-Export.
Wenn alle Ihre Fotos bereits gute EXIF-Daten haben, bringen die JSON-Dateien wenig. Prüfen können Sie das mit exiftool: exiftool -r -if 'not $DateTimeOriginal' -filename . listet jedes Foto ohne EXIF-Datum. Ist die Liste leer, können Sie löschen.
Bei den meisten Bibliotheken ist die Liste nicht leer. Die sichere Reihenfolge: JSON-Daten in die Fotos übernehmen, ein paar Fotos prüfen, dann die .json-Dateien löschen. Immich, PhotoPrism und einige andere selbst gehostete Programme lesen Takeout-JSON-Dateien beim Import direkt. Wenn das Ihr Ziel ist, behalten Sie sie, bis der Import abgeschlossen ist.
Die Daten zurück ins Foto schreiben
Das geht mit exiftool, das die JSON-Datei liest und EXIF-Tags schreibt. Den Befehl und seine Fallstricke finden Sie in der exiftool-Anleitung. Kostenlose Skripte wie GooglePhotosTakeoutHelper setzen dieselbe Idee um.
Takeout JSON Metadata Fixer macht das als Desktop-App für Windows, Linux und Mac.
Die App liest jede JSON-Datei, schreibt photoTakenTime in die EXIF-Daten des Fotos, setzt die Dateidaten passend und trägt die GPS-Koordinaten ein, wenn sie echt sind und nicht null. Sie kennt beide Namensschemata, die gekürzten Namen und die (1)-Zähler, sodass sie keine Dateien überspringt, die ein Dateinamen-Muster verpassen würde. Auf Wunsch benennt sie die Fotos um und sortiert sie in Ordner, und sie kann neue .json-Dateien neben die Ausgabe schreiben, für Immich oder PhotoPrism. Alles läuft auf Ihrem Rechner. Die ersten 1000 Fotos sind kostenlos.
Häufige Fragen
Gibt es zu jedem Foto genau eine JSON-Datei?
Meistens. Fotos, die in mehreren Alben liegen, haben in jedem Albumordner eine Kopie der JSON-Datei. Einige Fotos haben gar keine, am häufigsten die Videoclips von Live Photos und Dateien aus sehr alten Uploads. Die behalten das Datum, das in der Datei steht.
Kann Google Fotos die Dateien selbst wieder lesen?
Nein. Laden Sie den Ordner wieder zu Google Fotos hoch, ignoriert Google die JSON-Dateien und nutzt die EXIF-Daten der Bilder. Deshalb verlieren auch Leute Daten, die zwischen zwei Google-Konten umziehen.
Sind die Zeitstempel in meiner Zeitzone?
Nein, es sind UTC-Zeitpunkte. Ein Werkzeug rechnet sie beim Schreiben ins EXIF in Ortszeit um, nach der Zeitzone Ihres Computers. Prüfen Sie, ob der Rechner auf die Zone eingestellt ist, in der die meisten Fotos entstanden sind.
Brauchen die JSON-Dateien viel Platz?
Einige hundert Byte bis ein paar Kilobyte pro Stück. Zehntausend davon sind etwa 10 MB. Der Platz ist kein Grund zum Löschen, die Unordnung schon.