にたまごほうれん草アーカイブ

はてなダイアリーで書いてた「にたまごほうれん草」という日記のアーカイブです。現在は「にたまごほうれん草ブログ」を運営中です。

ニコ動ダウンロード用gem更新(ver 0.0.3)

ニコニコ動画ダウンロード用gemの動画FLVをダウンロードするメソッドにおいて、サンプルコードと実装に齟齬があり、きちんと動画ファイルを保存できていなかった問題を修正しました。

というか、明らかにメソッドの実装がおかしかったので、flvメソッドの返り値を修正しました。
ご迷惑をおかけしました。
サンプルコードにも、コメントをつけておきました。

require 'rubygems'
require 'nicovideo'
require 'yaml'

video_ids = ARGV

# set account
account = YAML.load_file(ENV['HOME'] + '/.nicovideo/account.yml')
mail = account['mail']
password = account['password']

# you must login to Nicovideo
nv = Nicovideo.new(mail, password).login

# get videos and comments
video_ids.each {|video_id|

  nv.watch(video_id) {|v|
    # method 'id' and 'video_id' return video ID(string).
    puts 'video id = ' + v.id

    # method 'title' returns string.
    puts 'title = ' + v.title

    # method 'tags' returns array of string.
    puts 'tags = ' + v.tags.join(' ')

    # method 'comments' returns instance of class Comments
    # which has methods 'to_xml', 'to_s'(same).
    puts 'getting comments xml'
    File.open("#{video_id}.xml", "wb") {|f| f.write v.comments(100).to_xml }

    # method 'flv' and 'video' return raw flv data(binary).
    puts 'getting flv file'
    File.open("#{video_id}.flv", "wb") {|f| f.write v.flv }
  }

  sleep 3
}

これで、サンプルコード通りの実装でダウンロードができる…はず。
まだちゃんとしたドキュメントやテストを書いていないので、できるだけ早く作成するようにします。