From: Philipp Hagemeister Date: Wed, 24 Aug 2011 21:04:10 +0000 (+0200) Subject: merge upstream X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=commitdiff_plain;h=2b70537d7b102969839557b221a29b6bd3c670af;p=youtube-dl merge upstream --- 2b70537d7b102969839557b221a29b6bd3c670af diff --cc youtube-dl index 6a4209222,e8b19c8d0..67e1a0ffd --- a/youtube-dl +++ b/youtube-dl @@@ -48,13 -37,8 +48,13 @@@ try except ImportError: from cgi import parse_qs +try: + import lxml.etree - except ImportError: # Python < 2.6 ++except ImportError: + pass # Handled below + std_headers = { - 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:2.0b11) Gecko/20100101 Firefox/4.0b11', + 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:5.0.1) Gecko/20100101 Firefox/5.0.1', 'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Encoding': 'gzip, deflate', @@@ -1257,15 -1079,10 +1257,15 @@@ class YoutubeIE(InfoExtractor) # Decide which formats to download req_format = self._downloader.params.get('format', None) - if 'url_encoded_fmt_stream_map' in video_info and len(video_info['url_encoded_fmt_stream_map']) >= 1: + if 'conn' in video_info and video_info['conn'][0].startswith('rtmp'): + self.report_rtmp_download() + video_url_list = [(None, video_info['conn'][0])] + elif 'url_encoded_fmt_stream_map' in video_info and len(video_info['url_encoded_fmt_stream_map']) >= 1: url_data_strs = video_info['url_encoded_fmt_stream_map'][0].split(',') - url_data = [dict(pairStr.split('=') for pairStr in uds.split('&')) for uds in url_data_strs] - url_map = dict((ud['itag'], urllib.unquote(ud['url'])) for ud in url_data) + url_data = [parse_qs(uds) for uds in url_data_strs] + url_data = filter(lambda ud: 'itag' in ud and 'url' in ud, url_data) + url_map = dict((ud['itag'][0], ud['url'][0]) for ud in url_data) - ++ format_limit = self._downloader.params.get('format_limit', None) if format_limit is not None and format_limit in self._available_formats: format_list = self._available_formats[self._available_formats.index(format_limit):] @@@ -2974,7 -2725,7 +2974,7 @@@ if __name__ == '__main__' # Parse command line parser = optparse.OptionParser( usage='Usage: %prog [options] url...', - version='2011.07.09-phihag', - version='2011.08.04', ++ version='2011.08.04-phihag', conflict_handler='resolve', )