はてなブックマーク - じわじわ来てるエントリーを見て以来、ニコニコ動画でも同じようにじわじわ伸びている動画を見つけられないかと考えていました。漠然と、再生数などの伸びの傾きを調べればよいのだろうなあ、と思いつつも、パラメーターをどう設定するか試行錯誤するのが面倒で、そのまま放置しておりました。
ちょっと手抜きした調べ方ではありますが、「コメントはほとんど伸びてないけど再生数は地味に増えている」動画(=多分閲覧のみのリピーターが多い動画*1)を調べてみても、いい作品が見つけられるかもしれない、と思い、試してみました。
以下は、過去2週間、コメント数の増え方が一桁台なのに再生数が多いアイマス動画です(上位30件)。
調べるのに使ったrubyスクリプトです。表への加工は、あとで表計算ソフト上で行いました。
NICOBOOMのAPIを使っています。*2
require 'open-uri' require 'kconv' require 'uri' require 'yaml' require 'date' def load(url,queries_hash={}) base_url,base_queries=url.split("?") if base_queries queries_hash=Hash[*base_queries.split(/[&=]/)].update(queries_hash) end queries=queries_hash.to_a.collect{|i| "#{i[0]}=#{i[1]}"}.join("&") base_url+="?" if queries!="" puts "#{base_url}#{queries}" error_count=0 begin YAML::load(open("#{base_url}#{queries}").read) rescue StandardError,Timeout::Error error_count+=1 raise "Server Error" if error_count>2 sleep 60 retry end end #初期URLの設定 url=URI.escape("http://nicoboom.org/search.yaml?q=アイドルマスター | アイマス | idol | im@s&limit=100&ob=v&oo=d".toutf8) #タイトル行を書き出す open("continual_view_out.txt","w"){|f| f.puts("title\turl\tview_diff\tres_diff") } while true #検索APIにアクセス search_result=load(url) #連続アクセスしないように休んでおく sleep 10 #個別情報毎に search_result["movies"].each{|movie| #個別情報APIにアクセスして直近14日分のカウントデータを取得 info_result=load(movie["self"],{"since"=>(Date.today-13).to_s,"limit"=>14}) #連続アクセスしないように休んでおく sleep 10 #recordsは古い順に並んでいるはずなので最初と最後を調べる(ずぼら) view_diff=info_result["records"][-1]["view"]-info_result["records"][0]["view"] res_diff=info_result["records"][-1]["res"]-info_result["records"][0]["res"] #書き出す open("continual_view_out.txt","a"){|f| f.puts("#{info_result["title"]}\t#{info_result["url"]}\t#{view_diff}\t#{res_diff}") } } #次ページのURLが無いなら最終ページであるので脱出 #あるなら次ページのURLを次に調べるURLとする break unless url=search_result["next"] end