mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-11-27 02:42:30 +00:00
[vimeo] Use https for all vimeo.com urls
Unfortunately vimeopro.com doesn't support it yet.
This commit is contained in:
parent
b84037013e
commit
3946864c8a
@ -104,11 +104,11 @@ def test_keywords(self):
|
|||||||
self.assertMatch(':tds', ['ComedyCentralShows'])
|
self.assertMatch(':tds', ['ComedyCentralShows'])
|
||||||
|
|
||||||
def test_vimeo_matching(self):
|
def test_vimeo_matching(self):
|
||||||
self.assertMatch('http://vimeo.com/channels/tributes', ['vimeo:channel'])
|
self.assertMatch('https://vimeo.com/channels/tributes', ['vimeo:channel'])
|
||||||
self.assertMatch('http://vimeo.com/channels/31259', ['vimeo:channel'])
|
self.assertMatch('https://vimeo.com/channels/31259', ['vimeo:channel'])
|
||||||
self.assertMatch('http://vimeo.com/channels/31259/53576664', ['vimeo'])
|
self.assertMatch('https://vimeo.com/channels/31259/53576664', ['vimeo'])
|
||||||
self.assertMatch('http://vimeo.com/user7108434', ['vimeo:user'])
|
self.assertMatch('https://vimeo.com/user7108434', ['vimeo:user'])
|
||||||
self.assertMatch('http://vimeo.com/user7108434/videos', ['vimeo:user'])
|
self.assertMatch('https://vimeo.com/user7108434/videos', ['vimeo:user'])
|
||||||
self.assertMatch('https://vimeo.com/user21297594/review/75524534/3c257a1b5d', ['vimeo:review'])
|
self.assertMatch('https://vimeo.com/user21297594/review/75524534/3c257a1b5d', ['vimeo:review'])
|
||||||
|
|
||||||
# https://github.com/rg3/youtube-dl/issues/1930
|
# https://github.com/rg3/youtube-dl/issues/1930
|
||||||
|
@ -373,7 +373,7 @@ def _real_extract(self, url):
|
|||||||
for tt in text_tracks:
|
for tt in text_tracks:
|
||||||
subtitles[tt['lang']] = [{
|
subtitles[tt['lang']] = [{
|
||||||
'ext': 'vtt',
|
'ext': 'vtt',
|
||||||
'url': 'http://vimeo.com' + tt['url'],
|
'url': 'https://vimeo.com' + tt['url'],
|
||||||
}]
|
}]
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@ -396,11 +396,11 @@ def _real_extract(self, url):
|
|||||||
|
|
||||||
class VimeoChannelIE(InfoExtractor):
|
class VimeoChannelIE(InfoExtractor):
|
||||||
IE_NAME = 'vimeo:channel'
|
IE_NAME = 'vimeo:channel'
|
||||||
_VALID_URL = r'https?://vimeo\.com/channels/(?P<id>[^/?#]+)/?(?:$|[?#])'
|
_VALID_URL = r'https://vimeo\.com/channels/(?P<id>[^/?#]+)/?(?:$|[?#])'
|
||||||
_MORE_PAGES_INDICATOR = r'<a.+?rel="next"'
|
_MORE_PAGES_INDICATOR = r'<a.+?rel="next"'
|
||||||
_TITLE_RE = r'<link rel="alternate"[^>]+?title="(.*?)"'
|
_TITLE_RE = r'<link rel="alternate"[^>]+?title="(.*?)"'
|
||||||
_TESTS = [{
|
_TESTS = [{
|
||||||
'url': 'http://vimeo.com/channels/tributes',
|
'url': 'https://vimeo.com/channels/tributes',
|
||||||
'info_dict': {
|
'info_dict': {
|
||||||
'id': 'tributes',
|
'id': 'tributes',
|
||||||
'title': 'Vimeo Tributes',
|
'title': 'Vimeo Tributes',
|
||||||
@ -459,7 +459,7 @@ def _extract_videos(self, list_id, base_url):
|
|||||||
if re.search(self._MORE_PAGES_INDICATOR, webpage, re.DOTALL) is None:
|
if re.search(self._MORE_PAGES_INDICATOR, webpage, re.DOTALL) is None:
|
||||||
break
|
break
|
||||||
|
|
||||||
entries = [self.url_result('http://vimeo.com/%s' % video_id, 'Vimeo')
|
entries = [self.url_result('https://vimeo.com/%s' % video_id, 'Vimeo')
|
||||||
for video_id in video_ids]
|
for video_id in video_ids]
|
||||||
return {'_type': 'playlist',
|
return {'_type': 'playlist',
|
||||||
'id': list_id,
|
'id': list_id,
|
||||||
@ -470,15 +470,15 @@ def _extract_videos(self, list_id, base_url):
|
|||||||
def _real_extract(self, url):
|
def _real_extract(self, url):
|
||||||
mobj = re.match(self._VALID_URL, url)
|
mobj = re.match(self._VALID_URL, url)
|
||||||
channel_id = mobj.group('id')
|
channel_id = mobj.group('id')
|
||||||
return self._extract_videos(channel_id, 'http://vimeo.com/channels/%s' % channel_id)
|
return self._extract_videos(channel_id, 'https://vimeo.com/channels/%s' % channel_id)
|
||||||
|
|
||||||
|
|
||||||
class VimeoUserIE(VimeoChannelIE):
|
class VimeoUserIE(VimeoChannelIE):
|
||||||
IE_NAME = 'vimeo:user'
|
IE_NAME = 'vimeo:user'
|
||||||
_VALID_URL = r'https?://vimeo\.com/(?![0-9]+(?:$|[?#/]))(?P<name>[^/]+)(?:/videos|[#?]|$)'
|
_VALID_URL = r'https://vimeo\.com/(?![0-9]+(?:$|[?#/]))(?P<name>[^/]+)(?:/videos|[#?]|$)'
|
||||||
_TITLE_RE = r'<a[^>]+?class="user">([^<>]+?)</a>'
|
_TITLE_RE = r'<a[^>]+?class="user">([^<>]+?)</a>'
|
||||||
_TESTS = [{
|
_TESTS = [{
|
||||||
'url': 'http://vimeo.com/nkistudio/videos',
|
'url': 'https://vimeo.com/nkistudio/videos',
|
||||||
'info_dict': {
|
'info_dict': {
|
||||||
'title': 'Nki',
|
'title': 'Nki',
|
||||||
'id': 'nkistudio',
|
'id': 'nkistudio',
|
||||||
@ -489,7 +489,7 @@ class VimeoUserIE(VimeoChannelIE):
|
|||||||
def _real_extract(self, url):
|
def _real_extract(self, url):
|
||||||
mobj = re.match(self._VALID_URL, url)
|
mobj = re.match(self._VALID_URL, url)
|
||||||
name = mobj.group('name')
|
name = mobj.group('name')
|
||||||
return self._extract_videos(name, 'http://vimeo.com/%s' % name)
|
return self._extract_videos(name, 'https://vimeo.com/%s' % name)
|
||||||
|
|
||||||
|
|
||||||
class VimeoAlbumIE(VimeoChannelIE):
|
class VimeoAlbumIE(VimeoChannelIE):
|
||||||
@ -526,9 +526,9 @@ def _real_extract(self, url):
|
|||||||
|
|
||||||
class VimeoGroupsIE(VimeoAlbumIE):
|
class VimeoGroupsIE(VimeoAlbumIE):
|
||||||
IE_NAME = 'vimeo:group'
|
IE_NAME = 'vimeo:group'
|
||||||
_VALID_URL = r'(?:https?://)?vimeo\.com/groups/(?P<name>[^/]+)'
|
_VALID_URL = r'https://vimeo\.com/groups/(?P<name>[^/]+)'
|
||||||
_TESTS = [{
|
_TESTS = [{
|
||||||
'url': 'http://vimeo.com/groups/rolexawards',
|
'url': 'https://vimeo.com/groups/rolexawards',
|
||||||
'info_dict': {
|
'info_dict': {
|
||||||
'id': 'rolexawards',
|
'id': 'rolexawards',
|
||||||
'title': 'Rolex Awards for Enterprise',
|
'title': 'Rolex Awards for Enterprise',
|
||||||
@ -542,13 +542,13 @@ def _extract_list_title(self, webpage):
|
|||||||
def _real_extract(self, url):
|
def _real_extract(self, url):
|
||||||
mobj = re.match(self._VALID_URL, url)
|
mobj = re.match(self._VALID_URL, url)
|
||||||
name = mobj.group('name')
|
name = mobj.group('name')
|
||||||
return self._extract_videos(name, 'http://vimeo.com/groups/%s' % name)
|
return self._extract_videos(name, 'https://vimeo.com/groups/%s' % name)
|
||||||
|
|
||||||
|
|
||||||
class VimeoReviewIE(InfoExtractor):
|
class VimeoReviewIE(InfoExtractor):
|
||||||
IE_NAME = 'vimeo:review'
|
IE_NAME = 'vimeo:review'
|
||||||
IE_DESC = 'Review pages on vimeo'
|
IE_DESC = 'Review pages on vimeo'
|
||||||
_VALID_URL = r'https?://vimeo\.com/[^/]+/review/(?P<id>[^/]+)'
|
_VALID_URL = r'https://vimeo\.com/[^/]+/review/(?P<id>[^/]+)'
|
||||||
_TESTS = [{
|
_TESTS = [{
|
||||||
'url': 'https://vimeo.com/user21297594/review/75524534/3c257a1b5d',
|
'url': 'https://vimeo.com/user21297594/review/75524534/3c257a1b5d',
|
||||||
'md5': 'c507a72f780cacc12b2248bb4006d253',
|
'md5': 'c507a72f780cacc12b2248bb4006d253',
|
||||||
@ -560,7 +560,7 @@ class VimeoReviewIE(InfoExtractor):
|
|||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
'note': 'video player needs Referer',
|
'note': 'video player needs Referer',
|
||||||
'url': 'http://vimeo.com/user22258446/review/91613211/13f927e053',
|
'url': 'https://vimeo.com/user22258446/review/91613211/13f927e053',
|
||||||
'md5': '6295fdab8f4bf6a002d058b2c6dce276',
|
'md5': '6295fdab8f4bf6a002d058b2c6dce276',
|
||||||
'info_dict': {
|
'info_dict': {
|
||||||
'id': '91613211',
|
'id': '91613211',
|
||||||
@ -582,11 +582,11 @@ def _real_extract(self, url):
|
|||||||
class VimeoWatchLaterIE(VimeoBaseInfoExtractor, VimeoChannelIE):
|
class VimeoWatchLaterIE(VimeoBaseInfoExtractor, VimeoChannelIE):
|
||||||
IE_NAME = 'vimeo:watchlater'
|
IE_NAME = 'vimeo:watchlater'
|
||||||
IE_DESC = 'Vimeo watch later list, "vimeowatchlater" keyword (requires authentication)'
|
IE_DESC = 'Vimeo watch later list, "vimeowatchlater" keyword (requires authentication)'
|
||||||
_VALID_URL = r'https?://vimeo\.com/home/watchlater|:vimeowatchlater'
|
_VALID_URL = r'https://vimeo\.com/home/watchlater|:vimeowatchlater'
|
||||||
_LOGIN_REQUIRED = True
|
_LOGIN_REQUIRED = True
|
||||||
_TITLE_RE = r'href="/home/watchlater".*?>(.*?)<'
|
_TITLE_RE = r'href="/home/watchlater".*?>(.*?)<'
|
||||||
_TESTS = [{
|
_TESTS = [{
|
||||||
'url': 'http://vimeo.com/home/watchlater',
|
'url': 'https://vimeo.com/home/watchlater',
|
||||||
'only_matching': True,
|
'only_matching': True,
|
||||||
}]
|
}]
|
||||||
|
|
||||||
@ -606,7 +606,7 @@ def _real_extract(self, url):
|
|||||||
|
|
||||||
|
|
||||||
class VimeoLikesIE(InfoExtractor):
|
class VimeoLikesIE(InfoExtractor):
|
||||||
_VALID_URL = r'https?://(?:www\.)?vimeo\.com/user(?P<id>[0-9]+)/likes/?(?:$|[?#]|sort:)'
|
_VALID_URL = r'https://(?:www\.)?vimeo\.com/user(?P<id>[0-9]+)/likes/?(?:$|[?#]|sort:)'
|
||||||
IE_NAME = 'vimeo:likes'
|
IE_NAME = 'vimeo:likes'
|
||||||
IE_DESC = 'Vimeo user likes'
|
IE_DESC = 'Vimeo user likes'
|
||||||
_TEST = {
|
_TEST = {
|
||||||
@ -634,8 +634,8 @@ def _real_extract(self, url):
|
|||||||
description = self._html_search_meta('description', webpage)
|
description = self._html_search_meta('description', webpage)
|
||||||
|
|
||||||
def _get_page(idx):
|
def _get_page(idx):
|
||||||
page_url = '%s//vimeo.com/user%s/likes/page:%d/sort:date' % (
|
page_url = 'https://vimeo.com/user%s/likes/page:%d/sort:date' % (
|
||||||
self.http_scheme(), user_id, idx + 1)
|
user_id, idx + 1)
|
||||||
webpage = self._download_webpage(
|
webpage = self._download_webpage(
|
||||||
page_url, user_id,
|
page_url, user_id,
|
||||||
note='Downloading page %d/%d' % (idx + 1, page_count))
|
note='Downloading page %d/%d' % (idx + 1, page_count))
|
||||||
|
Loading…
Reference in New Issue
Block a user