Takeout JSON
NL

Wat zijn de .json-bestanden in Google Takeout? Mag je ze weg?

Elk .json-bestand bevat de echte datum, plaats en beschrijving van één foto. Verwijder ze pas als die gegevens in de foto's staan.

De .json-bestanden in Google Takeout bevatten wat Google Foto's over elke foto wist: de opnamedatum, de plaats, de beschrijving en de originele bestandsnaam. Naast bijna elke foto en video staat er een, met een naam als IMG_3391.HEIC.supplemental-metadata.json. Je mag ze verwijderen, maar pas nadat de datums en plaatsen in de foto's zelf staan. Gooi je ze eerst weg, dan houden je foto's de datum van de download.

Je hebt je export uit Google Foto's uitgepakt en de helft van de bestanden is geen foto. Je hebt er niet om gevraagd, de meeste programma's kunnen ze niet openen en het zijn er duizenden. Toch is het geen rommel. Ze bevatten de datums en plaatsen die Google niet in je foto's heeft gezet.

Waarom Google ze toevoegt

Google Foto's bewaart wat het over een foto weet in een eigen database: wanneer hij is gemaakt, waar, in welk album hij zit, of je hem een ster hebt gegeven, en elke datum of plaats die je met de hand hebt verbeterd. Het fotobestand zelf heeft die gegevens soms wel en soms niet in zijn EXIF-blok. Schermafbeeldingen en foto's uit chats meestal niet. Aanpassingen die je in Google Foto's deed nooit.

Bij een export geeft Google je het fotobestand ongeveer zoals het werd geüpload. Google schrijft de database niet terug in elk bestand. In plaats daarvan komt de regel uit de database in een klein tekstbestand naast de foto. Zo'n tekstbestand heet een sidecarbestand (Engels), en JSON is het formaat waarin het is geschreven.

Wat staat erin?

Open er een in Kladblok, TextEdit of een code-editor. Een gewoon sidecarbestand ziet er ongeveer zo uit, iets ingekort:

{
  "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"
    }
  }
}

De twee datums, photoTakenTime en creationTime, krijgen hieronder een eigen stuk. De andere velden die ertoe doen:

geoData is de plaats zoals Google Foto's die kende, ook als je die met de hand hebt ingesteld. geoDataExif is de plaats die bij het uploaden in de EXIF van het bestand zelf stond. Heeft een foto geen plaats, dan staan in allebei nullen: 0.0, 0.0, een punt in de Atlantische Oceaan. Zie alleen nullen als "onbekend", niet als een echte plek. Meer daarover in GPS terugzetten uit Takeout (Engels).

description is de beschrijving die je hebt getypt, als die er is. people bevat de namen die je hebt getagd, als die er zijn. favorited is true voor foto's met een ster. title is de originele bestandsnaam. Dat is handig, want Takeout kort de echte bestandsnaam soms in.

Welke datum is de juiste?

Gebruik photoTakenTime. Dat is de datum waarop de foto is gemaakt, zoals Google Foto's hem liet zien. Heb je een datum in Google Foto's aangepast, dan staat jouw aanpassing in dit veld.

creationTime is het moment waarop het bestand naar Google is geüpload. Bij een foto die op dezelfde dag is gemaakt en geback-upt, zijn de twee gelijk. Bij een scan van een afdruk uit 1985 die in 2021 is geüpload, zitten er tientallen jaren tussen.

Allebei staan ze als timestamp, het aantal seconden sinds 1 januari 1970, in UTC. De regel formatted is hetzelfde moment in leesbare vorm, ook in UTC.

De albumbestanden

Elke albummap heeft ook één metadata.json die het album zelf beschrijft, geen foto. Daarin staan de titel van het album en soms een datum en een vlag voor een gedeeld album. Het is klein en onschuldig. Programma's die albums importeren, zoals immich-go, lezen het. Wat er met albums gebeurt in Google Takeout (Engels) legt de mappen uit.

Waarom heten ze supplemental-metadata.json?

Oudere exports noemden het sidecarbestand IMG_3391.HEIC.json. Sinds 2024 heet het IMG_3391.HEIC.supplemental-metadata.json. Google kapt lange namen van sidecarbestanden ook af op 46 tekens, dus een foto van een Pixel krijgt een partner met de naam PXL_20230721_092530123.jpg.supplemental-m.json. Hebben twee foto's dezelfde naam, dan staat het volgnummer bij het sidecarbestand op een andere plek: IMG_3391(1).HEIC hoort bij IMG_3391.HEIC.supplemental-metadata(1).json. De details staan in supplemental-metadata.json uitgelegd.

Mag je de .json-bestanden uit Google Takeout verwijderen?

