Zum Hauptinhalt springen

Der Immich CLI

Immich verfügt über eine Befehlszeilenschnittstelle (CLI), die es Ihnen ermöglicht, bestimmte Aktionen über die Befehlszeile auszuführen.

Funktionen

  • Fotos und Videos zu Immich hochladen
  • Serverversion prüfen

Weitere Funktionen sind für die Zukunft geplant.

Google Fotos Takeout

Wenn Sie Ihr Google Fotos Takeout importieren möchten, empfehlen wir dieses von der Community gepflegte Tool immich-go

Anforderungen

  • Node.js 20 oder höher
  • Npm

Wenn Sie Node/npm nicht installieren können, steht unten auch eine Docker-Version zur Verfügung.

Installation (NPM)

npm i -g @immich/cli

HINWEIS: Wenn Sie den alten CLI zuvor installiert haben, müssen Sie ihn zuerst deinstallieren:

npm uninstall -g immich

Installation (Docker)

Falls npm auf Ihrem System nicht verfügbar ist, können Sie die Docker-Version ausprobieren

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

Bitte passen Sie die Umgebungsvariablen IMMICH_INSTANCE_URL und IMMICH_API_KEY entsprechend an. Sie können auch eine Docker-Env-Datei verwenden, um Ihren sensiblen API-Schlüssel zu speichern.

Dieser docker run-Befehl führt den Befehl immich direkt innerhalb des Containers aus. Sie können direkt die gewünschten Parameter (siehe unter „Verwendung“) an die Befehlszeile anhängen, so wie hier:

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

Verwendung

Verwendung
$ immich
Verwendung: immich [optionen] [befehl]

Befehlszeilenschnittstelle für Immich

Optionen:
-V, --version Gibt die Versionsnummer aus
-d, --config-directory <directory> Verzeichnis für Konfiguration, in dem auth.yml gespeichert wird (Standard: "~/.config/immich/", Env:
IMMICH_CONFIG_DIR)
-u, --url [url] Immich-Server URL (Env: IMMICH_INSTANCE_URL)
-k, --key [key] Immich API Key (Env: IMMICH_API_KEY)
-h, --help Zeigt Hilfe für den Befehl an

Befehle:
login|login-key <url> <key> Anmeldung mit einem API Key
logout Entfernt gespeicherte Zugangsdaten
server-info Zeigt Serverinformationen an
upload [optionen] [pfade...] Hochladen von Inhalten
help [befehl] Zeigt Hilfe für den Befehl an

Befehle

Der Upload-Befehl unterstützt die folgenden Optionen:

Optionen
Verwendung: immich upload [pfade...] [optionen]

Hochladen von Inhalten

Argumente:
pfade Ein oder mehrere Pfade zu den hochzuladenden Inhalten

Optionen:
-r, --recursive Rekursiv (Standard: false, Env: IMMICH_RECURSIVE)
-i, --ignore <muster> Muster zum Ignorieren (Env: IMMICH_IGNORE_PATHS)
-h, --skip-hash Dateien vor dem Hochladen nicht hashen (Standard: false, Env: IMMICH_SKIP_HASH)
-H, --include-hidden Einschließen von versteckten Ordnern (Standard: false, Env: IMMICH_INCLUDE_HIDDEN)
-a, --album Automatische Erstellung von Alben basierend auf Ordnername (Standard: false, Env: IMMICH_AUTO_CREATE_ALBUM)
-A, --album-name <name> Alle Inhalte zu angegebenem Album hinzufügen (Env: IMMICH_ALBUM_NAME)
-n, --dry-run Aktionen nicht ausführen, sondern nur anzeigen, was getan wird (Standard: false, Env: IMMICH_DRY_RUN)
-c, --concurrency <anzahl> Anzahl der gleichzeitig hochzuladenden Inhalte (Standard: 4, Env: IMMICH_UPLOAD_CONCURRENCY)
-j, --json-output Ausführliche Informationen im JSON-Format ausgeben (Standard: false, Env: IMMICH_JSON_OUTPUT)
--delete Lokale Inhalte nach dem Hochladen löschen (Env: IMMICH_DELETE_ASSETS)
--no-progress Fortschrittsanzeige ausblenden (Env: IMMICH_PROGRESS_BAR)
--watch Änderungen beobachten und automatisch hochladen (Standard: false, Env: IMMICH_WATCH_CHANGES)
--help Zeigt Hilfe für den Befehl an

