merge upstream
authorPhilipp Hagemeister <phihag@phihag.de>
Wed, 24 Aug 2011 21:04:10 +0000 (23:04 +0200)
committerPhilipp Hagemeister <phihag@phihag.de>
Wed, 24 Aug 2011 21:04:10 +0000 (23:04 +0200)
1  2 
youtube-dl

diff --cc youtube-dl
index 6a4209222aaa1dd63e08542f715508ad539df8a9,e8b19c8d0a6a90265a17000522e5a4e455bb1149..67e1a0ffd75c7f2be68f9b92f63a987bf6c4ccf4
@@@ -48,13 -37,8 +48,13 @@@ try
  except ImportError:
        from cgi import parse_qs
  
- except ImportError: # Python < 2.6
 +try:
 +      import lxml.etree
++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',
                )