aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2018-05-17 23:21:40 +0700
committerSergey M․ <dstftw@gmail.com>2018-05-17 23:21:40 +0700
commit361a965b5cd83b725560f740570d208c2a6886ca (patch)
treee09e31828ad528ab88a81e233af17e5cfbb35dbf
parenta3f86160fa15f9e65789a73208cb50b0d82d715f (diff)
downloadyoutube-dl-361a965b5cd83b725560f740570d208c2a6886ca.tar.xz
[vimeo:likes] Relax _VALID_URL and fix single page likes extraction (closes #16475)
-rw-r--r--youtube_dl/extractor/vimeo.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/youtube_dl/extractor/vimeo.py b/youtube_dl/extractor/vimeo.py
index a026526b2..8dfd8891c 100644
--- a/youtube_dl/extractor/vimeo.py
+++ b/youtube_dl/extractor/vimeo.py
@@ -989,10 +989,10 @@ class VimeoWatchLaterIE(VimeoChannelIE):
class VimeoLikesIE(InfoExtractor):
- _VALID_URL = r'https://(?:www\.)?vimeo\.com/user(?P<id>[0-9]+)/likes/?(?:$|[?#]|sort:)'
+ _VALID_URL = r'https://(?:www\.)?vimeo\.com/(?P<id>[^/]+)/likes/?(?:$|[?#]|sort:)'
IE_NAME = 'vimeo:likes'
IE_DESC = 'Vimeo user likes'
- _TEST = {
+ _TESTS = [{
'url': 'https://vimeo.com/user755559/likes/',
'playlist_mincount': 293,
'info_dict': {
@@ -1000,7 +1000,10 @@ class VimeoLikesIE(InfoExtractor):
'description': 'See all the videos urza likes',
'title': 'Videos urza likes',
},
- }
+ }, {
+ 'url': 'https://vimeo.com/stormlapse/likes',
+ 'only_matching': True,
+ }]
def _real_extract(self, url):
user_id = self._match_id(url)
@@ -1009,7 +1012,7 @@ class VimeoLikesIE(InfoExtractor):
self._search_regex(
r'''(?x)<li><a\s+href="[^"]+"\s+data-page="([0-9]+)">
.*?</a></li>\s*<li\s+class="pagination_next">
- ''', webpage, 'page count'),
+ ''', webpage, 'page count', default=1),
'page count', fatal=True)
PAGE_SIZE = 12
title = self._html_search_regex(
@@ -1017,7 +1020,7 @@ class VimeoLikesIE(InfoExtractor):
description = self._html_search_meta('description', webpage)
def _get_page(idx):
- page_url = 'https://vimeo.com/user%s/likes/page:%d/sort:date' % (
+ page_url = 'https://vimeo.com/%s/likes/page:%d/sort:date' % (
user_id, idx + 1)
webpage = self._download_webpage(
page_url, user_id,
@@ -1037,7 +1040,7 @@ class VimeoLikesIE(InfoExtractor):
return {
'_type': 'playlist',
- 'id': 'user%s_likes' % user_id,
+ 'id': '%s_likes' % user_id,
'title': title,
'description': description,
'entries': pl,