|
|
|
@ -85,11 +85,25 @@ class NBCNewsIE(InfoExtractor):
|
|
|
|
|
flags=re.MULTILINE)
|
|
|
|
|
bootstrap = json.loads(bootstrap_json)
|
|
|
|
|
info = bootstrap['results'][0]['video']
|
|
|
|
|
playlist_url = info['fallbackPlaylistUrl'] + '?form=MPXNBCNewsAPI'
|
|
|
|
|
mpxid = info['mpxId']
|
|
|
|
|
all_videos = self._download_json(playlist_url, title)['videos']
|
|
|
|
|
# The response contains additional videos
|
|
|
|
|
info = next(v for v in all_videos if v['mpxId'] == 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']
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
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 {
|
|
|
|
|
'_type': 'url',
|
|
|
|
|