Browse Source

[generic] Add support for protocol-independent URLs (Fixes #2810)

totalwebcasting
Philipp Hagemeister 11 years ago
parent
commit
ebd3c7b370
1 changed files with 22 additions and 1 deletions
  1. +22
    -1
      youtube_dl/extractor/generic.py

+ 22
- 1
youtube_dl/extractor/generic.py View File

@ -248,6 +248,18 @@ class GenericIE(InfoExtractor):
'ext': 'mp4', 'ext': 'mp4',
'title': 'Honda’s New Asimo Robot Is More Human Than Ever', 'title': 'Honda’s New Asimo Robot Is More Human Than Ever',
} }
},
# Dailymotion embed
{
'url': 'http://www.spi0n.com/zap-spi0n-com-n216/',
'md5': '441aeeb82eb72c422c7f14ec533999cd',
'info_dict': {
'id': 'k2mm4bCdJ6CQ2i7c8o2',
'ext': 'mp4',
'title': 'Le Zap de Spi0n n°216 - Zapping du Web',
'uploader': 'Spi0n',
},
'add_ie': ['Dailymotion'],
} }
] ]
@ -333,6 +345,15 @@ class GenericIE(InfoExtractor):
} }
def _real_extract(self, url): def _real_extract(self, url):
if url.startswith('//'):
return {
'_type': 'url',
'url': (
'http:'
if self._downloader.params.get('prefer_insecure', False)
else 'https:') + url,
}
parsed_url = compat_urlparse.urlparse(url) parsed_url = compat_urlparse.urlparse(url)
if not parsed_url.scheme: if not parsed_url.scheme:
default_search = self._downloader.params.get('default_search') default_search = self._downloader.params.get('default_search')
@ -469,7 +490,7 @@ class GenericIE(InfoExtractor):
matches = re.findall( matches = re.findall(
r'<iframe[^>]+?src=(["\'])(?P<url>(?:https?:)?//(?:www\.)?dailymotion\.com/embed/video/.+?)\1', webpage) r'<iframe[^>]+?src=(["\'])(?P<url>(?:https?:)?//(?:www\.)?dailymotion\.com/embed/video/.+?)\1', webpage)
if matches: if matches:
urlrs = [self.url_result(unescapeHTML(tuppl[1]), 'Dailymotion')
urlrs = [self.url_result(unescapeHTML(tuppl[1]))
for tuppl in matches] for tuppl in matches]
return self.playlist_result( return self.playlist_result(
urlrs, playlist_id=video_id, playlist_title=video_title) urlrs, playlist_id=video_id, playlist_title=video_title)


Loading…
Cancel
Save