日記的「駄目」プログラミング » ニコニコ動画に動画検索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いちいち読むのだるいのでまたもググる。
JSONをC#で読み出すためにDynamicjsonライブラリ使う。
もろもろやって、id、title、view_counter、first_retrieveあたりを書き出してみた結果
それっぽい
<だらだらと追記>
1アクセスでページ単位(32件分)取得しかできないからと、ループ回していたら20ループ過ぎた辺りでアクセスが遮断された。
うーん、あやしいアクセス攻撃対策(こちとらそんなつもりは無いのだけれど)はしている模様。
まあ下手に追求してアカロックされるのも怖いので、この辺りはもうちょい小分けにするしかないか。
あと、プレミアムアカウントだと20ループ耐えるけど、一般アカでやると5ループでブロックを賜る模様。ブロック後は体感30秒くらいおかないと復活できない感じ。
検索ページが50までに制限されてた、ってか普通のWeb閲覧の方でも51以降はいけなくなってる。
昨日の深夜はいけたと思ったんだけど、混雑する時間帯は制限してるのだろうか。