Immich-Go est un outil open source conçu pour rationaliser le téléchargement de grandes collections de photos sur votre serveur Immich auto-hébergé.
Immich-go :Retirer vos photos :
Importer vos photos :
/path/to/your/files/takeout-*.zip comme nom de fichier.-google-photos .Beaucoup de fichiers ne sont pas importés : Quelles sont les options ?
-upload-when-missing-JSON Pour avoir un aperçu du raisonnement derrière cette alternative à immich-cli , veuillez lire la motivation ici.
⚠️ Il s'agit d'une première version, pas encore testée de manière approfondie⚠️ Conservez une copie de sauvegarde de vos fichiers pour des raisons de sécurité
immich-go immich-go est un outil de ligne de commande qui doit être exécuté depuis une fenêtre de terminal.
Le programme immich-go utilise l'API Immich. Il a donc besoin de l'adresse du serveur et d'une clé API valide.
Sur les amis Linux, macOS et FreeBSD :
./immich-go -server=URL -key=KEY -general_options COMMAND -command_options... {path/to/files}Important
Les utilisateurs de macOS doivent autoriser explicitement l'exécution d'immich-go. Ouvrez Confidentialité et sécurité > Paramètres de sécurité pour autoriser
Sur les systèmes Windows :
.immich - go - server = URL - key = KEY - general_options COMMAND - command_options.. . {path / to / files} Les options booléennes ont une valeur par défaut indiquée ci-dessous. Mentionner une option sur la ligne commune change l’option en TRUE. Pour forcer une option à FALSE, utilisez la syntaxe suivante : -option=FALSE .
Exemple : Immich-go vérifie le certificat SSL du serveur. vous pouvez désactiver ce comportement en activant l'option skip-verify-ssl . Ajoutez simplement -skip-verify-ssl . -skip-verify-ssl est équivalent à -skip-verify-ssl=TRUE . Pour désactiver la fonctionnalité (qui est le comportement par défaut), utilisez -skip-verify-ssl=FALSE
| Paramètre | Description | Valeur par défaut |
|---|---|---|
-use-configuration=path/to/config/file | Spécifie le fichier de configuration à utiliser. L'URL du serveur et la clé API sont stockées dans le fichier de configuration immich-go. Ils peuvent être omis pour les prochaines exécutions. | Linux $HOME/.config/immich-go/immich-go.jsonWindows %AppData%immich-goimmich-go.jsonmacOS $HOME/Library/Application Support/immich-go/immich-go.json |
-server=URL | URL du service Immich, exemple http://:2283 ou https://votre-domaine.tld | |
-api=URL | URL du point de terminaison de l'API Immich (http://container_ip:3301) | |
-device-uuid=VALUE | Forcer l'identification de l'appareil | $HOSTNAME |
-client-timeout=duration | Définissez le délai d'attente pour les appels au serveur. La durée est un nombre décimal avec un suffixe d'unité, tel que « 300 ms », « 1,5 m » ou « 45 m ». Les unités de temps valides sont « ms », « s », « m », « h ». | 5m |
-skip-verify-ssl | Ignorer la vérification SSL pour une utilisation avec des certificats auto-signés | false |
-key=KEY | Une clé générée par l'utilisateur. Les photos téléchargées appartiendront au propriétaire de la clé. | |
-log-level=LEVEL | Ajustez la verbosité du journal comme suit : - ERROR : Afficher uniquement les erreurs- WARNING : Idem au précédent plus erreur non bloquante- INFO : Messages d'information | INFO |
-log-file=/path/to/log/file | Écrire tous les messages dans un fichier | Linux $HOME/.cache/immich-go/immich-go_YYYY-MM-DD_HH-MI-SS.logWindows %LocalAppData%immich-goimmich-go_YYYY-MM-DD_HH-MI-SS.logmacOS $HOME/Library/Caches/immich-go/immich-go_YYYY-MM-DD_HH-MI-SS.log |
-log-json | Afficher le journal sous forme de fichier JSON délimité par des lignes | false |
-time-zone=time_zone_name | Définir le fuseau horaire pour les dates sans informations de fuseau horaire | Le fuseau horaire du système |
-no-ui | Désactiver l'interface utilisateur | false |
-debug-counters | Activer la génération d'un CSV à côté du fichier journal | false |
-api-trace | Activer la trace des appels API | false |
upload de commandeUtilisez cette commande pour télécharger des photos et des vidéos à partir d'un répertoire local, d'un dossier compressé ou de tous les fichiers zip générés par la procédure de retrait de Google Photos.
| Paramètre | Description | Valeur par défaut |
|---|---|---|
-album="ALBUM NAME" | Importez des éléments dans l'album Immich ALBUM NAME . | |
-dry-run | Prévisualisez toutes les actions telles qu'elles seraient effectuées. | FALSE |
-create-album-folder | Générez des albums immich après les noms de dossiers. | FALSE |
-use-full-path-album-name | Utilisez le chemin complet du fichier pour déterminer le nom de l'album. | FALSE |
-album-name-path-separator | Détermine comment plusieurs (sous) dossiers, le cas échéant, seront joints | |
-create-stacks | Empilez jpg/raw ou rafales. | FALSE |
-stack-jpg-raw | Contrôlez l'empilement des photos jpg/raw. | FALSE |
-stack-burst | Contrôlez les rafales d’empilement. | FALSE |
-select-types=".ext,.ext,.ext..." | Liste des extensions acceptées. | |
-exclude-types=".ext,.ext,.ext..." | Liste des extensions exclues. | |
-when-no-date=FILE|NOW | Lorsque la date de prise ne peut pas être déterminée, utilisez la date du FICHIER ou l'heure actuelle MAINTENANT. | FILE |
-exclude-files=pattern | Ignorez les fichiers en fonction d'un modèle. Insensible à la casse. Répétez l'option pour chaque motif dont vous avez besoin. | @eaDir/@__thumb/SYNOFILE_THUMB_*.*Lightroom Catalog/thumbnails/ |
Affinez l'importation en fonction de dates spécifiques :
| Paramètre | Description |
|---|---|
-date=YYYY-MM-DD | importer des photos prises un jour particulier. |
-date=YYYY-MM | sélectionner des photos prises au cours d'un mois particulier. |
-date=YYYY | sélectionner des photos prises au cours d’une année particulière. |
Utilisez -exclude-files=PATTERN pour exclure certains fichiers ou répertoires du téléchargement. Répétez l'option pour chaque motif dont vous avez besoin. Les répertoires suivants sont automatiquement exclus :
Exemple, la commande suivante exclut tous les fichiers des répertoires appelés backup ou draft et tout fichier dont le nom se termine par "copy)" comme PXL_20231006_063121958 (une autre copie).jpg :
immich-go -server=xxxxx -key=yyyyy upload -exclude-files=backup/ -exclude-files=draft/ -exclude=copy). * /path/to/your/filesOptions spécialisées pour la gestion de Google Photos :
| Paramètre | Description | Valeur par défaut |
|---|---|---|
-google-photos | importer à partir d'une archive structurée Google Photos, en recréant les albums correspondants. | |
-from-album="GP Album" | Créez l'album dans immich et importez les éléments de l'album. | |
-create-albums | Contrôle la création d'albums Google Photos dans Immich. | TRUE |
-keep-untitled-albums | Les albums sans titre sont importés dans immich avec le nom du dossier comme titre. | FALSE |
-use-album-folder-as-name | Utilisez le nom du dossier au lieu du titre de l'album. | FALSE |
-keep-partner | Spécifie l'inclusion ou l'exclusion des photos prises par le partenaire. | TRUE |
-partner-album="partner's album" | importer des actifs du partenaire dans un album donné. | |
-discard-archived | n’importez pas les ressources archivées. | FALSE |
-auto-archive | Archivez automatiquement les photos également archivées dans Google Photos | TRUE |
-upload-when-missing-JSON | Télécharger des photos non associées à un fichier de métadonnées JSON | FALSE |
Lisez ici pour comprendre pourquoi la suppression de Google Photos n'est pas facile à gérer.
Actuellement les bursts suivant ce schéma sont détectés :
Toutes les images doivent être prises pendant la même minute. L'image COVER sera l'image parent de la pile
Les deux images doivent être prises dans la même minute. L'image JPG sera la couverture.
Veuillez ouvrir un numéro pour couvrir plus de possibilités.
À titre d'illustration, voici une commande permettant d'importer des photos à partir d'une archive à emporter Google Photos capturées entre le 1er et le 30 juin 2019, tout en générant automatiquement des albums :
./immich-go -server=http://mynas:2283 -key=zzV6k65KGLNB9mpGeri9n8Jk1VaNGHSCdoH1dY8jQ upload
-create-albums -google-photos -date=2019-06 ~ /Download/takeout- * .zip Immich-go récupère les premières données disponibles dans l’ordre suivant.
photoTakenTimePXL_20220909_154515546.jpgPXL_20220909_154515546.jpg/photos/2022/11/09/IMG_1234.HEICgeoDataExifgeoData du champ JSON Google PhotoslocationEnrichment du champ JSON de l'album Google PhotosEnrichissement immich-go prend la date de la photo à partir du fichier JSON associé.
Le serveur ignore la date fournie par immich-go et prend la date du MP4 même si elle est incorrecte.
Voir #322 L'horodatage de création à partir des métadonnées est erroné
Immich-go essaie de déterminer la date de capture avec le nom du fichier ou le chemin du fichier.
Ex:
| Chemin | Date de prise de la photo |
|---|---|
| photos/album/PXL_20220909_154515546.jpg | 2022-09-09 15:51:55 |
| photos/scannés/19991231.jpg | 1999-12-31 00:00:00 |
| photos/20221109/IMG_1234.HEIC | 2022-11-19 00:00:00 |
| photos/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 |
Si le chemin ne peut pas être utilisé pour déterminer la date de capture, immich-go lisez les metadata ou exif du fichier.
duplicate Utilisez cette commande pour analyser le contenu de votre serveur immich afin de rechercher tous les fichiers partageant le même nom de fichier, la même date de capture, mais ayant une taille différente. Avant de supprimer les copies inférieures, le système récupère tous les albums auxquels ils appartiennent et leur ajoute la copie supérieure.
| Paramètre | Description | Valeur par défaut |
|---|---|---|
-yes | Supposons que oui à toutes les questions | FALSE |
-date | Vérifiez que seuls les actifs ont une date de capture dans la plage donnée | 1850-01-04,2030-01-01 |
-ignore-tz-errors | Ignorer le décalage horaire lors de la recherche de doublons | FALSE |
-ignore-extension | Ignorer les extensions de type de fichier lors de la recherche de doublons | FALSE |
immich après avoir fusionné une archive Google Photos et les fichiers originauxCette commande examine le contenu du serveur immich, supprime les images de moindre qualité et préserve les albums.
./immich-go -server=http://mynas:2283 -key=zzV6k65KGLNB9mpGeri9n8Jk1VaNGHSCdoH1dY8jQ duplicate -yesstack de commandes La possibilité d'empiler des images a été introduite avec la version 1.83 immich . Utilisons-le pour regrouper les images en rafale et jpg/raw.
| Paramètre | Description | Valeur par défaut |
|---|---|---|
-yes | Supposons que oui à toutes les questions | FALSE |
-date=date_range | Vérifiez que seuls les actifs ont une date de capture dans la plage donnée | 1850-01-04,2030-01-01 |
tool de commande Cette commande présente des outils de ligne de commande pour manipuler votre serveur immich
album delete [regexp]Cette commande supprime les albums qui correspondent au modèle donné
-yes Supposons que oui à toutes les questions (par défaut : FALSE).
./immich-go -server=http://mynas:2283 -key=zzV6k65KGLNB9mpGeri9n8Jk1VaNGHSCdoH1dY8jQ tool album delete d {4}- d {2}- d {2}Cette commande supprime tous les albums créés avec le modèle AAAA-MM-JJ
L'installation immich-go est un processus simple. Visitez la page de la dernière version et sélectionnez le fichier binaire compatible avec votre système :
Téléchargez l'archive correspondant à votre OS/Architecture sur votre machine et décompressez-la.
Ouvrez une fenêtre de commande, accédez au répertoire où réside immich-go et tapez la commande immich-go avec les paramètres et la commande obligatoires.
Pour une installation basée sur les sources, assurez-vous que vous disposez des outils de développement du langage Go nécessaires (https://go.dev/doc/install). Téléchargez les fichiers sources ou clonez le référentiel.
go build -ldflags " -X 'main.version= $( git describe --tag ) ' -X 'main.date= $( date ) ' " immich-go est fourni avec nix et distribué via nixpkgs. Vous pouvez essayer immich-go sans l'installer avec :
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 Ou vous pouvez ajouter immich-go à votre configuration.nix dans la section environment.systemPackages .
Félicitations à l'équipe Immich pour leur superbe projet ! ?
Ce programme utilise les bibliothèques tierces suivantes :
Un grand merci aux contributeurs du projet :