niconicoのAPI使い方メモ

ニコニコ動画の一覧検索できる公式くさいAPIがあるらしい

日記的「駄目」プログラミング » ニコニコ動画に動画検索APIができたらしいので取り急ぎScalaで


http://ext.nicovideo.jp/api/search/tag/minecraft?mode=watch&order=d&page=1&sort=n
↑こんな感じのURLを叩くと結果がJSONで返却される。
ただし、ログイン状態でないとちゃんと結果は返ってこない。

<追記>使い方について(分かってることだけ)

[リクエスト]

■URL:
キーワード検索はhttp://ext.nicovideo.jp/api/search/search/[キーワード]
タグ検索はhttp://ext.nicovideo.jp/api/search/tag/[タグ名]

■パラメータ
以下のパラメータはすべて指定必須ぽい。1個でも欠けてるとエラー返しやがる。
・mode:よくわからん。とりあえず「watch」固定。
・order:並び順。dは降順(desc)で、aは昇順(asc)。
・page:ページ数。1から。
・sort:以下参照。

v 再生数
f 投稿日時
r コメント数
m マイリスト数
l 再生時間


[レスポンス]

JSON形式で以下みたいな構造で返ってくる
"list":[
"id":"sm〜"
...
]

■list内のパラメータ

id 動画ID(smから始まる数字)
title タイトル
first_retrieve 投稿日時
view_counter 再生数
mylist_counter マイリスト数
thumbnail_url サムネ画像パス
num_res コメント数
length 再生時間
description_short 動画説明文(省略版)


C#あたりで詳細条件検索かましたアプリでも作ろうと思ったが、
ログイン状態をもたせてリクエストしないとエラーしか返さない模様。
ので、C#で使えそうなWebページログイン認証のサンプルを探す。

C#によるWEBサイトへのログイン方法(ベーシック認証、クッキー認証) | 夏研ブログ

思いきりストライクのサイト見つかる。クッキー認証の部分ごっそりパクらせていただく。
クッキー取得後のリクエストでURI指定をAPIのURLに置き換えて叩いたらすんなりJSONのリストデータ取得。
C#JSONいちいち読むのだるいのでまたもググる

C#でJSON形式のデータを扱う | テスターですが何か?

JSONC#で読み出すためにDynamicjsonライブラリ使う。


もろもろやって、id、title、view_counter、first_retrieveあたりを書き出してみた結果

それっぽい



<だらだらと追記>
1アクセスでページ単位(32件分)取得しかできないからと、ループ回していたら20ループ過ぎた辺りでアクセスが遮断された。
うーん、あやしいアクセス攻撃対策(こちとらそんなつもりは無いのだけれど)はしている模様。
まあ下手に追求してアカロックされるのも怖いので、この辺りはもうちょい小分けにするしかないか。

あと、プレミアムアカウントだと20ループ耐えるけど、一般アカでやると5ループでブロックを賜る模様。ブロック後は体感30秒くらいおかないと復活できない感じ。

検索ページが50までに制限されてた、ってか普通のWeb閲覧の方でも51以降はいけなくなってる。
昨日の深夜はいけたと思ったんだけど、混雑する時間帯は制限してるのだろうか。