Bläddra i källkod

Merge remote-tracking branch 'origin/master'

Philipp Hagemeister 12 år sedan
förälder
incheckning
f7ff55aa78
2 ändrade filer med 4 tillägg och 1 borttagningar
  1. 2 1
      test/test_download.py
  2. 2 0
      youtube_dl/extractor/mtv.py

+ 2 - 1
test/test_download.py

@@ -26,6 +26,7 @@ import youtube_dl.YoutubeDL
 from youtube_dl.utils import (
 from youtube_dl.utils import (
     compat_str,
     compat_str,
     compat_urllib_error,
     compat_urllib_error,
+    compat_HTTPError,
     DownloadError,
     DownloadError,
     ExtractorError,
     ExtractorError,
     UnavailableVideoError,
     UnavailableVideoError,
@@ -105,7 +106,7 @@ def generator(test_case):
                     ydl.download([test_case['url']])
                     ydl.download([test_case['url']])
                 except (DownloadError, ExtractorError) as err:
                 except (DownloadError, ExtractorError) as err:
                     # Check if the exception is not a network related one
                     # Check if the exception is not a network related one
-                    if not err.exc_info[0] in (compat_urllib_error.URLError, socket.timeout, UnavailableVideoError):
+                    if not err.exc_info[0] in (compat_urllib_error.URLError, socket.timeout, UnavailableVideoError) or (err.exc_info[0] == compat_HTTPError and err.exc_info[1].code == 503):
                         raise
                         raise
 
 
                     if try_num == RETRIES:
                     if try_num == RETRIES:

+ 2 - 0
youtube_dl/extractor/mtv.py

@@ -80,6 +80,8 @@ class MTVIE(InfoExtractor):
         video_id = self._id_from_uri(uri)
         video_id = self._id_from_uri(uri)
         self.report_extraction(video_id)
         self.report_extraction(video_id)
         mediagen_url = itemdoc.find('%s/%s' % (_media_xml_tag('group'), _media_xml_tag('content'))).attrib['url']
         mediagen_url = itemdoc.find('%s/%s' % (_media_xml_tag('group'), _media_xml_tag('content'))).attrib['url']
+        # Remove the templates, like &device={device}
+        mediagen_url = re.sub(r'&[^=]*?={.*?}(?=(&|$))', u'', mediagen_url)
         if 'acceptMethods' not in mediagen_url:
         if 'acceptMethods' not in mediagen_url:
             mediagen_url += '&acceptMethods=fms'
             mediagen_url += '&acceptMethods=fms'
         mediagen_page = self._download_webpage(mediagen_url, video_id,
         mediagen_page = self._download_webpage(mediagen_url, video_id,