projects
/
youtube-dl
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
2c482bf
)
[nbc] add support for nbc multi network URLs(closes #23049)
author
Remita Amine
<remitamine@gmail.com>
Thu, 16 Jan 2020 14:37:16 +0000
(15:37 +0100)
committer
Remita Amine
<remitamine@gmail.com>
Thu, 16 Jan 2020 14:37:16 +0000
(15:37 +0100)
youtube_dl/extractor/nbc.py
patch
|
blob
|
history
diff --git
a/youtube_dl/extractor/nbc.py
b/youtube_dl/extractor/nbc.py
index 5bc39d00242c78e7dca8d479dad38b8df8728a0e..6f3cb30034da7f5fcebb99fc6dec05f1ff3cd8e4 100644
(file)
--- 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)
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={
'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
... on VideoPageData {
description
episodeNumber
@@
-100,15
+114,20
@@
class NBCIE(AdobePassIE):
mpxAccountId
mpxGuid
rating
mpxAccountId
mpxGuid
rating
+ resourceId
seasonNumber
secondaryTitle
seriesShortTitle
}
}
}
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',
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(
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(
query['auth'] = self._extract_mvpd_auth(
url, video_id, 'nbcentertainment', resource)
theplatform_url = smuggle_url(update_url_query(