diff options
| -rw-r--r-- | youtube_dl/extractor/nbc.py | 37 | 
1 files changed, 28 insertions, 9 deletions
| diff --git a/youtube_dl/extractor/nbc.py b/youtube_dl/extractor/nbc.py index 5bc39d002..6f3cb3003 100644 --- a/youtube_dl/extractor/nbc.py +++ b/youtube_dl/extractor/nbc.py @@ -87,11 +87,25 @@ 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) -        response = self._download_json( +        video_data = self._download_json(              'https://friendship.nbc.co/v2/graphql', video_id, query={ -                'query': '''{ -  page(name: "%s", platform: web, type: VIDEO, userId: "0") { -    data { +                '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 {        ... on VideoPageData {          description          episodeNumber @@ -100,15 +114,20 @@ class NBCIE(AdobePassIE):          mpxAccountId          mpxGuid          rating +        resourceId          seasonNumber          secondaryTitle          seriesShortTitle        }      }    } -}''' % permalink, -            }) -        video_data = response['data']['page']['data'] +}''', +                'variables': json.dumps({ +                    'name': permalink, +                    'oneApp': True, +                    'userId': '0', +                }), +            })['data']['bonanzaPage']['metadata']          query = {              'mbr': 'true',              'manifest': 'm3u', @@ -117,8 +136,8 @@ class NBCIE(AdobePassIE):          title = video_data['secondaryTitle']          if video_data.get('locked'):              resource = self._get_mvpd_resource( -                'nbcentertainment', title, video_id, -                video_data.get('rating')) +                video_data.get('resourceId') or '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( | 
