Saltar al contenido principal

El CLI de Immich

Immich tiene una interfaz de línea de comandos (CLI) que te permite realizar ciertas acciones desde la línea de comandos.

Funcionalidades

  • Subir fotos y videos a Immich
  • Verificar la versión del servidor

Se planean más funcionalidades para el futuro.

Exportación de Google Fotos

Si estás buscando importar tus archivos de Google Fotos, recomendamos esta herramienta mantenida por la comunidad immich-go

Requisitos

  • Node.js 20 o superior
  • Npm

Si no puedes instalar node/npm, también hay una versión de Docker disponible a continuación.

Instalación (NPM)

npm i -g @immich/cli

NOTA: Si instalaste el CLI antiguo anteriormente, primero necesitarás desinstalarlo:

npm uninstall -g immich

Instalación (Docker)

Si npm no está disponible en tu sistema, puedes probar la versión de Docker

docker run -it -v "$(pwd)":/import:ro -e IMMICH_INSTANCE_URL=https://tu-instancia-immich/api -e IMMICH_API_KEY=tu-api-key ghcr.io/immich-app/immich-cli:latest

Por favor, modifica las variables de entorno IMMICH_INSTANCE_URL y IMMICH_API_KEY según sea necesario. También puedes usar un archivo env de Docker para guardar tu clave API sensible.

Este comando docker run ejecutará directamente el comando immich dentro del contenedor. Puedes agregar directamente los parámetros deseados (ver bajo "uso") a la línea de comandos de esta manera:

docker run -it -v "$(pwd)":/import:ro -e IMMICH_INSTANCE_URL=https://tu-instancia-immich/api -e IMMICH_API_KEY=tu-api-key ghcr.io/immich-app/immich-cli:latest upload -a -c 5 --recursive directory/

Uso

Uso
$ immich
Uso: immich [opciones] [comando]

Interfaz de línea de comandos para Immich

Opciones:
-V, --version muestra el número de versión
-d, --config-directory <directory> Directorio de configuración donde se almacenará auth.yml (por defecto: "~/.config/immich/", env:
IMMICH_CONFIG_DIR)
-u, --url [url] URL del servidor de Immich (env: IMMICH_INSTANCE_URL)
-k, --key [key] Clave API de Immich (env: IMMICH_API_KEY)
-h, --help muestra ayuda para el comando

Comandos:
login|login-key <url> <key> Iniciar sesión utilizando una clave API
logout Remover credenciales almacenadas
server-info Mostrar información del servidor
upload [opciones] [paths...] Subir archivos
help [command] mostrar ayuda para el comando

Comandos

El comando para subir soporta las siguientes opciones:

Opciones
Uso: immich upload [paths...] [opciones]

Subir archivos

Argumentos:
paths Una o más rutas de archivos a subir

Opciones:
-r, --recursive Recursivo (por defecto: false, env: IMMICH_RECURSIVE)
-i, --ignore <pattern> Patrón para ignorar (env: IMMICH_IGNORE_PATHS)
-h, --skip-hash No realizar hash a los archivos antes de subirlos (por defecto: false, env: IMMICH_SKIP_HASH)
-H, --include-hidden Incluir carpetas ocultas (por defecto: false, env: IMMICH_INCLUDE_HIDDEN)
-a, --album Crear automáticamente álbumes basados en el nombre de la carpeta (por defecto: false, env: IMMICH_AUTO_CREATE_ALBUM)
-A, --album-name <name> Agregar todos los archivos al álbum especificado (env: IMMICH_ALBUM_NAME)
-n, --dry-run No realizar ninguna acción, solo mostrar lo que se haría (por defecto: false, env: IMMICH_DRY_RUN)
-c, --concurrency <number> Número de archivos a subir al mismo tiempo (por defecto: 4, env: IMMICH_UPLOAD_CONCURRENCY)
-j, --json-output Imprimir información detallada en formato json (por defecto: false, env: IMMICH_JSON_OUTPUT)
--delete Eliminar archivos locales después de subirlos (env: IMMICH_DELETE_ASSETS)
--no-progress Ocultar barras de progreso (env: IMMICH_PROGRESS_BAR)
--watch Vigilar cambios y subir automáticamente (por defecto: false, env: IMMICH_WATCH_CHANGES)
--help muestra ayuda para el comando

Toma en cuenta que las opciones anteriores también pueden ser leídas de variables de entorno.

Inicio Rápido

Comienza autenticándote en tu servidor Immich. Por ejemplo:

# immich login [url] [key]
immich login http://192.168.1.216:2283/api HFEJ38DNSDUEG

Esto almacenará tus credenciales en un archivo auth.yml en el directorio de configuración que por defecto es ~/.config/immich/. El directorio puede configurarse con la opción -d o con la variable de entorno IMMICH_CONFIG_DIR. Por favor mantén el archivo seguro, ya sea realizando el comando de cierre de sesión después de que termines o eliminándolo manualmente.

Una vez autenticado, puedes subir archivos a tu servidor Immich.

immich upload file1.jpg file2.jpg

Por defecto, las subcarpetas no están incluidas. Para subir un directorio incluyendo subcarpetas, utiliza la opción --recursive:

immich upload --recursive directory/

Si no estás seguro de lo que sucederá, puedes usar la opción --dry-run para ver lo que sucedería sin realizar ninguna acción realmente.

immich upload --dry-run --recursive directory/

Por defecto, el comando para subir aplicará hash a los archivos antes de subirlos. Esto es para evitar subir el mismo archivo varias veces. Si estás seguro de que los archivos son únicos, puedes omitir este paso usando la opción --skip-hash. Toma en cuenta que Immich siempre realiza su propia deduplicación mediante hashing, por lo que esto es solo una consideración de rendimiento. Si tienes buen ancho de banda, puede ser más rápido omitir el hashing.

immich upload --skip-hash --recursive directory/

Puedes crear automáticamente álbumes basados en el nombre de la carpeta utilizando la opción --album. Esto creará automáticamente álbumes para cada archivo subido basado en el nombre de la carpeta en la que se encuentran.

immich upload --album --recursive directory/

También puedes subir todos los archivos a un álbum específico con la opción --album-name.

immich upload --album-name "Mis vacaciones de verano" --recursive directory/

Es posible omitir archivos que coincidan con un patrón glob usando la opción --ignore. Consulta la documentación de la biblioteca sobre cómo usar patrones glob. Puedes agregar varios patrones de exclusión si lo necesitas.

immich upload --ignore **/Raw/** --recursive directory/
immich upload --ignore **/Raw/** **/*.tif --recursive directory/

Por defecto, los archivos ocultos son omitidos. Si deseas incluir archivos ocultos, usa la opción --include-hidden:

immich upload --include-hidden --recursive directory/

Puedes usar la opción --json-output para obtener un json que incluye tres claves: newFiles, duplicates y newAssets. Debido a ciertos mensajes de logging necesitarás eliminar las tres primeras líneas de la salida para obtener el json. Por ejemplo, para obtener una lista de archivos que serían subidos para procesamiento posterior:

immich upload --dry-run . | tail -n +4 | jq .newFiles[]

Obtener la clave API

La clave API puede obtenerse en el panel de configuración del usuario en la interfaz web.

Obtener clave API