import json
from .common import InfoExtractor
-from ..compat import (
- compat_str,
- compat_HTTPError,
-)
+from ..compat import compat_str
+from ..networking.exceptions import HTTPError
from ..utils import (
ExtractorError,
int_or_none,
https?://tv\.vevo\.com/watch/artist/(?:[^/]+)/|
vevo:)
(?P<id>[^&?#]+)'''
+ _EMBED_REGEX = [r'<iframe[^>]+?src=(["\'])(?P<url>(?:https?:)?//(?:cache\.)?vevo\.com/.+?)\1']
_TESTS = [{
'url': 'http://www.vevo.com/watch/hurts/somebody-to-die-for/GB1101300280',
try:
data = self._download_json(self._api_url_template % path, *args, **kwargs)
except ExtractorError as e:
- if isinstance(e.cause, compat_HTTPError):
- errors = self._parse_json(e.cause.read().decode(), None)['errors']
+ if isinstance(e.cause, HTTPError):
+ errors = self._parse_json(e.cause.response.read().decode(), None)['errors']
error_message = ', '.join([error['message'] for error in errors])
raise ExtractorError('%s said: %s' % (self.IE_NAME, error_message), expected=True)
raise
'width': int(m.group('width')),
'height': int(m.group('height')),
})
- self._sort_formats(formats)
track = video_info['title']
if featured_artist: