Immich CLI
Immichにはコマンドラインインターフェース(CLI)があり、コマンドラインから特定の操作を実行できます。
機能
- Immichへの写真や動画のアップロード
- サーバーバージョンの確認
今後さらに多くの機能が計画されています。
GoogleフォトのTakeoutをインポートしたい場合は、コミュニティで維持されているツールimmich-goをお勧めします。
必要条件
- Node.js 20以上
- Npm
Nodeやnpmをインストールできない場合は、以下にDockerバージョンも利用可能です。
インストール方法 (NPM)
npm i -g @immich/cli
注意: 以前にCLIの古いバージョンをインストールした場合は、先にアンインストールする必要があります。
npm uninstall -g immich
インストール方法 (Docker)
システム上でnpmが利用できない場合は、Dockerバージョンを試すことができます。
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
IMMICH_INSTANCE_URL
とIMMICH_API_KEY
環境変数を適切に修正してください。また、Dockerのenvファイルを使用して敏感なAPIキーを保存することも可能です。
このdocker run
コマンドはコンテナ内で直接コマンドimmich
を実行します。以下のように求めるパラメータを直接コマンドラインに追加できます。
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/
使用方法
使用方法
$ immich
使用法: immich [オプション] [コマンド]
Immichのコマンドラインインターフェース
オプション:
-V, --version バージョンを出力
-d, --config-directory <directory> auth.ymlが保存される設定ディレクトリ (デフォルト: "~/.config/immich/", env:
IMMICH_CONFIG_DIR)
-u, --url [url] ImmichサーバーURL (env: IMMICH_INSTANCE_URL)
-k, --key [key] Immich APIキー (env: IMMICH_API_KEY)
-h, --help ヘルプを表示
コマンド:
login|login-key <url> <key> APIキーでログイン
logout 保存された認証情報を削除
server-info サーバー情報を表示
upload [オプション] [paths...] アセットをアップロード
help [command] コマンドのヘルプを表示
コマンド
uploadコマンドは以下のオプションをサポートしています:
オプション
使用法: immich upload [paths...] [オプション]
アセットをアップロード
引数:
paths アップロードするアセットの1つ以上のパス
オプション:
-r, --recursive 再帰 (デフォルト: false, env: IMMICH_RECURSIVE)
-i, --ignore <pattern> 無視するパターン (env: IMMICH_IGNORE_PATHS)
-h, --skip-hash アップロード前にファイルをハッシュしない (デフォルト: false, env: IMMICH_SKIP_HASH)
-H, --include-hidden 隠しフォルダを含む (デフォルト: false, env: IMMICH_INCLUDE_HIDDEN)
-a, --album フォルダ名に基づいて自動的にアルバムを作成 (デフォルト: false, env: IMMICH_AUTO_CREATE_ALBUM)
-A, --album-name <name> 指定したアルバムにすべてのアセットを追加 (env: IMMICH_ALBUM_NAME)
-n, --dry-run 実際にはアクションを行わず、実行される内容を表示 (デフォルト: false, env: IMMICH_DRY_RUN)
-c, --concurrency <number> 同時にアッ プロードするアセット数 (デフォルト: 4, env: IMMICH_UPLOAD_CONCURRENCY)
-j, --json-output 詳細情報をJSON形式で出力 (デフォルト: false, env: IMMICH_JSON_OUTPUT)
--delete ローカルアセットをアップロード後に削除 (env: IMMICH_DELETE_ASSETS)
--no-progress プログレスバーを非表示 (env: IMMICH_PROGRESS_BAR)
--watch 変更を監視し自動的にアップロード (デフォルト: false, env: IMMICH_WATCH_CHANGES)
--help コマンドのヘルプを表示
上記のオプションは環境変数から読み取ることも可能です。
クイックスタート
最初に自分のImmichサーバーに認証します。例えば:
# immich login [url] [key]
immich login http://192.168.1.216:2283/api HFEJ38DNSDUEG
これにより認証情報がauth.yml
ファイルとして設定ディレクトリに保存されます。デフォルトは~/.config/immich/
です。ディレクトリは-d
オプションまたは環境変数IMMICH_CONFIG_DIR
で設定できます。このファイルを安全に保管してください。使用終了後はログアウトコマンドを実行するか、手動でファイルを削除してください。
認証されると、Immichサーバーにアセットをアップロードできます。
immich upload file1.jpg file2.jpg
デフォルトではサブフォルダは含まれません。サブフォルダを含むディレクトリをアップロードするには、--recursiveオプションを使用してください。
immich upload --recursive directory/
何が実行されるのか確認したい場合は、--dry-run
オプションで実際にはアクションを行わずプレビューできます。
immich upload --dry-run --recursive directory/
デフォルトでは、アップロード前にファイルがハッシュされます。これにより同じファイルを複数回アップロードしないようにします。ファイルが確実にユニークな場合は、--skip-hash
オプションでこのステップをスキップできます。ただし、Immichは常にハッシュによる重複除去を行うため、これは単なる性能向上の観点となります。十分な帯域幅がある場合は、ハッシュをスキップした方が高速になる可能性があります。
immich upload --skip-hash --recursive directory/
フォルダ名に基づいてアルバムを自動的に作成するには、--album
オプションを使用してください。これによりアップロードされたアセットに基づいて自動的にアルバムが作成されます。
immich upload --album --recursive directory/
特定のアルバムにすべてのアセットをアップロードするには、--album-name
オプションを使用できます。
immich upload --album-name "My summer holiday" --recursive directory/
グロブパターンに一致するアセットをスキップするには、--ignore
オプションを使用します。グロブパターンの使用方法についてはライブラリドキュメントを参照してくだ さい。必要に応じて複数の除外パターンを追加できます。
immich upload --ignore **/Raw/** --recursive directory/
immich upload --ignore **/Raw/** **/*.tif --recursive directory/
デフォルトでは隠しファイルはスキップされます。隠しファイルを含めたい場合は、--include-hidden
オプションを使用してください。
immich upload --include-hidden --recursive directory/
--json-output
オプションを使用することで、アップロードされる新規ファイル、重複ファイル、新しいアセットを含むJSONを出力できます。一部のログ出力があるため、JSONを取得するには出力の最初の3行を除去する必要があります。例えば、アップロードされるファイルの一覧をさらなる処理のために取得するには:
immich upload --dry-run . | tail -n +4 | jq .newFiles[]
APIキーの取得
APIキーはウェブインターフェースのユーザー設定パネルで取得できます。