nicovideo gemにマイリスト登録機能を追加した。

まだ、CodeReposにコミットしただけで、gemには反映されていないが、nicovideo gemにマイリスト登録機能を追加した。
こんな感じで使うことができる。

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

# ログイン
nv = Nicovideo.new('メールアドレス', 'パスワード')

# 動画を追加するマイリストを取得する
ml = nv.mylist('マイリストのID')

# 動画をマイリストに追加
ml.add('sm16')

# 直前に追加した動画を含む、マイリストに追加されている動画のリストを取得
videos = ml.videos
videos.each {|v|
  puts v.id
}

いくつか問題点がある。
・マイリストから削除する機能はない
・マイリストの登録動画リストはRSSから取得しているが、RSSに反映されるには時間がかかるため、手動で動画情報を追加している。そのため、追加した動画は、ソート順に関係なく、常にリストの最後に追加される
・動画追加リクエストの結果のJSONをパースする処理が怪しい
・新たにjsonライブラリに依存するようになった。gem install json を実行する必要がある。Windowsだと、gem install json_pure の方がインストールしやすい*1
・非公開のマイリストにも追加できるが、動画のリストは取得できない。非公開のマイリストを扱えないのは、元からの制限
マイリストに動画を追加する機能については、現状でも十分実用になるので、たとえば、生放送で流した動画を一括登録する、と言うような時にはこれを使うと便利だろう。*2

*1:jsonライブラリは、Ruby1.9.1には標準添付されているようだ

*2:というか、そのために作った