Immich-Go ist ein Open-Source-Tool, das das Hochladen großer Fotosammlungen auf Ihren selbst gehosteten Immich-Server vereinfacht.
Immich-go
unterstützen:Herausnehmen Ihrer Fotos:
Importieren Ihrer Fotos:
/path/to/your/files/takeout-*.zip
als Dateinamen.-google-photos
.Viele Dateien werden nicht importiert : Welche Optionen gibt es?
-upload-when-missing-JSON
Für Einblicke in die Gründe für diese Alternative zu immich-cli
lesen Sie bitte die Motivation hier.
⚠️ Dies ist eine frühe Version, die noch nicht umfassend getestet wurde⚠️ Bewahren Sie aus Sicherheitsgründen eine Sicherungskopie Ihrer Dateien auf
immich-go
wird ausgeführt Das immich-go
ist ein Befehlszeilentool, das über ein Terminalfenster ausgeführt werden muss.
Das immich-go
-Programm verwendet die Immich-API. Daher benötigt es die Serveradresse und einen gültigen API-Schlüssel.
Für Linux-, macOS- und FreeBSD-Freunde:
./immich-go -server=URL -key=KEY -general_options COMMAND -command_options... {path/to/files}
Wichtig
macOS-Benutzer müssen die Ausführung von immich-go explizit zulassen. Öffnen Sie Datenschutz und Sicherheit > Sicherheitseinstellungen, um dies zuzulassen
Auf Windows-Systemen:
.immich - go - server = URL - key = KEY - general_options COMMAND - command_options.. . {path / to / files}
Boolesche Optionen haben einen unten angegebenen Standardwert. Durch die Erwähnung einer Option in der gemeinsamen Zeile wird die Option auf TRUE geändert. Um eine Option auf FALSE zu erzwingen, verwenden Sie die folgende Syntax: -option=FALSE
.
Beispiel: Immich-go überprüft das SSL-Zertifikat des Servers. Sie können dieses Verhalten deaktivieren, indem Sie die Option skip-verify-ssl
aktivieren. Fügen Sie einfach -skip-verify-ssl
hinzu. -skip-verify-ssl
entspricht -skip-verify-ssl=TRUE
. Um die Funktion zu deaktivieren (was das Standardverhalten ist), verwenden Sie -skip-verify-ssl=FALSE
Parameter | Beschreibung | Standardwert |
---|---|---|
-use-configuration=path/to/config/file | Gibt die zu verwendende Konfigurationsdatei an. Die Server-URL und der API-Schlüssel werden in der immich-go-Konfigurationsdatei gespeichert. Sie können für die nächsten Durchläufe weggelassen werden. | 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 des Immich-Dienstes, Beispiel http://:2283 oder https://your-domain.tld | |
-api=URL | URL des Immich-API-Endpunkts (http://container_ip:3301) | |
-device-uuid=VALUE | Erzwingen Sie die Geräteidentifikation | $HOSTNAME |
-client-timeout=duration | Legen Sie das Timeout für Serveraufrufe fest. Die Dauer ist eine Dezimalzahl mit einem Einheitensuffix, beispielsweise „300 ms“, „1,5 m“ oder „45 m“. Gültige Zeiteinheiten sind „ms“, „s“, „m“, „h“. | 5m |
-skip-verify-ssl | Überspringen Sie die SSL-Überprüfung zur Verwendung mit selbstsignierten Zertifikaten | false |
-key=KEY | Ein vom Benutzer generierter Schlüssel. Hochgeladene Fotos gehören dem Besitzer des Schlüssels. | |
-log-level=LEVEL | Passen Sie die Protokollausführlichkeit wie folgt an: - ERROR : Nur Fehler anzeigen- WARNING : Wie zuvor, plus nicht blockierender Fehler- INFO : Informationsmeldungen | INFO |
-log-file=/path/to/log/file | Schreiben Sie alle Nachrichten in eine Datei | 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 | Geben Sie das Protokoll als zeilengetrennte JSON-Datei aus | false |
-time-zone=time_zone_name | Legen Sie die Zeitzone für Daten ohne Zeitzoneninformationen fest | Die Zeitzone des Systems |
-no-ui | Deaktivieren Sie die Benutzeroberfläche | false |
-debug-counters | Aktivieren Sie die Generierung einer CSV-Datei neben der Protokolldatei | false |
-api-trace | Aktivieren Sie die Verfolgung von API-Aufrufen | false |
upload
Verwenden Sie diesen Befehl, um Fotos und Videos aus einem lokalen Verzeichnis, einem ZIP-Ordner oder allen ZIP-Dateien hochzuladen, die durch das Entfernen von Google Fotos generiert wurden.
Parameter | Beschreibung | Standardwert |
---|---|---|
-album="ALBUM NAME" | Importieren Sie Assets in das Immich-Album ALBUM NAME . | |
-dry-run | Sehen Sie sich alle Aktionen in der Vorschau an, wie sie ausgeführt würden. | FALSE |
-create-album-folder | Generieren Sie IMMICH-Alben nach Ordnernamen. | FALSE |
-use-full-path-album-name | Verwenden Sie den vollständigen Pfad zur Datei, um den Albumnamen zu bestimmen. | FALSE |
-album-name-path-separator | Legt fest, wie ggf. mehrere (Unter-)Ordner zusammengefügt werden | |
-create-stacks | Stapeln Sie JPG/RAW oder Bursts. | FALSE |
-stack-jpg-raw | Steuern Sie das Stapeln von JPG-/RAW-Fotos. | FALSE |
-stack-burst | Kontrollieren Sie die Stapelstöße. | FALSE |
-select-types=".ext,.ext,.ext..." | Liste der akzeptierten Erweiterungen. | |
-exclude-types=".ext,.ext,.ext..." | Liste der ausgeschlossenen Erweiterungen. | |
-when-no-date=FILE|NOW | Wenn das Aufnahmedatum nicht bestimmt werden kann, verwenden Sie JETZT das Datum der DATEI oder die aktuelle Uhrzeit. | FILE |
-exclude-files=pattern | Ignorieren Sie Dateien basierend auf einem Muster. Groß- und Kleinschreibung wird nicht beachtet. Wiederholen Sie die Option für jedes Muster, das Sie benötigen. | @eaDir/ @__thumb/ SYNOFILE_THUMB_*.* Lightroom Catalog/ thumbnails/ |
Optimieren Sie den Import basierend auf bestimmten Daten:
Parameter | Beschreibung |
---|---|
-date=YYYY-MM-DD | Importieren Sie Fotos, die an einem bestimmten Tag aufgenommen wurden. |
-date=YYYY-MM | Wählen Sie Fotos aus, die in einem bestimmten Monat aufgenommen wurden. |
-date=YYYY | Wählen Sie Fotos aus, die in einem bestimmten Jahr aufgenommen wurden. |
Verwenden Sie -exclude-files=PATTERN
um bestimmte Dateien oder Verzeichnisse vom Upload auszuschließen. Wiederholen Sie die Option für jedes Muster, das Sie benötigen. Die folgenden Verzeichnisse werden automatisch ausgeschlossen:
Der folgende Befehl schließt beispielsweise alle Dateien in Verzeichnissen namens „Backup“ oder „Draft“ sowie alle Dateien aus, deren Name mit „copy)“ endet, z. B. PXL_20231006_063121958 (eine weitere Kopie).jpg:
immich-go -server=xxxxx -key=yyyyy upload -exclude-files=backup/ -exclude-files=draft/ -exclude=copy). * /path/to/your/files
Spezielle Optionen für die Verwaltung von Google Fotos:
Parameter | Beschreibung | Standardwert |
---|---|---|
-google-photos | Importieren Sie aus einem strukturierten Google Fotos-Archiv und erstellen Sie entsprechende Alben neu. | |
-from-album="GP Album" | Erstellen Sie das Album in immich und importieren Sie die Assets des Albums. | |
-create-albums | Steuert die Erstellung von Google Fotos-Alben in Immich. | TRUE |
-keep-untitled-albums | Alben ohne Titel werden mit dem Namen des Ordners als Titel in immich importiert. | FALSE |
-use-album-folder-as-name | Verwenden Sie den Namen des Ordners anstelle des Albumtitels. | FALSE |
-keep-partner | Gibt den Einschluss oder Ausschluss von vom Partner aufgenommenen Fotos an. | TRUE |
-partner-album="partner's album" | Importieren Sie Assets vom Partner in ein bestimmtes Album. | |
-discard-archived | Importieren Sie keine archivierten Assets. | FALSE |
-auto-archive | Archivieren Sie automatisch Fotos, die auch in Google Fotos archiviert sind | TRUE |
-upload-when-missing-JSON | Laden Sie Fotos hoch, die nicht mit einer JSON-Metadatendatei verknüpft sind | FALSE |
Lesen Sie hier, um zu verstehen, warum das Entfernen von Google Fotos nicht einfach zu handhaben ist.
Derzeit werden die diesem Schema folgenden Bursts erkannt:
Alle Bilder müssen in derselben Minute aufgenommen werden. Das COVER-Bild ist das übergeordnete Bild des Stapels
Beide Bilder sollten in derselben Minute aufgenommen werden. Das JPG-Bild wird das Cover sein.
Bitte öffnen Sie eine Ausgabe, um weitere Möglichkeiten abzudecken.
Zur Veranschaulichung ist hier ein Befehl zum Importieren von Fotos aus einem Google Fotos-Takeout-Archiv, das zwischen dem 1. und 30. Juni 2019 aufgenommen wurde, während gleichzeitig Alben automatisch generiert werden:
./immich-go -server=http://mynas:2283 -key=zzV6k65KGLNB9mpGeri9n8Jk1VaNGHSCdoH1dY8jQ upload
-create-albums -google-photos -date=2019-06 ~ /Download/takeout- * .zip
Immich-go erhält die ersten verfügbaren Daten in der folgenden Reihenfolge.
photoTakenTime
PXL_20220909_154515546.jpg
PXL_20220909_154515546.jpg
/photos/2022/11/09/IMG_1234.HEIC
geoDataExif
geoData
im JSON-Feld von Google FotoslocationEnrichment
des Google Fotos-Albums immich-go
übernimmt das Datum des Fotos aus der zugehörigen JSON-Datei.
Der Server ignoriert das von immich-go bereitgestellte Datum und übernimmt das Datum der MP4, auch wenn es falsch ist.
Siehe Nr. 322: Der Erstellungszeitstempel aus Metadaten ist falsch
Immich-go versucht anhand des Dateinamens bzw. des Dateipfads das Aufnahmedatum zu ermitteln.
Ex:
Weg | Aufnahmedatum des Fotos |
---|---|
photos/album/PXL_20220909_154515546.jpg | 2022-09-09 15:51:55 |
photos/scanned/19991231.jpg | 1999-12-31 00:00:00 |
photos/20221109/IMG_1234.HEIC | 2022-11-19 00:00:00 |
Fotos/2022.11.09T20.30/IMG_1234.HEIC | 2022-11-19 20:30:00 |
photos/2022/11/09/IMG_1234.HEIC | 2022-11-19 00:00:00 |
Wenn der Pfad nicht zur Bestimmung des Aufnahmedatums verwendet werden kann, liest immich-go die metadata
oder exif
der Datei.
duplicate
Verwenden Sie diesen Befehl, um den Inhalt Ihres immich
-Servers zu analysieren und alle Dateien zu finden, die den gleichen Dateinamen und das gleiche Aufnahmedatum haben, aber eine unterschiedliche Größe haben. Bevor die minderwertigen Kopien gelöscht werden, ruft das System alle Alben ab, zu denen sie gehören, und fügt ihnen die übergeordnete Kopie hinzu.
Parameter | Beschreibung | Standardwert |
---|---|---|
-yes | Gehen Sie davon aus, dass alle Fragen mit „Ja“ beantwortet werden | FALSE |
-date | Überprüfen Sie, ob nur Vermögenswerte ein Erfassungsdatum im angegebenen Bereich haben | 1850-01-04,2030-01-01 |
-ignore-tz-errors | Ignorieren Sie Zeitzonenunterschiede bei der Suche nach Duplikaten | FALSE |
-ignore-extension | Ignorieren Sie Dateityperweiterungen bei der Suche nach Duplikaten | FALSE |
immich
-Server, nachdem Sie ein Google Fotos-Archiv und die Originaldateien zusammengeführt habenDieser Befehl untersucht den Inhalt des IMMICH-Servers, entfernt Bilder von geringerer Qualität und behält Alben bei.
./immich-go -server=http://mynas:2283 -key=zzV6k65KGLNB9mpGeri9n8Jk1VaNGHSCdoH1dY8jQ duplicate -yes
stack
Die Möglichkeit, Bilder zu stapeln, wurde mit immich
-Version 1.83 eingeführt. Verwenden Sie es, um Burst- und JPG/RAW-Bilder zu gruppieren.
Parameter | Beschreibung | Standardwert |
---|---|---|
-yes | Gehen Sie bei allen Fragen von „Ja“ aus | FALSE |
-date=date_range | Überprüfen Sie, ob nur Vermögenswerte ein Erfassungsdatum im angegebenen Bereich haben | 1850-01-04,2030-01-01 |
tool
Mit diesem Befehl werden Befehlszeilentools zur Manipulation Ihres immich
-Servers eingeführt
album delete [regexp]
Dieser Befehl löscht Alben, die mit dem angegebenen Muster übereinstimmen
-yes
Geht bei allen Fragen von „Ja“ aus (Standard: FALSE).
./immich-go -server=http://mynas:2283 -key=zzV6k65KGLNB9mpGeri9n8Jk1VaNGHSCdoH1dY8jQ tool album delete d {4}- d {2}- d {2}
Dieser Befehl löscht alle Alben, die mit dem Muster JJJJ-MM-TT erstellt wurden
Die Installation immich-go
ist ein unkomplizierter Vorgang. Besuchen Sie die Seite mit der neuesten Version und wählen Sie die mit Ihrem System kompatible Binärdatei aus:
Laden Sie das Ihrem Betriebssystem/Ihrer Architektur entsprechende Archiv auf Ihren Computer herunter und dekomprimieren Sie es.
Öffnen Sie ein Befehlsfenster, gehen Sie in das Verzeichnis, in dem sich immich-go befindet, und geben Sie den Befehl immich-go
mit den obligatorischen Parametern und dem Befehl ein.
Stellen Sie für eine quellbasierte Installation sicher, dass Sie über die erforderlichen Entwicklungstools für die Go-Sprache (https://go.dev/doc/install) verfügen. Laden Sie die Quelldateien herunter oder klonen Sie das Repository.
go build -ldflags " -X 'main.version= $( git describe --tag ) ' -X 'main.date= $( date ) ' "
immich-go
ist mit Nix verpackt und wird über Nixpkgs verteilt. Sie können immich-go
ohne Installation ausprobieren mit:
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
Oder Sie können immich-go
zu Ihrer configuration.nix
im Abschnitt environment.systemPackages
hinzufügen.
Ein großes Lob an das Immich-Team für ihr atemberaubendes Projekt! ?
Dieses Programm verwendet die folgenden Bibliotheken von Drittanbietern:
Ein großes Dankeschön an die Projektmitarbeiter: