[vimeo] Add a better error message for embed-only videos (#2527)

This commit is contained in:
Philipp Hagemeister 2014-03-08 12:24:43 +01:00
parent e9c092f125
commit 1060425cbb

View File

@ -8,6 +8,7 @@
from .common import InfoExtractor from .common import InfoExtractor
from .subtitles import SubtitlesInfoExtractor from .subtitles import SubtitlesInfoExtractor
from ..utils import ( from ..utils import (
compat_HTTPError,
compat_urllib_parse, compat_urllib_parse,
compat_urllib_request, compat_urllib_request,
clean_html, clean_html,
@ -172,7 +173,18 @@ def _real_extract(self, url):
# Retrieve video webpage to extract further information # Retrieve video webpage to extract further information
request = compat_urllib_request.Request(url, None, headers) 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 # Now we begin extracting as much information as we can from what we
# retrieved. First we extract the information common to all extractors, # retrieved. First we extract the information common to all extractors,