Nicovideo DownloaderをRubyへポーティングしたはずなのに、なぜか正しくダウンロード出来ない。
ということで、今日はその調査と解決。
Cookieの確認
Forbiddenが出てるということは、認証で何か失敗しているということ。
そうなると、怪しいのはCookie。
とはいうものの、動画情報の取得とかは出来ているわけで、user_sessionの送信自体は問題なさそう。
なので、おそらく送信するCookieが足りないのかな、と。
実際、ログイン画面にアクセスしたとき、および、動画情報にアクセスしたときに送られてくるCookieを見てみると、nicosidというキーのCookieも送られてきてた。
そこで、試しにこのnicosidも送信。
・・・が、やっぱりうまくいかない。
何がダメなんだろう?
動画ページへのアクセス
あと、元のNicovideo Downloaderとの違いはというと、動画ページにアクセスしているかどうか。
けど、そんなのが影響するのか・・・?
しかし、調べてみると、次のような情報が。
ログインをしてるCookieとその動画へのアクセスが無いと動画などを保存しているURLなどを返してくれない
ほぅ・・・やっぱり動画ページへのアクセスが必須っぽい。
ということで、試しに動画ページにアクセスして、送られてくるCookieをチェック。
そうしたら、nicohistoryというキーのCookieも送られてきてた。
そこで、このnicohistoryも送信するようにしたところ、ビンゴ!
Forbiddenになることなく、動画がダウンロード出来た!
修正後のコードは、こんな感じ。
NicovideoDownloader-mini with Ruby
今日はここまで!