|
|
@ -8,6 +8,7 @@ import itertools |
|
|
|
from .common import InfoExtractor |
|
|
|
from .subtitles import SubtitlesInfoExtractor |
|
|
|
from ..utils import ( |
|
|
|
compat_HTTPError, |
|
|
|
compat_urllib_parse, |
|
|
|
compat_urllib_request, |
|
|
|
clean_html, |
|
|
@ -172,7 +173,18 @@ class VimeoIE(SubtitlesInfoExtractor): |
|
|
|
|
|
|
|
# Retrieve video webpage to extract further information |
|
|
|
request = compat_urllib_request.Request(url, None, headers) |
|
|
|
webpage = self._download_webpage(request, video_id) |
|
|
|
try: |
|
|
|
webpage = self._download_webpage(request, video_id) |
|
|
|
except ExtractorError as ee: |
|
|
|
if isinstance(ee.cause, compat_HTTPError) and ee.cause.code == 403: |
|
|
|
errmsg = ee.cause.read() |
|
|
|
if b'Because of its privacy settings, this video cannot be played here' in errmsg: |
|
|
|
raise ExtractorError( |
|
|
|
'Cannot download embed-only video without embedding ' |
|
|
|
'URL. Please call youtube-dl with the URL of the page ' |
|
|
|
'that embeds this video.', |
|
|
|
expected=True) |
|
|
|
raise |
|
|
|
|
|
|
|
# Now we begin extracting as much information as we can from what we |
|
|
|
# retrieved. First we extract the information common to all extractors, |
|
|
|