Immich-Goは、セルフホスト型 Immich サーバーへの大規模な写真コレクションのアップロードを効率化するために設計されたオープンソース ツールです。
Immich-goで私の作品をサポートできるようになりました。写真の取り出し:
写真をインポートする:
/path/to/your/files/takeout-*.zipを使用します。-google-photosオプションを忘れないでください。多くのファイルがインポートされません: オプションは何ですか?
-upload-when-missing-JSONオプションを使用しますimmich-cliに代わるこの代替案の背後にある理由については、ここでその動機をお読みください。
⚠️ これは初期バージョンであり、まだ広範囲にテストされていません⚠️ 安全のためにファイルのバックアップ コピーを保管してください
immich-go実行immich-goターミナル ウィンドウから実行する必要があるコマンド ライン ツールです。
immich-goプログラムは Immich API を使用します。したがって、サーバーアドレスと有効な API キーが必要です。
Linux、macOS、FreeBSD フレンドの場合:
./immich-go -server=URL -key=KEY -general_options COMMAND -command_options... {path/to/files}重要
macOS ユーザーは、immich-go の実行を明示的に許可する必要があります。 [プライバシーとセキュリティ] > [セキュリティ設定] を開き、許可します
Windows システムの場合:
.immich - go - server = URL - key = KEY - general_options COMMAND - command_options.. . {path / to / files}ブール型オプションには、以下に示すデフォルト値があります。共通行でオプションを言及すると、オプションが TRUE に変わります。オプションを強制的に FALSE にするには、構文-option=FALSEを使用します。
例: Immich-go サーバーの SSL 証明書を確認します。この動作を無効にするには、 skip-verify-sslオプションをオンにします。 -skip-verify-sslを追加するだけです。 -skip-verify-ssl -skip-verify-ssl=TRUEと同等です。この機能をオフにするには (デフォルトの動作です)、 -skip-verify-ssl=FALSEを使用します。
| パラメータ | 説明 | デフォルト値 |
|---|---|---|
-use-configuration=path/to/config/file | 使用する構成ファイルを指定します。 サーバー URL と API キーは immich-go 設定ファイルに保存されます。次回の実行では省略できます。 | Linux $HOME/.config/immich-go/immich-go.jsonWindows %AppData%immich-goimmich-go.jsonmacOS $HOME/Library/Application Support/immich-go/immich-go.json |
-server=URL | Immich サービスの URL (例: http://:2283 または https://your-domain.tld) | |
-api=URL | Immich API エンドポイントの URL (http://container_ip:3301) | |
-device-uuid=VALUE | デバイスの識別を強制する | $HOSTNAME |
-client-timeout=duration | サーバー呼び出しのタイムアウトを設定します。期間は、「300ms」、「1.5m」、「45m」などの単位の接尾辞が付いた 10 進数です。有効な時間単位は「ms」、「s」、「m」、「h」です。 | 5m |
-skip-verify-ssl | 自己署名証明書で使用する場合は SSL 検証をスキップします | false |
-key=KEY | ユーザーによって生成されたキー。アップロードされた写真はキーの所有者に属します。 | |
-log-level=LEVEL | 次のようにログの詳細度を調整します。 - ERROR : エラーのみを表示します- WARNING : 前のものと同じですが、非ブロッキング エラーが発生します- INFO : 情報メッセージ | INFO |
-log-file=/path/to/log/file | すべてのメッセージをファイルに書き込む | 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 | ログを行区切りのJSONファイルとして出力します。 | false |
-time-zone=time_zone_name | タイムゾーン情報のない日付のタイムゾーンを設定する | システムのタイムゾーン |
-no-ui | ユーザーインターフェースを無効にする | false |
-debug-counters | ログ ファイルの横に CSV を生成できるようにします。 | false |
-api-trace | API呼び出しのトレースを有効にする | false |
uploadこのコマンドは、ローカル ディレクトリ、zip フォルダ、または Google フォトの取り出し手順で生成されたすべての zip ファイルから写真やビデオをアップロードするために使用します。
| パラメータ | 説明 | デフォルト値 |
|---|---|---|
-album="ALBUM NAME" | アセットを Immich アルバムALBUM NAMEにインポートします。 | |
-dry-run | すべてのアクションが実行されるようにプレビューします。 | FALSE |
-create-album-folder | フォルダー名の後に immich アルバムを生成します。 | FALSE |
-use-full-path-album-name | ファイルへのフルパスを使用してアルバム名を決定します。 | FALSE |
-album-name-path-separator | 複数の (サブ) フォルダーがある場合、それを結合する方法を決定します。 | |
-create-stacks | jpg/生またはバーストをスタックします。 | FALSE |
-stack-jpg-raw | jpg/raw 写真のスタッキングを制御します。 | FALSE |
-stack-burst | スタッキングバーストを制御します。 | FALSE |
-select-types=".ext,.ext,.ext..." | 受け入れられる拡張子のリスト。 | |
-exclude-types=".ext,.ext,.ext..." | 除外される拡張子のリスト。 | |
-when-no-date=FILE|NOW | テイクの日付が特定できない場合は、ファイルの日付または現在の時刻を使用します。 | FILE |
-exclude-files=pattern | パターンに基づいてファイルを無視します。大文字と小文字は区別されません。必要なパターンごとにオプションを繰り返します。 | @eaDir/@__thumb/SYNOFILE_THUMB_*.*Lightroom Catalog/thumbnails/ |
特定の日付に基づいてインポートを微調整します。
| パラメータ | 説明 |
|---|---|
-date=YYYY-MM-DD | 特定の日に撮影した写真をインポートします。 |
-date=YYYY-MM | 特定の月に撮影した写真を選択します。 |
-date=YYYY | 特定の年に撮影された写真を選択します。 |
-exclude-files=PATTERNを使用して、アップロードから特定のファイルまたはディレクトリを除外します。必要なパターンごとにオプションを繰り返します。次のディレクトリは自動的に除外されます。
たとえば、次のコマンドは、backup またはdraft というディレクトリ内のすべてのファイル、および PXL_20231006_063121958 (another copy).jpg のように「copy)」で終わる名前を持つすべてのファイルを除外します。
immich-go -server=xxxxx -key=yyyyy upload -exclude-files=backup/ -exclude-files=draft/ -exclude=copy). * /path/to/your/filesGoogle フォト管理の特別なオプション:
| パラメータ | 説明 | デフォルト値 |
|---|---|---|
-google-photos | Google フォトの構造化アーカイブからインポートし、対応するアルバムを再作成します。 | |
-from-album="GP Album" | immichでアルバムを作成し、アルバムのアセットをインポートします。 | |
-create-albums | Immich での Google フォト アルバムの作成を制御します。 | TRUE |
-keep-untitled-albums | 無題のアルバムは、フォルダー名をタイトルとしてimmichにインポートされます。 | FALSE |
-use-album-folder-as-name | アルバムのタイトルの代わりにフォルダーの名前を使用します。 | FALSE |
-keep-partner | パートナーが撮影した写真を含めるか除外するかを指定します。 | TRUE |
-partner-album="partner's album" | パートナーから指定されたアルバムにアセットをインポートします。 | |
-discard-archived | アーカイブされたアセットをインポートしないでください。 | FALSE |
-auto-archive | Google フォトにもアーカイブされている写真を自動的にアーカイブします | TRUE |
-upload-when-missing-JSON | JSON メタデータ ファイルに関連付けられていない写真をアップロードする | FALSE |
ここを読んで、Google フォトのデータの取り出しが扱いにくい理由を理解してください。
現在、このスキーマに従ったバーストが検出されています。
すべての画像は同じ 1 分間に撮影する必要があります。 COVER 画像がスタックの親画像になります
両方の画像を同じ分に撮影する必要があります。 JPG画像が表紙になります。
より多くの可能性をカバーするには、問題を開いてください。
例として、アルバムを自動生成しながら、2019 年 6 月 1 日から 6 月 30 日までに撮影された Google フォトのテイクアウト アーカイブから写真をインポートするコマンドを示します。
./immich-go -server=http://mynas:2283 -key=zzV6k65KGLNB9mpGeri9n8Jk1VaNGHSCdoH1dY8jQ upload
-create-albums -google-photos -date=2019-06 ~ /Download/takeout- * .zip Immich-go は、次の順序で最初に利用可能なデータを取得します。
photoTakenTimePXL_20220909_154515546.jpgPXL_20220909_154515546.jpg/photos/2022/11/09/IMG_1234.HEICgeoDataExifgeoDatalocationEnrichment immich-go関連付けられた JSON ファイルから写真の日付を取得します。
サーバーは immich-go によって提供された日付を無視し、それが正しくない場合でも MP4 の日付を取得します。
#322 メタデータからの作成タイムスタンプが間違っているを参照してください
Immich-go は、ファイル名またはファイル パスを使用してキャプチャの日付を特定しようとします。
元:
| パス | 写真の撮影日 |
|---|---|
| 写真/アルバム/PXL_20220909_154515546.jpg | 2022-09-09 15:51:55 |
| 写真/スキャン済み/19991231.jpg | 1999-12-31 00:00:00 |
| 写真/20221109/IMG_1234.HEIC | 2022-11-19 00:00:00 |
| 写真/2022.11.09T20.30/IMG_1234.HEIC | 2022-11-19 20:30:00 |
| 写真/2022/11/09/IMG_1234.HEIC | 2022-11-19 00:00:00 |
パスを使用してキャプチャ日を特定できない場合は、 immich-go でファイルのmetadataまたはexif読み取ります。
duplicateこのコマンドを使用してimmichサーバーのコンテンツを分析し、ファイル名とキャプチャ日は同じだがサイズが異なるファイルを見つけます。劣ったコピーを削除する前に、システムはそれらが属するすべてのアルバムを取得し、それらに上位のコピーを追加します。
| パラメータ | 説明 | デフォルト値 |
|---|---|---|
-yes | すべての質問に「はい」と仮定します | FALSE |
-date | 指定された範囲内の取得日を持つアセットのみをチェックします | 1850-01-04,2030-01-01 |
-ignore-tz-errors | 重複を検索するときにタイムゾーンの違いを無視する | FALSE |
-ignore-extension | 重複を検索するときにファイルタイプの拡張子を無視する | FALSE |
immichサーバーをクリーンアップします。このコマンドは、immich サーバーのコンテンツを調べ、低品質の画像を削除し、アルバムを保存します。
./immich-go -server=http://mynas:2283 -key=zzV6k65KGLNB9mpGeri9n8Jk1VaNGHSCdoH1dY8jQ duplicate -yesstackイメージをスタックする機能は、 immichバージョン 1.83 で導入されました。バースト画像と jpg/raw 画像をグループ化するために使用してみましょう。
| パラメータ | 説明 | デフォルト値 |
|---|---|---|
-yes | すべての質問に「はい」と仮定します | FALSE |
-date=date_range | 指定された範囲内の取得日を持つアセットのみをチェックします | 1850-01-04,2030-01-01 |
toolこのコマンドは、 immichサーバーを操作するためのコマンド ライン ツールを導入します。
album delete [regexp]このコマンドは、指定されたパターンに一致するアルバムを削除します
-yesすべての質問に対して「はい」とみなします (デフォルト: FALSE)。
./immich-go -server=http://mynas:2283 -key=zzV6k65KGLNB9mpGeri9n8Jk1VaNGHSCdoH1dY8jQ tool album delete d {4}- d {2}- d {2}このコマンドは、パターン YYYY-MM-DD で作成されたすべてのアルバムを削除します。
immich-goのインストールは簡単なプロセスです。最新のリリース ページにアクセスし、お使いのシステムと互換性のあるバイナリ ファイルを選択します。
OS/アーキテクチャに対応するアーカイブをマシンにダウンロードし、解凍します。
コマンド ウィンドウを開き、immich-go が存在するディレクトリに移動し、必須パラメータとコマンドを指定してコマンドimmich-goを入力します。
ソースベースのインストールの場合は、必要な Go 言語開発ツール (https://go.dev/doc/install) が適切に配置されていることを確認してください。ソース ファイルをダウンロードするか、リポジトリのクローンを作成します。
go build -ldflags " -X 'main.version= $( git describe --tag ) ' -X 'main.date= $( date ) ' " immich-go nix にパッケージ化されており、nixpkgs 経由で配布されます。 immich-goをインストールせずに、次のように試すことができます。
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または、 environment.systemPackagesセクションのconfiguration.nixにimmich-goを追加することもできます。
Immich チームの素晴らしいプロジェクトに敬意を表します。 ?
このプログラムは次のサードパーティ ライブラリを使用します。
プロジェクトの貢献者に深く感謝します。