[nbcnews] Look in all playlists for video
parent
f1f725c6a0
commit
754d8a035e
|
@ -85,11 +85,25 @@ class NBCNewsIE(InfoExtractor):
|
||||||
flags=re.MULTILINE)
|
flags=re.MULTILINE)
|
||||||
bootstrap = json.loads(bootstrap_json)
|
bootstrap = json.loads(bootstrap_json)
|
||||||
info = bootstrap['results'][0]['video']
|
info = bootstrap['results'][0]['video']
|
||||||
playlist_url = info['fallbackPlaylistUrl'] + '?form=MPXNBCNewsAPI'
|
|
||||||
mpxid = info['mpxId']
|
mpxid = info['mpxId']
|
||||||
|
|
||||||
|
base_urls = [
|
||||||
|
info['fallbackPlaylistUrl'],
|
||||||
|
info['associatedPlaylistUrl'],
|
||||||
|
]
|
||||||
|
|
||||||
|
for base_url in base_urls:
|
||||||
|
playlist_url = base_url + '?form=MPXNBCNewsAPI'
|
||||||
all_videos = self._download_json(playlist_url, title)['videos']
|
all_videos = self._download_json(playlist_url, title)['videos']
|
||||||
# The response contains additional videos
|
|
||||||
|
try:
|
||||||
info = next(v for v in all_videos if v['mpxId'] == mpxid)
|
info = next(v for v in all_videos if v['mpxId'] == mpxid)
|
||||||
|
break
|
||||||
|
except StopIteration:
|
||||||
|
continue
|
||||||
|
|
||||||
|
if info is None:
|
||||||
|
raise ExtractorError('Could not find video in playlists')
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'_type': 'url',
|
'_type': 'url',
|
||||||
|
|
Loading…
Reference in New Issue