ニコニコ動画にはいくつかAPIが存在しているらしい。ただしそのほとんどがネットワークキャプチャを趣味としている奇特な人々によって発見されたもののようだ。動画検索APIのみ公式としてドキュメントが公開されている。
ニコニコ動画APIとは (ニコニコドウガエーピーアイとは) [単語記事] - ニコニコ大百科
特に理由はないんだけど、それらのAPIをちょっとテストしてみようと思って自動でコメントを取得してみた。そして何を思ったのか、その課程で生まれたゴミスクリプトに少し手を入れて、サイトとして公開してみたわけだ。http://2coch.net/
APIの使い方
APIの利用方法に関しては何年も前から既に先人たちによって明らかにされているのでほとんど戸惑うことは無かった。
基本的な流れはこんな感じになる。
動画ID(sm*******)をキーとして http://flapi.nicovideo.jp/api/getflv/sm******* をGETするとことで動画情報を示すテキストを取得できる。ちなみに動画ファイル(*.mp4や*.flv)のURLもこれで得られる。
得られた動画情報テキストからthread_idとコメント配信サーバーのURLを示すmsというパラメータを読み取り、msに向けてPOSTを飛ばす。以下のxmlを送信データとする。
<packet><thread res_from="-1000" thread="{$thread_id}" version="20090904" /></packet>
するとコメントを格納したxmlが返ってくるので、PHPの場合これをsimplexmlでパースすればおk。
コメントデータの並びが投稿順になっているので、これを日付順にするためにarray_multisortという多次元配列をソートする関数を使った。
PHPには専用の関数とかエイリアスがたくさん用意されていて凄く便利で、むしろ手厚すぎる感があると思う。多次元配列のソートは、Rubyならsortメソッドをオーバーライドするんだけど、個人的にはこっちの方がシンプルで好きだ。
「ID真っ赤ですよ」ができる
ニコニコ動画の視聴ページにはコメント投稿者のID(セッション限定?)が表示されていないのだけれど、今回利用したAPIからならそれを見ることが出来る。
ということでこのサイトの唯一の有用性としては、コメントを連投して荒らしたり、自演したりしている人物の存在を確認できるということだろうか。
まあでもそれは他サイトでは既に存在している機能なので、やっぱり実用性は無いと思う。
はっきり言って今後僕が利用することも無さそうだ。なんで勢い余ってドメインまで取得してしまったのかは謎である。