Open5

Google Photo TakeoutのEXIFデータ復旧

pekeqpekeq

Google Takeoutで取り出したGoogle PhotosのデータにEXIFデータを書き戻したい。

  • 元のデータで保存されているものは当然EXIFが残っているのでこれは触りたくない。
  • 最近? TakeoutされたメタデータJSONには、 .supplemental-metadata という文字列が付与されている。これに対応していないツールや手順が結構ある。
  • 一部のSamsungデバイスは記録するEXIFが壊れているらしく、単純にメタデータつけようとするとexiftoolがエラーを出して処理してくれない。
  • もともと位置情報がない場合? はJSONの中のgeoDataが全部0になっていて、これはEXIFに書き出したくない。
pekeqpekeq

ファイルの種類

  1. 「元の画質のまま保存」されているもの : これはValidなEXIFを含む場合が多く、何もせず取り込んでいい
  2. EXIFが一部失われているもの : EXIFの日付データを戻したうえで取り込みたい
pekeqpekeq

JPEGファイルにDateTimeOriginalがセットされているファイル名一覧。

exiftool --ext json -if '$Filetype eq "JPEG" and $exif:DateTimeOriginal and $exif:DateTimeOriginal ne "0000:00:00 00:00:00"' -json -r Takeout | jq -r '.[].SourceFile' > files.txt

それらを別のところに移動

rsync -a --files-from=files.txt --remove-source-files . Takeout2