いものやま。

雑多な知識の寄せ集め

ニコニコ動画のダウンロードツールをRubyで書いてみた。(その4)

Nicovideo DownloaderをRubyへポーティングしたはずなのに、なぜか正しくダウンロード出来ない。

ということで、今日はその調査と解決。

Cookieの確認

Forbiddenが出てるということは、認証で何か失敗しているということ。
そうなると、怪しいのはCookie

とはいうものの、動画情報の取得とかは出来ているわけで、user_sessionの送信自体は問題なさそう。
なので、おそらく送信するCookieが足りないのかな、と。

実際、ログイン画面にアクセスしたとき、および、動画情報にアクセスしたときに送られてくるCookieを見てみると、nicosidというキーのCookieも送られてきてた。

そこで、試しにこのnicosidも送信。
・・・が、やっぱりうまくいかない。

何がダメなんだろう?

動画ページへのアクセス

あと、元のNicovideo Downloaderとの違いはというと、動画ページにアクセスしているかどうか。
けど、そんなのが影響するのか・・・?

しかし、調べてみると、次のような情報が。

ニコニコ動画の動画をダウンロード - Qiita

ログインをしてるCookieとその動画へのアクセスが無いと動画などを保存しているURLなどを返してくれない

ほぅ・・・やっぱり動画ページへのアクセスが必須っぽい。

ということで、試しに動画ページにアクセスして、送られてくるCookieをチェック。
そうしたら、nicohistoryというキーのCookieも送られてきてた。

そこで、このnicohistoryも送信するようにしたところ、ビンゴ!
Forbiddenになることなく、動画がダウンロード出来た!

修正後のコードは、こんな感じ。

NicovideoDownloader-mini with Ruby

今日はここまで!