mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-12-15 07:42:42 +00:00
[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
|
# coding: utf-8
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
import base64
|
||||||
import json
|
import json
|
||||||
import re
|
import re
|
||||||
import itertools
|
import itertools
|
||||||
|
@ -392,6 +393,22 @@ class VimeoIE(VimeoBaseInfoExtractor):
|
||||||
'skip_download': True,
|
'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',
|
'url': 'http://vimeo.com/moogaloop.swf?clip_id=2539741',
|
||||||
'only_matching': True,
|
'only_matching': True,
|
||||||
|
@ -452,7 +469,9 @@ class VimeoIE(VimeoBaseInfoExtractor):
|
||||||
password = self._downloader.params.get('videopassword')
|
password = self._downloader.params.get('videopassword')
|
||||||
if password is None:
|
if password is None:
|
||||||
raise ExtractorError('This video is protected by a password, use the --video-password option')
|
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'
|
pass_url = url + '/check-password'
|
||||||
password_request = sanitized_Request(pass_url, data)
|
password_request = sanitized_Request(pass_url, data)
|
||||||
password_request.add_header('Content-Type', 'application/x-www-form-urlencoded')
|
password_request.add_header('Content-Type', 'application/x-www-form-urlencoded')
|
||||||
|
|
Loading…
Reference in a new issue