ニコニコ動画 ランキング取得スクリプト

ニコ動ダウンロード用gem更新(ver 0.1.0) - にたまごほうれん草
nicovideo gemがバージョンアップ(0.0.6 → 0.1.0)したようです。エコノミー動画の判別機能の取込みありがとう御座います。
新機能(ランキング取得機能)のサンプル書いてみました。

#!/usr/bin/ruby -Ku
require 'rubygems'
require 'nicovideo'

conf = YAML.load(open("conf.yaml") )
nv = Nicovideo.new(conf['mail'], conf['password'])

cnt = 0
nv.ranking.each do |vp|
  cnt += 1
  printf "%3d位 %-12s %s \n", cnt, vp.video_id, vp.title
end

出力は以下。

  1位 sm2400989    【初音ミク】たちが「君をのせて」を歌いました
  2位 sm2419123    日本の首都は千葉!滋賀!佐賀!なのか?最終鬼畜都道府県
  3位 sm2415483    【MGS】超高音質で聴くメタルギア神曲メドレー【192kbps】
  4位 sm2414456    テンションが上がる東方ヴォーカル集
  5位 sm2420025    3Dミクを躍らせるツールを自作してみた(説明前編)
  6位 sm2418775    (MAD)魔法少女リリカルなのは Faze To Love
  7位 sm2419990    【完成版】 CLANNAD 『KOTOKO/覚えてていいよ』 Full Ver.
  8位 sm2405922    ニコニコ in ぷよぷよ  その2
  9位 sm2416947    ハルヒたちを性転換させてみた
 10位 sm1912604    FF7神曲メドレー 完全版 (動画付き)
 ...(以下略)

これは便利。ちなみにrankingメソッドにはtype, span, category, pagenumを指定できます。以下の形式です。

    # type : 'mylist', 'view' or 'res'
    # span : 'daily', 'newarrival', 'weekly', 'monthly', 'total'
    # category : 'all', 'music' ... and more
    def ranking(type='mylist', span='daily', category='all', pagenum=nil)

現在pagenumに値を設定すると落ちるようです。たぶんtypo
以下のように定義し直せば動きます。
→修正されました。(0.1.1)

module Nicovideo
  class Ranking
    def url
      url = "#{BASE_URL}/ranking/#{@type}/#{@span}/#{@category}"
      if @pagenum
        url += '?page=' + @pagenum.to_s
      end
      url
    end
  end
end