| @技術/プログラミング

 Future is Nowさんで公開されているplg_aal_recentを使って、プロフィールのページにLast.fmのRSSフィードを拾って最近iTunesで再生した曲を表示するようにしてたんだけど、ここ数日、何も表示されない状態が続いていた。おかしいなぁと思ったら、Last.fmのRSSの仕様が変更されたくさい。

 まずRSSのURLが変更になっていた。これまで http://ws.audioscrobbler.com/rdf/history/(username) だったものが、 http://ws.audioscrobbler.com/1.0/user/(username)/recenttracks.rss に変わったようだ。そういうわけなので早速 /include/user_include/plugins/plg_aal_recent.inc.php をエディターで開いて修正した。修正するのは57行目あたりの $rss_feed

$rss_feed = 'http://ws.audioscrobbler.com/rdf/history/'.$user_name;

$rss_feed = 'http://ws.audioscrobbler.com/1.0/user/' . $user_name . '/recenttracks.rss';

と修正。

 これで最近再生した曲が表示されることは表示されるようになったのだが、"アーティスト名 - 曲名"と表示されるべきなのに、Last.fmへのリンク先URLそのもの(http://www.last.fm/music/Jamiroquai/_/Too+Young+to+Die など)がトラックデータとして表示されてしまう。フィードのURLのみならず、吐き出すソース自体が仕様変更されているのだ。

 変更箇所を突き止めるためにSafariでフィードのソースを見ようとしたが、Safariで表示されるソースはフィードを読み込んだHTMLのソースのようだ。これはW3CのRDF Validatorを使うことで解決した。で、実際にソースを見てみると、これまで <description> だった曲タイトル部分のタグが、<title> に変更されたみたいである。

 そういうわけなので再度エディターを開き、67行目と93行目付近の

if ($name == "DESCRIPTION")

if ($name == "TITLE")

という風に書き換える。これで再び最近iTunesで再生した曲が表示されるようになった。

追記

 プラグイン配布元のFuture is Nowさんですが、たったいまアクセスしてみたらドメインの有効期限が切れたみたいで変な広告サイトが表示されました。ずーっとスパムコメント・トラックバックに蹂躙され続けていてちょっと大変な状況だったのですけど、ついにアクセスできなくなってしまいました。非常に有用なP_BLOG用のプラグインやTIPSが多数公開されていただけに大変残念です。