モノトーンの伝説日記

Apex Legends, Splatoon, Programming, and so on...

<mini> [ニコニコ生放送] 番組一覧 API、タイムシフト予約リスト API

 トップページから Wireshark でハックった。いま、こんなに使いやすい情報に加工されているのね…

番組一覧 API (放送中)

 トップページの「現在放送中の注目番組」。一部表示されないものも

リクエスト

 http://live.nicovideo.jp/api/getzappinglist?zroute={0}&zpage={1}

  • zroute
    index: トップページのやつ
    recent: 最新リスト (詳細欄?)
  • zpage
    ページ数
  • tab=live&sort=start_time&order=desc も recent で使われているときはあった。

番組一覧 API (未来・過去)

 トップページの「未来の注目番組」「過去の注目番組」に相当する。形式はナウい JSON

リクエスト

 http://live.nicovideo.jp/api/getindexzerostreamlist?status={0}&zpage={1}

  • status
    番組の“状態”という意味だが、つまりどのリストを出すか。
    commingsoon, closed の 2 つのどちらか指定可能。
  • zpage
    ページ番号。0 と 1 は同一内容、1-20 まで存在し、21 以降はない

感想

 ありがたい。Web ページをスクレイピングして組み込まないかと危惧した。よかった。OpenNiconico に早急にぶち込んで、アプリでトップページを作りこまねばらなぬ。

タイムシフト予約リスト API

 タイムシフトリストそのまま。lv 接頭語はつかず数字だけ列挙されている。

リクエスト

 http://live.nicovideo.jp/api/watchingreservation?mode=list

  • mode
    list または detaillist*1。詳しい情報が知りたい場合は後者。

感想

 最初数字だけ書いてあったから何のことかわからなかったw 投稿する前にタイムシフトページ見に行ったら、lv 抜きの数字に完全一致しているっポイので、「ああ、なるほどw」的に理解した。lv 接頭語がついてないとやっぱりわかりにくいかもw (lv 付きになれ過ぎましたねw)

データサンプル

<nicolive_video_response status="ok">
<timeshift_reserved_list>
<vid>88690983</vid>
<vid>156937562</vid>
</timeshift_reserved_list>
</nicolive_video_response>

まとめ

 アプリトップページにこういうのを載せたいので、ちょっと調べてみた感じですが、ほかの部分はどうしているのだろう? (たとえばお気に入り番組とか)

 この分野はツール類から必要とされていないため情報が少ないですが、私はアプリを書きたいのであって、変に利用するツールを使う気なんて全くないんで(しいて言えば公式のままの動作を極力再現したいんで)。なんていうか、Web をそのままアプリに落とすのが最終目標って感じなんですよねぇ、どうなることやら…

 おーしまい!

20:50 追記

 tanakara_botamochi さん、情報提供ありがとうございました。これで私がやりたいこと、一通りできそうな感じです。ありがとうございます。

*1:5/2 自分で実装中に確認していたら detaillis になっていました。申し訳ないです。