|
|
@ -73,15 +73,26 @@ class VimeoIE(VimeoBaseInfoExtractor): |
|
|
|
|
|
|
|
# _VALID_URL matches Vimeo URLs |
|
|
|
_VALID_URL = r'''(?x) |
|
|
|
https?:// |
|
|
|
(?:(?:www|(?P<player>player))\.)? |
|
|
|
vimeo(?P<pro>pro)?\.com/ |
|
|
|
(?!channels/[^/?#]+/?(?:$|[?#])|album/) |
|
|
|
(?:.*?/)? |
|
|
|
(?:(?:play_redirect_hls|moogaloop\.swf)\?clip_id=)? |
|
|
|
(?:videos?/)? |
|
|
|
(?P<id>[0-9]+) |
|
|
|
/?(?:[?&].*)?(?:[#].*)?$''' |
|
|
|
https?:// |
|
|
|
(?: |
|
|
|
(?: |
|
|
|
www| |
|
|
|
(?P<player>player) |
|
|
|
) |
|
|
|
\. |
|
|
|
)? |
|
|
|
vimeo(?P<pro>pro)?\.com/ |
|
|
|
(?!channels/[^/?#]+/?(?:$|[?#])|(?:album|ondemand)/) |
|
|
|
(?:.*?/)? |
|
|
|
(?: |
|
|
|
(?: |
|
|
|
play_redirect_hls| |
|
|
|
moogaloop\.swf)\?clip_id= |
|
|
|
)? |
|
|
|
(?:videos?/)? |
|
|
|
(?P<id>[0-9]+) |
|
|
|
/?(?:[?&].*)?(?:[#].*)?$ |
|
|
|
''' |
|
|
|
IE_NAME = 'vimeo' |
|
|
|
_TESTS = [ |
|
|
|
{ |
|
|
@ -497,6 +508,37 @@ class VimeoIE(VimeoBaseInfoExtractor): |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
class VimeoOndemandIE(VimeoBaseInfoExtractor): |
|
|
|
_VALID_URL = r'https?://(?:www\.)?vimeo\.com/ondemand/(?P<id>[^/?#&]+)' |
|
|
|
_TESTS = [{ |
|
|
|
# ondemand video not available via https://vimeo.com/id |
|
|
|
'url': 'https://vimeo.com/ondemand/20704', |
|
|
|
'md5': 'c424deda8c7f73c1dfb3edd7630e2f35', |
|
|
|
'info_dict': { |
|
|
|
'id': '105442900', |
|
|
|
'ext': 'mp4', |
|
|
|
'title': 'המעבדה - במאי יותם פלדמן', |
|
|
|
'uploader': 'גם סרטים', |
|
|
|
'uploader_url': 're:https?://(?:www\.)?vimeo\.com/gumfilms', |
|
|
|
'uploader_id': 'gumfilms', |
|
|
|
}, |
|
|
|
}, { |
|
|
|
'url': 'https://vimeo.com/ondemand/nazmaalik', |
|
|
|
'only_matching': True, |
|
|
|
}, { |
|
|
|
'url': 'https://vimeo.com/ondemand/141692381', |
|
|
|
'only_matching': True, |
|
|
|
}, { |
|
|
|
'url': 'https://vimeo.com/ondemand/thelastcolony/150274832', |
|
|
|
'only_matching': True, |
|
|
|
}] |
|
|
|
|
|
|
|
def _real_extract(self, url): |
|
|
|
video_id = self._match_id(url) |
|
|
|
webpage = self._download_webpage(url, video_id) |
|
|
|
return self.url_result(self._og_search_video_url(webpage), VimeoIE.ie_key()) |
|
|
|
|
|
|
|
|
|
|
|
class VimeoChannelIE(VimeoBaseInfoExtractor): |
|
|
|
IE_NAME = 'vimeo:channel' |
|
|
|
_VALID_URL = r'https://vimeo\.com/channels/(?P<id>[^/?#]+)/?(?:$|[?#])' |
|
|
|