Now Playing

2005年11月19日改訂

前々からしたかった「Now Playing」。
コレってナニかというと、今(というか最近)コンピューターで再生中の音楽をblogに表示するというもの。
「自己主張が激しい」等というコメントも数多くみられる「Now Playing」ですが、それはそれ。まぁいいじゃないですか。(笑)

Windows・iTunes・サイトのエンコードがUTF-8ということで、長らく悩んでおりましたが、このたびめでたく解決したので、ココに方法をメモ書き。

ここではiTunes(Win用)を説明しますが、Mac用でもしなければならないことはほぼ同じです。
ちなみに他のPlayer用プラグインもあります。
後はサーバー側でphpが使える環境であることが必要です。(ちなみにこのblogはロリポですが、ノープロブレム!)

まず、用意するもの。

言わずと知れたPlayer. “iTunes“.
アップル – iLife – iTunes – ダウンロード
次に、iTunes用Plug-in. “Audioscrobbler“.
Audioscrobbler :: Downloads

次は、Audioscrobblerにサインアップ(無料登録)してください。

Audioscrobbler :: Singup

先ほどダウンロードしたiTunes(Win用)Plug-in”iScrobblerWin_0_0_4.exe”(04/08/09現在)をダブルクリックし、インストールします。
サインアップした”Account”と”Password”を入力し、使用可能にします。

後は下のサイトを参考に、インクルードするためのphpファイルを用意します。

AudioscrobblerWiki – Web&RSS_Data

を参照。(上記リンク先が消失につき、スクリプトの自サイト公開を行ないます。)

<?php

// Define the URL/path to user’s Audioscrobbler XML/RDF feed

