@ -4,7 +4,6 @@ from __future__ import unicode_literals
import json
import json
import re
import re
import itertools
import itertools
import hashlib
from .common import InfoExtractor
from .common import InfoExtractor
from ..compat import (
from ..compat import (
@ -178,17 +177,15 @@ class VimeoIE(VimeoBaseInfoExtractor):
password = self . _downloader . params . get ( ' videopassword ' , None )
password = self . _downloader . params . get ( ' videopassword ' , None )
if password is None :
if password is None :
raise ExtractorError ( ' This video is protected by a password, use the --video-password option ' , expected = True )
raise ExtractorError ( ' This video is protected by a password, use the --video-password option ' , expected = True )
token = self . _search_regex ( r ' xsrft: \' (.*?) \' ' , webpage , ' login token ' )
data = compat_urllib_parse . urlencode ( {
token = self . _search_regex ( r ' xsrft = \' (.*?) \' ' , webpage , ' login token ' )
data = urlencode_postdata ( {
' password ' : password ,
' password ' : password ,
' token ' : token ,
' token ' : token ,
} )
} )
# I didn't manage to use the password with https
if url . startswith ( ' https ' ) :
pass_url = url . replace ( ' https ' , ' http ' )
else :
pass_url = url
password_request = compat_urllib_request . Request ( pass_url + ' /password ' , data )
if url . startswith ( ' http:// ' ) :
# vimeo only supports https now, but the user can give an http url
url = url . replace ( ' http:// ' , ' https:// ' )
password_request = compat_urllib_request . Request ( url + ' /password ' , data )
password_request . add_header ( ' Content-Type ' , ' application/x-www-form-urlencoded ' )
password_request . add_header ( ' Content-Type ' , ' application/x-www-form-urlencoded ' )
password_request . add_header ( ' Cookie ' , ' xsrft= %s ' % token )
password_request . add_header ( ' Cookie ' , ' xsrft= %s ' % token )
return self . _download_webpage (
return self . _download_webpage (
@ -227,11 +224,6 @@ class VimeoIE(VimeoBaseInfoExtractor):
if mobj . group ( ' pro ' ) or mobj . group ( ' player ' ) :
if mobj . group ( ' pro ' ) or mobj . group ( ' player ' ) :
url = ' http://player.vimeo.com/video/ ' + video_id
url = ' http://player.vimeo.com/video/ ' + video_id
password = self . _downloader . params . get ( ' videopassword ' , None )
if password :
headers [ ' Cookie ' ] = ' %s _password= %s ' % (
video_id , hashlib . md5 ( password . encode ( ' utf-8 ' ) ) . hexdigest ( ) )
# Retrieve video webpage to extract further information
# Retrieve video webpage to extract further information
request = compat_urllib_request . Request ( url , None , headers )
request = compat_urllib_request . Request ( url , None , headers )
try :
try :