diff options
| -rw-r--r-- | youtube_dl/extractor/nbc.py | 22 | 
1 files changed, 18 insertions, 4 deletions
| diff --git a/youtube_dl/extractor/nbc.py b/youtube_dl/extractor/nbc.py index aa34665d1..70aa98aee 100644 --- a/youtube_dl/extractor/nbc.py +++ b/youtube_dl/extractor/nbc.py @@ -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', | 
