はじめに
このページはニコ生アラート(本家)が行っている処理の2009/8/27現在における仕様についてまとめたものです。
このページの目的はユーザーが開発するニコニコ生放送の番組通知ソフトウェア/Webサービスにニコ生アラート(本家)と同様の処理を組み込んで頂き、ニコニコ生放送の負荷低減を目指すことです。
このページの内容及び公開しているAPIの仕様は予告なく変更される可能性があります。また仕様変更時にこのページの内容は修正されない可能性があります。
認証APIその1
認証APIその2
- URL
http://live.nicovideo.jp/api/getalertstatus
- パラメータ
ticket=[認証APIその1]で取得した認証用チケット
- ユーザーエージェント
NicoLiveAlert 1.0.0
- レスポンス
<getalertstatus status="ok" time="[アクセスタイム]">
<user_id>[ユーザーID:0000]</user_id>
<user_hash>[認証用ハッシュ:XXXXXXXXXXXXXXXXXXXXXXXXXXX]</user_hash>
<communities>
<community_id>[加入コミュニティID:coXXXX]</community_id>
<community_id>[加入チャンネルID:chXXXX]</community_id>
</communities>
<ms>
<addr>[コメントサーバーのアドレス]</addr>
<port>[コメントサーバーのポート]</port>
<thread>[スレッドID]</thread>
</ms>
</getalertstatus>
ユーザー認証を行わないAPI
- URL
http://live.nicovideo.jp/api/getalertinfo
- レスポンス
<getalertstatus status="ok" time="[アクセスタイム]">
<user_id>[ユーザーID]</user_id>
<user_hash>[認証用ハッシュ]</user_hash>
<ms>
<addr>[コメントサーバーのアドレス]</addr>
<port>[コメントサーバーのポート]</port>
<thread>[スレッドID]</thread>
</ms>
</getalertstatus>
コメントサーバー
認証APIで取得したコメントサーバーのアドレスとポートにXMLSocketで接続を行います。接続しただけではデータを受信することはできません。以下のデータを送信することで対象スレッドを取得して継続的にPUSHされる状態となります。
<thread thread="[スレッドID]" version="20061206" res_from="-1"/>
- PUSHされるデータのサンプル
- スレッド情報取得リクエストへのレスポンス
このレスポンスは番組通知とは関係がないので無視してかまいません。
<thread last_res="XXXX" resultcode="0" thread="[スレッドID]" ticket="XXXXXXXXX"/>
- 番組通知時にPUSHされるデータ
chatタグのテキスト部分に[放送ID],[チャンネル&コミュニティID],[放送主のユーザーID]がカンマ区切りで格納されています。
chatタグの各種属性はコメントサーバー側で使用する値なので無視してかまいません。
<chat date="1234567890" no="XXXX" thread="[スレッドID]" vpos="XXXX">[放送ID],[チャンネル&コミュニティID],[放送主のユーザーID]</chat>
番組情報取得API
- URL
- http://live.nicovideo.jp/api/getstreaminfo/lv[放送ID]
- レスポンス
<getstreaminfo status="ok" time="[アクセスタイム]">
<request_id>[放送ID]</request_id>
<streaminfo>
<title>[番組タイトル]</title>
<description>[番組説明文]</description>
<provider_type>[コミュニティなら"community"、チャンネルなら"channel"]</provider_type>
<default_community>[チャンネル&コミュニティID]</default_community>
</streaminfo>
<communityinfo>
<name>[チャンネル&コミュニティの名前]</name>
<thumbnail>[チャンネル&コミュニティのサムネイルURL]</thumbnail>
</communityinfo>
</getstreaminfo>