【ニコニコ】自動ローカル保存プロクシ NicoCache16

このエントリーをはてなブックマークに追加
503名無しさん@お腹いっぱい。
今まで PHP しか扱ったこと無いけど JDK 入れて頑張って調べてみたよ。

視聴ページで送られてくる Set-Cookie ヘッダが 2 行になったのが原因のようです。
今までは "nicohistory" を設定する Set-Cookie ヘッダだけが送信されていましたが、
今度の変更で "repair_history" (使途不明) を設定する Set-Cookie ヘッダが
"nicohistory" のそれの後に送信されるようになったようです。

Cookie の仕様上これは何も問題は無いのですが、
NicoCache の HttpResponseHeader は送信されたヘッダのみを保持するようになっているため、
いざ "nicohistory" の情報を得ようとしても HttpResponseHeader は後から送信された
"repair_history" の分の Set-Cookie ヘッダしか保持しておらず、
そのため必要な Cookie の情報が取得できず "cookie error." になるようです。

場当たり的な改修としては、getMessageHeader を使うのを諦めて、
responseHeader 全体から正規表現で当該の Set-Cookie 部分を探し出す方法が考えられます。
ちょっと強引過ぎてアレな気がしますが、
少なくとも当方ではこれで再び fetch できるようになりました。

とりあえずその改修を施した nlMovieFetcher を上げておきます。
作者様か Java に詳しい方、後はお願いします…
ttp://www.hofu.mydns.jp/nicocache/img/up032.zip
ちなみに >>447 の改修も一応取り入れてはみていますが、
そもそも自分は公式動画をほとんど見ないので正しく修正されているかは分かりません。

あと、nm 系の動画が fetch できない件については、
動画本体の URL を見てみると、最後に "as3" なる文字列が無いと失敗するようです。
例: smile-***.nicovideo.jp/smile?s=123456789.123456as3
詳細はよく分かりませんが、これは NicoCache 本体の改修が必要になりそうなので、
今回は触れませんでした。