Takeout JSON
IT

Immich mostra le date sbagliate dopo l'importazione

Perché in Immich le foto finiscono sul giorno sbagliato, come Immich sceglie la data da EXIF e sidecar, e come correggere i file prima di importarli.

Hai installato Immich, hai caricato la libreria e la timeline è sbagliata. Migliaia di foto hanno la data del giorno dell'importazione. Le vecchie vacanze stanno in cima. Alcune date sono spostate esattamente di qualche ora.

Come Immich sceglie la data

Immich legge i metadati di ogni file e prende la prima data che trova, in un ordine fisso. Più o meno: un sidecar XMP accanto al file se c'è, poi DateTimeOriginal dall'EXIF, poi CreateDate del video, e come ultima risorsa la data di modifica del file.

Legge il file. Non chiede a te. Quindi una foto senza data EXIF prende la data del file, e la data del file è quella lasciata dall'ultima copia, di solito oggi. La differenza è spiegata in data acquisizione e data ultima modifica.

Anche gli strumenti di caricamento di Immich, l'app per telefono e la CLI, passano la data di modifica del file. Se è sbagliata pure quella, non resta niente che salvi la foto.

Le cause più comuni

Google Takeout. La più grande. Google toglie la data EXIF da molte foto e mette quella vera in un sidecar .json accanto al file. Immich non legge il formato .json di Google. Carica quei file così come sono e ogni foto senza EXIF prende la data del caricamento. Per questo caso c'è la guida completa esportare Google Foto in Immich.

Le app di messaggi. WhatsApp e simili tolgono tutto l'EXIF. Quelle foto hanno solo la data del file. Vedi foto di WhatsApp con la data sbagliata.

Screenshot e download. I PNG e le immagini prese dal web hanno raramente una data EXIF.

Scansioni. La data dello scanner, cioè quando hai fatto la scansione, non quando è stata scattata la foto.

Fusi orari. Una foto con data EXIF ma senza scarto dal fuso viene trattata come UTC da alcune parti e come ora locale da altre. Il giorno è giusto, l'ora no. I telefoni recenti scrivono un campo con lo scarto ed evitano il problema.

I due modi per correggere

Correggere dentro Immich. Puoi selezionare le foto nell'interfaccia web e cambiare data e ora, una selezione alla volta. Per poche foto va bene. Per un'esportazione di Takeout da quarantamila no, e la correzione vive solo nel database di Immich. Se un giorno esporti la libreria, le date spariscono di nuovo.

Correggere prima i file. Scrivi la data giusta nell'EXIF di ogni file prima di caricarlo. Immich la legge e la prende giusta, e così ogni altro strumento che userai su quei file. Questa è la correzione che dura.

immich-go, e quando usarlo

immich-go è uno strumento gratuito a riga di comando che carica su Immich e capisce Google Takeout. Legge i sidecar .json, li abbina ai file e manda a Immich la data corretta insieme al caricamento. Se Immich è la tua unica destinazione e il terminale non ti spaventa, è un buono strumento e gestisce anche gli album.

Quello che non fa è cambiare i file. La data va nel database di Immich, non nella foto. Se un giorno migri di nuovo, o punti PhotoPrism o Foto di Apple sugli stessi file, ricominci da capo.

Correggere i file a mano

exiftool sa scrivere la data di Takeout nell'EXIF. Il comando è delicato, perché i nomi dei sidecar di Google non corrispondono ai nomi delle foto in vari modi. C'è un esempio completo in correggere le date di Google Takeout con exiftool.

Per le foto senza sidecar e senza EXIF ma con la data del file giusta, copia la data del file nell'EXIF:

exiftool "-DateTimeOriginal<FileModifyDate" -if 'not $DateTimeOriginal' -r .

Per una cartella di cui conosci la data e nient'altro, impostala:

exiftool -DateTimeOriginal="2014:08:10 12:00:00" -overwrite_original .

Poi rilancia il job di estrazione dei metadati dalla pagina di amministrazione di Immich, oppure ricarica i file, così legge i nuovi valori.

Con l'app

Takeout JSON Metadata Fixer prepara una cartella che Immich importa senza problemi. Scrive la data vera e il GPS in ogni file, così Immich li legge direttamente dall'EXIF.

Dagli un'esportazione di Takeout, in uno zip o in tanti, oppure una cartella qualsiasi. Per ogni foto prende la data dal sidecar .json, poi dall'EXIF, poi dalla data del file, e scrive il risultato nell'EXIF e nelle date del file. Il GPS entra allo stesso modo. Se vuoi, converte gli HEIC in JPG nello stesso passaggio. Alle foto senza nessuna data puoi dare a mano una data e un luogo per tutta la cartella.

Se lo attivi, scrive anche un sidecar .json accanto a ogni file in uscita. Immich non li legge, ma immich-go e altri strumenti di importazione sì, e tengono i metadati leggibili anche fuori da qualsiasi libreria. Poi carica la cartella finita con l'app di Immich, con la CLI o come libreria esterna. Le date sono nei file, quindi arrivano giuste al primo colpo.

Funziona offline su macOS, Windows e Linux. Gratis per 1000 foto, 19,99 $ una volta sola per la versione illimitata.

Domande frequenti

Ho già importato. Devo ricominciare da zero?

Non per forza. Correggi i file sul disco, poi lancia il job "Extract metadata" su tutti gli elementi dalla pagina di amministrazione di Immich. Se i file sono stati caricati e non stanno in una libreria esterna, devi ricaricare quelli corretti ed eliminare le vecchie copie, perché Immich tiene una copia sua.

Perché alcune date sono spostate di qualche ora?

Il fuso orario. La data EXIF non ha scarto, e Immich la tratta come UTC o come ora del server a seconda della versione e delle impostazioni. Le versioni recenti la gestiscono meglio. Aiuta impostare il fuso orario del server su quello in cui è stata scattata la maggior parte delle foto. Più dettagli in foto con l'ora sbagliata di qualche ora.

Immich adesso legge i sidecar .json di Google?

Non direttamente, nel momento in cui scriviamo. Legge i sidecar XMP. immich-go legge il formato di Google e lo converte al volo. Controlla le note di rilascio di Immich, perché la cosa cambia.

Correggere l'EXIF cambia la qualità delle foto?

No. Scrivere l'EXIF modifica un blocco di metadati. L'immagine compressa non viene toccata.