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

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

ニコニコ動画をダウンロードしたりするgemを作ってみた

といってもrubyforgeに登録したわけじゃないので野良gemですが、
あれこれ機能をつけたりする前にとりあえず使える形にしてしまおうと。
※追記(2008/01/07):今はRubyforgeに登録してgemコマンドでインストールできるようにしてあります。
- nicovideo-0.0.1.gem
使い方については、一応以下のようなサンプルをつけました。

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|
    puts 'title = ' + v.title
    puts 'tags = ' + v.tags.join(' ')
    puts 'getting comments xml'
    File.open("#{video_id}.xml", "wb") {|f| f.write v.comments(100).to_xml }
    #puts 'getting flv file'
    #File.open("#{video_id}.flv", "wb") {|f| f.write v.flv }
  }

  sleep 3
}

手順としては、

  1. ニコニコ動画にログインする
  2. watchメソッドの引数に動画のIDを渡して、ブロックで処理をする

取得できるものは、動画FLV・コメント・タイトル・タグです。
ちなみに、このサンプルでは複数のIDをコマンドライン引数にとって一気にダウンロードできそうに書いてますが、立て続けにアクセスすると嫌われますので間隔を置いてアクセスすることをお薦めします。
もうちょっとドキュメントとかまともに書けたらリモートでインストールできるよう登録しようかな…。