ExifToolのかんたんなメモ

exiftoolwebart

写真や画像、メディアのメタデータに関する最強ツール、Exiftool についての若干のメモ。

ExifTool

Exiftool をときどき使ってきましたが、最近特に使用頻度が上がったので今更ですがメモを残しておこうと思いました。でも多分、ここのメモなんかより検索したほうが役に立つ良い記事を発見できると思います。

自分のためになることは人様のためになるかもしれない。人様のためになることは自分のためにもなりましょう。何を言ってるんだか。

ExifTool とは

写真や画像やメディアファイルからメタデータを取得したり追加したり変更したりできるツールです。メディアカタログのアプリケーションにも多く組み込まれています。コマンドラインで利用します。

ExifTool by Phil Harvey

公式サイトはこちら。https://exiftool.org
WindowsとMacのインストーラーが用意されていて、ダウンロードリンクはトップの判りやすい場所にあります。

インストーラーが用意されているってことは、ダウンロードしてダブルクリックして進めていくだけでインストールできます。

コマンドラインのツールなのにインストーラーを用意してくださるとは何とありがたいことでしょう。普通この手のツールって素人にはインストールすることもできない高難易度で出来てますからね。

マニュアル

マニュアルのURLはこちら https://exiftool.org/exiftool_pod.html

ちょい難しいけどいろいろ書いてあります。

基本操作

ターミナルを起動してタタタっと入力して使います。

メタデータが欲しい

exiftool パス

「exiftoo  目的パス」こう書くとメタデータが取得できます。パスは目的のファイルやフォルダをドラッグすればいいです。ファイルを指定するとそのファイルのデータを取得し、フォルダを指定するとそのフォルダ内のファイルのデータをだーっと取得します。

リターンすると結果はこんな感じで網羅されます。

ExifTool Version Number : 12.27
File Name : IMGP4563.jpg
File Size : 2.8 MiB
File Modification Date/Time : 2021:01:20 15:25:19+09:00
File Access Date/Time : 2021:05:19 11:56:52+09:00
File Inode Change Date/Time : 2021:04:07 10:17:01+09:00
File Permissions : -rw-r–r–
File Type : JPEG
File Type Extension : jpg
MIME Type : image/jpeg
JFIF Version : 1.01
Exif Byte Order : Big-endian (Motorola, MM)

オプションやタグ名をくっつけて細かく指令を出します。

exiftool -s パス

-s を付けると短いタグ名で出力されます。短いタグ名は、次のタグ名を指定するのに使います。

ExifToolVersion : 12.27
FileName : IMGP4402-V2.jpg
FileSize : 2.8 MiB
FileModifyDate : 2021:06:19 13:18:09+09:00
FileAccessDate : 2021:06:21 19:25:19+09:00
FileInodeChangeDate : 2021:06:19 13:18:09+09:00
FilePermissions : -rw-r–r–
FileType : JPEG
FileTypeExtension : jpg
MIMEType : image/jpeg
ExifByteOrder : Big-endian (Motorola, MM)
XResolution : 72
YResolution : 72
ResolutionUnit : inches
Artist : HOSOI Hisato
YCbCrPositioning : Centered

指定したタグだけ欲しい

網羅されても困る場合、狙ったタグの情報だけ欲しい場合はタグ名を指定します。スペースのない短いタグ名を使います。そのタグだけを取得します。

exiftool -s -タグ名 -タグ名 パス

こんなふうに、-タグ名 を個別に書きます。例えば exiftool -s -filename -filesize パス でファイル名とサイズを取得します。-タグ名はスペースで区切っていくらでも書き連ねられます。

値だけ欲しい

ExifToolの出力結果は「タグ名 : 値」という形です。値だけが欲しいときがありますよね。 -T オプションを付けます。

exiftool -T -タグ名 パス

これで値だけが取得できます。

タグを編集したい

タグ名=値 と書くと編集またはタグの追加ができます。

exiftool -タグ名=値 パス

タグ名にイコールを付けて値を書くとそのタグを書き換えまたは追加できます。イコールの前後にスペース入れてはいけませんよ。

exiftool -copyright=Digitalboo パス

と書けばCopyrightに「Digitalboo」がセットされます。

exiftool -s -copyright= パス

と、書けば( =の後ろに何も書かない )Copyrightタグが削除されます。

CSVに書き出したい

exiftool -csv パス > 出力先パス

csvファイルに書き出すには -csv> 出力先パス を書くと良いようです。pbcopyというコマンドを知らないときはcsvファイルを中継として仕方なく書き出していました。

ペンギンアイコン mini

基本的なことは以上で、マニュアルによるととても複雑なこともできるようですが自分には基本の機能で十分だと思えました。

以下、タグとオプションをマニュアルページから引用して日本語付けてリストしました。より詳しい説明や使い方は公式ページやマニュアルでどうぞ。

