Audioscrobbler のプレイリストをページ上で表示! - 超カンタン PHP 編
先のエントリを下書きしてアップしようと思っていたところ、間の悪いことに肝心の Audioscrobbler サイドでのサーバ移行による大ミスで肝心の Recent Tracks の全(?)ユーザーのデータが吹っ飛んでたようで、数日がかりの復旧の最中だったので、そんなタイミングで紹介しても意味が無いので復旧待ちにしていた。
今日、Audioscrobbler のユーザーフォーラムを見に行ったら晴れて復旧した模様。 早速アップしちゃおうかな♪ なんて思いつつ、一応念の為にフォーラムを一通り斜め読みする。
…と、数名のヘビーユーザーさんらしき人達のレスのシグネチャに自分たちの "Now Playing" を埋め込んでいるのが目に止まる。 しかも色なんかで個性は出してるものの、どう見ても元は同一フォーマットのものと思える。
きっとドコカに別のナニカもあるに違いないっっ! と、音楽の趣味が合うわけでもないユーザーさん達のユーザーページをウロウロとして、スクリプト提供元に辿り着く。
AudioscrobblerWiki - Home Page
そういえばココ、以前にも来たことあるよ。
Wiki で Audioscrobbler のプレイリスト表示スクリプトがある、ってハナシは複数のサイトで読んだんだよ。 その中で過去に試したスクリプトはワタシの借りてるフリーの XREA では cron が使えないからだか何だかウマくいかず、それで人様の提供するサーバ経由に走ったんだったよ。
…なんて思い出しつつ、ユーザーさんの紹介していた別のスクリプト(上記ページ内 ScrobblerSig(THx) ってヤツです)等も改めて眺めみる。
一通り眺めていくウチに、私が求めていた最もシンプルな表示の為の Last Played PHP Script という PHP スクリプトを発見。 PHP で自ブログを作ってる方ならこれ以上カンタンな方法はないと思います。
今までユーザーページ上で提供されている RSS を活かして、というコトに躍起になっていたが、どうやら Audioscrobbler では、 RSS とは別に、シンプルテキストのみでプレイリストを表示しただけの text feed というモノも提供していたんですね、知らなかった。
こちらがワタシの text feed
http://ws.audioscrobbler.com/txt/recent/ll_browneyes_ll
※ ~ recent/ 以下を自分のアカウント名に書き換えた URL で自分の text feed が見られます。
で、こちらが通常の RSS feed
http://ws.audioscrobbler.com/rdf/history/ll_browneyes_ll
※こっちは自分のメンバーページの一番右下にリンクがあります。
上記 Last Played PHP Script のページはスクリプトの利用説明のみで、実際のスクリプトはページ内にもリンクがありますがこちらにソースがあります。 このページを開いて、テキストエディタにコピペして、上の説明通りにいじるだけ。
…と、それだけでも「ぅぇ~、面倒くさそ~」と思うかもしれませんが、デフォルト表示の、最新5曲を表示するだけでよければ(ウチのトップページのサイドバー、 Music の部分に表示してるのがまさにソレ)、スクリプト内でいじるのはたったの一ヶ所だけ!
最後から2行目の
audioScrobbler( "MrSomeone", 5, "<b>{num}.</b> {name}<br />");
の部分の MrSomeone を自分のアカウント名に書き替えてあげるだけでOK。
後はこのスクリプトソースをテキトウなファイル名(拡張子は勿論 PHP なので、 hogehoge.php てなカンジ)を付けて ftp でサーバ上にアップして、php include でテンプレートの表示したいトコロに埋め込むだけ。
ブログを PHP で使ってる人にはすこぶるカンタンだと思います。
今までの試行錯誤に使った長い時間は何だったんだろう…とアホらしく思えてしまったよ、実際。
ちなみに AudioscrobblerWiki には他にも演奏時間(いつ聴いたか)等を表示させられるものや、 Digital Town on the web さんトコの Now Playing 同様、最新のプレイリストを画像で表示させるスクリプト、 API やら VBScript やら SSI を利用するモノなど色々なスクリプトがあります。
【追記:3/13】
またもや表示スクリプト変更につき(笑)、こちらにサンプル表示させておきます。
↓
Error getting song info.