ニコニコ動画 podcast化 on ruby
youtubeの動画はListPodでPodCast化して見ていたんだけど、ニコニコ動画は一つ一つ落としてiTunesに取り込んでいたことがあった。それplaggerでできるよ、っていうのは知ってたんだけど、どうもplaggerを使いこなす気になれなくて放ってあった。
けど、このあいだrubyでnicopodcastっていうのを既に1年前に開発されているのを発見してpodcast化に再チャレンジしてみた。ところが、うまくいかない部分がある。
nicopodcastはgithubだったのでclone->hack->pull requestで解決。
id:emergentさん作のnicovideoというgemはソースがcodereposに上げてあるのでcheckout & hack。
適当な修正でうまくいくようになったように見えるんだけど、結構使われてるgemっぽいので勝手にcommitする気になれずここにpatchを晒しておきます。
csrf_tokenなんて、昔の経緯がわかんないと消していいのか判断できない。
Index: lib/nicovideo/videopage.rb =================================================================== --- lib/nicovideo/videopage.rb (リビジョン 35804) +++ lib/nicovideo/videopage.rb (作業コピー) @@ -83,12 +83,9 @@ } # published_at - str = page.search("div[@id='WATCHHEADER']//p[@class='TXT12']/strong")[0].inner_text + str = page.search("div[@id='WATCHHEADER']//p[@class='font12']/strong")[0].inner_text tm = str.scan(/\d+/) @published_at = Time.mktime(*tm) - - # csrf_token - @csrf_token = page.search("form[@name='mylist_form']//input[@name='csrf_token']")[0]['value'] end def get_params Index: lib/nicovideo/page.rb =================================================================== --- lib/nicovideo/page.rb (リビジョン 35804) +++ lib/nicovideo/page.rb (作業コピー) @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- require 'kconv' module Nicovideo @@ -80,6 +81,9 @@ else raise e end + rescue Exception => e + puts_debug e.to_s + raise e end @page end