昨日、ニコニコ動画提供の「スナップショット検索API」で、動画投稿者に関する情報が取れないとか何とかと、ぶつくさ書いたのですが、あの後、インターネットサーフィンをしていると、別のapiで投稿者情報は取得できることが判明。
「getthumbinfo」というそうで、video_idを指定すれば、ログインなしで様々な情報を返してくれるようです。
これを使わない手はない!ということで、早速やっていきましょう。
まず、GETする必要があるので、メソッドを作ります。
require "net/http" # urlにはgetしたいページのurlを入れる。 def httpGet(url) uri = URI.parse(url) http = Net::HTTP.start(uri.host) return http.get(uri.path).body end
簡単ですね。昨日の応用です。
そして、次のようにして取得するのですが……
video_id = "sm20718817" url = "http://ext.nicovideo.jp/api/getthumbinfo/#{video_id}" res = httpGet(url)
これで取得できるのは(resの中身は)xmlになります。
ちなみに具体的にはこんな感じ。
rubyでxmlというと"nokogiri"なんかがすぐ思いつくのですが、今回はgemを導入するほど大掛かりなものでもないので、標準ライブラリである"rexml/document"を使います。
require "rexml/document" xml = REXML::Document.new(res) p xml.root.elements["thumb/user_nickname"].text # => "きゆみやま"
たとえばこれで投稿者の名前が取得できます。いやはや楽ですね。
以上をまとめて、user_idとuser_nicknameが簡単に取得できるように整えれば、完成です。