Google Takeout の写真に正しい撮影日を戻すには?コマンド不要のいちばん簡単な方法
本当の撮影日は写真の横の .json ファイルに入っています。それを写真自体に書き戻し、エクスプローラーや写真アプリで正しい日付順に並ぶようにする手順を、コマンドラインを使わずに 3 ステップで説明します。最初の 1000 枚は無料で試せます。
正しい日付は、すでにエクスポートの中にあります。各写真の横にある .json ファイルの photoTakenTime という項目です。問題は、どの写真ビューアーもそのファイルを読まないことです。ビューアーが読むのは EXIF、つまり画像ファイルの内側にある情報の領域で、Google はそこを空のままにしています。
ですから、直す作業は「コピー」です。各 .json から日付を読み、対応する写真に書き込み、ファイル自体のタイムスタンプも合わせる。1 枚なら 1 分で終わります。4 万枚ならソフトウェアが必要です。
何をどこに書くのか
写真の日付は 3 か所にあります。
EXIF の DateTimeOriginal。カメラが写真の内側に書く撮影日時で、エクスプローラーの「撮影日時」列、Mac の「写真」、Apple や Synology や Immich のタイムラインが読むのはここです。
ファイルの作成日時と更新日時。OS がファイルの外側に持つもので、解凍した瞬間に上書きされています。EXIF がない写真では、ビューアーはここに落ちてきます。
JSON の photoTakenTime。Google フォトが表示していた撮影日時で、UTC の秒数です。Google フォトの中で直した日付があれば、ここに反映されています。
目標は、3 番目を 1 番目と 2 番目に書き写すことです。それが済めば、写真をどこに持って行っても日付は付いて回ります。
なぜ単純なコピーでは済まないのか
exiftool のコマンドを書けば実行できますし、実際に多くの人がそうしています。ただ、サイドカーのファイル名が厄介です。Google は長い名前を途中で切ります。年によって 2 種類の命名規則があります。重複ファイルの (1) は写真名と JSON 名で付く位置が違います。編集済みコピーには専用の JSON がありません。パターンが合わないファイルは、エラーも出ずに静かに飛ばされます。
その結果、「直したはずなのに一部の写真だけダウンロード日のまま」という状態になります。どれが飛ばされたかを探して個別に対処するのが、いちばん時間のかかる部分です。細かい話は supplemental-metadata.json の解説 と exiftool ガイド にあります。
アプリでの手順
Takeout JSON Metadata Fixer は、この照合と書き込みを Windows、Mac、Linux のデスクトップアプリとして行います。画面は日本語です。
手順は 3 つです。
- Takeout の zip、または解凍したフォルダーを選びます。zip を複数に分割してダウンロードした場合は、1 つを選べば同じフォルダーの残りも自動で見つけます。
- 直した写真の出力先フォルダーを選びます。元のエクスポートには手を付けず、新しいフォルダーにコピーします。
- 開始を押します。
アプリはすべての JSON を写真に突き合わせ、日付、時刻、GPS を書き込み、ファイルのタイムスタンプも合わせます。終わると、データがなくて直せなかったファイルがどれかを教えてくれます。たいていは Live Photos の動画部分や、ごく古いアップロードです。
先に「ドライラン」を実行すれば、何も書き込まずに、どのファイルがどう変わるかだけを確認できます。
日付だけ直したい場合
アプリには、撮影日でファイル名を付け直し、年/月のフォルダーに振り分ける機能もあります。ただし、それは必須ではありません。日付だけ直して、名前もフォルダーもそのままにしたいなら、「名前をそのまま」と「フォルダーをそのまま」を選んでください。
逆に、IMG_4711.JPG のような名前を 2023-06-17-1306_Tokyo.jpg のように場所入りの分かりやすい名前にしたい、年/月や撮影地ごとのフォルダーに自動で整理したい、という場合は同じ実行で済みます。
直したあとの確認
出力先フォルダーで数枚を確認します。Windows ならファイルを右クリックして「プロパティ」、「詳細」タブに「撮影日時」が入っているか見ます。エクスプローラーの列見出しを右クリックして「撮影日時」列を追加すると、一覧で確認できて日付順の並べ替えも効きます。
確認するなら、年代の違う写真を数枚、スクリーンショットを 1 枚、LINE で受け取った画像を 1 枚、動画を 1 本、そして Google フォトの中で日付を直したことのある写真を 1 枚選ぶと、取りこぼしが見つけやすくなります。
タイムゾーンについて
JSON の時刻は UTC です。EXIF に書くときはパソコンのタイムゾーンで現地時刻に変換されます。パソコンが日本時間なら、日本で撮った写真は正しい時刻になります。海外で撮った写真は数時間ずれます。日付だけは合っていることがほとんどですが、深夜や早朝の写真は前後の日にずれることがあります。
費用と安全性
すべてお使いのパソコンの中で動きます。写真がアップロードされることはなく、アカウントも不要で、ネットワークを切っても動きます。最初の 1000 枚は無料なので、まず自分のライブラリで日付が正しく入るか確かめてから、Premium(19.99 米ドルの買い切り)を検討できます。
よくある質問
JSON がない写真はどうなりますか?
EXIF の撮影日があればそれが使われます。それもなければファイルの日時になります。日付なしの写真は出ません。
元のファイルは書き換えられますか?
いいえ。新しいフォルダーにコピーして書き込むので、元のエクスポートはそのまま残ります。
直したあとに JSON を削除できますか?
はい。日付と GPS が写真に入ったら、JSON の役目は終わりです。出力先で何枚か確認してから消してください。