Immich-Go es una herramienta de código abierto diseñada para agilizar la carga de grandes colecciones de fotografías a su servidor Immich autohospedado.
Immich-go
:Sacando tus fotos:
Importando tus fotos:
/path/to/your/files/takeout-*.zip
como nombre de archivo.-google-photos
.Muchos archivos no se importan : ¿Cuáles son las opciones?
-upload-when-missing-JSON
Para obtener información sobre el razonamiento detrás de esta alternativa a immich-cli
, lea la motivación aquí.
⚠️ Esta es una versión temprana, aún no probada exhaustivamente.⚠️ Mantenga una copia de seguridad de sus archivos por seguridad
immich-go
immich-go
es una herramienta de línea de comandos que debe ejecutarse desde una ventana de terminal.
El programa immich-go
utiliza la API de Immich. Por lo tanto, necesita la dirección del servidor y una clave API válida.
En Linux, macOS y amigos de FreeBSD:
./immich-go -server=URL -key=KEY -general_options COMMAND -command_options... {path/to/files}
Importante
Los usuarios de macOS deben permitir explícitamente la ejecución de immich-go. Abra Privacidad y seguridad > Configuración de seguridad para permitir
En sistemas Windows:
.immich - go - server = URL - key = KEY - general_options COMMAND - command_options.. . {path / to / files}
Las opciones booleanas tienen un valor predeterminado que se indica a continuación. Al mencionar cualquier opción en la línea común, la opción cambia a VERDADERO. Para forzar una opción a FALSO, utilice la siguiente sintaxis: -option=FALSE
.
Ejemplo: Immich-go comprueba el certificado SSL del servidor. Puede desactivar este comportamiento activando la opción skip-verify-ssl
. Simplemente agregue -skip-verify-ssl
. -skip-verify-ssl
es equivalente a -skip-verify-ssl=TRUE
. Para desactivar la función (que es el comportamiento predeterminado), use -skip-verify-ssl=FALSE
Parámetro | Descripción | Valor predeterminado |
---|---|---|
-use-configuration=path/to/config/file | Especifica el archivo de configuración que se utilizará. La URL del servidor y la clave API se almacenan en el archivo de configuración de immich-go. Se pueden omitir para las próximas ejecuciones. | Linux $HOME/.config/immich-go/immich-go.json Windows %AppData%immich-goimmich-go.json macOS $HOME/Library/Application Support/immich-go/immich-go.json |
-server=URL | URL del servicio Immich, ejemplo http://:2283 o https://tu-dominio.tld | |
-api=URL | URL del punto final de la API de Immich (http://container_ip:3301) | |
-device-uuid=VALUE | Forzar la identificación del dispositivo | $HOSTNAME |
-client-timeout=duration | Establezca el tiempo de espera para las llamadas al servidor. La duración es un número decimal con un sufijo de unidad, como "300 ms", "1,5 m" o "45 m". Las unidades de tiempo válidas son "ms", "s", "m", "h". | 5m |
-skip-verify-ssl | Omita la verificación SSL para usar con certificados autofirmados | false |
-key=KEY | Una clave generada por el usuario. Las fotos cargadas pertenecerán al propietario de la clave. | |
-log-level=LEVEL | Ajuste la detalle del registro de la siguiente manera: - ERROR : Mostrar sólo errores- WARNING : Igual que el anterior más error de no bloqueo- INFO : mensajes informativos | INFO |
-log-file=/path/to/log/file | Escribir todos los mensajes en un archivo | Linux $HOME/.cache/immich-go/immich-go_YYYY-MM-DD_HH-MI-SS.log Windows %LocalAppData%immich-goimmich-go_YYYY-MM-DD_HH-MI-SS.log macOS $HOME/Library/Caches/immich-go/immich-go_YYYY-MM-DD_HH-MI-SS.log |
-log-json | Genere el registro como un archivo JSON delimitado por líneas | false |
-time-zone=time_zone_name | Establecer la zona horaria para fechas sin información de zona horaria | La zona horaria del sistema. |
-no-ui | Deshabilitar la interfaz de usuario | false |
-debug-counters | Habilite la generación de un CSV al lado del archivo de registro | false |
-api-trace | Habilitar seguimiento de llamadas API | false |
upload
de comandoUtilice este comando para cargar fotos y videos desde un directorio local, una carpeta comprimida o todos los archivos zip que haya generado el procedimiento para llevar de Google Fotos.
Parámetro | Descripción | Valor predeterminado |
---|---|---|
-album="ALBUM NAME" | Importe recursos al álbum de Immich ALBUM NAME . | |
-dry-run | Obtenga una vista previa de todas las acciones tal como se realizarían. | FALSE |
-create-album-folder | Genere álbumes immich después de los nombres de las carpetas. | FALSE |
-use-full-path-album-name | Utilice la ruta completa al archivo para determinar el nombre del álbum. | FALSE |
-album-name-path-separator | Determina cómo se unirán varias (sub)carpetas, si las hay. | |
-create-stacks | Apila jpg/raw o ráfagas. | FALSE |
-stack-jpg-raw | Controle el apilamiento de fotografías jpg/raw. | FALSE |
-stack-burst | Controla las ráfagas de apilamiento. | FALSE |
-select-types=".ext,.ext,.ext..." | Lista de extensiones aceptadas. | |
-exclude-types=".ext,.ext,.ext..." | Lista de extensiones excluidas. | |
-when-no-date=FILE|NOW | Cuando no se pueda determinar la fecha de la toma, utilice la fecha del ARCHIVO o la hora actual AHORA. | FILE |
-exclude-files=pattern | Ignora archivos según un patrón. No distingue entre mayúsculas y minúsculas. Repite la opción para cada patrón que necesites. | @eaDir/ @__thumb/ SYNOFILE_THUMB_*.* Lightroom Catalog/ thumbnails/ |
Ajuste la importación según fechas específicas:
Parámetro | Descripción |
---|---|
-date=YYYY-MM-DD | importar fotografías tomadas en un día determinado. |
-date=YYYY-MM | seleccione fotografías tomadas durante un mes en particular. |
-date=YYYY | seleccione fotografías tomadas durante un año en particular. |
Utilice -exclude-files=PATTERN
para excluir ciertos archivos o directorios de la carga. Repite la opción para cada patrón que necesites. Los siguientes directorios se excluyen automáticamente:
Por ejemplo, el siguiente comando excluye cualquier archivo en directorios llamados copia de seguridad o borrador y cualquier archivo cuyo nombre termine en "copia)" como PXL_20231006_063121958 (otra copia).jpg:
immich-go -server=xxxxx -key=yyyyy upload -exclude-files=backup/ -exclude-files=draft/ -exclude=copy). * /path/to/your/files
Opciones especializadas para la gestión de Google Fotos:
Parámetro | Descripción | Valor predeterminado |
---|---|---|
-google-photos | importe desde un archivo estructurado de Google Photos, recreando los álbumes correspondientes. | |
-from-album="GP Album" | Cree el álbum en immich e importe los activos del álbum. | |
-create-albums | Controla la creación de álbumes de Google Photos en Immich. | TRUE |
-keep-untitled-albums | Los álbumes sin título se importan a immich con el nombre de la carpeta como título. | FALSE |
-use-album-folder-as-name | Utilice el nombre de la carpeta en lugar del título del álbum. | FALSE |
-keep-partner | Especifica la inclusión o exclusión de fotografías tomadas por socios. | TRUE |
-partner-album="partner's album" | importar activos del socio a un álbum determinado. | |
-discard-archived | no importe activos archivados. | FALSE |
-auto-archive | Archivar automáticamente fotos que también están archivadas en Google Fotos | TRUE |
-upload-when-missing-JSON | Cargar fotos no asociadas con un archivo de metadatos JSON | FALSE |
Lea aquí para comprender por qué la comida para llevar de Google Fotos no es fácil de manejar.
Actualmente se detectan las ráfagas que siguen este esquema:
Todas las imágenes deben tomarse durante el mismo minuto. La imagen de PORTADA será la imagen principal de la pila.
Ambas imágenes deben tomarse en el mismo minuto. La imagen JPG será la portada.
Abra un problema para cubrir más posibilidades.
Para ilustrar, aquí hay un comando que importa fotos de un archivo para llevar de Google Fotos capturado entre el 1 y el 30 de junio de 2019, mientras se generan álbumes automáticamente:
./immich-go -server=http://mynas:2283 -key=zzV6k65KGLNB9mpGeri9n8Jk1VaNGHSCdoH1dY8jQ upload
-create-albums -google-photos -date=2019-06 ~ /Download/takeout- * .zip
Immich-go obtiene los primeros datos disponibles en el siguiente orden.
photoTakenTime
PXL_20220909_154515546.jpg
PXL_20220909_154515546.jpg
/photos/2022/11/09/IMG_1234.HEIC
geoDataExif
geoData
del campo JSON de Google FotoslocationEnrichment
del campo JSON del álbum de Google FotosEnriquecimiento immich-go
toma la fecha de la foto del archivo JSON asociado.
El servidor ignora la fecha proporcionada por immich-go y toma la fecha del MP4 incluso cuando es incorrecta.
Consulte #322 La marca de tiempo de creación a partir de metadatos es incorrecta
Immich-go intenta determinar la fecha de captura con el nombre del archivo o la ruta del archivo.
Ex:
Camino | Fecha de captura de la foto. |
---|---|
fotos/album/PXL_20220909_154515546.jpg | 2022-09-09 15:51:55 |
fotos/escaneadas/19991231.jpg | 1999-12-31 00:00:00 |
fotos/20221109/IMG_1234.HEIC | 2022-11-19 00:00:00 |
fotos/2022.11.09T20.30/IMG_1234.HEIC | 2022-11-19 20:30:00 |
fotos/2022/11/09/IMG_1234.HEIC | 2022-11-19 00:00:00 |
Si la ruta no se puede utilizar para determinar la fecha de captura, immich-go lee los metadata
o exif
del archivo.
duplicate
Utilice este comando para analizar el contenido de su servidor immich
para encontrar archivos que compartan el mismo nombre de archivo, la fecha de captura, pero que tengan diferente tamaño. Antes de eliminar las copias inferiores, el sistema obtiene todos los álbumes a los que pertenecen y les agrega la copia superior.
Parámetro | Descripción | Valor predeterminado |
---|---|---|
-yes | Asuma que sí a todas las preguntas | FALSE |
-date | Verifique que solo los activos tengan una fecha de captura en el rango indicado | 1850-01-04,2030-01-01 |
-ignore-tz-errors | Ignore la diferencia de zona horaria al buscar duplicados | FALSE |
-ignore-extension | Ignore las extensiones de tipo de archivo al buscar duplicados | FALSE |
immich
después de haber fusionado un archivo de Google Photos y los archivos originalesEste comando examina el contenido del servidor immich, elimina imágenes de menor calidad y conserva álbumes.
./immich-go -server=http://mynas:2283 -key=zzV6k65KGLNB9mpGeri9n8Jk1VaNGHSCdoH1dY8jQ duplicate -yes
stack
comandos La posibilidad de apilar imágenes se introdujo en la versión 1.83 immich
. Úselo para agrupar imágenes en ráfaga y jpg/raw.
Parámetro | Descripción | Valor predeterminado |
---|---|---|
-yes | Asuma que sí a todas las preguntas | FALSE |
-date=date_range | Verifique que solo los activos tengan una fecha de captura en el rango indicado | 1850-01-04,2030-01-01 |
tool
de comando Este comando presenta herramientas de línea de comandos para manipular su servidor immich
.
album delete [regexp]
Este comando elimina álbumes que coinciden con el patrón dado.
-yes
Suponga que sí a todas las preguntas (predeterminado: FALSO).
./immich-go -server=http://mynas:2283 -key=zzV6k65KGLNB9mpGeri9n8Jk1VaNGHSCdoH1dY8jQ tool album delete d {4}- d {2}- d {2}
Este comando elimina todos los álbumes creados con el patrón AAAA-MM-DD
Instalar immich-go
es un proceso sencillo. Visite la página de la última versión y seleccione el archivo binario compatible con su sistema:
Descargue el archivo correspondiente a su sistema operativo/arquitectura en su máquina y descomprímalo.
Abra una ventana de comando, vaya al directorio donde reside immich-go y escriba el comando immich-go
con los parámetros y el comando obligatorios.
Para una instalación basada en código fuente, asegúrese de tener implementadas las herramientas de desarrollo de lenguaje Go necesarias (https://go.dev/doc/install). Descargue los archivos fuente o clone el repositorio.
go build -ldflags " -X 'main.version= $( git describe --tag ) ' -X 'main.date= $( date ) ' "
immich-go
está empaquetado con nix y se distribuye a través de nixpkgs. Puedes probar immich-go
sin instalarlo con:
nix-shell -I " nixpkgs=https://github.com/NixOS/nixpkgs/archive/nixos-unstable-small.tar.gz " -p immich-go
# Or with flakes enabled
nix run " github:nixos/nixpkgs?ref=nixos-unstable-small#immich-go " -- -help
O puede agregar immich-go
a su configuration.nix
en la sección environment.systemPackages
.
¡Felicitaciones al equipo de Immich por su impresionante proyecto! ?
Este programa utiliza las siguientes bibliotecas de terceros:
Un gran agradecimiento a los contribuyentes del proyecto: