過去のブログのアーカイブ
この記事は前身のブログのアーカイブを引き継いだものです.
画像が正しく表示できないなど,コンテンツの表示に問題がある恐れがあります.過去に作っをあさってたらたまたま出てきた。案外これ使えそう?と思ったのでソースコードそのまんま公開します。
自分の飽き性のせいか、表示するだけ作ってほったらかしてます…参考になるかも?と思ったので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]


