X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2Fextractor%2Fninenow.py;h=351bea7baecccb520911829ff85db809d80c1eb6;hb=1f766b6e7b72124dc3479c7cce270ba2b329a8f8;hp=f54e74de3c1ca5a5dfb51c6ad387376985385906;hpb=38e0f16a94b1790ed515fcd12c8bbcb58f2e4b53;p=youtube-dl diff --git a/youtube_dl/extractor/ninenow.py b/youtube_dl/extractor/ninenow.py index f54e74de3..351bea7ba 100644 --- a/youtube_dl/extractor/ninenow.py +++ b/youtube_dl/extractor/ninenow.py @@ -33,7 +33,7 @@ class NineNowIE(InfoExtractor): 'only_matching': True, }, { # DRM protected - 'url': 'https://www.9now.com.au/afl-footy-show/2016/episode-19', + 'url': 'https://www.9now.com.au/andrew-marrs-history-of-the-world/season-1/episode-1', 'only_matching': True, }] BRIGHTCOVE_URL_TEMPLATE = 'http://players.brightcove.net/4460760524001/default_default/index.html?videoId=%s' @@ -44,7 +44,20 @@ class NineNowIE(InfoExtractor): page_data = self._parse_json(self._search_regex( r'window\.__data\s*=\s*({.*?});', webpage, 'page data'), display_id) - common_data = page_data.get('episode', {}).get('episode') or page_data.get('clip', {}).get('clip') + + for kind in ('episode', 'clip'): + current_key = page_data.get(kind, {}).get( + 'current%sKey' % kind.capitalize()) + if not current_key: + continue + cache = page_data.get(kind, {}).get('%sCache' % kind, {}) + if not cache: + continue + common_data = (cache.get(current_key) or list(cache.values())[0])[kind] + break + else: + raise ExtractorError('Unable to find video data') + video_data = common_data['video'] if video_data.get('drm'):