El aviso llegó en forma de email en enero de 2021. Google anunciaba que el almacenamiento gratuito e ilimitado de fotos en alta calidad se acababa. A partir del 1 de junio, cada foto nueva contaría contra tu cuota de 15 GB compartida con Gmail y Drive.

En aquel momento tenía 40.347 fotos y 812 vídeos acumulados desde 2013. Algunos en calidad original, la mayoría en la resolución comprimida que Google llama "alta calidad". Calculé que si seguía añadiendo fotos al ritmo habitual, en menos de dos años estaría pagando o borrando.

Tardé casi dos años en moverme. No porque el proceso fuera difícil — es que no existía ningún destino tan cómodo como Google Photos. Hasta que apareció Immich.

Immich no es "un Google Photos de código abierto". Es mejor en algunas cosas, peor en otras, y completamente diferente en lo que más importa: tus fotos viven en tu hardware, bajo tus condiciones.

Lo que Google no te dice cuando pides tus fotos

El primer paso es Google Takeout, la herramienta oficial para exportar tus datos. La encuentras en myaccount.google.com/data-and-privacy. Seleccionas Google Photos, eliges el formato (ZIP o TGZ) y el tamaño máximo de cada archivo, y Google te manda un email cuando el paquete está listo. Puede tardar horas o días dependiendo de cuánto tengas.

Hasta aquí, todo bien. El problema empieza cuando abres los archivos.

⚠️
El problema de los metadatos en Google Takeout

Google exporta las fotos y los metadatos por separado. Por cada foto (IMG_2045.jpg) hay un archivo JSON paralelo (IMG_2045.jpg.json) con la fecha, la ubicación y la descripción. Si importas las fotos directamente sin procesar esos JSON primero, pierdes toda esa información. Las 40.000 fotos aparecerán con la fecha de hoy, sin ubicación, sin orden cronológico.

Esto es lo que nadie explica en los tutoriales de YouTube que duran cuatro minutos. Los vídeos muestran "descarga Takeout, importa en Immich, listo". Y técnicamente es verdad. Pero sin los metadatos, tu biblioteca queda en un estado inútil.

La herramienta que lo resuelve: google-photos-exif

Existe una utilidad de línea de comandos llamada google-photos-exif que hace exactamente lo que necesitas: lee los JSON de Takeout, extrae las fechas y coordenadas, y las incrusta directamente en los datos EXIF de cada foto. Después de ejecutarla, las fotos llevan toda la información dentro y Immich las indexa correctamente.

Instalación y uso básico
# Instalar con npm npm install -g google-photos-exif # Ejecutar sobre la carpeta de Takeout google-photos-exif \ --inputDir /ruta/a/takeout \ --outputDir /ruta/salida/procesada \ --errorDir /ruta/errores

El proceso tarda. Con 40.000 archivos, en mi máquina tardó unas tres horas. Cuando termina, la carpeta de salida contiene todas las fotos con los metadatos incrustados, y la carpeta de errores las que no se pudieron procesar (generalmente vídeos en formatos raros o fotos corruptas).

Un detalle importante sobre los vídeos

La herramienta funciona bien con JPG y PNG. Con vídeos el resultado es más irregular — algunos formatos no admiten la modificación de metadatos de la misma forma. Para los vídeos, lo más seguro es revisarlos a mano o aceptar que algunos llevarán la fecha de importación en lugar de la original.

Instalar Immich en tu NAS: la ruta más directa

Immich funciona con Docker Compose. Si ya tienes Docker en tu NAS (Synology, TrueNAS o cualquier servidor Linux), el proceso es el mismo.

