[vimeo] fix extraction for password protected player URLs(closes #18889)
This commit is contained in:
		
							parent
							
								
									29639b363d
								
							
						
					
					
						commit
						79fec976b0
					
				
					 1 changed files with 20 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
# coding: utf-8
 | 
			
		||||
from __future__ import unicode_literals
 | 
			
		||||
 | 
			
		||||
import base64
 | 
			
		||||
import json
 | 
			
		||||
import re
 | 
			
		||||
import itertools
 | 
			
		||||
| 
						 | 
				
			
			@ -392,6 +393,22 @@ class VimeoIE(VimeoBaseInfoExtractor):
 | 
			
		|||
                'skip_download': True,
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            'url': 'http://player.vimeo.com/video/68375962',
 | 
			
		||||
            'md5': 'aaf896bdb7ddd6476df50007a0ac0ae7',
 | 
			
		||||
            'info_dict': {
 | 
			
		||||
                'id': '68375962',
 | 
			
		||||
                'ext': 'mp4',
 | 
			
		||||
                'title': 'youtube-dl password protected test video',
 | 
			
		||||
                'uploader_url': r're:https?://(?:www\.)?vimeo\.com/user18948128',
 | 
			
		||||
                'uploader_id': 'user18948128',
 | 
			
		||||
                'uploader': 'Jaime Marquínez Ferrándiz',
 | 
			
		||||
                'duration': 10,
 | 
			
		||||
            },
 | 
			
		||||
            'params': {
 | 
			
		||||
                'videopassword': 'youtube-dl',
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            'url': 'http://vimeo.com/moogaloop.swf?clip_id=2539741',
 | 
			
		||||
            'only_matching': True,
 | 
			
		||||
| 
						 | 
				
			
			@ -452,7 +469,9 @@ class VimeoIE(VimeoBaseInfoExtractor):
 | 
			
		|||
        password = self._downloader.params.get('videopassword')
 | 
			
		||||
        if password is None:
 | 
			
		||||
            raise ExtractorError('This video is protected by a password, use the --video-password option')
 | 
			
		||||
        data = urlencode_postdata({'password': password})
 | 
			
		||||
        data = urlencode_postdata({
 | 
			
		||||
            'password': base64.b64encode(password.encode()),
 | 
			
		||||
        })
 | 
			
		||||
        pass_url = url + '/check-password'
 | 
			
		||||
        password_request = sanitized_Request(pass_url, data)
 | 
			
		||||
        password_request.add_header('Content-Type', 'application/x-www-form-urlencoded')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue