- ニコニコ動画から動画をダウンロードする
- ニコニコ動画にアクセスするためのセッションIDを取得する
- IEからセッションIDを取得する
- FirefoxからセッションIDを取得する
- 独自にログインしてセッションIDを取得する
- セッションIDの有効性を確認する
- 目的の動画のurlを突き止める
- 動画をダウンロードする
- ニコニコ動画にアクセスするためのセッションIDを取得する
- ダウンロードした動画を再生する
まずはじめに、HTTPによるクライアントとサーバーのやり取りについて知識が不足していると感じている人は、順番が前後するがセッションIDの有効性を確認するのページを参照してそこのリンクから勉強しておいていただきたい。
ブラウザからセッションIDを取得できなかった場合には、プログラム自身がログイン処理を行い、ニコニコ動画から新しいセッションIDを発行してもらう手続きが必要になる。
ニコニコ動画でログインボタンをクリックした際にアクセスするURLは
である。注意したいのはプロトコルがHTTPではなく、HTTPSであることだ。HTTPによる通信は非常に簡単なのだが、HTTPSの場合、SSLによるデータ暗号化がかかるため、少々面倒になる。SSL対応処理を自分で書くのは大変なので、ここは出来合いのライブラリを使うのが得策だ。ここではOpenSSLを推奨しておく。
OpenSSL 公式 日本語
SSLによる暗号化を使った通信ができるライブラリ。基本的なソケット通信とほぼ同じ感じでコードが書けるのでそれなりに楽。
68user's page:SSL/TLS でアクセスしてみよう (1)
OpenSSLを使って通信する方法の説明。
SSLによる暗号化を使った通信ができるライブラリ。基本的なソケット通信とほぼ同じ感じでコードが書けるのでそれなりに楽。
68user's page:SSL/TLS でアクセスしてみよう (1)
OpenSSLを使って通信する方法の説明。
メソッドはPOSTを使用してデータを次の形式で送る。
next_url=&mail=usermailaddress&password=userpassword&submit.x=0&submit.y=0
リクエストヘッダには
Content-Type: application/x-www-form-urlencoded
Content-Length: xx
の2つのヘッダを指定し、Content-Lengthにはデータの長さを正しく指定すること。
そうするとレスポンスヘッダに次のようなヘッダが返される。
Set-Cookie: user_session=deleted; expires=Mon, 06-Nov-2006 03:29:49 GMT
Set-Cookie: user_session=deleted; expires=Mon, 06-Nov-2006 03:29:49 GMT; path=/
Set-Cookie: user_session=deleted; expires=Mon, 06-Nov-2006 03:29:49 GMT; path=/; domain=.nicovideo.jp
Set-Cookie: user_session=user_session_xxxxxx_xxxxxxxxxxxxxxxxxx; expires=Thu, 06-Dec-2007 03:29:50 GMT; path=/; domain=.nicovideo.jp
この中に新しく発行されたセッションIDが含まれているので、これを取り出して使用する。