Takeout JSON

Google フォトを一括ダウンロードすると日付が変わる?ぐちゃぐちゃになった撮影日を戻す方法

Google フォトから写真を一括ダウンロードすると、日付がダウンロード日に変わって並び順が崩れることがあります。なぜ変わるのか、どの写真が影響を受けるのか、Takeout の JSON から撮影日を写真に戻す方法をやさしく説明します。スマートフォンでも同じです。

Google フォトの写真をパソコンに一括ダウンロードしたら、日付がぐちゃぐちゃになった。エクスプローラーで日付順に並べても、ダウンロードした日に全部が固まっている。スマートフォンに戻したら、昔の写真が「今日」の位置に出てくる。

これは Google フォトを離れる人のほぼ全員が最初にぶつかる問題です。原因は 1 つで、対処法もはっきりしています。

「日付」は 1 つではない

パソコンやスマートフォンが写真に表示する日付には、2 種類あります。

1 つは、ファイルの外側にある「作成日時」と「更新日時」です。これは OS が管理していて、ファイルをコピーしたり、ダウンロードしたり、解凍したりするたびに変わります。エクスプローラーの既定の「更新日時」列がこれです。

もう 1 つは、写真ファイルの内側にある「撮影日時」です。EXIF という領域に、カメラが撮影した瞬間に書き込みます。エクスプローラーの「撮影日時」列、Mac の「写真」、スマートフォンのギャラリー、iCloud、Amazon Photos が並び順に使うのはこちらです。

ダウンロードすると、外側の日付は必ずダウンロード日になります。これは避けられません。問題は、内側の撮影日時があるかどうかです。あれば、写真アプリは正しく並べます。なければ、外側の日付、つまりダウンロード日に落ちます。

どの写真が影響を受けるか

スマートフォンやデジタルカメラで撮った写真は、たいてい EXIF の撮影日時を持っています。これらはダウンロードしても正しい順に並びます。「一部の写真だけおかしい」と感じるなら、これが理由です。

撮影日時を持たない写真は次のようなものです。

  • スクリーンショット。最初から撮影日時がありません。
  • LINE などで受け取った画像。送信時に圧縮され、メタデータが消えています。
  • スキャンした古い写真。スキャンした日が入っているか、何も入っていません。
  • Google フォトの中で日付を修正した写真。修正は Google のデータベースに保存されただけで、ファイルには書かれていません。

このような写真の本当の日付は、Google フォトの画面には表示されていましたが、ファイルの中にはありません。

ダウンロードの方法で違いが出る

Google フォトの画面で写真を選んでダウンロードすると、ファイルはアップロードしたときのままの状態で返ってきます。EXIF があればそのまま、なければないままです。Google フォト内で直した日付は付いてきません。

Google Takeout(日本語の画面では「Google データ エクスポート」)でライブラリ全体をエクスポートすると、写真は同じくそのままですが、写真ごとに .json ファイルが横に付きます。この中に、Google フォトが表示していた撮影日時(photoTakenTime)と位置情報が入っています。手で直した日付も含まれます。

つまり、日付を戻したいなら Takeout のほうが有利です。本当の日付が、少なくともファイルとして手元に来るからです。ただし、その .json を読む写真アプリはありません。自分で写真に書き戻す必要があります。JSON の中身は Google Takeout の JSON ファイルとは何か に書きました。

撮影日を戻す

やることは、.jsonphotoTakenTime を写真の EXIF「撮影日時」に書き込み、ファイルの作成日時と更新日時も合わせることです。EXIF に入ってしまえば、どこにコピーしても、どのアプリで見ても、日付は正しいままです。

数枚なら手で直せます。Windows ではファイルを右クリックして「プロパティ」、「詳細」タブで「撮影日時」を編集します。数百枚を超えると現実的ではありません。

無料のコマンドラインツール exiftool で一括処理できます。ただし Google が JSON の名前を途中で切ったり、重複ファイルの (1) を意外な位置に付けたりするので、単純なコマンドでは一部が飛ばされます。手順と落とし穴は exiftool ガイド にあります。

Takeout JSON Metadata Fixer は、これを Windows、Mac、Linux のデスクトップアプリとして行います。画面は日本語です。

Takeout の zip か解凍したフォルダーを選び、出力先を選び、開始を押すだけです。すべての写真を .json に突き合わせ、撮影日時と位置情報を書き込み、ファイルの日時も合わせます。JSON がない写真は EXIF の日付を保ち、それもなければファイルの日時を使うので、日付なしの写真は出ません。動画にも、MP4 や MOV が日付を持つ場所に書き込みます。

任意で、IMG_4711.JPG2023-06-17-1306_Tokyo.jpg のような場所入りの名前にして、年/月や撮影地ごとのフォルダーに自動で整理することもできます。日付だけ直したいなら「名前をそのまま」「フォルダーをそのまま」を選んでください。すべてパソコンの中で動き、何もアップロードされません。最初の 1000 枚は無料です。

直したあとの確認

エクスプローラーで列見出しを右クリックし、「撮影日時」列を追加します。これで並べ替えれば、写真が本来の順に戻っているはずです。「更新日時」ではなく「撮影日時」で見ることが大事です。前者はコピーするたびに変わります。

スマートフォンに戻す場合も同じです。EXIF の撮影日時があれば、ギャラリーアプリは正しい位置に並べます。

よくある質問

Google フォトの画面からダウンロードした写真にも同じことができますか?

.json がないので、JSON からの復元はできません。EXIF に撮影日時があればすでに正しく、なければ日付を自分で決めて設定するしかありません。アプリはフォルダー単位で日付と場所を手で設定できます。

スマートフォンでダウンロードした場合は?

仕組みは同じです。EXIF のある写真は正しく、ない写真はダウンロード日になります。まとめて直すならパソコンでの作業が現実的です。

直したあと、Google フォトに再アップロードしたら日付はどうなりますか?

Google フォトはファイルの EXIF を読むので、書き込んだ撮影日時がそのまま使われます。.json は読まれません。