[vimeo:ondemand] Pass Referer along with embed URL (#10624)
This commit is contained in:
parent
546edb2efa
commit
d002e91986
1 changed files with 25 additions and 3 deletions
|
@ -350,6 +350,10 @@ class VimeoIE(VimeoBaseInfoExtractor):
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def _smuggle_referrer(url, referrer_url):
|
||||||
|
return smuggle_url(url, {'http_headers': {'Referer': referrer_url}})
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _extract_vimeo_url(url, webpage):
|
def _extract_vimeo_url(url, webpage):
|
||||||
# Look for embedded (iframe) Vimeo player
|
# Look for embedded (iframe) Vimeo player
|
||||||
|
@ -357,8 +361,7 @@ class VimeoIE(VimeoBaseInfoExtractor):
|
||||||
r'<iframe[^>]+?src=(["\'])(?P<url>(?:https?:)?//player\.vimeo\.com/video/.+?)\1', webpage)
|
r'<iframe[^>]+?src=(["\'])(?P<url>(?:https?:)?//player\.vimeo\.com/video/.+?)\1', webpage)
|
||||||
if mobj:
|
if mobj:
|
||||||
player_url = unescapeHTML(mobj.group('url'))
|
player_url = unescapeHTML(mobj.group('url'))
|
||||||
surl = smuggle_url(player_url, {'http_headers': {'Referer': url}})
|
return VimeoIE._smuggle_referrer(player_url, url)
|
||||||
return surl
|
|
||||||
# Look for embedded (swf embed) Vimeo player
|
# Look for embedded (swf embed) Vimeo player
|
||||||
mobj = re.search(
|
mobj = re.search(
|
||||||
r'<embed[^>]+?src="((?:https?:)?//(?:www\.)?vimeo\.com/moogaloop\.swf.+?)"', webpage)
|
r'<embed[^>]+?src="((?:https?:)?//(?:www\.)?vimeo\.com/moogaloop\.swf.+?)"', webpage)
|
||||||
|
@ -585,6 +588,20 @@ class VimeoOndemandIE(VimeoBaseInfoExtractor):
|
||||||
'uploader_url': 're:https?://(?:www\.)?vimeo\.com/gumfilms',
|
'uploader_url': 're:https?://(?:www\.)?vimeo\.com/gumfilms',
|
||||||
'uploader_id': 'gumfilms',
|
'uploader_id': 'gumfilms',
|
||||||
},
|
},
|
||||||
|
}, {
|
||||||
|
# requires Referer to be passed along with og:video:url
|
||||||
|
'url': 'https://vimeo.com/ondemand/36938/126682985',
|
||||||
|
'info_dict': {
|
||||||
|
'id': '126682985',
|
||||||
|
'ext': 'mp4',
|
||||||
|
'title': 'Rävlock, rätt läte på rätt plats',
|
||||||
|
'uploader': 'Lindroth & Norin',
|
||||||
|
'uploader_url': 're:https?://(?:www\.)?vimeo\.com/user14430847',
|
||||||
|
'uploader_id': 'user14430847',
|
||||||
|
},
|
||||||
|
'params': {
|
||||||
|
'skip_download': True,
|
||||||
|
},
|
||||||
}, {
|
}, {
|
||||||
'url': 'https://vimeo.com/ondemand/nazmaalik',
|
'url': 'https://vimeo.com/ondemand/nazmaalik',
|
||||||
'only_matching': True,
|
'only_matching': True,
|
||||||
|
@ -599,7 +616,12 @@ class VimeoOndemandIE(VimeoBaseInfoExtractor):
|
||||||
def _real_extract(self, url):
|
def _real_extract(self, url):
|
||||||
video_id = self._match_id(url)
|
video_id = self._match_id(url)
|
||||||
webpage = self._download_webpage(url, video_id)
|
webpage = self._download_webpage(url, video_id)
|
||||||
return self.url_result(self._og_search_video_url(webpage), VimeoIE.ie_key())
|
return self.url_result(
|
||||||
|
# Some videos require Referer to be passed along with og:video:url
|
||||||
|
# similarly to generic vimeo embeds (e.g.
|
||||||
|
# https://vimeo.com/ondemand/36938/126682985).
|
||||||
|
VimeoIE._smuggle_referrer(self._og_search_video_url(webpage), url),
|
||||||
|
VimeoIE.ie_key())
|
||||||
|
|
||||||
|
|
||||||
class VimeoChannelIE(VimeoBaseInfoExtractor):
|
class VimeoChannelIE(VimeoBaseInfoExtractor):
|
||||||
|
|
Loading…
Reference in a new issue