- ニコニコ動画から動画をダウンロードする
- ニコニコ動画にアクセスするためのセッションIDを取得する
- IEからセッションIDを取得する
- FirefoxからセッションIDを取得する
- 独自にログインしてセッションIDを取得する
- セッションIDの有効性を確認する
- 目的の動画のurlを突き止める
- 動画をダウンロードする
- ニコニコ動画にアクセスするためのセッションIDを取得する
- ダウンロードした動画を再生する
FireFoxはIEと同じようにセッションIDをクッキーファイルに書き出している。その位置はプロファイルフォルダである。詳しくはFirefox Help: プロファイルの管理を参照のこと。このフォルダにあるcookies.txtファイルがセッションIDに記述される。
例えばWindows XPではプロファイルフォルダはデフォルトの場合、C:\Documents And Settings\username\Application Data\Mozilla\Firefox\Profiles\xxxxxxxx.default\となる。usernameとxxxxxxxxの部分は環境によって異なる。Application DataのパスはWindowsのAPI・SHGetSpecialFolderLocationを使って取得することが出来る。Profiles\xxxxxxxx.defaultの部分が正確にはどうなっているのかについては、Firefoxフォルダにあるprofiles.iniの中に記述されている。
profiles.iniにはProfile0というセクションがあり、その中のPathキーには必要なProfiles\xxxxxxxx.defaultの値が記録されている。
[General]
StartWithLastProfile=1
[Profile0]
Name=default
IsRelative=1
Path=Profiles/xxxxxxxx.default
iniファイルのデータの読み込みはWindowsのAPI・GetPrivateProfileString等を利用するとよい。ここまででクッキーファイルの完全なパスが取得できたことになる。
FirefoxのクッキーファイルはIEのそれと異なり、すべてのサイトのクッキーを1ファイルにまとめて記述してある。説明をするより、実際のファイルの内容を見たほうが遙かに分かりやすい。
# HTTP Cookie File
# http://www.netscape.com/newsref/std/cookie_spec.html
# This is a generated file! Do not edit.
# To delete cookies, use the Cookie Manager.
.google.co.jp TRUE / FALSE xxxxxxxxxx PREF ID=xxxxxxxxxxxxxxxx:TM=xxxxxxxxxx:LM=xxxxxxxxxx:S=xxxxxxxxxxxxxxxx
.youtube.com TRUE / FALSE xxxxxxxxxx LOCALE_PREFERENCE xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx==
.nicovideo.jp TRUE / FALSE xxxxxxxxxx __utma xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
.nicovideo.jp TRUE / FALSE xxxxxxxxxx user_session user_session_xxxxxx_xxxxxxxxxxxxxxxxxxx
折り返しの都合でそれぞれ2行ずつになっているように見えるかも知れないが、実際にはそれぞれのデータは1行に1つ記述される。ここですべきことは、
- 各行をそれぞれ読み込み
- タブ文字で複数(7つ)のトークンに分割し
- 最初のトークンが.nicovideo.jpであるかを調べ
- もしそうなら5番目のトークンがuser_sessionであるかを調べ
- もしそうなら6番目のトークンがセッションID
というようにしてセッションIDを取得する。
IEの場合と同様であるが、ここで取得したセッションIDが有効かどうかは実際にニコニコ動画にアクセスしてみないとわからない。確認するためにはセッションIDの有効性を確認するを参照のこと。