youtubeからflvのurlを取り出すサンプル
import urllib2 import re const_video_url_params_re = re.compile(r'player2\.swf\?([^"]+)"', re.M) const_video_url_real_str = 'http://www.youtube.com/get_video?%s' def request_create(url): retval = urllib2.Request(url) retval.add_header('User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0') retval.add_header('Accept-Charset', 'ISO-8859-1,utf-8;q=0.7,*;q=0.7') retval.add_header('Accept', 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5') retval.add_header('Accept-Language', 'en-us,en;q=0.5') return retval def perform_request(url): request = request_create(url) response = urllib2.urlopen(request) return response def geturl(url): response = perform_request(url).read() match = const_video_url_params_re.search(response) param = match.group(0) url = const_video_url_real_str % param response = perform_request(url) return response.geturl() if __name__ == '__main__': print geturl('http://jp.youtube.com/watch?v=-K0Kap9NiXU')
追記:
twistedでやろうとしたけどclientモジュールそのままではresponseのヘッダが取れないのでめんどくなってやめた。
(ちょっといじれば出来るんだけど)
うくく。