写真のファイル名を撮影した日時にする方法【Mac】

  • 投稿日:
  • by
  • カテゴリ:

写真、撮りますよね。
撮った写真は、iPhotoとかでMacに取り込みます。
その後は、画像ファイルとして、コピーしたり、
開いたり、メールに添付して送ってみたりします。

そのときに不満なのが、
だいたいの場合、変なファイル名になっていること
です。

DSC012345.jpg
とか言われても、いつ撮った写真か全然わからない。

写真がいっぱいある場合、
一個ずつ「情報を見る」とかやってられないし、
ファイル名を見ただけで、
いつ撮った写真かパッとわかりたい

ということなんですよ。

で、調べてやってみた結果をまとめておきます。

ファイルの作成日時=撮影日時の場合:Automatorを使う

Mac標準アプリ「Automator」でファイル名を一括リネームする方法と作成したアクションを削除する方法

「ファイルの作成日時」=「撮影日時」の場合は、
「ファイルの作成日時」を「ファイル名」にすればいいです。

その場合は、上の方法を使えます。
結構カンタン。

しかし、
「ファイルの作成日時」≠「撮影日時」の場合は、
残念ながらこの方法は使えず、
exifの情報から撮影日時を取得する必要があります。

それが、以下の方法で、ちょっとめんどくさい。
(私のケースは、残念ながらこっちだった。)

ファイルの作成日時≠撮影日時の場合:exiv2を使う

こちらを参考に作業をします。
→ 写真取り込み&EXIF情報にあわせてファイル名を変更 - 短期記憶容量少ナキ我ガ爲ノ備忘録也

流れは以下の通り。

⒈ Xcodeを「App Store」アプリでインストールする

AppleのDeveloperサイトに行き、Member Centerからログインする
(アカウントがない場合は作る)

⒊ ログインできたらDownloadsを開き、
「Command Line Tools(OS X Mavericks) for Xcode - March 2014」
をダウンロード、インストール
(OSがMavericksでない場合は、使っているOSの名前のファイルをダウンロードする)

⒋ MacPortsでexiv2をインストールする

sudo port install exiv2

brewがいい人は

brew install exiv2

でもOK。
参考:OS X El Capitan で Homebrew を使う方法 (2016年3月更新) - 意識低い開発者のBlog

⒌ Automatorに以下のシェルスクリプトを入れてフローを作る

# exiv2 は MacPorts で入れてるので path を追加(brewなら不要)
export PATH=${PATH}:/opt/local/bin:/usr/local/bin

# exiv2 が見つからなければ終了
if ! which exiv2 2>&1 > /dev/null ; then
    exit 1
fi

for f in "$@"; do
    # EXIF にキー Exif.Photo.DateTimeOriginal が含まれている場合のみ
    if exiv2 -Pk "${f}" | grep -q Exif.Photo.DateTimeOriginal ; then
           # EXIF データに基づいてファイル名を変更
           exiv2 -r'%Y%m%d_%H%M%S' rename "${f}"
    fi
done

add_date_time_to_photo_filename.png
↑こんな感じにする

「Finderで名前を変えたい画像ファイルを選択した状態」
上で作ったAutomatorのフローの実行ボタンを押せば、
パパッとファイル名が変わった!
これならファイル何百個だって余裕だ!


ということで、無事できました。
来月には忘れている自信があるので、
将来の自分がほめてくれるのが楽しみです。