radikoについて

2010/05/20

いきものがかりの吉岡聖恵ちゃんの声は個人的に好きだなぁ。

オールナイトニッポン(ANN)の水曜日担当で、カバーの曲を歌ってるみたい。 ラジオでしけかきけない(?)のでここはradikoだな!!

radikoのアプリはAdobe Airだから、自前でアプリが作れそうだ。 仕様とかちょいと調べてみる。

■番組表XMLの例 http://radiko.jp/epg/epgapi.php?area_id=JP13&mode=&station_id=TBS

うーん、XMLか。。。 JSONにして欲しいな。

▽area_id(必須) 国と都道府県コードの組み合わせ 例 JP13

・国:日本 = JP ・都道府県コード:東京 = 13

▽mode

・now = 放送中の番組表 ・なし = 1週間分の番組表

today、tomorrowとかあるらしいが、このAPIはPHPなので strtotimeのオプションで使えるものは全部使えたりして?

▽station_id

放送局ID:TBS,QRR...etc

※後述の「rtmp接続」を参照

■HTML Flashと以下のJavaScript解析すれば取れるかな? http://radiko-dl.ssdl1.smartstream.ne.jp/radiko-dl/1.1/player/js/player.js

▽swfで再生 http://radiko-dl.ssdl1.smartstream.ne.jp/radiko-dl/1.1/player/player_0.1.2.swf

これにパラメータ(statini_id)加えてやるといけるっぽい。

■rtmp接続 ここにradiko録音についてのってます。 普通のプログラミングだと、RTMPDumpってのをかましてやるらしいが、Airなら直でrtmpで繋げそう。

▽東京 TBSラジオ:rtmp://radiko.smartstream.ne.jp:1935/TBS%2f_defInst_/simul-stream 文化放送:rtmp://radiko.smartstream.ne.jp:1935/QRR%2f_defInst_/simul-stream ニッポン放送:rtmp://radiko.smartstream.ne.jp:1935/LFR%2f_defInst_/simul-stream ラジオNIKKEI:rtmp://radiko.smartstream.ne.jp:1935/NSB%2f_defInst_/simul-stream INTERFM:rtmp://radiko.smartstream.ne.jp:1935/INT%2f_defInst_/simul-stream TOKYO FM:rtmp://radiko.smartstream.ne.jp:1935/FMT%2f_defInst_/simul-stream J-WAVE:rtmp://radiko.smartstream.ne.jp:1935/FMJ%2f_defInst_/simul-stream

▽大阪 朝日放送:rtmp://radiko.smartstream.ne.jp:1935/ABC%2f_defInst_/simul-stream 毎日放送:rtmp://radiko.smartstream.ne.jp:1935/MBS%2f_defInst_/simul-stream ラジオ大阪:rtmp://radiko.smartstream.ne.jp:1935/OBC%2f_defInst_/simul-stream FMこころ:rtmp://radiko.smartstream.ne.jp:1935/CCL%2f_defInst_/simul-stream FM802:rtmp://radiko.smartstream.ne.jp:1935/802%2f_defInst_/simul-stream FM大阪:rtmp://radiko.smartstream.ne.jp:1935/FMO%2f_defInst_/simul-stream

やってみたがプログラミングが悪いのか?接続拒否される。 色々調べてたらwonderfulにソースのってました。 rtmp接続するURIが違ってたようだ。 [as3] private var streamUrl:String = "rtmpe://radiko.smartstream.ne.jp:1935/TBS/defInst";

public function onNetStatus(event:NetStatusEvent):void {
    if(event.info.code == "NetConnection.Connect.Success") {
        var stream:NetStream = new NetStream(connection);

        var client:Object = new Object();
        client.onMetaData = function ():void {};
        client.onPlayStatus = function ():void {};
        stream.client = client;

        video.attachNetStream(stream);

        var soundTransform:SoundTransform = new SoundTransform();
        soundTransform.volume = .5;
        stream.soundTransform = soundTransform;
        stream.play('simul-stream');
    }

} [/as3]