summary refs log tree commit diff
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2016-10-23 18:48:50 +0700
committerSergey M․ <dstftw@gmail.com>2016-10-23 18:48:50 +0700
commitf16f8505b18eb618aa830f21d6b97152e602dfb9 (patch)
tree614955de57beee662a088ca3ed696c5dc4a5d8ac
parent9dc13a67807fd38070d95cb23deca3761476e9de (diff)
downloadyoutube-dl-f16f8505b18eb618aa830f21d6b97152e602dfb9.tar.gz
youtube-dl-f16f8505b18eb618aa830f21d6b97152e602dfb9.tar.xz
youtube-dl-f16f8505b18eb618aa830f21d6b97152e602dfb9.zip
[vimeo] Delegate ondemand redirects to ondemand extractor (closes #10994)
-rw-r--r--youtube_dl/extractor/vimeo.py23
1 files changed, 22 insertions, 1 deletions
diff --git a/youtube_dl/extractor/vimeo.py b/youtube_dl/extractor/vimeo.py
index b566241cc..51c69a80c 100644
--- a/youtube_dl/extractor/vimeo.py
+++ b/youtube_dl/extractor/vimeo.py
@@ -323,6 +323,22 @@ class VimeoIE(VimeoBaseInfoExtractor):
             'expected_warnings': ['Unable to download JSON metadata'],
         },
         {
+            # redirects to ondemand extractor and should be passed throught it
+            # for successful extraction
+            'url': 'https://vimeo.com/73445910',
+            'info_dict': {
+                'id': '73445910',
+                'ext': 'mp4',
+                'title': 'The Reluctant Revolutionary',
+                'uploader': '10Ft Films',
+                'uploader_url': 're:https?://(?:www\.)?vimeo\.com/tenfootfilms',
+                'uploader_id': 'tenfootfilms',
+            },
+            'params': {
+                'skip_download': True,
+            },
+        },
+        {
             'url': 'http://vimeo.com/moogaloop.swf?clip_id=2539741',
             'only_matching': True,
         },
@@ -414,7 +430,12 @@ class VimeoIE(VimeoBaseInfoExtractor):
         # Retrieve video webpage to extract further information
         request = sanitized_Request(url, headers=headers)
         try:
-            webpage = self._download_webpage(request, video_id)
+            webpage, urlh = self._download_webpage_handle(request, video_id)
+            # Some URLs redirect to ondemand can't be extracted with
+            # this extractor right away thus should be passed through
+            # ondemand extractor (e.g. https://vimeo.com/73445910)
+            if VimeoOndemandIE.suitable(urlh.geturl()):
+                return self.url_result(urlh.geturl(), VimeoOndemandIE.ie_key())
         except ExtractorError as ee:
             if isinstance(ee.cause, compat_HTTPError) and ee.cause.code == 403:
                 errmsg = ee.cause.read()