「独自にログインしてセッションIDを取得する」の編集履歴(バックアップ)一覧はこちら
「独自にログインしてセッションIDを取得する」(2007/11/06 (火) 13:25:42) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
+[[ニコニコ動画から動画をダウンロードする]]
++ニコニコ動画にアクセスするためのセッションIDを取得する
+++[[IEからセッションIDを取得する]]
+++[[FirefoxからセッションIDを取得する]]
+++&bold(){独自にログインしてセッションIDを取得する}
+++[[セッションIDの有効性を確認する]]
++[[目的の動画のurlを突き止める]]
++[[動画をダウンロードする]]
+[[ダウンロードした動画を再生する]]
----
まずはじめに、HTTPによるクライアントとサーバーのやり取りについて知識が不足していると感じている人は、順番が前後するが[[セッションIDの有効性を確認する]]のページを参照してそこのリンクから勉強しておいていただきたい。
----
ブラウザからセッションIDを取得できなかった場合には、プログラム自身がログイン処理を行い、ニコニコ動画から新しいセッションIDを発行してもらう手続きが必要になる。
ニコニコ動画でログインボタンをクリックした際にアクセスするURLは
>https://secure.nicovideo.jp/secure/login?site=niconico
である。注意したいのはプロトコルがHTTPではなく、HTTPSであることだ。HTTPによる通信は非常に簡単なのだが、HTTPSの場合、SSLによるデータ暗号化がかかるため、少々面倒になる。SSL対応処理を自分で書くのは大変なので、ここは出来合いのライブラリを使うのが得策だ。ここではOpenSSLを推奨しておく。
----
OpenSSL [[公式>http://www.openssl.org/]] [[日本語>http://www.infoscience.co.jp/technical/openssl/]]
SSLによる暗号化を使った通信ができるライブラリ。基本的なソケット通信とほぼ同じ感じでコードが書けるのでそれなりに楽。
[[68user's page:SSL/TLS でアクセスしてみよう (1)>http://x68000.q-e-d.net/~68user/net/ssl-1.html]]
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にはデータの長さを正しく指定すること。勿論セッションIDもCookieヘッダで指定する。
そうするとレスポンスヘッダに次のようなヘッダが返される。
>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が含まれているので、これを取り出して使用する。
+[[ニコニコ動画から動画をダウンロードする]]
++ニコニコ動画にアクセスするためのセッションIDを取得する
+++[[IEからセッションIDを取得する]]
+++[[FirefoxからセッションIDを取得する]]
+++&bold(){独自にログインしてセッションIDを取得する}
+++[[セッションIDの有効性を確認する]]
++[[目的の動画のurlを突き止める]]
++[[動画をダウンロードする]]
+[[ダウンロードした動画を再生する]]
----
まずはじめに、HTTPによるクライアントとサーバーのやり取りについて知識が不足していると感じている人は、順番が前後するが[[セッションIDの有効性を確認する]]のページを参照してそこのリンクから勉強しておいていただきたい。
----
ブラウザからセッションIDを取得できなかった場合には、プログラム自身がログイン処理を行い、ニコニコ動画から新しいセッションIDを発行してもらう手続きが必要になる。
ニコニコ動画でログインボタンをクリックした際にアクセスするURLは
>https://secure.nicovideo.jp/secure/login?site=niconico
である。注意したいのはプロトコルがHTTPではなく、HTTPSであることだ。HTTPによる通信は非常に簡単なのだが、HTTPSの場合、SSLによるデータ暗号化がかかるため、少々面倒になる。SSL対応処理を自分で書くのは大変なので、ここは出来合いのライブラリを使うのが得策だ。ここではOpenSSLを推奨しておく。
----
OpenSSL [[公式>http://www.openssl.org/]] [[日本語>http://www.infoscience.co.jp/technical/openssl/]]
SSLによる暗号化を使った通信ができるライブラリ。基本的なソケット通信とほぼ同じ感じでコードが書けるのでそれなりに楽。
[[68user's page:SSL/TLS でアクセスしてみよう (1)>http://x68000.q-e-d.net/~68user/net/ssl-1.html]]
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が含まれているので、これを取り出して使用する。
表示オプション
横に並べて表示:
変化行の前後のみ表示: