Ruby – NLE(Niconico Live Encoder)はどうやって配信用URLを取得しているのか? – Qiitaよりこれを上手く使えば放送を開始してニコ生へコマンド一つで ffmpeg などのコマンドラインから起動できるツールで配信できる。
ニコ生の getplayerstatus のエラーコードまとめ
Vita のコミュニティAPI アクセスにユーザーセッションが必要になる
ログイン
最初に現在時間を unixtime で取得する
curl http://live.nicovideo.jp/api/getservertime
レスポンス:servertime=1432471973
取得した servertime と mail_addoress、password を記入する
curl -A 'nicoliveenc/2.0.7' -d mail="mail_addoress" -d password="password" -d site=nicolive_encoder -d time=1432471973 https://account.nicovideo.jp/api/v1/login
レスポンス:nicolive_encoder_10進数の数字
配信情報取得
curl -A 'nicoliveenc/2.0.7' -d ticket=nicolive_encoder_10進数の数字 -d accept-multi=0 http://live.nicovideo.jp/api/getpublishstatus/lv番号
レスポンス:XML が Qiita にあるように返ってくる。
コメントサーバの情報にアクセスする
getplayerstatus にアクセスするにはログインしたユーザーセッションが必要
curl -v -d mail="mail_addoress" -d password="password" https://account.nicovideo.jp/api/v1/login -c nico.cookie
curl http://live.nicovideo.jp/api/getplayerstatus/lv放送番号 -b nico.cookie
または
curl http://live.nicovideo.jp/api/getplayerstatus/lv放送番号 -b user_session=user_session_アカウントID_16進数の文字列
放送を開始していればこれでもよい
curl http://live.nicovideo.jp/api/getplayerstatus/co|ch番号 -b user_session=user_session_アカウントID_16進数の文字列
レスポンス:getplayerstatus の XML が返ってくる
配信者 なら getthreads も同様に取得できる。
curl http://live.nicovideo.jp/api/getthreads?v=lv放送番号 -b user_session=user_session_アカウントID_16進数の文字列
レスポンス:getthreads の XML が返ってくる
追記
2015年5月25日、getplayerstatus で不要なコマンドを削除して、co|ch番号でも取得できる。getthreads の取得方法も追加。
2015年7月5日、getpublishstatus で放送番号をつけないと notfound になるのを直した。