ニコニコ動画の新着投稿動画をチェックし続けるRubyスクリプトVer2
こちらはログイン不要!
おととい書いた日記でsanadanさんから
非公式ですけど、
http://www.nicovideo.jp/newarrival?rss=atom
ならログインしなくても新着情報がとれるので、そっちを使った方がすっきりしますし、ニコニコ動画のサーバー負荷も少ないんじゃないかと思いますけどどうでしょう?
というコメントを頂いたので、そっちで書き直してみました。ログインが不要なのでニコニコ動画アカウントを持ってなくても利用できます!
nico_newarrival2.rb
require 'rubygems' require 'hpricot' require 'open-uri' require 'date' require 'kconv' str = [] f = open(ARGV[0], "r") while l = f.gets do str << l.chomp.toutf8 end while true do targets = [] newarrivals = Hpricot(open('http://www.nicovideo.jp/newarrival?rss=atom')) (newarrivals/:entry).each do |d| title = (d/:title).inner_text link = (d/:link)[0].attributes['href'] str.each do |s| if Regexp.new(s) =~ title detail = Hpricot(open("http://www.nicovideo.jp/api/getthumbinfo/sm#{link.match(/\d+/).to_s}")) if (detail/:nicovideo_thumb_response)[0].attributes['status'] == "ok" status = "ok" first_retrieve = DateTime.strptime((detail/:first_retrieve).inner_text) length = (detail/:length).inner_text view_counter = (detail/:view_counter).inner_text comment_num = (detail/:comment_num).inner_text else status = "fail" first_retrieve = nil length = nil view_counter = nil comment_num = nil end targets << [link, status, title, first_retrieve, length, view_counter, comment_num] end end end if !targets.empty? targets.each do |t| if t[1] == "ok" puts("#{t[2]}\n #{t[3].strftime("%m/%d %H:%M:%S")} length: #{t[4]} view: #{t[5]} comment: #{t[6]}\n #{t[0]}") else puts("#{t[2]} deleted!") end puts "\n" end puts "**************************************************************************" end sleep 30 #下の追記に書いた通り頻繁にアクセスする必要はありませんでした end
3/5 2:00追記: 新着投稿動画一覧は10分ごとの更新のようなので、たまたま自分が見た30秒後に更新されることはありますが、頻繁にチェックする必要がまったくないようです。そのあたりは適当に調整してください。
koizukaさん、ご指摘ありがとうございました。
やはりログイン不要な分こちらの方がいいですね。link変数や30秒ごとにアクセスするなど、中身も微妙に変えてあります。Hpricotを入れてない人は gem install hpricot で。mechanizeを入れてあれば自動的に入っています。
実行方法などは前回と同様に、
ruby nico_newarrival2.rb hogelog.txt
でOKです。
クラスとか作らずにどぱーと書いてしまいました。相変わらずコードは汚いですね。。。
調べてみると、今回利用したような新着投稿動画情報をRSSフィードからとって来られるようなことは開発者の方のブログに書いてありました。知らなかったです。
新着動画のRSSを出してみた - こたにき
最近知りましたが、ニコニコ動画まとめwikiというのもあります。
http://nicowiki.com/
バグっているところや変なところがあれば教えてください。