過去のブログのアーカイブ
この記事は前身のブログのアーカイブを引き継いだものです.
画像が正しく表示できないなど,コンテンツの表示に問題がある恐れがあります.過去に作っをあさってたらたまたま出てきた。案外これ使えそう?と思ったのでソースコードそのまんま公開します。
自分の飽き性のせいか、表示するだけ作ってほったらかしてます…参考になるかも?と思ったのでC#ですが公開しておきます
ついでに言語はC#です。そこまで複雑なことは書いてないと思ってます。
ニコ生配信APIの仕組み
XMLはストリーミングで配信されるだけなのでそれを受け取って処理するだけ。仕組み的には簡単です。
ちなみにAPIのURLはこれ
http://live.nicovideo.jp/api/getalertinfo
ここでAPIへ接続するためのURLやポート番号、スレッドIDを受け取ります。
なのでこれだけでは終了ではありません。
上記のURLへ接続するとこんなものが送られてきます。
<getalertstatus status="ok" time="1411646803"> <script/> <user_id>Anonymous</user_id> <user_hash>xVriZhkcXVPitQO5s48NOGmbJQY</user_hash> <ms> <addr>twr02.live.nicovideo.jp</addr> <port>2526</port> <thread>1000000003</thread> </ms> </getalertstatus>
マーキングしている所が重要なところとなります。
そしてそれを抜き出すソースコードはこんな感じ。手抜きはお許し下さい。
string addr = "", port = "", thread = ""; using ( WebClient wc = new WebClient() ) using ( Stream xmlstr = wc.OpenRead( "http://live.nicovideo.jp/api/getalertinfo" ) ) using ( XmlReader xml = XmlReader.Create( xmlstr ) ) { for ( ; xml.Read(); ) { if ( xml.NodeType == XmlNodeType.Element && xml.Name == "addr" ) { xml.Read(); addr = xml.Value; } if ( xml.NodeType == XmlNodeType.Element && xml.Name == "port" ) { xml.Read(); port = xml.Value; } if ( xml.NodeType == XmlNodeType.Element && xml.Name == "thread" ) { xml.Read(); thread = xml.Value; } } }
これ以降は下にあるプロジェクトファイルからお願いします。
あと、完全に作りかけで1年半以上放置されたものです。中途半端に残ったコードとかもある酷いものです。
それを了承した上でダウンロードお願いします
ダウンロード
すべて自己責任でどうぞ。ウイルス対策のためexeファイルは取り除いています
[wpdm_file id=6]