[generic] Add support for rutube embeds
This commit is contained in:
parent
bc82f22879
commit
eb3079b6ce
|
@ -84,6 +84,7 @@ from .twentymin import TwentyMinutenIE
|
||||||
from .ustream import UstreamIE
|
from .ustream import UstreamIE
|
||||||
from .openload import OpenloadIE
|
from .openload import OpenloadIE
|
||||||
from .videopress import VideoPressIE
|
from .videopress import VideoPressIE
|
||||||
|
from .rutube import RutubeIE
|
||||||
|
|
||||||
|
|
||||||
class GenericIE(InfoExtractor):
|
class GenericIE(InfoExtractor):
|
||||||
|
@ -1502,6 +1503,23 @@ class GenericIE(InfoExtractor):
|
||||||
},
|
},
|
||||||
'add_ie': [VideoPressIE.ie_key()],
|
'add_ie': [VideoPressIE.ie_key()],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
# Rutube embed
|
||||||
|
'url': 'http://magazzino.friday.ru/videos/vipuski/kazan-2',
|
||||||
|
'info_dict': {
|
||||||
|
'id': '9b3d5bee0a8740bf70dfd29d3ea43541',
|
||||||
|
'ext': 'flv',
|
||||||
|
'title': 'Магаззино: Казань 2',
|
||||||
|
'description': 'md5:99bccdfac2269f0e8fdbc4bbc9db184a',
|
||||||
|
'uploader': 'Магаззино',
|
||||||
|
'upload_date': '20170228',
|
||||||
|
'uploader_id': '996642',
|
||||||
|
},
|
||||||
|
'params': {
|
||||||
|
'skip_download': True,
|
||||||
|
},
|
||||||
|
'add_ie': [RutubeIE.ie_key()],
|
||||||
|
},
|
||||||
{
|
{
|
||||||
# ThePlatform embedded with whitespaces in URLs
|
# ThePlatform embedded with whitespaces in URLs
|
||||||
'url': 'http://www.golfchannel.com/topics/shows/golftalkcentral.htm',
|
'url': 'http://www.golfchannel.com/topics/shows/golftalkcentral.htm',
|
||||||
|
@ -2480,6 +2498,12 @@ class GenericIE(InfoExtractor):
|
||||||
return _playlist_from_matches(
|
return _playlist_from_matches(
|
||||||
videopress_urls, ie=VideoPressIE.ie_key())
|
videopress_urls, ie=VideoPressIE.ie_key())
|
||||||
|
|
||||||
|
# Look for Rutube embeds
|
||||||
|
rutube_urls = RutubeIE._extract_urls(webpage)
|
||||||
|
if rutube_urls:
|
||||||
|
return _playlist_from_matches(
|
||||||
|
rutube_urls, ie=RutubeIE.ie_key())
|
||||||
|
|
||||||
# Looking for http://schema.org/VideoObject
|
# Looking for http://schema.org/VideoObject
|
||||||
json_ld = self._search_json_ld(
|
json_ld = self._search_json_ld(
|
||||||
webpage, video_id, default={}, expected_type='VideoObject')
|
webpage, video_id, default={}, expected_type='VideoObject')
|
||||||
|
|
|
@ -44,6 +44,12 @@ class RutubeIE(InfoExtractor):
|
||||||
'only_matching': True,
|
'only_matching': True,
|
||||||
}]
|
}]
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def _extract_urls(webpage):
|
||||||
|
return [mobj.group('url') for mobj in re.finditer(
|
||||||
|
r'<iframe[^>]+?src=(["\'])(?P<url>(?:https?:)?//rutube\.ru/embed/[\da-z]{32}.*?)\1',
|
||||||
|
webpage)]
|
||||||
|
|
||||||
def _real_extract(self, url):
|
def _real_extract(self, url):
|
||||||
video_id = self._match_id(url)
|
video_id = self._match_id(url)
|
||||||
video = self._download_json(
|
video = self._download_json(
|
||||||
|
|
Loading…
Reference in New Issue