@ -20,7 +20,8 @@ class VimeoIE(InfoExtractor):
_VALID_URL = r ' (?P<proto>https?://)?(?:(?:www|player) \ .)?vimeo(?P<pro>pro)? \ .com/(?:(?:(?:groups|album)/[^/]+)|(?:.*?)/)?(?P<direct_link>play_redirect_hls \ ?clip_id=)?(?:videos?/)?(?P<id>[0-9]+)(?:[?].*)?$ '
_VALID_URL = r ' (?P<proto>https?://)?(?:(?:www|player) \ .)?vimeo(?P<pro>pro)? \ .com/(?:(?:(?:groups|album)/[^/]+)|(?:.*?)/)?(?P<direct_link>play_redirect_hls \ ?clip_id=)?(?:videos?/)?(?P<id>[0-9]+)(?:[?].*)?$ '
_NETRC_MACHINE = ' vimeo '
_NETRC_MACHINE = ' vimeo '
IE_NAME = u ' vimeo '
IE_NAME = u ' vimeo '
_TEST = {
_TESTS = [
{
u ' url ' : u ' http://vimeo.com/56015672 ' ,
u ' url ' : u ' http://vimeo.com/56015672 ' ,
u ' file ' : u ' 56015672.mp4 ' ,
u ' file ' : u ' 56015672.mp4 ' ,
u ' md5 ' : u ' 8879b6cc097e987f02484baf890129e5 ' ,
u ' md5 ' : u ' 8879b6cc097e987f02484baf890129e5 ' ,
@ -29,9 +30,21 @@ class VimeoIE(InfoExtractor):
u " description " : u " This is a test case for youtube-dl. \n For more information, see github.com/rg3/youtube-dl \n Test chars: \u2605 \" ' \u5e78 / \\ \u00e4 \u21ad \U0001d550 " ,
u " description " : u " This is a test case for youtube-dl. \n For more information, see github.com/rg3/youtube-dl \n Test chars: \u2605 \" ' \u5e78 / \\ \u00e4 \u21ad \U0001d550 " ,
u " uploader_id " : u " user7108434 " ,
u " uploader_id " : u " user7108434 " ,
u " uploader " : u " Filippo Valsorda " ,
u " uploader " : u " Filippo Valsorda " ,
u " title " : u " youtube-dl test video - \u2605 \" ' \u5e78 / \\ \u00e4 \u21ad \U0001d550 "
u " title " : u " youtube-dl test video - \u2605 \" ' \u5e78 / \\ \u00e4 \u21ad \U0001d550 " ,
}
} ,
}
} ,
{
u ' url ' : u ' http://vimeopro.com/openstreetmapus/state-of-the-map-us-2013/video/68093876 ' ,
u ' file ' : u ' 68093876.mp4 ' ,
u ' md5 ' : u ' 3b5ca6aa22b60dfeeadf50b72e44ed82 ' ,
u ' note ' : u ' Vimeo Pro video (#1197) ' ,
u ' info_dict ' : {
u ' uploader_id ' : u ' openstreetmapus ' ,
u ' uploader ' : u ' OpenStreetMap US ' ,
u ' title ' : u ' Andy Allan - Putting the Carto into OpenStreetMap Cartography ' ,
} ,
} ,
]
def _login ( self ) :
def _login ( self ) :
( username , password ) = self . _get_login_info ( )
( username , password ) = self . _get_login_info ( )
@ -83,7 +96,9 @@ class VimeoIE(InfoExtractor):
video_id = mobj . group ( ' id ' )
video_id = mobj . group ( ' id ' )
if not mobj . group ( ' proto ' ) :
if not mobj . group ( ' proto ' ) :
url = ' https:// ' + url
url = ' https:// ' + url
if mobj . group ( ' direct_link ' ) or mobj . group ( ' pro ' ) :
elif mobj . group ( ' pro ' ) :
url = ' http://player.vimeo.com/video/ ' + video_id
elif mobj . group ( ' direct_link ' ) :
url = ' https://vimeo.com/ ' + video_id
url = ' https://vimeo.com/ ' + video_id
# Retrieve video webpage to extract further information
# Retrieve video webpage to extract further information