Edited at

Rubyとニコニコ動画APIで動画のタイトルを取得する

More than 5 years have passed since last update.

ニコニコ動画がAPIを公開していることを知ったので軽く触ってみました。Ruby 2.0.0で読み込んでみましたが、XMLで提供されているのでとってもお手軽です。

以下のコードはニコニコ動画APIのgetthumbinfoを使用して動画のタイトルを拾ってきます。URLにはニコニコ大百科の「ニコニコ動画APIとは」で使用されていたものをそのまま使っています。つまり組曲『ニコニコ動画』のタイトルを拾ってきます。

require 'rexml/document'

require 'open-uri'

xml = open('http://ext.nicovideo.jp/api/getthumbinfo/sm500873') {|f| f.read}
doc = REXML::Document.new(xml)
doc.elements['nicovideo_thumb_response/thumb/title'].text

他のAPIもいくつか存在していたり、それらは基本的にログインが必要だったり、公式のJavaScriptファイルが存在していたり(?)、Javaでライブラリを公開している方がおられるようです。時間ができたらまた確認してみたいです。

ちなみにIRBやPRYで確認される時は先に

CHCP 65001

とか実行してから起動されるとUTF-8が文字化けしなくって幸せなんだと思います。


おまけ

上のサンプルコードを一般化すると以下のようになります。

#encoding: utf-8

require 'rexml/document'
require 'open-uri'

module NicovideoAPIWrapper extend self
def get_thumb_info_xml(id)
open("http://ext.nicovideo.jp/api/getthumbinfo/#{id}") {|f|
return REXML::Document.new(f)
}
end
end

xmldoc = NicovideoAPIWrapper::get_thumb_info_xml('sm500873')
xmldoc.elements['nicovideo_thumb_response/thumb/title'].text