Google フォトを Synology NAS に移行して Synology Photos で撮影日を正しく出す方法
Google Takeout のエクスポートを Synology NAS に移し、Synology Photos のタイムラインが正しい日付で並ぶようにする手順です。NAS に載せる前にパソコンでやる準備、あとで困らないフォルダー構成、コピーと索引の注意点を説明します。
Takeout のフォルダーを NAS にコピーし、Synology Photos を開いたら、タイムラインがコピーした日の写真の壁になっていた。何千個もの .json ファイルが混ざり、アルバムフォルダーのせいでライブラリの半分が二重になっている。
NAS は言われたとおりに動いているだけです。ファイルは NAS に載せる前に直す必要があります。
Synology Photos は写真の日付をどう決めるか
Synology Photos は各ファイルを索引し、画像は EXIF の DateTimeOriginal から、動画はコンテナのメタデータから日付を読みます。どちらもなければファイルの更新日時を使います。Google の .json サイドカーは無視して、未対応として一覧するか隠します。
SMB や File Station でコピーすると、多くの環境で更新日時がコピーした時刻になります。しかもパソコンでの解凍の時点ですでにそうなっています。ですから EXIF がなかった写真は、すべてコピーした日を表示します。
古い DSM の Photo Station でも、共有フォルダーを索引する他のもの、たとえば Container Manager で動かす Plex や Immich でも同じです。
メタデータの作業はパソコンで先に済ませる
NAS は、数万個の小さなファイルに触れる作業が何であれ遅いです。修正はデスクトップで済ませ、完成したフォルダーを 1 回だけコピーしてください。
Takeout のパートをすべて 1 つのフォルダーに解凍します。それからサイドカーの日付をファイルに書き込みます。exiftool なら次のとおりです。
exiftool -r -d %s -tagsfromfile "%d/%F.supplemental-metadata.json" \
"-DateTimeOriginal<PhotoTakenTimeTimestamp" "-FileModifyDate<PhotoTakenTimeTimestamp" \
"-GPSLatitude<GeoDataLatitude" "-GPSLatitudeRef<GeoDataLatitude" \
"-GPSLongitude<GeoDataLongitude" "-GPSLongitudeRef<GeoDataLongitude" \
-ext jpg -ext heic -ext png -overwrite_original .
動画には QuickTime の日付タグで繰り返し、切り詰められた名前と (1) のサイドカーは別に扱います。全手順は exiftool ガイド にあります。無料スクリプトの GooglePhotosTakeoutHelper も照合をしてくれ、年フォルダーへの振り分けもできます。
Takeout JSON Metadata Fixer は、これを Windows、Mac、Linux のデスクトップアプリとして行います。画面は日本語です。
Takeout の zip を選びます。アプリは各写真と動画に本当の日付と GPS を書き込み、ファイル日時を合わせ、選んだフォルダー構成に整理して出力します。マウントしたネットワーク共有に直接書くこともできますが、ローカルドライブに書いてから完成したツリーを NAS にコピーするほうが速いです。最初の 1000 枚は無料で、無制限は 19.99 米ドルの買い切りです。
NAS 向けのフォルダー構成を選ぶ
Synology Photos に構造は不要です。日付からタイムラインを組み立てます。でも、共有フォルダーをパソコンからも見ることになるはずで、良い構成はバックアップや将来の移動を楽にします。
たいていの人には「年、その下に月」が合います。2019/07-July/2019-07-14-1105_Kyoto.jpg のような形で、アプリの「年/月」テンプレートが作るものです。どのフォルダーも扱いやすい大きさにとどまり、旅行を探すには 2 つのフォルダーを開くだけで済みます。年だけだと数千ファイルのフォルダーになります。年/月/日だと小さなフォルダーが何百もできます。長所と短所は 写真を年月フォルダーで整理する にあります。
家族全員が Synology Photos で見られるようにしたいなら共有の photo フォルダーの下に、自分だけのものなら個人スペースの homes/ユーザー名/Photos の下に置きます。両方には置かないでください。
Takeout のアルバムフォルダーは飛ばします。それぞれ、年フォルダーにすでにある写真のコピーです。Synology Photos には独自のアルバム機能があり、タイムラインから作り直せます。重複だらけのフォルダーは、バックアップを毎回 2 倍にします。アプリで整理すると、同じ元ファイルを 1 つの出力先に二度書かないので、アルバムのコピーの大半は途中で取り除かれます。
NAS へのコピー
完成したツリーを一度にコピーします。Mac ならマウントした共有に Finder でドラッグします。Windows ならエクスプローラーか、タイムスタンプを保つ /COPY:DAT 付きの robocopy を使います。Linux は rsync -a で日付が保たれます。ギガビットなら 200 GB のライブラリは 30 分ほど、Wi-Fi なら一晩かかるので、有線でつないでください。
ネットワークを避けたいなら、ツリーを USB ドライブに入れて NAS に挿します。それから File Station で所定の場所にコピーします。大きなライブラリでは、NAS 上で USB からコピーするのが普通いちばん速いです。
索引
Synology Photos は新しいファイルをバックグラウンドで索引します。大きなライブラリでは何時間もかかり、NAS が重くなります。一晩放っておいてください。終わったらタイムラインを古い年までスクロールします。そこで写真が本当の日付を示していれば、メタデータは正しく入っています。まとまった数がコピー日を示すなら、それらのファイルを exiftool で調べて DateTimeOriginal が欠けていないか確認します。
タイムラインが更新されないときは、Synology Photos の設定から再索引を強制できます。隠しフォルダー @eaDir を削除するとサムネイルが作り直されますが、必要になることはまずありません。
Synology での HEIC
Synology Photos は HEIC を表示できますが、Advanced Media Extensions パッケージが使える機種に限られ、そのパッケージは Synology アカウントでのサインインが必要です。機種が対応していない、あるいはサインインしたくないなら、コピーする前に HEIC を JPG に変換します。アプリはメタデータを引き継いだまま変換できます。Takeout の HEIC を JPG に変換する を参照してください。
よくある質問
Synology Photos は GPS を読みますか?
はい。EXIF の GPS を読み、地図ビューに写真を表示します。Takeout で本物の位置情報がなかった写真は、そこに出てこないだけです。
JSON ファイルを NAS に残しておけますか?
残せますが、Synology Photos は使いませんし、すべてのフォルダーが散らかります。日付がファイルに入ったら削除してください。
Synology Photos と、NAS 上の Immich のどちらを使うべきですか?
どちらでも。両方ともファイルから日付を読むので、準備は同じです。Immich は検索と顔認識が優れ、Synology Photos は設定が不要です。同じフォルダーで両方を動かす人もいます。
動画は正しいのに写真が間違っている、またはその逆です
写真と動画は日付を別の場所に保存します。EXIF しか書かなかったツールは写真だけ直しました。ファイル日時しか設定しなかったツールは、Synology がメタデータから読むものを何も直していません。それぞれ exiftool で確認してください。