Takeout JSON
SV

Vad är JSON-filerna i Google Takeout? Kan jag radera dem?

Varje .json-fil innehåller en bilds riktiga datum, plats och bildtext. Radera dem först när datan är inskriven i bilderna, annars försvinner datumen.

JSON-filerna i Google Takeout innehåller det som Google Foto visste om varje bild: datumet då den togs, platsen, bildtexten och det ursprungliga filnamnet. Det ligger en bredvid nästan varje bild och video, med ett namn som IMG_3391.HEIC.supplemental-metadata.json. Du kan radera dem, men först när datumen och platserna är inskrivna i bilderna. Raderar du dem innan dess behåller bilderna nedladdningsdatumet.

Du packade upp din export från Google Foto och hälften av filerna är inga bilder. Du bad inte om dem, de flesta program kan inte öppna dem, och de är tusentals. De är inte skräp. De innehåller datumen och platserna som Google inte skrev in i dina bilder.

Varför Google lägger till dem

Google Foto sparar det den vet om en bild i sin egen databas: när den togs, var, vilket album den ligger i, om du har stjärnmärkt den, och datum eller platser som du har rättat för hand. Själva bildfilen kan ha den informationen i sitt EXIF-block, eller inte. Skärmbilder och bilder från chattar har det oftast inte. Ändringar du gjort i Google Foto finns aldrig där.

När du exporterar får du bildfilen ungefär som den laddades upp. Google skriver inte tillbaka sin databas i varje fil. I stället lägger den databasposten i en liten textfil bredvid bilden. Den textfilen kallas en sidecar-fil (på engelska), och JSON är formatet den är skriven i.

Vad som finns i en fil

Öppna en i Anteckningar, TextEdit eller valfri kodredigerare. En typisk sidecar-fil ser ut så här, lite nedkortad:

