[vimeo] Automatically pickup full movie when rented (Closes #8171)
This commit is contained in:
		@@ -217,7 +217,7 @@ class VimeoIE(VimeoBaseInfoExtractor):
 | 
			
		||||
            r'<iframe[^>]+?src=(["\'])(?P<url>(?:https?:)?//player\.vimeo\.com/video/.+?)\1', webpage)
 | 
			
		||||
        if mobj:
 | 
			
		||||
            player_url = unescapeHTML(mobj.group('url'))
 | 
			
		||||
            surl = smuggle_url(player_url, {'Referer': url})
 | 
			
		||||
            surl = smuggle_url(player_url, {'http_headers': {'Referer': url}})
 | 
			
		||||
            return surl
 | 
			
		||||
        # Look for embedded (swf embed) Vimeo player
 | 
			
		||||
        mobj = re.search(
 | 
			
		||||
@@ -262,11 +262,11 @@ class VimeoIE(VimeoBaseInfoExtractor):
 | 
			
		||||
        self._login()
 | 
			
		||||
 | 
			
		||||
    def _real_extract(self, url):
 | 
			
		||||
        url, data = unsmuggle_url(url)
 | 
			
		||||
        url, data = unsmuggle_url(url, {})
 | 
			
		||||
        headers = std_headers
 | 
			
		||||
        if data is not None:
 | 
			
		||||
        if 'http_headers' in data:
 | 
			
		||||
            headers = headers.copy()
 | 
			
		||||
            headers.update(data)
 | 
			
		||||
            headers.update(data['http_headers'])
 | 
			
		||||
        if 'Referer' not in headers:
 | 
			
		||||
            headers['Referer'] = url
 | 
			
		||||
 | 
			
		||||
@@ -342,7 +342,7 @@ class VimeoIE(VimeoBaseInfoExtractor):
 | 
			
		||||
                raise ExtractorError('The author has restricted the access to this video, try with the "--referer" option')
 | 
			
		||||
 | 
			
		||||
            if re.search(r'<form[^>]+?id="pw_form"', webpage) is not None:
 | 
			
		||||
                if data and '_video_password_verified' in data:
 | 
			
		||||
                if '_video_password_verified' in data:
 | 
			
		||||
                    raise ExtractorError('video password verification failed!')
 | 
			
		||||
                self._verify_video_password(url, video_id, webpage)
 | 
			
		||||
                return self._real_extract(
 | 
			
		||||
@@ -354,6 +354,13 @@ class VimeoIE(VimeoBaseInfoExtractor):
 | 
			
		||||
            if config.get('view') == 4:
 | 
			
		||||
                config = self._verify_player_video_password(url, video_id)
 | 
			
		||||
 | 
			
		||||
        if '>You rented this title.<' in webpage:
 | 
			
		||||
            feature_id = config.get('video', {}).get('vod', {}).get('feature_id')
 | 
			
		||||
            if feature_id and not data.get('force_feature_id', False):
 | 
			
		||||
                return self.url_result(smuggle_url(
 | 
			
		||||
                    'https://player.vimeo.com/player/%s' % feature_id,
 | 
			
		||||
                    {'force_feature_id': True}), 'Vimeo')
 | 
			
		||||
 | 
			
		||||
        # Extract title
 | 
			
		||||
        video_title = config["video"]["title"]
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user