ソラマメブログ
QRコード
QRCODE
アクセスカウンタ
読者登録
メールアドレスを入力して登録する事で、このブログの新着エントリーをメールでお届けいたします。解除は→こちら
現在の読者数 1人
プロフィール
Hitomi Magne
Hitomi Magne
ヌーディスト件ダンサーです。Susukinoによく出没します
オーナーへメッセージ

2009年08月08日

plsファイルの変換にYahoo! Pipes

前の記事でSHOUTcastラジオチューナーを作るために必要なAPIの情報を書きましたが、最後の最後でプレイリストを取得することがLSLでは不可能で、外部サーバのCGIプログラム等を使用する必要がありました。

やっぱり外部サイトを構築したりPHPやPerlを使ってスクリプトを書くのは面倒ですし、どうもスマートではありません。ほんとはLSL内で完結できれば一番いいんですけど、それは無理なようなので、試しにYahoo! Pipesを利用してみることにしました。
Yahoo! Pipesというのは、インターネット上の情報を組み合わせたり編集して、RSS形式で配信するための環境です。何を言ってるのかわからないと思いますが、大丈夫です、私もよくわかっていません。なんというかビジュアルにパーツを組み合わせてプログラムが組めるのでなかなかおもしろいです。

.plsファイルをエディタなどで開くと以下のようになっています。

[playlist]
numberofentries=21
File1=http://scfire-mtc-aa03.stream.aol.com:80/stream/1065
Title1=(#1 - 46/500) Vocal Trance - D I G I T A L L Y - I M P O R T E D - a fusion of trance, dance, and chilling vocals
Length1=-1
File2=http://scfire-mtc-aa04.stream.aol.com:80/stream/1065
Title2=(#2 - 48/500) Vocal Trance - D I G I T A L L Y - I M P O R T E D - a fusion of trance, dance, and chilling vocals
Length2=-1

<中略>

File20=http://scfire-mtc-aa02.stream.aol.com:80/stream/1065
Title20=(#20 - 426/500) Vocal Trance - D I G I T A L L Y - I M P O R T E D - a fusion of trance, dance, and chilling vocals
Length20=-1
File21=http://205.188.xxx.xxx:8004
Title21=(#21 - 20/20) Vocal Trance - D I G I T A L L Y - I M P O R T E D - a fusion of trance, dance, and chilling vocals
Length21=-1
Version=2
この局の場合上位のURLにはリスナーの空きが多く、最後のURLだけフォーマットが違うのがわかります。正式な仕様はわかりませんが、上の方はリレーサーバで、一番下のが放送している人が直接使っているサーバになるようです。SHOUTcastの場合、放送URLに/7.htmlとつけて表示すると現在放送している曲名などの情報が得られるのですが、上の方のリレーサーバではこれらの情報が得られないことが多いようです。従って、放送受信のために最上位のリレーサーバを、曲名取得のために一番下のサーバを取得すると便利そうです。



plsファイルの変換にYahoo! Pipes

これが今回作ったプレイリスト変換プログラムです。URLを受け取って、CVS形式と仮定して読み込み、音楽のURLを抽出します。プレイリストにいくつもならんでいるサーバURLのうち、最初と最後を取り出して返すようにしています。サーバURLを全部取り出すとLSLで受信不可能なサイズになる恐れがあるので、このあたりがちょうどいいと思います。
なぜFetch CVSでplsファイルを読み込むかというと、他の方法ではうまく読み込めなかったからです><
Fetch Pageだとrobots.txtに拒否られたとエラーが出るし。もともとCSVじゃないので少々工夫がいりますが、まあこれでなんとかURLは取得できるのでいいでしょう。

このようなパイプを作成して、
http://pipes.yahoo.com/pipes/pipe.run?_id=[パイプid]&_render=csv&url=[URL]
というような感じでURLデータを渡してやれば、結果がCSV形式で返ってくるので、あとはLSLで加工してMusic URLに設定したり、定期的に曲情報を取得したりできるでしょう。



同じカテゴリー(スクリプト)の記事画像
ソラマメ風の新着表示を試しに作成
同じカテゴリー(スクリプト)の記事
 ソラマメ風の新着表示を試しに作成 (2009-08-24 23:34)
 SHOUTcastラジオを作るための情報 (2009-07-30 15:22)
 ソースコードを整形して色付けてくれるツール (2008-11-22 23:49)

Posted by Hitomi Magne at 18:20│Comments(0)スクリプト
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。