Google Takeout, foto con la data sbagliata: ecco perché
Perché tutte le foto scaricate con Google Takeout hanno la data del download, dove sono finite le date vere e come rimetterle dentro le foto.
Hai scaricato la tua libreria di Google Foto, hai estratto lo zip e hai aperto la cartella. Dieci anni di foto, e ognuna risulta scattata martedì scorso. Ordinando per data, le vacanze del 2012 finiscono accanto agli screenshot di ieri.
Non si è perso niente. Le date ci sono ancora, solo che non stanno dove il computer va a cercarle.
Dove è finita la data
Una foto può portare la data in tre posti. La fotocamera la scrive dentro il file stesso, nel blocco EXIF, nel campo "DateTimeOriginal". Il sistema operativo ne tiene altre due all'esterno del file: data di creazione e data di modifica. Esplora file, il Finder e quasi tutte le app di galleria leggono prima l'EXIF e, se manca, ripiegano sulle date del file.
Takeout rompe questo meccanismo in due modi. Primo: quando Google impacchetta i file in uno zip, le date del file diventano il momento in cui lo zip è stato creato, o quello in cui l'hai estratto. Di per sé non sarebbe grave, se l'EXIF fosse intatto.
Secondo: per una buona fetta di foto l'EXIF manca o è sbagliato. Gli screenshot non l'hanno mai avuto. WhatsApp e le altre app di messaggistica tolgono i metadati quando comprimono. Le scansioni hanno la data della scansione, non quella della stampa. E se hai mai corretto una data dentro Google Foto, la correzione è finita nel database di Google, non nel file. Google mette l'informazione corretta in un file .json separato accanto a ogni foto, invece di scriverla nell'immagine.
Il computer ignora del tutto quei file .json. Quindi mostra l'unica data che trova: quella del download.
Controlla quanto è grave
Prima di correggere qualcosa, guarda quanti file ne hanno davvero bisogno. Le foto scattate direttamente con la fotocamera del telefono di solito hanno ancora una data EXIF valida. Se la maggior parte delle tue ce l'ha, forse devi sistemare solo una parte.
Se hai installato exiftool, questo comando elenca tutti i file senza data EXIF:
exiftool -r -if 'not $DateTimeOriginal' -filename "Takeout/Google Foto"
Su una parte reale di Takeout da 991 foto che abbiamo misurato, i file JSON erano l'unica fonte di una data corretta per circa una foto su cinque. La tua proporzione sarà diversa. Le librerie piene di screenshot, chat e vecchie scansioni dipendono molto di più dai JSON.
Apri un file JSON e guarda
Ogni foto ha un file compagno, per esempio IMG_2034.JPG.supplemental-metadata.json (le esportazioni più vecchie usano IMG_2034.JPG.json). Aprilo con un qualsiasi editor di testo. La parte che conta è questa:
"photoTakenTime": {
"timestamp": "1563102330",
"formatted": "Jul 14, 2019, 11:05:30 AM UTC"
}
Quel timestamp è la data vera, in secondi dal 1970, in UTC. C'è anche un creationTime, che è il momento in cui il file è stato caricato su Google. Se vuoi la data dello scatto, il campo giusto è photoTakenTime. Il file intero è spiegato in cosa sono i file JSON di Google Takeout.
Correggere a mano
Per una manciata di foto, imposta la data manualmente. Su Windows, tasto destro sul file, Proprietà, scheda Dettagli, e modifica "Data acquisizione". Su Mac, importa la foto in Foto e usa Immagine, Regola data e ora. Fallo per cinquanta foto e vorrai un metodo migliore.
Per una libreria intera lo strumento classico è exiftool. Un solo comando copia il timestamp da ogni JSON dentro la foto e nelle date del file:
exiftool -r -d %s -tagsfromfile "%d/%F.supplemental-metadata.json" \
"-DateTimeOriginal<PhotoTakenTimeTimestamp" \
"-FileCreateDate<PhotoTakenTimeTimestamp" \
"-FileModifyDate<PhotoTakenTimeTimestamp" \
-ext jpg -ext jpeg -overwrite_original "Takeout/Google Foto"
Funziona, con qualche trappola. Google taglia i nomi lunghi dei JSON a 46 caratteri, quindi lo schema qui sopra ne salta alcuni. I duplicati hanno il (1) in una posizione diversa nel nome del JSON rispetto alla foto. I video usano tag diversi. HEIC e PNG richiedono passaggi separati. È tutto nella guida a exiftool. Esistono anche script gratuiti della community come GooglePhotosTakeoutHelper che gestiscono le stranezze dei nomi, se te la cavi con il terminale.
L'app
Se preferisci non passare una serata sulla riga di comando, Takeout JSON Metadata Fixer fa lo stesso lavoro come app desktop per Windows, Mac e Linux, con l'interfaccia in italiano.
Le indichi gli zip di Takeout o la cartella già estratta. Abbina ogni foto al suo JSON, compresi i nomi supplemental-metadata del 2024, quelli troncati e i duplicati con (1). Poi scrive photoTakenTime nell'EXIF della foto e imposta le date di creazione e modifica del file allo stesso valore. Le foto senza JSON tengono la loro data EXIF se ce l'hanno, altrimenti la data del file, così nessuna resta senza data.
Anche i video ricevono la loro data, scritta dentro l'MP4 o il MOV dove i lettori la cercano. Le coordinate GPS tornano nella foto quando il JSON ne ha di vere. Puoi anche farle rinominare con la data reale e ordinare in cartelle per anno e mese, ma è facoltativo. Se vuoi solo le date corrette, scegli "Mantieni i nomi" e "Mantieni le mie cartelle".
C'è una prova a secco che mostra cosa cambierebbe senza scrivere nulla. Le prime 1000 foto sono gratuite; un acquisto una tantum di 19,99 USD toglie il limite. Tutto gira sul tuo computer, le foto non vengono mai caricate da nessuna parte.
Una volta che le date sono dentro i file, restano corrette ovunque vadano le foto: Foto di Apple, un NAS, Immich, una chiavetta USB o un telefono nuovo.
Domande frequenti
Le date saranno nel fuso orario giusto?
Il JSON contiene un istante esatto in UTC. Gli strumenti lo convertono nell'ora locale del computer quando scrivono l'EXIF, che di norma non registra il fuso. Una foto scattata alle 11:05 a Roma esce alle 11:05 se il computer è impostato sull'ora italiana, e alle 05:05 se è impostato su New York. Prima di correggere, imposta il computer sul fuso in cui è stata scattata la maggior parte delle foto, oppure accetta qualche ora di scarto sulle foto delle vacanze.
Scrivendo nell'EXIF perdo qualcosa?
Scrivere un tag di data modifica solo il blocco dei metadati. I pixel dell'immagine non vengono toccati. Conserva gli zip originali finché non sei soddisfatto del risultato, che è comunque buona abitudine.
Perché solo alcune foto sono sbagliate?
Perché solo alcune foto non avevano una data EXIF in partenza. Le foto della fotocamera di solito ce l'hanno. Screenshot, immagini dalle chat, scansioni e tutto ciò che hai ridatato dentro Google Foto dipendono dal JSON.
Posso cancellare i file JSON dopo aver corretto le date?
Sì. Una volta che data e GPS sono scritti nelle foto, i JSON hanno finito il loro compito. Tienili finché non hai controllato qualche foto nella nuova libreria, poi cancellali. Ne parliamo in si possono eliminare i file JSON di Google Takeout.