aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Hagemeister <phihag@phihag.de>2014-07-21 18:06:21 +0200
committerPhilipp Hagemeister <phihag@phihag.de>2014-07-21 18:06:21 +0200
commit754d8a035e3e1d0f3340aef662ae0df76a0be91d (patch)
tree786f0057e1cda15e955a22494c154cbc727633d7
parentf1f725c6a0e567283704046fc21614f4826e77fd (diff)
[nbcnews] Look in all playlists for video
-rw-r--r--youtube_dl/extractor/nbc.py22
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',