ニコニコのflvが欲しいなぁと思ったので
Pythonで書いてみた。
nicovideonが動かないのもあって面倒だったので。
で、出力されるurlをブラウザにでもはっつけて保存すると良い。
permalinkとcookieはパラメタにすべきだが、面倒なのでTextMateに直に書いている。
cookies.txtはログイン後のFirefoxからでもぶっこぬき。(ログイン状態でないとswfに対するパラメータが得られないので)
正規表現が手抜きです。
実行結果は
http://s-clb2.smilevideo.jp/smile?v=335707.92386
みたいになるです。
貼り付けるとMacのバックスラッシュが?になっちゃうなぁ……。
そういえば、J9シリーズがあって吹きました。
ブライガーとバクシンガー好きなんですよ。
あのとびきりダサい感じが。
「ぎんがせんぷー ぎんがせんぷー」
たまらないぜハニハニ。
import urllib, urllib2, cookielib import sys import os import re import cgi permalink = "http://www.nicovideo.jp/watch/sm335707" cookie = "cookies.txt" def main(): p_flv = re.compile('.*url=(.+)&.*') p_sm = re.compile('http://.+(sm[0-9]+)') p_ts = re.compile('.*flvplayer??.swf???ts=(??w+).*') m = p_sm.search(permalink) vid = m.group(1) cj = cookielib.MozillaCookieJar() cj.load(cookie) opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) result = opener.open(permalink) m = p_ts.search(result.read()) if not m is None: tsid = m.group(1) result = opener.open( "http://www.nicovideo.jp/getflv?ts="+tsid+"&v="+vid ) param = urllib.unquote(str(result.read())) m = p_flv.search(param) if not m is None: print m.group(1) pass if __name__ == '__main__': main()