01
Crea la carpeta y descarga el compose
Crea un directorio para Immich en tu NAS, por ejemplo /docker/immich. Descarga el archivo docker-compose.yml oficial desde el repositorio de Immich en GitHub. No lo copies a mano — descárgalo directamente para asegurarte de tener la versión más reciente.
02
Configura el archivo .env
Junto al compose hay un .env.example que copias como .env. Solo necesitas cambiar tres cosas: la ruta donde se guardarán las fotos (UPLOAD_LOCATION), la contraseña de la base de datos (DB_PASSWORD) y la zona horaria (TZ=Europe/Madrid).
03
Levanta los contenedores
Desde la carpeta del proyecto: docker compose up -d. La primera vez tarda unos minutos en descargar las imágenes. Cuando termine, Immich está disponible en el puerto 2283 de tu NAS.
04
Crea tu cuenta y configura el almacenamiento
Abre http://IP-de-tu-NAS:2283 en el navegador. El primer usuario que crees será el administrador. En Ajustes puedes configurar cuántos núcleos usa para el reconocimiento facial y si quieres que indexe las fotos automáticamente al importar.
05
Importa las fotos procesadas
La forma más rápida para 40.000 fotos no es la interfaz web — es copiar directamente la carpeta procesada a la ruta UPLOAD_LOCATION y luego usar la opción "Importar biblioteca externa" desde la interfaz de administración. Immich escanea la carpeta, indexa todo y genera las miniaturas en segundo plano.

Lo que Immich hace mejor que Google Photos

Después de seis meses usando Immich a diario, hay cosas donde gana claramente:

Función Google Photos Immich
Reconocimiento facial ✓ Muy preciso Bueno, mejora con el tiempo
Búsqueda por contenido ✓ Excelente ✓ Muy buena con modelos locales
App móvil (iOS/Android) ✓ Pulida Funcional, en desarrollo activo
Sincronización automática ✓ Transparente ✓ Funciona bien
Coste mensual €€ después de 15 GB 0 € (hardware propio)
Control sobre tus datos Ninguno Total
Compartir con familia ✓ Muy fácil Funciona, algo más manual

La única cosa en la que Google sigue ganando

El reconocimiento de objetos y la búsqueda semántica de Google Photos son todavía mejores. Puedes buscar "playa atardecer 2019" en Google y encuentra exactamente eso. Immich con modelos locales se acerca mucho, pero no llega al mismo nivel todavía.

Para la mayoría de la gente, esa diferencia no importa. Buscas fotos por fecha, por persona o por álbum — y en eso Immich funciona igual de bien. Pero si eres de los que usa mucho la búsqueda por contenido en Google Photos, esto es lo que vas a notar.

Lo que sí gana Immich de forma aplastante es en privacidad. Google no solo guarda tus fotos — las analiza para mejorar sus modelos y los usa para personalizar publicidad. Con Immich, el análisis ocurre en tu hardware y no sale de tu red.

El error que casi me cuesta caro

Cuando importé las primeras 10.000 fotos para probar, Immich las indexó sin problemas. Pero al revisar algunas, vi que las fechas no cuadraban — fotos del 2016 aparecían como del 2025.

El problema: había procesado esas fotos con google-photos-exif, pero algunas tenían el EXIF original de la cámara y el JSON de Google con fechas diferentes. La herramienta usó la fecha del JSON (que en algunos casos era la fecha en que Google recibió la foto, no cuando se tomó).

La solución fue revisar manualmente las fotos con fechas sospechosas y corregirlas en Immich directamente. No fueron muchas — unas 200 de las 40.000 — pero es algo que hay que saber antes de empezar.

El proceso completo, en orden

  • Descarga tu biblioteca completa desde Google Takeout. Pide todos los álbumes a la vez.
  • Instala google-photos-exif y procesa toda la carpeta antes de tocar nada más.
  • Revisa la carpeta de errores — los archivos que no se procesaron necesitan atención manual.
  • Instala Immich con Docker Compose. El archivo oficial funciona sin modificaciones para la mayoría.
  • Importa por biblioteca externa, no por la interfaz web — para volúmenes grandes es mucho más rápido.
  • Deja que Immich indexe en segundo plano. El reconocimiento facial puede tardar días con 40.000 fotos.
  • Comprueba una muestra de fotos de distintos años para verificar que las fechas son correctas antes de borrar nada de Google.