読者です 読者をやめる 読者になる 読者になる

ニコニコ動画のスナップショット検索v2API用gemを作った

最近,ニコニコ動画のスナップショット検索APIはバージョンアップしました.

site.nicovideo.jp

今まで,ニコニコ動画の検索に関しては,

github.com

にお世話になっていました.

だけど,3月からニコニコ動画側がv1のAPI提供を終了したため,このgemではエラーが出るようになりました.

というわけで新API対応のgemを作りました.

github.com

使い方

だいたいREADMEに書いてあるのと,あとは公式のAPIドキュメントを見ればわかると思います.

client = NiconicoSearch::Client.new("your_application_name")
results = nico.search(
  query: keyword,
  targets: [:title, :description, :tags],
  options: {
    _limit: 50,
    "filters[start_time][gte]" => Time.current.yesterday.beginning_of_day.strftime("%Y-%m-%dT%H:%M:%S%:z"),
    "filters[start_time][lte]" => Time.current.beginning_of_day.strftime("%Y-%m-%dT%H:%M:%S%:z")
  }
)

こんな感じで使えます.

実は,本当はgemにまでするつもりはあまりなくて,filters のあたり,あんまり真面目に作ってません(クエリパラメータとしての構造はわかりやすいけど,この構造をrubyのハッシュで作るのは難しいな…).

というか,大分わかりやすいAPIだと思うので,ただのラッパーにしかならないんですよね. ドキュメントちゃんと読んだら(そもそも日本語だし),結構わかりやすい構造をしているし,クエリを組み立てるのもそんなに苦労しないんじゃないかな…….

実際gemにするほどのことでもないんじゃないかな…….

どうでもいい雑感

v2になって以前あったバグが治った気がした. 以前,件数に20件以上を指定した場合,一部の検索結果で日本語が文字化けするという,よくわからないバグに遭遇した.

v1のAPIのせいなのか,nico_search_snapshotのせいなのか,ちょっと真面目に調べてはいないんですが…….

そのあたりはちゃんと治っていて,何件指定してもしっかり検索結果は帰ってきた.

というか,このAPI,事前登録とか認証とか必要なくて,アプリケーション名だけ好きに渡せば使えるって,結構フリーダムだよね.