ニコ動ダウンロード用ライブラリを使ってみた
ニコ動ダウンロード用ライブラリがgemコマンドでインストールできるようになりました - にたまごほうれん草
gem に正式に登録されたようで、サンプルのソースコードを早速使ってみました。
サンプルソース使い方
サンプルの使い方は以下のように、引数に動画の ID を渡すだけ。
D:\> ruby nv_download.rb sm1950946
※ nicovideo (0.0.2) 以上で以下の問題は解消済み。
が、しかしコメントが取得できない
何かしらのエラーが。
タイトルとタグは表示されたけれど、コメントを取得できなかったみたい。
getting comments xml D:/home/opt/ruby/lib/ruby/gems/1.8/gems/nicovideo-0.0.1/lib/nicovideo/base.rb:123:in `get_params': Nicovideo::NicovideoNotFoundError (Nicovideo::NicovideoNotFou ndError) from D:/home/opt/ruby/lib/ruby/gems/1.8/gems/nicovideo-0.0.1/lib/nicovideo/base.rb:94:in `get_comments' from D:/home/opt/ruby/lib/ruby/gems/1.8/gems/nicovideo-0.0.1/lib/nicovideo/base.rb:53:in `comments' from nv_download.rb:22 from nv_download.rb:22:in `open' from nv_download.rb:22 from D:/home/opt/ruby/lib/ruby/gems/1.8/gems/nicovideo-0.0.1/lib/nicovideo/base.rb:48:in `watch' from nv_download.rb:18 from nv_download.rb:16:in `each' from nv_download.rb:16
原因
どういう間隔かはわからないが、連続アクセスしてしまうとエラーになってしまう(戻り HTTP コンテンツは見ていないけれど)。
まぁ、そういうわけで、sleep を入れて対処。
すると、見事ニコニコ動画のコメントを取得に成功。
この問題は、プレミアム会員なら大丈夫だったりするのかな。
nv.watch(video_id) {|v| puts 'title = ' + v.title puts 'tags = ' + v.tags.join(' ') sleep 3 # <= 連続アクセスしないように待ち時間 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 } }