define(‘AUDIOSCROBBLER_RDF’,
‘http://ws.audioscrobbler.com/1.0/user/junichi_y/recenttracks.rss’);

// Try to open Audioscrobbler feed

if (!($fp = fopen(AUDIOSCROBBLER_RDF, “r”)))
{ die(“could not open Audioscrobbler feed”); }

while ($data = fread($fp, 4096)) { $rdf_content .= $data; }

fclose($fp);

// Begin parsing through

preg_match_all(“‘<title>(.*?)</title>’si”, $rdf_content, $songs); $songs = $songs[1];

preg_match_all(“‘<link>(.*?)</link>’si”, $rdf_content, $links); $links = $links[1];

// Print out last 10 songs

for ($i = 1; $i < count($songs); $i++) {

list($artist, $title) = explode(‘ – ‘, $songs[$i]);

echo “<a alt=\”$links[$i]\” xhref=\”$links[$i]\” target=\”_blank\”>$songs[$i]</a><br />\n”;

}

?>

までをファイルとして保存するのですが、このテキスト中”http://ws.audioscrobbler.com/1.0/user/username/recenttracks.rss”の部分、usernameには、取得済みのAccountを入力し、”audioscrobbler.php”としてサイトにアップロード。
Templateの編集を行い、indexの好きなところに

<?php include(‘audioscrobbler.php’); ?>
追記:04/11/29MT使いの方は、テンプレート中に、
<? include”audioscrobbler.php”;?>

と記述しインクルード。

いやあ、簡単。
曲の日本語タグも通るし、すばらしいです。
少し「Now Playing」ではなくタイムラグがあるような気はしてしょうがないのですが、見逃しましょう。(笑)
今度時間のあるときに、曲のタイトルだけでなく、アーティストも表示されるように何とか頑張ってみよう。
phpの知識がないんだけれど。(笑)

ちなみにワタシのプレイリストはこちら。
Audioscrobbler :: User :: Junichi_y

更新 2005年11月19日
リンク先が消失につき、スクリプトの自サイト公開を行ないます。
Last.fmのRSS出力に際し、XMLの名前空間が変更となっておりましたので、それに併せて変更致しました。


Twitter Comment

タグ: , ,
Posted 2004年8月9日 21時07分58秒 in php by junichi_y Comments (19)

Subscribe to comments with RSS to 'Now Playing' .
TrackBack URL 

19 Responses to 'Now Playing'

  1. a gravatar #1 junichi_y shouted,

    2004年8月10日 at 21時06分42秒

    あまり「Now Playing」ではないので、「Recent Tracks」とします。(笑)


  2. a gravatar #2 kazz shouted,

    2004年9月10日 at 18時41分10秒

    はじめまして、kazzと申します。
    昨夜こちらのサイトを拝見しまして、さっそく参考にさせていただきましたが、「”audioscrobbler.php”としてサイトにアップロード」の部分が判りませんでした。
    アップロードする場所はどちらにすればよろしいのかご指導いただければ助かります。
    ロリポのマニュアルどおりの配置(〜cgi/mt)で運営しております。
    ちなみに本日UPされた「今度こそNow Playing」も参考にさせていただきましたが、知識不足で悪戦苦闘中です。
    それでは誠に勝手なお願いですが、よろしくお願いします。


  3. a gravatar #3 junichi_y shouted,

    2004年9月11日 at 6時44分36秒

    kazzさんはじめまして。
    「アップロードする場所」は、どこでもかまいません。
    インクルードする際に、その位置を指定してやるだけです。
    ですが、まず最初に、「サイトのPHP化」は済んでいますか?
    このような質問のやり取りになってしまいますので、まずはblogを見せていただくほうが早いので、サイトのURLをコメント投稿の際に入力していただけると一番良いです。


  4. a gravatar #4 kazz shouted,

    2004年9月11日 at 12時34分19秒

    junichi_yさん、こんにちは。
    ご丁寧なメッセージありがとうございます。
    昨日投稿させていただいた私のコメントが「Spam:50%」となっており、気になっております。
    blogのURLを入れて置きましたので、引き続きご指導をよろしくお願いします。


  5. a gravatar #5 kazz shouted,

    2004年9月11日 at 13時17分05秒

    kazzです。
    お恥ずかしい話しですが、phpについて何も知らずに失礼な質問をしておりました。
    貴殿の「2004年03月20日/エントリー増に対応」を参考にさせていただき、さっそく「php化」からとりかかってみる次第です。


  6. a gravatar #6 kazz shouted,

    2004年9月11日 at 17時49分52秒

    junichi_yさん、こんにちは。
    お陰様で「PHP化」に成功したようです。
    ご報告まで。


  7. a gravatar #7 junichi_y shouted,

    2004年9月12日 at 1時37分40秒

    >kazzさん
    「Spam:50%」の表示は、kazzさんの投稿が初めてであり、スパムフィルタのベイジアンフィルタが判断しかねている為の表記です。
    ベイジアンフィルタに認識させたので、0%になったでしょ?
    詳しくはこちらを見てください。
    http://jun.daa.jp/archives/20040415030122.php

    「PHP化」成功おめでとうございます。サイトを確認しました。
    と、なれば話は早く、トップページに「now playing :: iTunes」を用意しておられるようですのでその場所にincludeしてやってください。
    上記エントリー内容のとおりにインクルードするならば、kazzさんの場合、「/blog/index.php」と同じ階層がわかり良いですので、「/blog/audioscrobbler.php」へftpするのが良いでしょう。


  8. a gravatar #8 from505 shouted,

    2004年9月13日 at 5時12分33秒

    iTunesでNow Playing

    以前から興味があった、「iTunesでNow Playing」。
    参考にさせてい…


  9. a gravatar #9 Toxic shouted,

    2004年11月29日 at 0時17分01秒

    うぅぅぅ

    Now Playingをサイドに表示させようと奮闘中ですが、PHPファイルをIn…


  10. a gravatar #10 Maki shouted,

    2004年11月29日 at 17時31分46秒

    こんばんは。この度は記事を参考にさせていただきながら、NowPlayingの設定に奮闘しております。多分includeの設定が間違っているのだとは思うのですが、内容は記事どおりなんです。PHP単体で動かすと、動作はしているようなのですが、includeすると何にも出てこないのです。Now Playingで表示させたいのはMacの方のi−Tuneで、Audioscrobblerの必要なソフトはMacにインストールしてありますが、通常はWinXPでMTなどは更新やらなにやらやっています。サーバーはロリポップです。
    PHPを単体でアクセスするとタイムログはありますが、そのとき聞いている曲がちゃんと出てくるので、動いてはいるんだと思うのですが。こんな説明で申し訳ないのですが、 junichi_yさんから見てどこかおかしいところがあればご教授いただけると大変助かります。お忙しいとは思いますが、よろしくお願いいたします。


  11. a gravatar #11 junichi_y shouted,

    2004年11月29日 at 19時29分42秒

    >Makiさん
    こん@@は。先ほど、Makiさんのサイトにコメントつけておいたのですが…無かったですか?
    もう一度コメントしに行きまーす。


  12. a gravatar #12 kazz shouted,

    2004年11月30日 at 6時35分08秒

    無理とあきらめていたnowplayingですが、お陰様で無事にincludeすることが出来ました。
    ご親切なアドバイスとサポートありがとうございました。
    試しに邦楽を流してみたところ、こちらも文字化けせずにバッチリです。


  13. a gravatar #13 Maki shouted,

    2004年11月30日 at 9時52分34秒

    junichi_yさん こんにちは。
    昨日は、風邪でダウンしてしまって、会社から帰ってすぐ寝てしまったので、コメントいただいていたのですが許可できなくて今朝になってしまいました。ごめんなさい。
    ところで、なぜかincludeできないんです・・・。title.phpの部分は、titleのままでも、audioscrobblerに変更してもinclueできませんでした。皆さんできてらっしゃるみたいなので、私のindexのテンプレートがいけないのでしょうか?一応タグを挿入している部分は下記になります。

    <h2>*Now Playing*</h2>
    <ul><li><? include”audioscrobbler.php”;?>
    </li></ul>
    全角の部分は半角で入力しています。


  14. a gravatar #14 junichi_y shouted,

    2004年11月30日 at 12時50分05秒

    >Makiさん
    風邪大丈夫ですか?
    parse errorか何か出ていますか?
    もし何も表示が無ければ、一度、
    <h2>*Now Playing*</h2>
    <? include”audioscrobbler.php”;?>
    のようにリスト表示タグを抜いてみてください。


  15. a gravatar #15 Maki shouted,

    2004年11月30日 at 14時27分16秒

    junichi_yさん お手数をおかけしております。
    風邪は大丈夫です。ご心配ありがとうございます。さて、
    Parase errorは出てないんです。
    junichi_yさんから教えていただいたようにタグを抜いて試みたのですが、やはりだめです。
    う〜ん。javaとか、いろいろ入れているからでしょうか?
    他に何か考えられることはありますか?PHP自体は動いていますよね?記事の部分にPHP自体へのリンクを張ってあるのですが、それはおととい確認したら、曲が変わるごとに変わっていたので多分動いているんだと思うのですが。実は動いてなかったりして・・・。


  16. a gravatar #16 Maki shouted,

    2004年11月30日 at 19時58分07秒

    junichi_yさん
    本当にごめんなさい。私の初歩的ミスです。
    アーカイブのphp化はだいぶ前に済んでいたのですが、その時にindexファイルのPHP化も私は済ませたものだと思っていたのですが、Main Indexのテンプレートを一生懸命いじっていたときにふと見たら、Indexだけhtmlになっていました。すいません。phpにしたら、何の問題もなく表示されました。本当バカですいません。junichi_yさん本当に親切に教えていただいて、ありがとうございました。これからもいろいろ参考にさせていただこうと思っているのでよろしくお願いいたします。


  17. a gravatar #17 junichi_y shouted,

    2004年11月30日 at 21時42分30秒

    >Makiさん
    よかったですねぇー。
    しかし、indexがHTMLとは、盲点でした。(笑)


  18. a gravatar #18 Boogielog shouted,

    2005年2月3日 at 15時44分37秒

    露出狂?

    AudioscrobblerとLast.FMを使い始めたわけですが。
    面白くてかなりハマっちゃってます。
    で、ちょっと変な欲が出まして。
    よく人様の blog なんかでサイドバーに「Now Playing」みたいなの見かけません?今聴いてる曲のタイトルが表示されてるヤツ。
    あれがやりたくな?…


  19. a gravatar #19 from505 shouted,

    2005年2月17日 at 13時09分16秒

    iTunesでNow Playing -Part2-

    「サイトのphp化」が終了し、次のステップへ。 Diary::Weblogのju…


コメントする


Get Adobe Flash player