diff options
Diffstat (limited to 'youtube_dl/extractor/nbc.py')
-rw-r--r-- | youtube_dl/extractor/nbc.py | 37 |
1 files changed, 9 insertions, 28 deletions
diff --git a/youtube_dl/extractor/nbc.py b/youtube_dl/extractor/nbc.py index 6f3cb3003..5bc39d002 100644 --- a/youtube_dl/extractor/nbc.py +++ b/youtube_dl/extractor/nbc.py @@ -87,25 +87,11 @@ class NBCIE(AdobePassIE): def _real_extract(self, url): permalink, video_id = re.match(self._VALID_URL, url).groups() permalink = 'http' + compat_urllib_parse_unquote(permalink) - video_data = self._download_json( + response = self._download_json( 'https://friendship.nbc.co/v2/graphql', video_id, query={ - 'query': '''query bonanzaPage( - $app: NBCUBrands! = nbc - $name: String! - $oneApp: Boolean - $platform: SupportedPlatforms! = web - $type: EntityPageType! = VIDEO - $userId: String! -) { - bonanzaPage( - app: $app - name: $name - oneApp: $oneApp - platform: $platform - type: $type - userId: $userId - ) { - metadata { + 'query': '''{ + page(name: "%s", platform: web, type: VIDEO, userId: "0") { + data { ... on VideoPageData { description episodeNumber @@ -114,20 +100,15 @@ class NBCIE(AdobePassIE): mpxAccountId mpxGuid rating - resourceId seasonNumber secondaryTitle seriesShortTitle } } } -}''', - 'variables': json.dumps({ - 'name': permalink, - 'oneApp': True, - 'userId': '0', - }), - })['data']['bonanzaPage']['metadata'] +}''' % permalink, + }) + video_data = response['data']['page']['data'] query = { 'mbr': 'true', 'manifest': 'm3u', @@ -136,8 +117,8 @@ class NBCIE(AdobePassIE): title = video_data['secondaryTitle'] if video_data.get('locked'): resource = self._get_mvpd_resource( - video_data.get('resourceId') or 'nbcentertainment', - title, video_id, video_data.get('rating')) + 'nbcentertainment', title, video_id, + video_data.get('rating')) query['auth'] = self._extract_mvpd_auth( url, video_id, 'nbcentertainment', resource) theplatform_url = smuggle_url(update_url_query( |