5
7

More than 5 years have passed since last update.

exiftoolを使って画像のIPTC情報をcsvでまとめて設定する

Last updated at Posted at 2017-04-12

まとめ

exiftoolを使って、IPTC情報ほかを記述したcsvファイルを読み込むことで画像ファイルのメタデータを設定できる。

同一項目に複数の内容を設定する場合は、以下の条件で設定できた。

  • 設定したい項目をダブルクオートで囲い "tag1<CR+LF>tag1<CR+LF>tag2" のように一件ごとにCR+LFで区切って記述する
    • Excelのセル内改行を行った状態でCSV形式で出力すると、この区切りがLFとなるため期待された動作とはならない。RFC4180(Common Format and MIME Type for Comma-Separated Values (CSV) Files)に従い、レコードの区切りとなる改行コードと複数データの区切り文字のコードのいずれもCR+LFにそろえる、あるいはLFにそろえることで正しく区切り文字として認識される。

記述例:改行はすべてCR+LF

SourceFile,IPTC:Keywords
0361.JPG,"竹富島
桟橋
青い空"

準備

目的

  • 複数の画像ファイルをflickrに掲載したい
  • タグ、タイトルなどメタデータを一点一点入力するのは面倒なのであらかじめexcelなどで作成したものをインポートしたい

対象のデータ

  • 画像ファイルが1万枚以上ある
  • 画像のメタデータはexcelであらかじめ作成済み

実行環境

  • Windows7のコマンドプロンプト
  • exiftoolのWindows用バイナリ
    • 解凍後、実行ファイルの名前を exiftool(-1).exe から exiftool.exeに変更
    • パスが通っている場所に exiftool.exeを移動

手順

csvファイルの準備

  • 改行コード(レコードの区切り)は CR+LF に設定
  • exiftoolを実行してファイル名など基本的なメタデータを取り出す。
C:\Users\tzhaya\Pictures\test>exiftool -g -csv . > metadata.csv
    1 directories scanned
    3 image files read

C:\Users\tzhaya\Pictures\test>
  • metadata.csvの先頭行にファイル名、あとは元のファイルに記録されていたEXIF情報が出力される。

csvファイルの編集

IPTC Field Flickr Field
Caption-Abstract Description
Headline Title
Keywords Tags

※Descriptionに相当するタグはCaptionではなくCaption-Abstractの模様。

  • excelでの入力時には、IPTCのフィールドには先頭に IPTC: と付与する。また、CSVでの保存後に以下の処理が必要。
    • タグを複数使用する場合は、セル内で改行しておく。
    • テキストエディタでタグの区切りで使用している文字コード LF を CR+LF に変換する
    • 文字コードをUTF-8に変換する

exiftoolでの反映

  1. 入力したcsvファイルの内容をexiftoolで画像ファイルに反映させる
    • -csv=metadata.csv でインポートするファイル名の指定
    • -codedcharacterset=utf8 -charset iptc=latin2 で内部の文字コードをUTF-8に変換するよう指定。これがないと日本語が表示されない
C:\Users\tzhaya\Pictures\test>exiftool -csv=metadata.csv -codedcharacterset=utf8 -charset iptc=latin2 .
    1 directories scanned
    3 image files updated

C:\Users\tzhaya\Pictures\test>
  1. flickrにドラッグアンドドロップでインポート

image

# 問題点
* うまくインポートできているように見えたが、複数のKeywordsをカンマ等で区切っても1ワードとしてみられてしまうようだ。
* IPTC:KeywordsとXMP:Subjectに1ワードずつ入力すると、flickr側で合計2語のtagとして扱ってくれるが、3語以上はどうすればいいのか。未解決。

追記

その後、twitterで以下のコメントを頂いたので試してみた。

Windowsのエクスプローラの画像プロパティで各タグを手入力

image

この状態でflickrにインポートすると、タグは3つ設定される。

csvにエクスポート

C:\Users\tzhaya\Pictures\test>exiftool -g -csv 0361.JPG > 0361.csv

メタデータ項目と内容の対照

tag
SourceFile 0361.JPG
EXIF:ImageDescription 竹富島の桟橋
EXIF:Artist tzhaya
EXIF:DateTimeOriginal 1999:04:20 20:37:16
EXIF:CreateDate 1999:04:20 20:37:16
EXIF:XPTitle 竹富島の桟橋
EXIF:XPAuthor tzhaya
EXIF:XPKeywords 竹富島;桟橋;青空
IPTC:Keywords 竹富島, 桟橋, 青空
XMP:Subject 竹富島, 桟橋, 青空
XMP:Title 竹富島の桟橋
XMP:Description 竹富島の桟橋
XMP:Creator tzhaya
XMP:LastKeywordXMP 竹富島, 桟橋, 青空
XMP:DateAcquired 2010:04:20 20:37:39.276
Composite:SubSecCreateDate 1999:04:20 20:37:16.17
Composite:SubSecDateTimeOriginal 1999:04:20 20:37:16.17

タグはEXIF:XPKeywords,IPTC:Keywords,XMP:Subject,XMP:LastKeywordXMPの3カ所に入力されていることがわかる。

CSVからのflickrへのインポート

まずメタデータを全て削除する。

C:\Users\tzhaya\Pictures\test>exiftool -all= 0361.jpg
    1 image files updated

ここで
EXIF:XPKeywords
IPTC:Keywords
XMP:Subject
の3つの形式それぞれでインポートを試してみた。結果は以下の通り。

tag csvファイルの記述 flickrでのインポート内容
EXIF:XPKeywords 竹富島;桟橋;青空 インポートされず
IPTC:Keywords 竹富島;桟橋;青空 竹富島;桟橋;青空が一つのタグになる
XMP:Subject "竹富島, 桟橋, 青空" 竹富島,桟橋,青空が一つのタグになる

なお、先に出力した 0361.csv をもう一度 0361.jpg に書き込んでも、区切り記号は反映されずまとめて一つのタグと見なされてしまった。ううむ。

jsonでインポートしてみた

ではjsonで書いてみた。

[{
  "Title": "竹富島の桟橋",
  "Subject": ["竹富島","桟橋","青空"],
}]

そしてファイルに書き込んでflickrにインポート。今度はタグが3つ付いた。

C:\Users\tzhaya\Pictures\test>exiftool -json=test.json 0361_json.jpg
    1 image files updated

追記2

さらに おかもと (@Araiyayon)さんからコメントを頂いたので、追試してみた。

CSVファイル自体のレコードの区切るとなるコードの問題と考え、CR+LF から LF に変更してexiftoolで読み込ませて動作を確認した。
なお、RFC4180(Common Format and MIME Type for Comma-Separated Values (CSV) Files)に従い、レコードの区切り文字、データの区切り文字のコードをいずれもCR+LFで試したが動作した。

  • レコードの区切りの文字コードは CR+LF
  • 設定したい項目をダブルクオートで囲い "tag1<LF>tag1<LF>tag2" のように一件ごとにCR+LFで区切って記述する

CSVファイルの記述

SourceFile,IPTC:Keywords
0361.JPG,"竹富島
桟橋
青い空"

C:\Users\tzhaya\Pictures\test>exiftool -csv=0361_iptc_col_lf.csv -codedcharacterset=utf8 -charset iptc=latin2 0361_iptc.jpg
    1 image files updated

Windowsでの画像のプロパティは以下のように見える。

image

これをflickrにドラッグアンドドロップでインポートしたところ、正しくtagが3つ設定された。

image

5
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
7