]> jfr.im git - yt-dlp.git/commitdiff
[vimeo] Add fallback for config URL
authorpukkandan <redacted>
Mon, 22 Nov 2021 19:39:17 +0000 (01:09 +0530)
committerpukkandan <redacted>
Mon, 22 Nov 2021 19:59:11 +0000 (01:29 +0530)
Closes #1662

yt_dlp/extractor/vimeo.py

index 7df4116f38916496fe6aafbe70db9907a650bb0f..e2b86662beedf9b650e19b8e918f437809e783ca 100644 (file)
@@ -604,6 +604,20 @@ class VimeoIE(VimeoBaseInfoExtractor):
                 'format': 'Original',
             },
         },
+        {
+            'url': 'https://vimeo.com/channels/staffpicks/143603739',
+            'info_dict': {
+                'id': '143603739',
+                'ext': 'mp4',
+                'uploader': 'Karim Huu Do',
+                'timestamp': 1445846953,
+                'upload_date': '20151026',
+                'title': 'The Shoes - Submarine Feat. Blaine Harrison',
+                'uploader_id': 'karimhd',
+                'description': 'md5:8e2eea76de4504c2e8020a9bcfa1e843',
+            },
+            'params': {'skip_download': 'm3u8'},
+        },
         {
             # requires passing unlisted_hash(a52724358e) to load_download_config request
             'url': 'https://vimeo.com/392479337/a52724358e',
@@ -798,18 +812,19 @@ def _real_extract(self, url):
         timestamp = None
         video_description = None
         info_dict = {}
+        config_url = None
 
         channel_id = self._search_regex(
             r'vimeo\.com/channels/([^/]+)', url, 'channel id', default=None)
         if channel_id:
             config_url = self._html_search_regex(
-                r'\bdata-config-url="([^"]+)"', webpage, 'config URL')
+                r'\bdata-config-url="([^"]+)"', webpage, 'config URL', default=None)
             video_description = clean_html(get_element_by_class('description', webpage))
             info_dict.update({
                 'channel_id': channel_id,
                 'channel_url': 'https://vimeo.com/channels/' + channel_id,
             })
-        else:
+        if not config_url:
             page_config = self._parse_json(self._search_regex(
                 r'vimeo\.(?:clip|vod_title)_page_config\s*=\s*({.+?});',
                 webpage, 'page config', default='{}'), video_id, fatal=False)