カタバミさんのプログラミングノート

日曜プログラマーがプログラミング関係のメモを記録するブログです。

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

ニコニコ動画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