{
  "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 två datumen, photoTakenTime och creationTime, får ett eget avsnitt längre ned. De andra fälten som spelar roll:

geoData är platsen så som Google Foto kände till den, inklusive en plats du har satt för hand. geoDataExif är platsen som fanns i filens egen EXIF vid uppladdningen. När en bild saknar plats innehåller båda nollor: 0.0, 0.0, en punkt i Atlanten. Se nollor som "okänd plats", inte som en riktig plats. Mer om det i att återställa GPS från Takeout (på engelska).

description är bildtexten du skrev, om någon. people listar namn som du har taggat, när de finns. favorited är true för stjärnmärkta bilder. title är det ursprungliga filnamnet, vilket är bra eftersom Takeout ibland kortar det riktiga filnamnet.

Vilket datum är det rätta?

Använd photoTakenTime. Det är datumet då bilden togs, så som Google Foto visade det. Om du rättade ett datum i Google Foto finns din rättelse i det här fältet.

creationTime är när filen laddades upp till Google. För en bild som togs och säkerhetskopierades samma dag är de lika. För en skanning av ett papperskort från 1985 som laddades upp 2021 skiljer de årtionden.

Båda anges som en timestamp, alltså sekunder sedan 1 januari 1970, i UTC. Raden formatted är samma tidpunkt i läsbar form, också i UTC.

Albumfilerna

Varje albummapp har också en metadata.json som beskriver själva albumet, inte en bild. Den innehåller albumets titel och ibland ett datum och en markering för delade album. Den är liten och ofarlig. Verktyg som importerar album, till exempel immich-go, läser den. Vad som händer med album i Google Takeout (på engelska) förklarar mapparna.

Varför de heter supplemental-metadata.json

Äldre exporter döpte sidecar-filen till IMG_3391.HEIC.json. Från 2024 blev namnet IMG_3391.HEIC.supplemental-metadata.json. Google kortar också långa sidecar-namn vid 46 tecken, så en Pixel-bild får en partner som heter PXL_20230721_092530123.jpg.supplemental-m.json. När två bilder har samma namn hamnar räknaren på ett annat ställe i sidecar-namnet: IMG_3391(1).HEIC hör ihop med IMG_3391.HEIC.supplemental-metadata(1).json. Detaljerna finns i supplemental-metadata.json förklarat.

Kan jag radera JSON-filerna från Google Takeout?

Ja, men först när du har använt dem. Raderar du sidecar-filerna först försvinner datumen och platserna i dem. Dina bilder visar då nedladdningsdatumet för alltid, och enda sättet att få tillbaka informationen är att köra Takeout igen.

Om alla dina bilder redan har bra EXIF tillför sidecar-filerna inte mycket. Du kan kontrollera det med exiftool: exiftool -r -if 'not $DateTimeOriginal' -filename . skriver ut varje bild som saknar EXIF-datum. Är listan tom kan du radera dem.

För de flesta bibliotek är listan inte tom. Säker ordning: slå ihop sidecar-datan med bilderna, kontrollera några och radera sedan .json-filerna. Immich, PhotoPrism och några andra verktyg som du kör på egen server kan läsa Takeouts sidecar-filer direkt vid import, så om det är ditt mål ska du spara dem tills importen är klar. Den korta versionen finns i Kan jag radera JSON-filerna från Google Takeout?

Vilka program läser dem?

Bilder på Mac, appen Foton i Windows, Utforskaren, Finder och telefonernas gallerier gör det inte. De läser datumet inuti bildfilen, hittar inget och använder filens datum, alltså dagen du packade upp exporten. Det är därför alla Takeout-bilder visar fel datum.

Google Foto läser dem inte heller. Immich och PhotoPrism kan läsa dem vid import; se PhotoPrism och JSON-sidecar-filer (på engelska) och från Google Foto till Immich (på engelska).

Varför saknar vissa bilder JSON-fil?

Alla bilder får inte en. Videodelen av en Live Photo har ofta ingen. Vissa mycket gamla uppladdningar har ingen. De bilderna behåller det datum som finns i filen. Varför vissa bilder saknar JSON-fil (på engelska) listar fallen och vad som händer med de bilderna.

Så får du tillbaka datan in i bilderna

Det här steget kallas att slå ihop (merge). Du kan göra det med exiftool, som läser sidecar-filen och skriver EXIF-taggar. Kommandot och fallgroparna finns i slå ihop JSON-metadata med bilderna. Gratisskript som GooglePhotosTakeoutHelper bygger på samma idé.

Takeout JSON Metadata Fixer gör det som en skrivbordsapp på macOS, Windows och Linux.

Den läser varje sidecar-fil, skriver photoTakenTime till bildens EXIF, sätter filens datum så att de stämmer och skriver GPS-koordinaterna när de är riktiga och inte nollor. Den känner till båda namnformaten för sidecar-filer, de avkortade namnen och räknarna (1), så den hoppar inte över filer som ett filnamnsmönster skulle missa. Om du vill byter den namn på bilderna och sorterar dem i mappar, och den kan skriva nya .json-filer bredvid resultatet för Immich eller PhotoPrism. Allt körs på din dator. De första 1000 bilderna är gratis.

Vanliga frågor

Finns det en JSON-fil per bild?

Oftast. Bilder som finns i flera album har en kopia av sidecar-filen i varje albummapp. Några bilder har ingen sidecar-fil alls, oftast klipp från Live Photos och filer från mycket gamla uppladdningar. De behåller det datum som finns i filen.

Hur öppnar jag en JSON-fil från Google Takeout?

Med valfri textredigerare: Anteckningar i Windows, TextEdit på Mac eller en kodredigerare. Det är vanlig text. Att öppna den ändrar ingenting.

Kan Google Foto själv läsa dem igen?

Nej. Om du laddar upp mappen till Google Foto igen ignoreras sidecar-filerna och EXIF i filerna används. Därför tappar även den som flyttar mellan två Google-konton sina datum. Se flytta Google Foto mellan konton (på engelska).

Är tidsstämplarna i min tidszon?

Nej. De är tidpunkter i UTC. Ett verktyg räknar om dem till lokal tid när det skriver EXIF, med datorns tidszon. Kontrollera att datorn är inställd på den zon där de flesta bilderna togs.

Tar JSON-filerna mycket plats?

Några hundra byte till ett par kilobyte styck. Tiotusen av dem blir ungefär 10 MB. Platsen är inte skälet att radera dem; det är röran.