Merge https://github.com/rg3/youtube-dl into prefer-webm
authorRogério Brito <rbrito@ime.usp.br>
Thu, 4 Aug 2011 20:44:33 +0000 (17:44 -0300)
committerRogério Brito <rbrito@ime.usp.br>
Thu, 4 Aug 2011 20:44:33 +0000 (17:44 -0300)
1  2 
youtube-dl

diff --combined youtube-dl
index 5f275c3cbe92d4e22a3508329fd1ed3d951ce36d,e8b19c8d0a6a90265a17000522e5a4e455bb1149..569c58e4aa99e053ad34144a133d423ba5a8f429
@@@ -38,7 -38,7 +38,7 @@@ except ImportError
        from cgi import parse_qs
  
  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',
@@@ -864,7 -864,7 +864,7 @@@ class YoutubeIE(InfoExtractor)
        _AGE_URL = 'http://www.youtube.com/verify_age?next_url=/&gl=US&hl=en'
        _NETRC_MACHINE = 'youtube'
        # Listed in order of quality
 -      _available_formats = ['38', '37', '22', '45', '35', '34', '43', '18', '6', '5', '17', '13']
 +      _available_formats = ['38', '37', '45', '22', '43', '35', '34', '18', '6', '5', '17', '13']
        _video_extensions = {
                '13': '3gp',
                '17': 'mp4',
                # Decide which formats to download
                req_format = self._downloader.params.get('format', None)
  
-               if 'fmt_url_map' in video_info and len(video_info['fmt_url_map']) >= 1 and ',' in video_info['fmt_url_map'][0]:
-                       url_map = dict(tuple(pair.split('|')) for pair in video_info['fmt_url_map'][0].split(','))
+               if '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)
                        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):]
@@@ -2723,7 -2725,7 +2725,7 @@@ if __name__ == '__main__'
                # Parse command line
                parser = optparse.OptionParser(
                        usage='Usage: %prog [options] url...',
-                       version='2011.03.29',
+                       version='2011.08.04',
                        conflict_handler='resolve',
                )