]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/vimeo.py
[extractor/youtube] Fallback regex for nsig code extraction
[yt-dlp.git] / yt_dlp / extractor / vimeo.py
index 1c9e2453add114b1c363e58e882f70f6bc2425c7..25d2f200f2c11beedc58b1be6bc99fa6c7a346b2 100644 (file)
@@ -741,6 +741,10 @@ def _extract_embed_urls(cls, url, webpage):
         for embed_url in super()._extract_embed_urls(url, webpage):
             yield cls._smuggle_referrer(embed_url, url)
 
+    @classmethod
+    def _extract_url(cls, url, webpage):
+        return next(cls._extract_embed_urls(url, webpage), None)
+
     def _verify_player_video_password(self, url, video_id, headers):
         password = self._get_video_password()
         data = urlencode_postdata({
@@ -1127,7 +1131,7 @@ def _real_extract(self, url):
 
 class VimeoUserIE(VimeoChannelIE):
     IE_NAME = 'vimeo:user'
-    _VALID_URL = r'https://vimeo\.com/(?!(?:[0-9]+|watchlater)(?:$|[?#/]))(?P<id>[^/]+)(?:/videos|[#?]|$)'
+    _VALID_URL = r'https://vimeo\.com/(?!(?:[0-9]+|watchlater)(?:$|[?#/]))(?P<id>[^/]+)(?:/videos)?/?(?:$|[?#])'
     _TITLE_RE = r'<a[^>]+?class="user">([^<>]+?)</a>'
     _TESTS = [{
         'url': 'https://vimeo.com/nkistudio/videos',
@@ -1136,6 +1140,9 @@ class VimeoUserIE(VimeoChannelIE):
             'id': 'nkistudio',
         },
         'playlist_mincount': 66,
+    }, {
+        'url': 'https://vimeo.com/nkistudio/',
+        'only_matching': True,
     }]
     _BASE_URL_TEMPL = 'https://vimeo.com/%s'