Merge 7671a9442c
into 416da574ec
This commit is contained in:
commit
f55a4f86b5
|
@ -350,16 +350,33 @@ class BBCCoUkIE(InfoExtractor):
|
||||||
|
|
||||||
def _download_media_selector(self, programme_id):
|
def _download_media_selector(self, programme_id):
|
||||||
last_exception = None
|
last_exception = None
|
||||||
|
formats = []
|
||||||
|
subtitles = None
|
||||||
|
# as some mediaselectors may be parseable but have
|
||||||
|
# no formats (eg captions only), try all possible
|
||||||
|
# mediaselectors
|
||||||
for mediaselector_url in self._MEDIASELECTOR_URLS:
|
for mediaselector_url in self._MEDIASELECTOR_URLS:
|
||||||
try:
|
try:
|
||||||
return self._download_media_selector_url(
|
formatsAndSubtitles = self._download_media_selector_url(
|
||||||
mediaselector_url % programme_id, programme_id)
|
mediaselector_url % programme_id, programme_id)
|
||||||
|
# formats (a list) should always be set, but just in case
|
||||||
|
if formatsAndSubtitles[0]:
|
||||||
|
formats += formatsAndSubtitles[0]
|
||||||
|
# subtitles subtitles (a dict {(lang,sttl)})
|
||||||
|
if formatsAndSubtitles[1]:
|
||||||
|
if subtitles:
|
||||||
|
# prioritise the first sttl for each lang
|
||||||
|
formatsAndSubtitles[1].update(subtitles)
|
||||||
|
subtitles = formatsAndSubtitles[1]
|
||||||
except BBCCoUkIE.MediaSelectionError as e:
|
except BBCCoUkIE.MediaSelectionError as e:
|
||||||
if e.id in ('notukerror', 'geolocation', 'selectionunavailable'):
|
if e.id in ('notukerror', 'geolocation', 'selectionunavailable'):
|
||||||
last_exception = e
|
last_exception = e
|
||||||
continue
|
continue
|
||||||
self._raise_extractor_error(e)
|
self._raise_extractor_error(e)
|
||||||
self._raise_extractor_error(last_exception)
|
# ignore a trapped exception if formats were found
|
||||||
|
if last_exception and not formats:
|
||||||
|
self._raise_extractor_error(last_exception)
|
||||||
|
return formats, subtitles
|
||||||
|
|
||||||
def _download_media_selector_url(self, url, programme_id=None):
|
def _download_media_selector_url(self, url, programme_id=None):
|
||||||
media_selection = self._download_xml(
|
media_selection = self._download_xml(
|
||||||
|
|
Loading…
Reference in New Issue