Perlでニコニコ動画のflvとコメントxmlをダウンロードするという記事を拝見しまして、「pythonでもできないかなー」と思ってやってみました。
コメントは今回省略しましたが、flvまではmechanizeモジュールの力を借りて成功…したと思います。pythonのmechanizeモジュールはクッキーを勝手に食べてくれるようです。
(試した環境:MacOS10.4.10 / python 2.5.1)
import os,string
from mechanize import Browser
br = Browser()
user_id ='yourname@yourhost.com'
pass_wd = 'yourpassword'
mov_name='sm999999'
save_dir ='/Users/yourlocation/Desktop/'
def login(id,passwd):
br.open("http://www.nicovideo.jp/")
br.select_form(nr=0)
br["mail"]=id
br["password"]=passwd
contents =br.submit()
print 'Login successful'
def main(target):
br.open("http://www.nicovideo.jp/watch/%s" % target)
contents=br.open("http://www.nicovideo.jp/api/getflv?v=%s" % target)
temp = contents.get_data().split('&')
res = unescape(temp[2])
res = string.replace(res,'url=','')
print 'Location get successful'
savefile(target,res)
def savefile(fileName,fileLoc):
f=open(save_dir + fileName + '.flv','wb')
contents=br.open(fileLoc)
f.write(contents.read())
print 'File save complete'
f.close
def unescape(strg):
strg = string.replace(strg,'%2F','/')
strg = string.replace(strg,'%3A',':')
strg = string.replace(strg,'%3D','=')
strg = string.replace(strg,'%3F','?')
return strg
if __name__ == '__main__':
login(user_id,pass_wd)
main(mov_name)