「FirefoxからセッションIDを取得する」の編集履歴(バックアップ)一覧に戻る

FirefoxからセッションIDを取得する - (2007/11/05 (月) 13:20:17) のソース

+[[ニコニコ動画から動画をダウンロードする]]
++ニコニコ動画にアクセスするためのセッションIDを取得する
+++[[IEからセッションIDを取得する]]
+++&bold(){FirefoxからセッションIDを取得する}
+++[[独自にログインしてセッションIDを取得する]]
+++[[セッションIDの有効性を確認する]]
++[[目的の動画のurlを突き止める]]
++[[動画をダウンロードする]]
+[[ダウンロードした動画を再生する]]


----

FireFoxはIEと同じようにセッションIDをクッキーファイルに書き出している。その位置はプロファイルフォルダである。詳しくは[[Firefox Help: プロファイルの管理>http://www.mozilla-japan.org/support/firefox/profile]]を参照のこと。このフォルダにある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の有効性を確認する]]を参照のこと。
目安箱バナー