¿Immich muestra fechas incorrectas al importar? Solución
Por qué las fotos caen en la fecha equivocada en Immich, cómo elige Immich la fecha entre EXIF y sidecars, y cómo arreglar los archivos antes de importar.
Montaste Immich, subiste tu biblioteca y la línea de tiempo está mal. Miles de fotos tienen la fecha del día en que las importaste. Las vacaciones de hace diez años aparecen arriba del todo. Algunas fechas están desplazadas justo unas horas.
Cómo elige Immich la fecha
Immich lee los metadatos de cada archivo y se queda con la primera fecha que encuentra, en un orden fijo. A grandes rasgos: un sidecar XMP junto al archivo si lo hay, luego el DateTimeOriginal del EXIF, luego el CreateDate del video y, como último recurso, la fecha de modificación del archivo.
Lee el archivo. No te pregunta. Así que una foto sin fecha EXIF recibe la fecha del archivo, y esa fecha es la que dejó la última copia, normalmente hoy. La diferencia entre las dos fechas está explicada en fecha de captura vs fecha de modificación.
Los propios programas de subida de Immich, la app móvil y la CLI, envían la fecha de modificación del archivo. Si esa también está mal, ya no queda nada que salve la foto.
Las causas habituales
Google Takeout. La más grande. Google quita la fecha EXIF de muchas fotos y pone la fecha real en un archivo .json junto a cada una. Immich no lee el formato .json de Google. Si subes esos archivos tal cual, cada foto sin EXIF recibe la fecha de subida. La guía completa para ese caso está en exportar Google Fotos a Immich.
Apps de mensajería. WhatsApp y compañía eliminan el EXIF por completo. Esas fotos solo tienen la fecha del archivo. Más en fotos de WhatsApp con la fecha incorrecta.
Capturas de pantalla y descargas. Los PNG y las imágenes de la web casi nunca llevan fecha EXIF.
Escaneos. Llevan la fecha del escáner, es decir, cuándo escaneaste, no cuándo se hizo la foto.
Cambios de zona horaria. Una foto con fecha EXIF pero sin desfase horario se trata como UTC en algunos caminos y como hora local en otros. La fecha es correcta y la hora no. Los teléfonos recientes escriben una etiqueta de desfase y evitan esto.
Las dos formas de arreglarlo
Arreglarlo dentro de Immich. En la interfaz web puedes seleccionar fotos y editar la fecha y la hora, una selección cada vez. Para unas pocas fotos va bien. Para una exportación de Takeout de cuarenta mil, no, y además la corrección vive solo en la base de datos de Immich. Si más adelante exportas la biblioteca, las fechas vuelven a desaparecer.
Arreglar los archivos antes. Escribe la fecha correcta en el EXIF de cada archivo antes de subirlo. Immich la lee y acierta, y lo mismo cualquier otra herramienta a la que apuntes esos archivos. Esta es la solución que dura.
immich-go, y cuándo usarlo
immich-go es una herramienta gratuita de línea de comandos para subir fotos que entiende Google Takeout. Lee los .json, los empareja con los archivos y envía la fecha correcta a Immich junto con la subida. Si Immich es tu único destino y te manejas con la terminal, es una buena herramienta, y también se ocupa de los álbumes.
Lo que no hace es cambiar los archivos. La fecha va a la base de datos de Immich, no a la foto. Si algún día vuelves a migrar, o apuntas PhotoPrism o Fotos de Apple a esos mismos archivos, empiezas de cero.
Arreglar los archivos a mano
exiftool puede escribir la fecha de Takeout en el EXIF. El comando es delicado, porque los nombres de los JSON de Google no coinciden con los de las fotos en varios casos. Hay un ejemplo completo en la guía de exiftool para Google Takeout.
Para fotos sin JSON y sin EXIF pero con la fecha de archivo correcta, copia la fecha del archivo al EXIF:
exiftool "-DateTimeOriginal<FileModifyDate" -if 'not $DateTimeOriginal' -r .
Para una carpeta de la que sabes la fecha y nada más, fíjala:
exiftool -DateTimeOriginal="2014:08:10 12:00:00" -overwrite_original .
Después vuelve a ejecutar el trabajo de extracción de metadatos de Immich desde la página de administración, o vuelve a subir, para que lea los valores nuevos.
Con la aplicación
Takeout JSON Metadata Fixer prepara una carpeta que Immich importa sin problemas. Escribe la fecha real y el GPS en cada archivo, así que Immich los lee directamente del EXIF.
Dale una exportación de Takeout, en un zip o en muchos, o cualquier carpeta. Para cada foto toma la fecha del .json, si no hay, la del EXIF, y si tampoco, la del archivo, y escribe el resultado en el EXIF y en las fechas del archivo. El GPS se escribe igual. Los HEIC se pueden convertir a JPG por el camino. A las fotos sin ninguna fecha puedes darles una fecha y un lugar para toda la carpeta.
Si activas la opción, también escribe un .json junto a cada archivo de salida. Immich no los lee, pero immich-go y otros importadores sí, y mantienen los metadatos legibles fuera de cualquier biblioteca. Después sube la carpeta de salida con la app de Immich, la CLI o como biblioteca externa. Las fechas están en los archivos, así que llegan bien a la primera.
Funciona sin conexión en Windows, Linux y Mac, con la interfaz en español. Gratis para 1000 fotos, 19,99 $ una sola vez para uso ilimitado.
Preguntas frecuentes
Ya importé todo. ¿Tengo que empezar de nuevo?
No necesariamente. Arregla los archivos en el disco y ejecuta el trabajo "Extract metadata" para todos los elementos desde la página de administración de Immich. Si los archivos se subieron en lugar de estar en una biblioteca externa, tienes que volver a subir los arreglados y borrar las copias antiguas, porque Immich guarda su propia copia.
¿Por qué algunas fechas tienen unas horas de desfase?
Por la zona horaria. La fecha EXIF no lleva desfase, e Immich la trata como UTC o como hora del servidor según la versión y la configuración. Las versiones nuevas lo manejan mejor. Ayuda poner la zona horaria del servidor en la del lugar donde se hicieron la mayoría de las fotos.
¿Immich lee ya los .json de Google?
No directamente, en el momento de escribir esto. Lee sidecars XMP. immich-go lee el formato de Google y lo convierte sobre la marcha. Consulta las notas de versión de Immich, porque esto cambia.
¿Arreglar el EXIF cambia la calidad de la foto?
No. Escribir el EXIF modifica un bloque de metadatos. La imagen comprimida no se toca.