|
|
@ -32,13 +32,14 @@ _x = lambda p: xpath_with_ns(p, {'smil': default_ns})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ThePlatformBaseIE(OnceIE):
|
|
|
|
class ThePlatformBaseIE(OnceIE):
|
|
|
|
|
|
|
|
_TP_TLD = 'com'
|
|
|
|
def _extract_theplatform_smil(self, smil_url, video_id, note='Downloading SMIL data'):
|
|
|
|
def _extract_theplatform_smil(self, smil_url, video_id, note='Downloading SMIL data'):
|
|
|
|
meta = self._download_xml(
|
|
|
|
meta = self._download_xml(
|
|
|
|
smil_url, video_id, note=note, query={'format': 'SMIL'},
|
|
|
|
smil_url, video_id, note=note, query={'format': 'SMIL'},
|
|
|
|
headers=self.geo_verification_headers())
|
|
|
|
headers=self.geo_verification_headers())
|
|
|
|
error_element = find_xpath_attr(meta, _x('.//smil:ref'), 'src')
|
|
|
|
error_element = find_xpath_attr(meta, _x('.//smil:ref'), 'src')
|
|
|
|
if error_element is not None and error_element.attrib['src'].startswith(
|
|
|
|
if error_element is not None and error_element.attrib['src'].startswith(
|
|
|
|
'http://link.theplatform.com/s/errorFiles/Unavailable.'):
|
|
|
|
'http://link.theplatform.%s/s/errorFiles/Unavailable.' % self._TP_TLD):
|
|
|
|
raise ExtractorError(error_element.attrib['abstract'], expected=True)
|
|
|
|
raise ExtractorError(error_element.attrib['abstract'], expected=True)
|
|
|
|
|
|
|
|
|
|
|
|
smil_formats = self._parse_smil_formats(
|
|
|
|
smil_formats = self._parse_smil_formats(
|
|
|
@ -66,7 +67,7 @@ class ThePlatformBaseIE(OnceIE):
|
|
|
|
return formats, subtitles
|
|
|
|
return formats, subtitles
|
|
|
|
|
|
|
|
|
|
|
|
def _download_theplatform_metadata(self, path, video_id):
|
|
|
|
def _download_theplatform_metadata(self, path, video_id):
|
|
|
|
info_url = 'http://link.theplatform.com/s/%s?format=preview' % path
|
|
|
|
info_url = 'http://link.theplatform.%s/s/%s?format=preview' % (self._TP_TLD, path)
|
|
|
|
return self._download_json(info_url, video_id)
|
|
|
|
return self._download_json(info_url, video_id)
|
|
|
|
|
|
|
|
|
|
|
|
def _parse_theplatform_metadata(self, info):
|
|
|
|
def _parse_theplatform_metadata(self, info):
|
|
|
|