diff options
Diffstat (limited to 'youtube_dl/extractor/generic.py')
| -rw-r--r-- | youtube_dl/extractor/generic.py | 11 | 
1 files changed, 8 insertions, 3 deletions
| diff --git a/youtube_dl/extractor/generic.py b/youtube_dl/extractor/generic.py index dc4dea4ad..f92e61fea 100644 --- a/youtube_dl/extractor/generic.py +++ b/youtube_dl/extractor/generic.py @@ -109,6 +109,11 @@ class GenericIE(InfoExtractor):          return new_url      def _real_extract(self, url): +        parsed_url = compat_urlparse.urlparse(url) +        if not parsed_url.scheme: +            self._downloader.report_warning('The url doesn\'t specify the protocol, trying with http') +            return self.url_result('http://' + url) +          try:              new_url = self._test_redirect(url)              if new_url: @@ -153,7 +158,7 @@ class GenericIE(InfoExtractor):                  mobj = re.search(r'<meta.*?property="og:video".*?content="(.*?)"', webpage)          if mobj is None:              # HTML5 video -            mobj = re.search(r'<video[^<]*>.*?<source .*?src="([^"]+)"', webpage, flags=re.DOTALL) +            mobj = re.search(r'<video[^<]*(?:>.*?<source.*?)? src="([^"]+)"', webpage, flags=re.DOTALL)          if mobj is None:              raise ExtractorError(u'Invalid URL: %s' % url) @@ -162,9 +167,9 @@ class GenericIE(InfoExtractor):          if mobj.group(1) is None:              raise ExtractorError(u'Invalid URL: %s' % url) -        video_url = compat_urllib_parse.unquote(mobj.group(1)) +        video_url = mobj.group(1)          video_url = compat_urlparse.urljoin(url, video_url) -        video_id = os.path.basename(video_url) +        video_id = compat_urllib_parse.unquote(os.path.basename(video_url))          # here's a fun little line of code for you:          video_extension = os.path.splitext(video_id)[1][1:] | 
