aboutsummaryrefslogtreecommitdiffstats
path: root/youtube_dl/extractor/nbc.py
diff options
context:
space:
mode:
Diffstat (limited to 'youtube_dl/extractor/nbc.py')
-rw-r--r--youtube_dl/extractor/nbc.py37
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(