|
@@ -39,9 +39,17 @@ class ThePlatformBaseIE(OnceIE):
|
|
|
smil_url, video_id, note=note, query={'format': 'SMIL'},
|
|
|
headers=self.geo_verification_headers())
|
|
|
error_element = find_xpath_attr(meta, _x('.//smil:ref'), 'src')
|
|
|
- if error_element is not None and error_element.attrib['src'].startswith(
|
|
|
- 'http://link.theplatform.%s/s/errorFiles/Unavailable.' % self._TP_TLD):
|
|
|
- raise ExtractorError(error_element.attrib['abstract'], expected=True)
|
|
|
+ if error_element is not None:
|
|
|
+ exception = find_xpath_attr(
|
|
|
+ error_element, _x('.//smil:param'), 'name', 'exception')
|
|
|
+ if exception is not None:
|
|
|
+ if exception.get('value') == 'GeoLocationBlocked':
|
|
|
+ self.raise_geo_restricted(error_element.attrib['abstract'])
|
|
|
+ elif error_element.attrib['src'].startswith(
|
|
|
+ 'http://link.theplatform.%s/s/errorFiles/Unavailable.'
|
|
|
+ % self._TP_TLD):
|
|
|
+ raise ExtractorError(
|
|
|
+ error_element.attrib['abstract'], expected=True)
|
|
|
|
|
|
smil_formats = self._parse_smil_formats(
|
|
|
meta, smil_url, video_id, namespace=default_ns,
|