2023年8月24日木曜日

コマンドラインツール exiftool を使ったダウンロードしたGoogleフォト写真・動画のファイル更新日時の修正方法(Mac編)

Googleフォトにアップロードされたデータをダウンロードして利用したいと思うとき、ファイルの更新日時がダウンロードした日時になってしまうため、いつ撮影されたのかを調べるの画面です。

そこでコマンドラインツールを使った一括変更の方法がうまくいったので備忘録として残します。

*2023年8月24日の時点で macOS 13.5 で検証しています。

exiftool のインストール


1. 「ターミナル」アプリより、Howbrew のインストール

参考:https://brew.sh/index_ja

2. 「ターミナル」アプリより、brew install exiftool をタイプして exiftool をインストール。

これが最も簡単です。

それ以外には、https://exiftool.org/ よりバイナリーデータ(exiftool)をダウンロードして、 PATHの設定しているフォルダへ配置するという手もあります。PATHはなに?という場合には、Howbrewのような様々なコマンドラインツールを手軽にインストールできるツールをつかうのがよいでしょう。

変換方法


1. オリジナル写真はバックアップしておきます(上書きするので)。

2. 「ターミナル」アプリを起動

3. cd 画像や動画が置いているフォルダ(フォルダを「ターミナル」アプリへドラッグ&ドロップしてもいい)

4. 変換する

一旦、ファイル更新日時を撮影日時へ変更してみます。

exiftool "-FileModifyDate<DateTimeOriginal"  *

これでunchanged など変更されない場合には、写真や動画のEXIFに撮影日情報がないということになります。

そのような場合には、ファイルの更新日時をファイル作成日へ変更します。

撮影するファイル形式は JPEGや HEICなどだろうと思います。

PNG(スクリーンショットなど)で撮影データは保存しないと思いますから、CreatedDateというEXIF情報内の作成日をファイル変更日へ変更する指定をしてみてください。

exiftool "-FileModifyDate<CreateDate"  *.png

exiftool "-FileModifyDate<CreateDate"  *.PNG

などPNGファイルを指定してみてください。

動画に関しては、下記のDateCreated がEXIF情報内の作成日となります。

exiftool "-FileModifyDate<DateCreated" *.mp4

exiftool "-FileModifyDate<DateCreated" *.MOV

EXIF情報のどれが使えるのか調べる方法


exiftool -time:all -s  ファイル名

で調べることができます。

exiftool -time:all -s  *.png

たとえば、iPhoneでのスクリーンショットだと下記のようになります。ここで使えそうなのは、DateCreatedであるとわかるでしょう。

FileModifyDate                  : 2023:08:23 17:46:38+09:00
FileAccessDate                  : 2023:08:24 09:55:50+09:00
FileInodeChangeDate         : 2023:08:24 09:55:46+09:00
DateCreated                     : 2023:07:02 09:16:30
ProfileDateTime                 : 2022:01:01 00:00:00

MP4やMOVなど動画の場合には、下記のようにCreateDateが使えることがわかります。

FileModifyDate                  : 2023:08:23 17:46:40+09:00
FileAccessDate                  : 2023:08:24 10:14:59+09:00
FileInodeChangeDate             : 2023:08:24 09:55:46+09:00
CreateDate                      : 2023:05:21 09:39:02
ModifyDate                      : 0000:00:00 00:00:00
TrackCreateDate                 : 0000:00:00 00:00:00
TrackModifyDate                 : 0000:00:00 00:00:00
MediaCreateDate                 : 0000:00:00 00:00:00
MediaModifyDate                 : 0000:00:00 00:00:00

もし撮影日情報が入っている場合には、DateTimeOriginal にデータが入っています。

FileModifyDate                  : 2023:07:20 10:36:43+09:00
FileAccessDate                  : 2023:08:24 10:18:12+09:00
FileInodeChangeDate             : 2023:08:24 10:18:10+09:00
DateTimeOriginal                : 2023:07:20 10:36:43
SubSecTimeOriginal              : 637
OffsetTimeOriginal              : +09:00
ProfileDateTime                 : 0000:00:00 00:00:00
SubSecDateTimeOriginal          : 2023:07:20 10:36:43.637+09:00

2023年8月24日 @kimipooh