驚くほど堅牢な写真管理システム(Immich版)
(jaisenmathai.com)Immichを使って、アルバム・説明・位置情報・日付・お気に入りなどの変更を写真ファイル自体のEXIFに保存するようにし、データベースなしでもSynology NAS + Dropboxで自動バックアップされる、非常に堅牢な写真管理システムを構築した。
中核となる思想(3つの優先順位)
- Preserve(保存): 数十年先の将来でも問題なく維持できること
- Unify(統合): 夫婦の複数台のスマートフォン写真を1つのライブラリに集約すること
- Experience(体験): 写真・動画を通じて思い出を再び鮮やかに感じられること
背景とこれまでのやり方
- 20年以上にわたり写真管理ワークフローを発展させてきた
- すべてのメタデータ(アルバム、説明、お気に入りなど)をEXIFのみに保存 → 外部DBに依存しない → 長期保存に最適
- 主ストレージ: Synology NAS
- 整理ツール: 本人が10年以上開発してきたオープンソースCLIツール Elodie (https://github.com/jmathai/elodie)
- 過去: Google Photosを読み取り専用ビューアとして活用 → 発見・検索・思い出の再体験機能は良かったが、2019年のポリシー変更 + プライバシー問題で断念
- Synology Photosは機能があまりにも乏しく、代替が必要だった
Immich導入(2025年末 ~ 2026年)
- Immichの**外部ライブラリ(external library)**機能(読み取り専用フォルダのマウントが可能)が決め手
- 最初は読み取り専用ビューアとして開始 → 後に整理ツールへ完全移行
- 問題点: Immichのデフォルト動作ではメタデータをPostgres DBまたはXMPサイドカーに保存 → 著者はその両方を拒否
→ すべての変更を写真ファイルのEXIFに直接埋め込むカスタム方式を開発
主な実装方法
- Immich APIを活用 → UIでアルバム追加・説明作成・お気に入り設定などを行うと → EXIFに記録
- Elodieとの連携: Elodieがアルバムフォルダへファイルを移動 + EXIF更新 → Immichはこれをファイル削除+生成として認識 → 一時的な不一致が発生
→ 解決策: **eventually consistent(結果整合性)**方式を採用 → 遅延反映を許容 - XMPサイドカーは使用しない(脆弱だと判断)
- 結果: ImmichがGoogle Photos級の発見・検索・思い出再体験の体験を提供しつつ、EXIFだけですべての情報を保存
使用ツール & バックアップ戦略
- Immich(外部ライブラリ + API活用)
- Elodie(ファイルシステムのマッピング & 整理の中核エンジン)
- Synology NAS → 主ストレージ
- Dropbox → 自動バックアップ(EXIF変更 → ファイル自体の変更 → 自動同期)
- カスタムプラグイン: https://github.com/jmathai/immich-exif (簡易版)
- 進捗追跡: https://github.com/jmathai/elodie/issues/496
利点
- データベースなしでEXIFだけによる完全保存 → 10年後、20年後でも問題なし
- Google Photosのような豊かなUI/発見体験を復元
- プライバシー・依存性の問題を解決
- NAS + Dropboxの二重バックアップで安定性を最大化
欠点 & 現実
- 設定難易度が非常に高い(著者でも2週間かかり、AIの助けがあっても簡単ではない)
- Immichの基本設計と衝突する部分が多く、カスタマイズが必須
- リアルタイム反映ではなく遅延反映(eventually consistent)方式のため、完全なリアルタイム性はない
結論のニュアンス
著者は、長年守り続けてきた「EXIFだけを信じていこう」という哲学をまったく手放すことなく、Immichによって読み取り専用ビューアから完全な整理+発見プラットフォームへアップグレードすることに成功したと評価している。
詳細な技術実装は別の記事で公開予定とのことなので、興味があればGitHub Issueや本人のブログを引き続き追いかけるとよさそうだ。
まだコメントはありません。