Takeout JSON
SV

Vad är supplemental-metadata.json i Google Takeout?

Filen innehåller bildens datum, plats och bildtext från Google Foto. Det är 2024 års namn på Takeouts .json-fil. Spara den tills datan finns i bilden.

supplemental-metadata.json är den lilla textfil som Google Takeout lägger bredvid varje bild och video. Den innehåller det Google Foto visste om filen: datumet då bilden togs, GPS-platsen, bildtexten och det ursprungliga filnamnet. Sedan 2024 är det namnet på den sidecar-fil som äldre exporter kallade IMG_5512.HEIC.json. Innehållet är detsamma.

Spara filen tills datumet och platsen är inskrivna i bilden. De flesta bildappar läser den aldrig, så utan det steget visar dina bilder nedladdningsdatumet.

Du kanske är här för att ett skript som brukade fixa Takeout-exporter nu hoppar över hälften av bilderna. Eller så såg du IMG_5512.HEIC.supplemental-metadata.json bredvid en bild och PXL_20240311_183022711.jpg.supplemental-m.json bredvid en annan, och undrade om den andra är trasig. Ingen av dem är trasig. Här nedan går vi igenom namnen, fälten och vad du ska göra med filerna.

Vad "supplemental metadata" betyder

Metadata är information om en bild: när, var, vilken kamera. "Supplemental" betyder extra. Det är den information som Google Foto sparade i sin egen databas, inte inuti bildfilen.

Många bilder har redan ett datum inuti sig, i sin EXIF-data. Skärmbilder, bilder sparade från chattar, skanningar och alla bilder där du rättade datum eller plats i Google Foto har det inte. För dem är supplemental metadata-filen det enda som visar när och var bilden togs. Vad är JSON-filerna i Google Takeout? ger mer bakgrund.

Vad som finns i filen

Öppna en fil i Anteckningar, TextEdit eller valfri kodredigerare. Det är vanlig text. Fälten som spelar roll:

  • title: det ursprungliga filnamnet. Bra att ha när Takeout har kortat det riktiga filnamnet.
  • photoTakenTime: datumet då bilden togs, så som Google Foto visade det. Det inkluderar datum som du har rättat för hand. Det här är datumet du ska använda.
  • creationTime: när filen laddades upp till Google. För en skanning av ett gammalt papperskort kan det vara årtionden efter det riktiga datumet.
  • geoData: platsen så som Google Foto kände till den, inklusive en plats du har satt för hand.
  • geoDataExif: platsen som fanns i filens egen EXIF när den laddades upp.
  • description: din bildtext, om du skrev någon.
  • people och favorited: taggade namn och stjärnmärkta bilder, när de finns.

Tidsstämplarna är sekunder sedan 1 januari 1970, i UTC. En bild utan plats har 0.0 för både latitud och longitud. Se det som "ingen plats", inte som en riktig plats. Läs mer om att återställa GPS från Takeout (på engelska).

Varför namnet ändrades 2024

I många år hette sidecar-filen för IMG_5512.HEIC bara IMG_5512.HEIC.json. Bildens namn, sedan .json. Alla skript letade efter just det.

2024 bytte Google till IMG_5512.HEIC.supplemental-metadata.json. Samma innehåll, samma fält, längre namn. Det nya namnet säger vad filen är, i stället för ett ensamt .json som kunde tas för bildens egen data. Exporter som gjorts sedan dess använder det nya namnet. En gammal export på en disk någonstans använder det gamla, och en mapp som blandar båda exporterna innehåller båda.

Allt som letar efter <bild>.json hittar nu ingenting och går vidare. Vissa verktyg rapporterar "ingen sidecar hittades" för varje fil. Andra faller tyst tillbaka på filens datum, alltså nedladdningsdatumet, så bilderna får fel datum utan något felmeddelande. Det tysta felet ligger bakom många inlägg av typen "fixen fungerade inte".

Varför vissa namn är avkortade, som .supplemental-m.json

Google kortar hela sidecar-filens namn till 46 tecken. Med det gamla korta tillägget .json spelade det sällan någon roll. Med .supplemental-metadata.json förlorar varje bildnamn som är längre än ungefär 19 tecken en del av sitt tillägg.

En Pixel-bild som heter PXL_20240311_183022711.jpg har 26 tecken. Lägg till .supplemental-metadata.json och du får 53. Google kortar det till 46: PXL_20240311_183022711.jpg.supplemental-m.json. En Samsung-bild 20240311_183022.jpg får 20240311_183022.jpg.supplemental-metada.json. Varje kameramärke ger en lite annorlunda avkortning, så det finns inget enda tillägg att leta efter.

Filen är inte skadad. Det är bara namnet som är kort. Den säkra regeln: sidecar-filens namn är början på <bildens namn>.supplemental-metadata.json. Ett skript måste kontrollera det, inte jämföra med en fast sträng. Mycket långa ursprungliga filnamn, till exempel sådana du har skrivit själv, kan kortas ända in i bildnamnet. Därför är fältet title inuti sidecar-filen värt att läsa. Varför Takeout-filer har konstiga namn (på engelska) sammanfattar alla namnregler.

Var (1) hamnar

Google Foto tillåter två filer med samma namn, och Takeout måste lägga dem i en mapp. Den andra får en räknare: IMG_5512.HEIC och IMG_5512(1).HEIC.

