Rubyでニコニコをごにょごにょ MH35
で、結局何したい? RubyでニコニコのCookieをとってきて、それを 使っていろいろアクセスしたい とりあえず、実装すべきもの実装することにした
問題点 OSやブラウザによってCookieの場所や格納方法 が全然違う IEだったらIE式Cookie(要するにドメインごとの テキストファイル)、FirefoxやChromeだったら SQLite3、SafariだったらPListかBinary Cookie OSごとに場所がかなり違う Firefoxの場合、Windows 9xだとWindowsディレ クトリを探すし、Windows XPだとDocuments And Settingsから探すし、Windows 7だと AppData\Roamingから探すし、Macだと Library/Application Supportから探すし、Linuxだ ったら.mozillaから探す
で、実装した結果が bnicovideoというgem 要するにブラウザからニコニコ動画のセッション Cookieをとってきてそれを使ってマイリストや動 画情報を取得するライブラリ 長所 ブラウザには依存するがOSには依存しないプロ グラムを作成することが可能 短所 ログイン機能は持ってないので自前でセッション を作ることができない
インストールのしかた gem install bnicovideo 依存ライブラリとしてsqlite3とinifileがある sqlite3はきちんと新しいlibsqlite3とリンクさせな いといけないので注意(特にMacを使っている人は 気をつけること(というかそれで私がはまった)) ぶっちゃけ、後でみればソースコードはわかる が、Githubにもソースコードはある https://github.com/mh35/bnicovideo/
実装してて苦労した点 SafariのBinary Cookieの仕様が意味不明 だいたい文献によって仕様が全然違うから自分で どれが正しいか調べていったら一応形はできた ただし、符合するかどうかについては何ら実験で きておらず、人柱が必要 Windowsの区別 区別するのに必要最小限の情報だけを使って実装 したので、それで処理 Windows 9xなどでのマルチプロファイル 検知する方法などがないのであきらめた
実際に使ってみた デモを見せます
ぶっちゃけると これやるだけならセッションいらない 公開マイリストへアクセスするだけなんで、 RSSみるのにログインいらないし、動画情報もロ グインしなくてもみられるんだから どうしてこうなった はじめから考えてなかったから 将来的にどうしたい? 機能拡張により本当に必要なものが出てくる予定 なので、それで挽回したい
自分について 現在失業してて就職活動中 Rubyエンジニアが欲しい人は私に声かけてくだ さい Twitter MH35JP メール contact@mh35.info 自前でドメインを確保してメールサーバ立ち上げ てます。 設定が不調で、送信ができません。送信はGMail からになる予定