Ja, maar pas nadat je ze hebt gebruikt. Verwijder je de sidecarbestanden eerst, dan zijn de datums en plaatsen die erin staan weg. Je foto's tonen dan voorgoed de datum van de download, en de enige manier om de gegevens terug te krijgen is Takeout opnieuw uitvoeren.

Hebben al je foto's al goede EXIF, dan voegen de sidecarbestanden weinig toe. Dat kun je controleren met exiftool: exiftool -r -if 'not $DateTimeOriginal' -filename . toont elke foto zonder EXIF-datum. Is de lijst leeg, dan kun je ze verwijderen.

Bij de meeste bibliotheken is de lijst niet leeg. De veilige volgorde is: zet de gegevens uit de sidecarbestanden in de foto's, controleer er een paar, en verwijder dan pas de .json-bestanden. Immich, PhotoPrism en een paar andere zelf gehoste programma's kunnen Takeout-sidecarbestanden direct lezen tijdens het importeren. Is dat je bestemming, bewaar ze dan tot de import klaar is. De korte versie staat in Mag je de .json-bestanden van Google Takeout verwijderen?

Welke programma's lezen ze?

Apple Foto's, de Foto's-app van Windows, Verkenner, Finder en de galerij op je telefoon niet. Die lezen de datum in het fotobestand, vinden niets en nemen de bestandsdatum, en dat is de dag waarop je de export hebt uitgepakt. Daarom heeft elke Takeout-foto de verkeerde datum.

Google Foto's leest ze ook niet. Immich en PhotoPrism kunnen ze lezen tijdens het importeren; zie PhotoPrism en JSON-sidecarbestanden (Engels) en Google Foto's naar Immich (Engels).

Waarom hebben sommige foto's geen .json-bestand?

Niet elke foto krijgt er een. Het videodeel van een Live Photo heeft er vaak geen. Sommige heel oude uploads hebben er geen. Die foto's houden de datum die in het bestand zelf staat. Waarom sommige foto's geen JSON-bestand hebben (Engels) zet de gevallen op een rij en vertelt wat er met die foto's gebeurt.

De gegevens terugzetten in de foto's

Deze stap heet samenvoegen. Dat kan met exiftool, dat het sidecarbestand leest en EXIF-tags schrijft. De opdracht en de valkuilen staan in .json-metadata in je foto's zetten. Gratis scripts zoals GooglePhotosTakeoutHelper werken met hetzelfde idee.

Takeout JSON Metadata Fixer doet het als desktop-app op macOS, Windows en Linux.

De app leest elk sidecarbestand, schrijft photoTakenTime in de EXIF van de foto, zet de bestandsdatums gelijk en schrijft de GPS-coördinaten als die echt zijn en geen nullen. De app kent beide naamgevingen van sidecarbestanden, de afgekapte namen en de volgnummers (1), dus slaat geen bestanden over die een simpel naamzoekpatroon zou missen. Als je wilt, geeft de app de foto's een nieuwe naam en ordent ze in mappen, en schrijft hij nieuwe .json-sidecarbestanden naast de uitvoer voor Immich of PhotoPrism. Alles draait op je eigen computer. De eerste 1000 foto's zijn gratis.

Veelgestelde vragen

Is er één .json-bestand per foto?

Meestal wel. Foto's die in meerdere albums staan, hebben een kopie van het sidecarbestand in elke albummap. Een paar foto's hebben helemaal geen sidecarbestand, meestal clips van Live Photos en bestanden uit heel oude uploads. Die houden de datum die in het bestand staat.

Hoe open je een .json-bestand uit Google Takeout?

Met elke teksteditor: Kladblok op Windows, TextEdit op een Mac, of een code-editor. Het is gewone tekst. Openen verandert niets.

Kan Google Foto's ze zelf weer inlezen?

Nee. Upload je de map opnieuw naar Google Foto's, dan negeert Google de sidecarbestanden en gebruikt het de EXIF in de bestanden. Daarom raken mensen die tussen twee Google-accounts verhuizen ook hun datums kwijt. Zie Google Foto's verhuizen tussen accounts (Engels).

Staan de tijden in mijn tijdzone?

Nee. Het zijn momenten in UTC. Een programma zet ze om naar een lokale tijd als het de EXIF schrijft, met de tijdzone van je computer. Controleer dus of je computer op de tijdzone staat waarin de meeste foto's zijn gemaakt.

Nemen de .json-bestanden veel ruimte in?

Een paar honderd bytes tot een paar kilobytes per stuk. Tienduizend ervan is ongeveer 10 MB. Ruimte is dus niet de reden om ze te verwijderen; de rommel wel.