Photo and video management library - Journey

Voy a intentar dejar un registro de que servicios utilizo para el manejo de fotos y videos, personales y a nivel familiar.

Creo que con la tecnología que tenemos hoy en día es necesario definir un proceso para guardar, clasificar, archivar y mantener un backup con las fotos que sacamos. Sobre todo si nos interesa tener un registro total de las imágenes que tenemos. Todo esto creo que se vuelve mucho mas importante cuando tenemos frente a nosotros casos especiales, como por ejemplo la llegada de un nuevo integrante a la familia. Es necesario armar un registro y que pueda perdurar en el tiempo.

En mi caso, en mi familia siempre hubo cámaras, analógicas y digitales y luego celulares. En cada juntada solemos tener una foto familiar para dejar un registro de por que nos juntamos. Muchas de esas fotos analógicas están en una caja, esperando a ser digitalizadas, y muchas de las fotos digitales ya están organizadas y guardadas en varios discos.

Gracias a mi {{homelab}}, tengo la posibilidad de poder tener recursos para probar los distintos servicios que existen para el manejo de fotos y videos. Obvio que de mas esta decir que la idea es no depender de un servicio externo, ej Google Photos, ni Drive, ni Dropbox. La mayoría de las fotos no es necesario que estén en internet, no es necesario que estén guardadas en un servidor externo, simplemente pueden estar en una memoria usb guardada en un cajón.

Pero hoy no venimos a hablar de {{cold-storage}}, hoy venimos a hablar de servicios que ademas de poder guardar nuestras fotos, tengan cositas extras que nos ayuden a administrarlas y a categorizarlas.

Servicios

Los últimos 8 meses vengo probando dos servicios distintos, los mejores que hoy en día se encuentran en la comunidad de {{self-hosting}}. Uno es Photoprism y otro es Immich.

Son servicios bastante similares en cuanto a funcionalidad y bastante distintos en cuanto a interfaz. También varían un poco en cuanto a antigüedad y a versiones productivas. Se puede decir que Immich es mas nuevo en cuanto a desarrollo y que Photoprism ya tiene varias versiones estables.

Photoprism

Arranque probando Photoprism, levante una instancia en el server que tenemos en {{t4lan-infrastructure}} para poder organizar y categorizar todas las fotos que tenemos de las distintas {{lan-party}}. Hasta ahora sigue funcionando. El servicio se accede a través de una interfaz web.

Estructura de carpetas

Uno de los puntos a favor de este es que te permite mantener una estructura de carpetas que vos definas. Directamente le podemos indicar cual es el path a la library y respetando la estructura de carpetas indexa todos las imágenes que encuentra. Esto es un muy buen punto a favor, por que? por que no nos estamos atando al software. En caso de si en algún futuro queramos cambiar de software, directamente migramos la carpeta con las imágenes y ya.

Photoprism utiliza una base de datos para indexar y para crear los metadatos de las fotos y videos. También dentro de la base se guardan los thumbnails generados para cada imagen.

Ingesta

Ingestar un total de casi 4000 fotos, llevo casi 5 horas. Pero esto tiene un por que. En el proceso de ingesta, Photoprism realiza varias cosas. Como primero obtiene los metadatos de las imágenes, después analiza las imágenes y les asigna una valor de “calidad”. La calidad sirve para que nosotros sepamos cuales imágenes tienen buena calidad y cuales no, para estas últimas Photoprism nos permite decidir que hacer con esa imagen, si la aceptamos dentro del sistema o si la descartamos.

Otro paso que realiza es pasarlas por un proceso de IA, que le agrega keywords a las imágenes y que reconoce las caras. Este es otro buen buen punto a favor. El reconocimiento facial se hace 100% local en el mismo server que corre el servicio, no estamos utilizando ningún sistema externo. El reconocimiento fácil es genial por que te permite agrupar y filtrar las imágenes por la persona que aparece y como es un servicio 100% local, es un buen plus.

Una vez que las fotos y videos quedan ingestados en el servicio, la interfaz web nos va a mostrar las imágenes procesadas y no las originales, esto es un plus también por que hace que la interfaz funcione bastante rápido.

La ingesta puede ser manual o puede ser automática, podemos tener distintos directorios que funcionen para distintas cosas.

También procesa las coordenadas de las fotos, en caso de que tengan esos metadatos, y te permite visualizar las fotos en un mapa. Esto esta bueno si es que tenes fotos de viajes y queres hacer una búsqueda mas visual.

Álbumes

Dentro de Photoprism existe el concepto de Album, pero no esta relacionado con la estructura de carpetas que tengan las fotos, si no que es una organización mas a nivel lógico, a nivel datos, a nivel base de datos. La idea detrás de esto es que los Album funcionen como un lugar donde agrupar distintas fotos que están en distintas carpetas a nivel archivo.

Esto esta bueno, por que de nuevo, te permite mantener una estructura de carpetas fija y sobre eso ordenar las imágenes como quieras en la interfaz.

Integraciones

Una de las integraciones que tiene Photoprism es con {{WebDav}}, el protocolo de transferencia de archivos a través de HTTP. Entonces de esta forma, podemos compartir la carpeta donde tenemos nuestra librería y copiar las nuevas imágenes ahí y estas se van a ingestar.

Una de las cosas que no tiene Photoprism es distintos usuarios. Si bien se pueden crear varios usuarios, todas las fotos y videos son accesibles por todos los usuarios. No hay una especie de librería privada. Esto es un gran punto en contra, por que si queremos compartir este servicio con otras personas de nuestra familia, estaría bueno que cada uno tenga su propia librería de fotos.

Interfaz

La interfaz esta buena, pero a veces es medio tosca y hasta por momentos es medio dificil de entender. Tiene muchas opciones en el menú, que se pueden configurar desde el panel de administración, pero necesita una mini curva de aprendizaje para hacerlo.

En cuanto a la estabilidad de Photoprism, no tuve ningún problema. Como comente mas arriba, es un proyecto que ya lleva varios años y con muchas versiones estables funcionando. Aunque no parezca, esto es importante tenerlo en cuenta cuando hosteamos servicios {{Open Source}} en nuestro {{homelab}}, el tiempo nos da una especie de guía y nos hace saber que si viene hace tanto tiempo, es por que las cosas las viene haciendo bien o al menos no las hace tan mal.

Immich

TODO: Agregar explicación y análisis