Du skulle vänta dig att sidecar-filerna heter IMG_5512.HEIC.supplemental-metadata.json och IMG_5512(1).HEIC.supplemental-metadata.json. Det gör de inte. Räknaren flyttas till slutet av sidecar-namnet, före .json: IMG_5512.HEIC.supplemental-metadata(1).json. Med det gamla formatet blev det IMG_5512.HEIC(1).json.

Ett verktyg måste alltså ta bildens namn, ta bort (1), bygga sidecar-namnet och sätta tillbaka (1) precis före .json. Kombinera det med avkortningen till 46 tecken så får du namn som PXL_20240311_183022711.jpg.supplemental-(1).json. Riktiga exporter innehåller sådana.

Räknare är vanliga. Samma bild sparad i två album, en bild du redigerade där Google behöll båda versionerna, eller två telefoner som båda döpte en fil till IMG_0001.JPG ger alla upphov till dem.

Redigerade kopior har ingen egen sidecar-fil

Bilder som du redigerat i Google Foto kommer ut som två filer: IMG_5512.HEIC och IMG_5512-edited.HEIC. Oftast finns det bara en sidecar-fil, kopplad till originalets namn. Ett enkelt verktyg lämnar den redigerade kopian utan datum. Ett noggrant verktyg tar bort -edited och använder originalets sidecar-fil. Mer i dubbletter och redigerade versioner i Takeout (på engelska).

Kan jag radera supplemental-metadata.json?

Ja, men först när datumet och platsen finns inuti bilden. Raderar du filerna innan dess är den informationen borta. Bilderna behåller nedladdningsdatumet, och enda vägen tillbaka är en ny Takeout-export.

Säker ordning: slå ihop datan med bilderna, kontrollera några bilder och radera sedan .json-filerna. Om du importerar till Immich eller PhotoPrism, spara dem tills importen är klar, eftersom de verktygen kan läsa sidecar-filerna. Kan jag radera JSON-filerna från Google Takeout? har det korta svaret.

Vilka appar läser den?

Bilder på Mac, Windows och telefonernas gallerier gör det inte. De tittar bara inuti bildfilen. Google Foto läser den inte heller om du laddar upp mappen igen. Immich, PhotoPrism och några andra verktyg som du kör på egen server kan läsa Takeouts sidecar-filer vid import. För alla andra mål behöver du först skriva in datan i bilden.

Så får du tillbaka datan in i bilden

Att skriva sidecar-datan till bildens EXIF kallas att slå ihop (merge). Med exiftool kör du två gånger, en gång för varje tillägg:

exiftool -r -d %s -tagsfromfile "%d/%F.supplemental-metadata.json" "-DateTimeOriginal<PhotoTakenTimeTimestamp" -ext jpg -ext heic -overwrite_original .
exiftool -r -d %s -tagsfromfile "%d/%F.json" "-DateTimeOriginal<PhotoTakenTimeTimestamp" -ext jpg -ext heic -overwrite_original .

Lista sedan det som fortfarande saknar datum med exiftool -r -if 'not $DateTimeOriginal' -filename .. Det som är kvar är de avkortade namnen och (1)-fallen. Det enklaste är att döpa om de sidecar-filerna till det fullständiga förväntade namnet med ett kort skript och sedan köra exiftool igen. Hela genomgången, med GPS och videor, finns i slå ihop JSON-metadata med bilderna och i guiden för exiftool.

GooglePhotosTakeoutHelper, ett gratis verktyg från användarna själva, har den här matchningen inbyggd och är det vanliga valet om du trivs i en terminal. Dess versioner hänger ibland efter Googles ändringar, så titta i ärendelistan om en körning hoppar över filer.

Appen

Takeout JSON Metadata Fixer hanterar alla de här fallen utan inställningar, på macOS, Windows och Linux.

För varje bild provar den 2024 års namn, det gamla namnet, den flyttade räknaren (1) och till sist varje .json i mappen vars namn är början på det fullständiga förväntade namnet. Redigerade kopior lånar originalets sidecar-fil. Sedan skriver den datum och GPS in i filen. Den rapporterar hur många bilder som matchade en sidecar-fil och hur många som föll tillbaka på EXIF eller filens datum, så att du ser om matchningen fungerade innan du raderar något. En testkörning visar planen utan att skriva något. De första 1000 bilderna är gratis.

Vanliga frågor

Skiljer sig innehållet i supplemental-metadata.json från den gamla .json-filen?

Nej. Fälten är desamma: title, photoTakenTime, creationTime, geoData, geoDataExif och så vidare. Det är bara filnamnet som har ändrats.

Min bild har ingen sidecar-fil alls. Varför?

Klipp från Live Photos har ofta ingen. Vissa mycket gamla uppladdningar har ingen. Och om en sidecar-fil är avkortad eller har en flyttad räknare kan ditt verktyg rapportera den som saknad fast den finns. Titta själv i mappen. Varför vissa bilder saknar JSON-fil (på engelska) listar de vanliga fallen.

Är filen ett virus eller spionprogram?

Nej. Det är en vanlig textfil som Google skriver in i din egen export. Den innehåller ingen programkod.

Kan jag döpa om sidecar-filerna tillbaka till det gamla formatet?

Ja, och då fungerar gamla skript igen. Det räcker med att ta bort .supplemental-metadata och flytta tillbaka (1) till bilddelen av namnet. Gör det på en kopia först.

Kommer Google att byta namn igen?

Kanske. Det säkra för alla verktyg är att matcha på början av namnet och på fältet title, inte på ett exakt tillägg.