iTunesの曲目からワードクラウドを作る(Python)

ワードクラウドって何?

こういうのです.

f:id:h_nitoliam:20160109131631p:plainf:id:h_nitoliam:20160109131634p:plain

iTunesライブラリからこういうのを作ると,その人の音楽の趣味がひと目で分かってとてもおもしろいですよね?

どうやって作るの?

amuellerさんが書いたword_cloudというパッケージがあるのですが,これを使うと:

  • 適当な英文
  • [(String, Integer)]形式のリスト

とかを入力として与えてやることで,簡単にワードクラウドが作れます.

github.com

つまり,iTunesの曲目からワードクラウドを作りたければ,iTunes Library.xmlをParseして曲名,曲数,再生回数などを取り出して,それを入力とすればいいわけですね!

parsingにはBeautifulSoupとかlxmlが使えるかと思いますが,今回はlxmlを使ってみました.

書いたコード

Gistに上げておきました(はじめてGist使いました)

予め,スクリプトと同じディレクトリにiTunes.xmlとリネームしたxmlファイルを配置しておけば,後は実行するだけで

  • アーティスト名と再生回数
  • アーティスト名と曲数

のワードクラウドが作れます. 注意点として,自分のスクリプトがlxmlを使っているのと,word_cloud自身がmatplotlibとImageに依存しています.

従ってこれら無しだと動きません.

あと,フォントとしておもいっきりヒラギノを指定してます.Windowsの人は注意です.