diff options
| author | Sergey M․ <dstftw@gmail.com> | 2018-05-17 23:21:40 +0700 | 
|---|---|---|
| committer | Sergey M․ <dstftw@gmail.com> | 2018-05-17 23:21:40 +0700 | 
| commit | 361a965b5cd83b725560f740570d208c2a6886ca (patch) | |
| tree | e09e31828ad528ab88a81e233af17e5cfbb35dbf | |
| parent | a3f86160fa15f9e65789a73208cb50b0d82d715f (diff) | |
[vimeo:likes] Relax _VALID_URL and fix single page likes extraction (closes #16475)
| -rw-r--r-- | youtube_dl/extractor/vimeo.py | 15 | 
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,  | 
