Parse iTunes Music Library
iTunes Music Library.xml をパースして総再生回数や総再生時間を出力するプログラムを作ってみました。
更新履歴

[2012/01/29] 動作環境を Mac OS X Leopard、Windows XP、Vista から OS X Lion、Windows 7 へ変更しました。

Q and A
[Q] フリーソフトですか?
[A] 利用者責任の原則に同意していただけるのであれば、あらゆる意味でフリーです。
[Q] かなりイタイ間違いを発見したのですが、どうすれば良いですか。
[A] そっとしておいてください。可能ならその内ひっそりと修正します。

◉ インストール方法
動作環境
一応、Mac OS X Lion、Windows 7 で動作確認を行っています。ただし、「iTunes Music」フォルダを非標準な場所に設定してある場合など、特殊な環境では動かないと思います(若干修正すれば動くかもしれません)。また、Windows では OS の制限により、日本語(cp932)以外は文字化けします。
インストール方法
圧縮ファイルを解凍(展開)して、PATH の通ったフォルダに入れるだけです。よくわからない場合は、Mac OS X なら /usr/bin へ、Windows なら C:\Perl\bin へ入れて下さい(64 ビット版の場合は C:\Perl64\bin)。
補足
このプログラムは Perl で書いています。Windows の人は別途 ActivePerl をインストールしてください。
◉ 使い方(引数の意味と実行例)
pitunes/pitunes.pl は CUI アプリケーションソフトです。ターミナル(Terminal)やコマンドプロンプト上で実行してください。以下の記述は Mac OS X 用ですが、コマンド名 pitunes を pitunes.pl に読み替えていただければ Windows でも「-d」意外はほぼそのまま通用します。
-h
使い方を出力します。
[~]> pitunes -h
Usage: pitunes [-c [-e [number]]] [-t [-e [number]]] [-a [number](a|n)]
               [-i "artist"] [-d]
 -c:		総再生回数を出力します。
 -c -e 数:	アーティスト毎の再生回数を集計し、上位「数」件を出力します。
 -t:		総再生時間を出力します。
 -t -e 数:	アーティスト毎の再生時間を集計し、上位「数」件を出力します。
 -a 数n:		アーティスト毎の曲数を集計し、上位「数」件を出力します。
 -a 数a:		アーティスト毎のアルバム数を集計し、上位「数」件を出力します。
 -i "artist":	特定のアーティストについて、
		曲数、アルバム数、再生回数、再生時間を出力します。
 -d:		既定のフォルダに保存されているファイルのうち、
		ライブラリに登録されていないものを出力します。
		(iTunes のバグ等のため正しく機能しない場合があります。)
-c
総再生回数を出力します。
[~]> pitunes -c
総再生回数: 8419
-c -e 数
アーティストごとに再生回数を集計し、上位の「数」件を出力します。「数」を省略した場合は、全てのアーティストに対する集計結果を出力します。
[~]> pitunes -c -e 10
01: 595 茅原 実里
02: 450 栗林 みな実
03: 444 FictionJunction YUUKA
04: 433 KOTOKO
05: 387 angela
06: 386 平野 綾
07: 321 川田 まみ
08: 306 彩音
09: 302 美郷 あき
10: 298 ALI PROJECT
-t
総再生時間を出力します。
[~]> pitunes -t
総再生時間: (年, 日, 時, 分, 秒, ミリ秒) = (0, 026, 09, 54, 59, 704)
-t -e 数
アーティストごとに再生時間を集計し、上位の「数」件を出力します。「数」を省略した場合は、全てのアーティストに対する集計結果を出力します。なお、出力フォーマットは (年, 日, 時, 分, 秒, ミリ秒) です。
[~]> pitunes -t -e 10
01: (0, 001, 18, 57, 56, 743) 茅原 実里
02: (0, 001, 14, 49, 22, 442) KOTOKO
03: (0, 001, 09, 40, 57, 692) FictionJunction YUUKA
04: (0, 001, 09, 25, 14, 644) 栗林 みな実
05: (0, 001, 04, 51, 02, 337) angela
06: (0, 001, 02, 37, 31, 162) 平野 綾
07: (0, 001, 01, 13, 45, 271) 彩音
08: (0, 001, 00, 46, 52, 813) 川田 まみ
09: (0, 000, 22, 15, 11, 897) ALI PROJECT
10: (0, 000, 21, 00, 15, 820) 美郷 あき
-a 数n [UP]
各アーティストの曲数を計算し、上位「数」件を出力します。「数」を省略した場合(-a n)は、全てのアーティストに対する集計結果を出力します。なお、同名の曲(異なるアルバムに含まれている)は重複しては数えません。
[~]> pitunes -a 5n
1: 106 ALI PROJECT
2:  79 KOTOKO
3:  53 宇多田 ヒカル
4:  48 橋本 みゆき
5:  32 茅原 実里
合計: 318
-a 数a [UP]
各アーティストのアルバム数を計算し、上位「数」件を出力します。「数」を省略した場合(-a a)は、全てのアーティストに対する集計結果を出力します。
[~]> pitunes -a 5a
1: 25 ALI PROJECT
2: 22 KOTOKO
3: 15 川田 まみ
4:  9 栗林 みな実
5:  8 妖精帝國
合計: 79
-i "アーティスト"
特定のアーティストについて、総曲数、総アルバム数、総再生回数、総再生時間を出力します。
[~]> pitunes -i "中島 愛"
「中島 愛」の情報
	曲   数: 4
	アルバム数: 1
	総再生回数: 6
	総再生時間: (0, 000, 00, 27, 34, 306)
-d
既定のフォルダ(ミュージック:iTunes:iTunes Music)に入っている曲のうち、ライブラリに登録されていないファイルの一覧を出力します。iTunes で曲の「削除」を実行した際、曲を既定のフォルダに残すかゴミ箱へ移動するか選択できます。
このとき、「ファイルを保持」をクリックすると、当然ながら曲はゴミ箱へ移動せず既定のフォルダに残ります。このようにして既定のフォルダに残ってしまった(あるいは意図的に残した)ファイル一覧を出力します。
[~]> pitunes -d
/Users/USER/Music/iTunes/iTunes Music/林原 めぐみ/KOIBUMI/01 KOIBUMI.mp3
/Users/USER/Music/iTunes/iTunes Music/林原 めぐみ/KOIBUMI/02 朝未き・夜渡り.mp3
/Users/USER/Music/iTunes/iTunes Music/林原 めぐみ/KOIBUMI/03 faint love.mp3