Beachten Sie, dass die oben genannten Optionen auch aus Umgebungsvariablen gelesen werden können.

Schneller Einstieg

Beginnen Sie mit der Authentifizierung bei Ihrem Immich-Server. Beispielsweise:

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

Dies speichert Ihre Anmeldedaten in einer auth.yml-Datei im Konfigurationsverzeichnis, das standardmäßig ~/.config/immich/ ist. Das Verzeichnis kann mit der Option -d oder der Umgebungsvariable IMMICH_CONFIG_DIR festgelegt werden. Bitte halten Sie die Datei sicher, indem Sie entweder den Logout-Befehl nach Abschluss ausführen oder die Datei manuell löschen.

Sobald Sie authentifiziert sind, können Sie Inhalte auf Ihren Immich-Server hochladen.

immich upload file1.jpg file2.jpg

Standardmäßig sind Unterordner nicht eingeschlossen. Um ein Verzeichnis einschließlich Unterordner hochzuladen, verwenden Sie die Option --recursive:

immich upload --recursive directory/

Wenn Sie sich nicht sicher sind, was passieren wird, können Sie die Option --dry-run verwenden, um zu sehen, was passieren würde, ohne tatsächlich irgendwelche Aktionen auszuführen.

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

Standardmäßig hashiert der Upload-Befehl die Dateien vor dem Hochladen. Dies dient dazu, das mehrfache Hochladen derselben Datei zu vermeiden. Wenn Sie sicher sind, dass die Dateien eindeutig sind, können Sie diesen Schritt überspringen, indem Sie die Option --skip-hash übergeben. Beachten Sie, dass Immich immer eine eigene Duplikaterkennung durch Hashing durchführt, sodass es sich hierbei lediglich um eine Leistungsüberlegung handelt. Wenn Sie eine gute Bandbreite haben, könnte es schneller sein, das Hashing zu überspringen.

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

Sie können automatisch Alben basierend auf dem Ordnernamen erstellen, indem Sie die Option --album übergeben. Dies erstellt automatisch Alben für jeden hochgeladenen Inhalt basierend auf dem Namen des Ordners, in dem sie sich befinden.

immich upload --album --recursive directory/

Sie können auch alle Inhalte in ein bestimmtes Album mit der Option --album-name hochladen.

immich upload --album-name "Mein Sommerurlaub" --recursive directory/

Es ist möglich, Inhalte, die einem Glob-Muster entsprechen, zu überspringen, indem die Option --ignore übergeben wird. Siehe die Bibliotheksdokumentation wie Glob-Muster verwendet werden können. Bei Bedarf können Sie mehrere Ausschlussmuster hinzufügen.

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

Standardmäßig werden versteckte Dateien übersprungen. Wenn Sie versteckte Dateien einbeziehen möchten, verwenden Sie die Option --include-hidden:

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

Sie können die Option --json-output verwenden, um eine JSON-Ausgabe zu erhalten, die drei Schlüssel enthält: newFiles, duplicates und newAssets. Aufgrund einiger Logging- Ausgaben müssen Sie die ersten drei Zeilen der Ausgabe entfernen, um die JSON zu erhalten. Zum Beispiel, um eine Liste von Dateien zu erhalten, die für die weitere Verarbeitung hochgeladen würden:

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

API-Schlüssel erhalten

Der API-Schlüssel kann im Benutzer-Einstellungsbereich auf der Weboberfläche erhalten werden.

API-Schlüssel abrufen