こんにちは、くみです。
Terminal(+ExifTool)とAutomatorを使って、撮影日とファイル作成日・変更日が異なる写真を色々修正しました。
写真の撮影日・変更日がカオスだったので修正したい!
私の写真フォルダ(特に2007〜2009年)がカオスです。
- まず撮影日とファイルの作成日・変更日が合っていません。おそらくHDDにコピーしたりしている中でおかしくなってしまったのではと思うのですが…
- また、私はファイル名に日付を入れているのですが、それもファイルの変更日からとっていているのでEXIFの撮影日に合っていません。
- そして2007〜2009年はガラケー・デジカメ・iPhoneと写真撮影デバイスが入り乱れているので、EXIFがついていたりいなかったり。
- なんだかよく分からないけど写真も異なる名前で重複していて(おそらく吸いだす過程が異なったので同じ写真で名前違いが出来てしまったのでは)、結局同じ写真が3〜4枚ありました。
最後のは『ファイルサイズで並べ替えて(同一写真ならファイルサイズは同じなので)目視で削除』という不毛な作業で解消しましたが、上3つについてどう整理したかを自分メモとして残しておきます。
前回は結論として『MacのリネームアプリShupapanを使ってEXIF情報の撮影日時をファイル名に追加する』というところに落ち着いたのですが、Shupapanが私の環境ではなぜかエラーが頻発して作業できないファイルが大量にあるので、やはり変更日をいじる方法を探す事にしました。

Terminal(+ExifTool)とAutomatorを使って修正する
全体の流れ
全体の流れはこんな感じです。
- まず更新日付をすぐ分かるような日時に変更する
- 更新日付を撮影日付に変更する
- Automatorでファイル名を適宜修正(元々ついていた日付を削除する)
- 撮影日とファイル名の日付が違っていたファイルをリネーム
1.まず更新日付をすぐ分かるような日時に変更する
偽の作成・更新日付がついているファイルがたくさんあり、EXIFの撮影日に沿ったファイルと後で見分けるため、一律に更新日付を変更。
touch -t 200901010000 [ファイル名]
これでファイルの更新日付が2009年01月01日00時00分になります。
うーん、Mac使うならやっぱりUNIXのコマンドは一度勉強し直した方がいいんだろうなあ…。20代の時にちゃんとやっておけばよかったんですけど、変にMacユーザ(漢字TalkとかOS8とかの時代)だったのでUNIXの実行環境が手に入れられなかったんですよね…(´・ω・`)、
2.更新日付を撮影日付に変更する
全部同じ更新日付になったところで、TerminalとExifToolを使ってEXIFの撮影日を元に更新日を書き換え。(EXIF情報がない写真は2009年01月01日のまま)
■ 更新日付を撮影日付に変更
exiftool "-DateTimeOriginal>FileModifyDate" hoge.jpg
→ 指定のファイルを変更
exiftool "-DateTimeOriginal>FileModifyDate" hoge\*.jpg
→ ワイルドカード利用可能
exiftool.exeの利用方法:自分用まとめ 仁義偉王のブログ/ウェブリブログ
ワイルドカード使えるんだ!素敵!と思って試したんですけど、なぜか漏れがあるようなので(指定の方法が間違っていた?それとも処理スピードの問題??原因はよく分かりません)、ファイルを全部選択して突っ込むという方法に落ち着きました。
こういった機能を持たせたアプリケーションもあるようなのですが、MacのリネームソフトShupapanにもついていたはずなのに私の環境では上手く動かなかったので、もっと原始的(?)な方法がいいなと思って。
3.Automatorでファイル名を適宜修正(元々ついていた日付を削除する)
さて、次は撮影日を元にファイル名に日付を追加したいのですが、元々つけていたものが残っていると
20090326_20070716_img370.jpg
のようなカオスな状態になりますので、撮影日とファイル名の日付が異なっているファイルから日付を表す数字を取る。
変更日が狂っていたファイルは大体日付が固まっていたので(おそらくHDDにコピーしたりして狂った日付なんだと思います)、Automatorの置換で取りました。
Terminalでも取れるんだろうけど、まだそこまで使いこなせていない…(´・ω・`)、
▼Automatorのリネームについてちょっと書いてます。

4.撮影日とファイル名の日付が違っていたファイルをリネーム
あらためて日付を付加。
これも、Terminalで撮影日を直接ファイル名にする方法は見つけたのですが、元の画像名(『img370』等)を残しておく方法がわからなかったのでおとなしくAutomatorで追加しました。
これで、
- 撮影日=作成日・修正日だった写真
- 撮影日≠作成日・修正日だった写真
- 撮影日が残っていない(EXIF情報がない)写真
の三種類だったものを
- 撮影日=作成日・修正日の写真
- 撮影日が残っていない(EXIF情報がない)写真
の2種類に出来た上、名前もきれいにする事が出来ました。ふう。
同じことに悩んでない人にはちょっと分かりにくいかもしれないですが…(´・ω・`)
きっとこの情報が必要な誰かがGoogleを使って辿り着くであろうことを願って…
EXIF情報が残っていないファイルはどうするかあとで考えるとして、きれいにした写真を今度はテーマ別に分けて、Flickrと別ストレージにえんえんアップしていきます。早く作業を完了したいけど、カンボジアのネット回線だと無理かな〜…?(´・ω・`)、
▼『ふだんは見えないファイル/フォルダを表示する 』等、コマンドでどういう事が出来るかを説明している本のようだ。やりたい事がはっきりしていればググれば済む話ではありますが、こういう逆引きリファレンスというか『何が出来るか』自体をまず知るのって、何も知らないところから興味がわく第一歩ですよね。