Edited at

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

More than 1 year has passed since last update.


まとめ

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