mirror of
				https://github.com/ytdl-org/youtube-dl
				synced 2025-11-04 03:33:46 +00:00 
			
		
		
		
	[vimeo] add support for unlisted video source format extraction
This commit is contained in:
		
							parent
							
								
									b92bb0e02a
								
							
						
					
					
						commit
						cf2dbec630
					
				@ -226,10 +226,12 @@ class VimeoBaseInfoExtractor(InfoExtractor):
 | 
			
		||||
            'is_live': is_live,
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    def _extract_original_format(self, url, video_id):
 | 
			
		||||
    def _extract_original_format(self, url, video_id, unlisted_hash=None):
 | 
			
		||||
        query = {'action': 'load_download_config'}
 | 
			
		||||
        if unlisted_hash:
 | 
			
		||||
            query['unlisted_hash'] = unlisted_hash
 | 
			
		||||
        download_data = self._download_json(
 | 
			
		||||
            url, video_id, fatal=False,
 | 
			
		||||
            query={'action': 'load_download_config'},
 | 
			
		||||
            url, video_id, fatal=False, query=query,
 | 
			
		||||
            headers={'X-Requested-With': 'XMLHttpRequest'})
 | 
			
		||||
        if download_data:
 | 
			
		||||
            source_file = download_data.get('source_file')
 | 
			
		||||
@ -509,6 +511,11 @@ class VimeoIE(VimeoBaseInfoExtractor):
 | 
			
		||||
        {
 | 
			
		||||
            'url': 'https://vimeo.com/160743502/abd0e13fb4',
 | 
			
		||||
            'only_matching': True,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            # requires passing unlisted_hash(a52724358e) to load_download_config request
 | 
			
		||||
            'url': 'https://vimeo.com/392479337/a52724358e',
 | 
			
		||||
            'only_matching': True,
 | 
			
		||||
        }
 | 
			
		||||
        # https://gettingthingsdone.com/workflowmap/
 | 
			
		||||
        # vimeo embed with check-password page protected by Referer header
 | 
			
		||||
@ -673,7 +680,8 @@ class VimeoIE(VimeoBaseInfoExtractor):
 | 
			
		||||
            if config.get('view') == 4:
 | 
			
		||||
                config = self._verify_player_video_password(redirect_url, video_id, headers)
 | 
			
		||||
 | 
			
		||||
        vod = config.get('video', {}).get('vod', {})
 | 
			
		||||
        video = config.get('video') or {}
 | 
			
		||||
        vod = video.get('vod') or {}
 | 
			
		||||
 | 
			
		||||
        def is_rented():
 | 
			
		||||
            if '>You rented this title.<' in webpage:
 | 
			
		||||
@ -733,7 +741,7 @@ class VimeoIE(VimeoBaseInfoExtractor):
 | 
			
		||||
        formats = []
 | 
			
		||||
 | 
			
		||||
        source_format = self._extract_original_format(
 | 
			
		||||
            'https://vimeo.com/' + video_id, video_id)
 | 
			
		||||
            'https://vimeo.com/' + video_id, video_id, video.get('unlisted_hash'))
 | 
			
		||||
        if source_format:
 | 
			
		||||
            formats.append(source_format)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user