Hvorfor har Google Foto-bildene mine feil dato?

Du lastet ned år med bilder fra Google Takeout, og hvert eneste av dem sier at det ble tatt den dagen du lastet det ned. Ti år med bilder havner i bildeappen din som én eneste enorm dag.

Kan du få det tilbake?

Nesten helt sikkert. Talt opp i én ekte Takeout med over to tusen bilder: omtrent halvparten bærer fortsatt opptaksdatoen inni fila, og for den andre halvparten ligger den i en liten JSON-fil ved siden av bildet. Færre enn ett av hundre hadde ingen dato noe sted. Så den ligger nesten alltid allerede i mappen du lastet ned - men for rundt halve biblioteket er den JSON-fila eneste kopi som finnes, og det gjør det å slette dem til den ene feilen her du ikke kan gjøre om.

Hva som faktisk skjedde

To forskjellige ting går galt her, og de blandes sammen. Den første skjer med alle: fila som lander på disken din har et endringstidspunkt fra det øyeblikket Google pakket den, og de fleste bildeprogrammer sorterer etter nettopp det. Så bildene kommer som én enorm dag stemplet med datoen du trykket last ned, uansett hva annet som er sant om dem.

Den andre er den som er verdt å måle. Det sies vidt og bredt at Takeout stripper opptaksdatoen ut av hvert eneste bilde. Talt opp over mer enn to tusen bilder i en ekte eksport bar omtrent halvparten den fortsatt, og omtrent halvparten gjorde det ikke. For den halvparten har JSON-fila ved siden av bildet eneste kopi av datoen som finnes noe sted, og når den først er borte kan intet verktøy regne datoen ut igjen.

Den halvparten som er i orden er nettopp det som gjør dette så forvirrende

Fordi delingen er omtrent jevn, kan to personer se på samme slags eksport og gå derfra sikre på hver sin motsatte konklusjon. Den som sjekker et bilde fra halvparten som beholdt datoen, konkluderer med at Takeout er i orden og at problemet er bildeappen. Den som sjekker et fra den andre halvparten, konkluderer med at Takeout stripper alt. Begge har halvveis rett, og det er derfor rådene på nett motsier hverandre. Den praktiske følgen er at et verktøy som går ut fra at datoen alltid ligger i fila, skriver ingenting for halve biblioteket ditt og melder om suksess. Der et bilde bar en dato begge steder, var de to enige hver eneste gang, over mer enn tusen av dem, så sidevognfila kan stoles på for den halvparten som trenger den.

Slik retter du det

Du trenger ikke oss til dette. To veier, begge gratis.

exiftool, hvis du er komfortabel i et terminalvindu
Sjekk hva sidevognfilene dine faktisk heter før du kjører noe som helst. I eksporten som ble målt her het hver eneste av dem IMG_1234.jpg.supplemental-metadata.json, og enlinjeren som kopieres overalt og ender på .json treffer ingen av dem - den kjører, melder ingen feil, og skriver ingenting. Slik treffer du navnet som faktisk er der: exiftool -r -d %s -tagsfromfile "%d%f.%e.supplemental-metadata.json" "-DateTimeOriginal<PhotoTakenTimeTimestamp" -overwrite_original -ext jpg . Google skal også kutte den lange endelsen midt av når hele filnavnet blir langt, hvilket gir navn som .supplemental-me.json. Et fast mønster hopper over hver eneste av dem også, og exiftool sier ikke fra om hvor mange den hoppet over.
Google Photos Takeout Helper, hvis du heller vil slippe
Et kommandolinjeverktøy med åpen kildekode laget for akkurat denne jobben, og det håndterer navnevariantene. Er alt du vil ha at Google-bildene dine blir riktig datert og skrevet inn i mapper, gjør det den jobben godt, og det er det riktige svaret for en engangsjobb.

Slik gjør Muletto det

Muletto kobler sidevognfiler etter forstavelse i stedet for etter en fast endelse, så et avkortet navn finnes like lett som det fullstendige, og den leser datoen ut av selve bildet der den fortsatt er der. Den melder fra om hvor mange bilder den ikke fant noen dato for noe sted, i stedet for å gå stille videre. Datoen, og der Google tok vare på det, stedet, skrives inn i fila, så det du importerer inn i etterpå leser dem uten å trenge JSON-en lenger. Det kjører i nettleseren, og arkivet lastes aldri opp.

Open an export

Slik unngår du det neste gang

Behold JSON-filene til datoene er skrevet inn i bildene. De ser ut som rot, og for omtrent halve biblioteket ditt er de eneste kopi av opptaksdatoen. Når datoene først ligger i bildene selv, kan sidevognfilene ryke.

Målt mot én ekte Takeout med over to tusen bilder. Omtrent halvparten bar en innebygd opptaksdato og omtrent halvparten gjorde det ikke; for omtrent halve biblioteket hadde sidevognfila eneste kopi, og færre enn én prosent hadde ingen dato noen av stedene. Hver eneste sidevognfil brukte den samme endelsen .supplemental-metadata.json, og omtrent én mediefil av ni hadde ingen sidevognfil i det hele tatt. Der begge fantes, var de to datoene like i hvert eneste tilfelle, av over tusen. Det er én eksport og ikke en undersøkelse, så andelene er en pekepinn og ikke en regel - det de derimot avgjør, er at den flate påstanden om at Takeout stripper datoen fra alt sammen, ikke stemmer.