ニコニコ側のリダイレクトURLが相対URIの時にエラー
Python3.2.3のソースだとこのようになってました。
# For security reasons we don't allow redirection to anything other # than http, https or ftp. if urlparts.scheme not in ('http', 'https', 'ftp', ''): raise HTTPError( newurl, code, "%s - Redirection to url '%s' is not allowed" % (msg, newurl), headers, fp)
というわけで、Windows版に付属してるPortablePython(3.2.1)が若干古いのが問題なようです…。
修正してるリビジョンはこちら http://hg.python.org/cpython/file/86141d28b20d/Lib/urllib/request.py
Pythonをアップデートして修正しました。 公式ビルドをuniextractすればPortableになるみたいです。
…となると、PortablePythonの立場は…? # 他にたくさんライブラリが入ってることぐらい?
たとえば、這いよれ!ニャル子さん 第10話「超時空の覇者」の情報を
から取得すると、 が帰ってくる。で、このvideo_idに合わせて、 にアクセスすると、 にリダイレクトされる。この時のヘッダは で、以下のLocation行でジャンプ先を指定しているものの、 これはRFC違反。 http://www.studyinghttp.net/cgi-bin/rfc.cgi?2616#Sec14.30 で、absoluteURIの定義はhttp://www.ietf.org/rfc/rfc2396.txt なので、Locationにはスキームが必ず必要なのに、ニコニコ動画の方にはスキームが付いてないさーてどうしよう
ただ、Pythonのソースを見ると
とセキュリティを問題にしている模様