タグ操作と入出力テキストフォーマット
タグ操作
-TAG or –TAG指定したタグを抽出または除外する
-TAG[+-^]=[VALUE]タグの新しい値を書き込む
-TAG[+-]<=DATFILEファイルの内容からタグの値を書き込む
-TAG[+-]<SRCTAGタグの値をコピーします(-tagsFromFile参照)。
-tagsFromFile SRCFILEファイルからタグの値をコピーする
-x TAG (-exclude)指定したタグを除外します。
入出力テキストのフォーマット
-args (-argFormat)メタデータをexiftoolの引数としてフォーマットします。
-b (-binary)メタデータをバイナリ形式で出力します。
-c FMT (-coordFormat)GPS座標のフォーマットを設定します。
-charset [[TYPE=]CHARSET]特殊文字のエンコーディング指定
-csv[[+]=CSVFILE]タグをCSV形式でエクスポート/インポートする
-csvDelim STRCSVファイルのデリミタを設定します。
-d FMT (-dateFormat)日付/時刻の値のフォーマットを設定します。
-D (-decimal)タグのID番号を10進数で表示します。
-E,-ex,-ec (-escape(HTML|XML|C))タグの値をHTML、XML、Cのいずれかにエスケープします。
-f (-forcePrint)指定したすべてのタグを強制的に出力します。
-g[NUM…] (-groupHeadings)タググループごとに出力を整理します。
-G[NUM…] (-groupNames)各タグのグループ名を表示します。
-h (-htmlFormat)出力にHTMLフォーマットを使用します。
-H (-hex)タグのID番号を16進数で表示します。
-htmlDump[OFFSET]HTML形式のバイナリダンプを生成します。
-j[[+]=JSONFILE] (-json)JSON形式でタグをエクスポート/インポートします。
-l (-long)長い2行の出力形式を使用します。
-L (-latin)Windows の Latin1 エンコーディングを使用します。
-lang [LANG]言語を設定
-listItem INDEXリストから特定の項目を抽出します。
-n (–printConv)出力変換を行いません。
-p FMTFILE (-printFormat)指定されたフォーマットで出力します。
-phpタグを PHP の配列として書き出します。
-s[NUM] (-short)短い出力形式
-S (-veryShort)非常に短い出力形式
-sep STR (-separator)リストアイテムのセパレータ文字列を設定します。
-sort出力をアルファベット順に並べ替えます。
-struct構造化された情報の出力を可能にする
-t (-tab)タブ区切りのリスト形式で出力します。
-T (-table)表形式での出力
-v[NUM] (-verbose)冗長なメッセージを表示します。
-w[+|!] EXT (-textOut)出力テキストファイルを書き込む(上書きする!)
-W[+|!] FMT (-tagOut)各タグごとに出力テキストファイルを書く
-Wext EXT (-tagOutExt)-W で指定されたファイルタイプのみ書き込みます。
-X (-xmlFormat)RDF/XML 出力形式を使用します。
処理制御
a (–duplicates)重複するタグの抽出を許可します。
-e (–composite)複合タグを生成しません。
-ee[NUM] (-extractEmbedded)埋め込みファイルから情報を抽出します。
-ext[+] EXT (-extension)指定した拡張子のファイルを処理します。
-F[OFFSET] (-fixBase)メーカーノートのオフセットのベースを固定します。
-fast[NUM]メタデータを抽出する際の速度を上げる
-fileOrder[NUM] [-]TAGファイルの処理順序を設定します。
-i DIR (-ignore)指定したディレクトリ名を無視する
-if[NUM] EXPR条件付きでファイルを処理する
-m (-ignoreMinorErrors)マイナーなエラーや警告を無視します。
-o OUTFILE (-out)出力ファイルまたはディレクトリ名を設定する
-overwrite_original tmpファイルの名前を変えてオリジナルを上書きする
-overwrite_original_in_place(上書き)tmpファイルをコピーして上書きします。
-P (-preserve)ファイルの更新日時が保存されます。
-passwordPASSWD 保護されたファイルを処理するためのパスワード
-progress[:[TITLE]]ファイルの進捗状況を表示します。ファイルの進捗状況を表示します。
-q (-quiet)処理を静かにします。
-r[.] (-recurse)サブディレクトリを再帰的に処理します。
-scanForXMPブルートフォースXMPスキャン
-u (-unknown)未知のタグを抽出します。
-U (-unknown2)未知のバイナリタグも抽出する
-wm MODE (-writeMode)タグの書き込み/作成のモードを設定します。
-z (-zip)圧縮された情報を読み書きする

 

ExifToolを使う

実際に普段どのように使用しているかというと、ターミナルのウインドウに「exiftool -s 」と手入力し、メタデータを知りたいファイルをドラッグしてリターンします。

ターミナルのウインドウにメタデータがだーっと出てきますから確認します。さっと確認するだけ、そんな使い方が結局多いですね。

ターミナルウインドウ

データを眺めるだけでなく利用するには -csv を付けてファイルに書き出したりします。
コマンド pbcopy をくっ付けることで結果がクリップボードにコピーされます。命令の後ろに「 | pbcopy」と入れるだけ。

exiftool パス | pbcopy

応用して使う

タグのキーを追加したり値を編集できますので応用範囲はとても広いです。日付の調整やキーワードの編集、そして画像ファイルに著作権情報を追加で入力するということもよくやります。

追加や編集に関しては手入力が面倒なので、変数部分を自由に設定して扱える自作マイコード管理ファイルを使っています。

FileMaker CodeManagement
このFileMakerファイルについては Macで実行もできる FileMakerコード管理 を参照

これはFileMakerでして、テンプレートを置く → レコードに準じたデータを当てはめてコードを生成 → AppleScriptを実行ステップを使ってターミナルに送信(その後、結果をコピーして再びFileMaker持ってくることも)という手順を行う自動処理マシンです。個人的にはAutomatorより優秀😀

こうした利用方法を使い始めてから突如 Exiftool の使用頻度が上がりました。それついてはFileMaker関連の投稿でまた改めて。

本ポストはとりあえず ExifTool のかんたんメモ(自分用)ということで、ここらでごめんください。