mirror of
https://github.com/ytdl-org/youtube-dl.git
synced 2024-11-22 02:01:50 +00:00
[nbc] add support for nbc multi network URLs(closes #23049)
This commit is contained in:
parent
2c482bff7c
commit
48ff5590c1
1 changed files with 28 additions and 9 deletions
|
@ -87,11 +87,25 @@ class NBCIE(AdobePassIE):
|
||||||
def _real_extract(self, url):
|
def _real_extract(self, url):
|
||||||
permalink, video_id = re.match(self._VALID_URL, url).groups()
|
permalink, video_id = re.match(self._VALID_URL, url).groups()
|
||||||
permalink = 'http' + compat_urllib_parse_unquote(permalink)
|
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': '''{
|
'query': '''query bonanzaPage(
|
||||||
page(name: "%s", platform: web, type: VIDEO, userId: "0") {
|
$app: NBCUBrands! = nbc
|
||||||
data {
|
$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 {
|
... on VideoPageData {
|
||||||
description
|
description
|
||||||
episodeNumber
|
episodeNumber
|
||||||
|
@ -100,15 +114,20 @@ class NBCIE(AdobePassIE):
|
||||||
mpxAccountId
|
mpxAccountId
|
||||||
mpxGuid
|
mpxGuid
|
||||||
rating
|
rating
|
||||||
|
resourceId
|
||||||
seasonNumber
|
seasonNumber
|
||||||
secondaryTitle
|
secondaryTitle
|
||||||
seriesShortTitle
|
seriesShortTitle
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}''' % permalink,
|
}''',
|
||||||
})
|
'variables': json.dumps({
|
||||||
video_data = response['data']['page']['data']
|
'name': permalink,
|
||||||
|
'oneApp': True,
|
||||||
|
'userId': '0',
|
||||||
|
}),
|
||||||
|
})['data']['bonanzaPage']['metadata']
|
||||||
query = {
|
query = {
|
||||||
'mbr': 'true',
|
'mbr': 'true',
|
||||||
'manifest': 'm3u',
|
'manifest': 'm3u',
|
||||||
|
@ -117,8 +136,8 @@ class NBCIE(AdobePassIE):
|
||||||
title = video_data['secondaryTitle']
|
title = video_data['secondaryTitle']
|
||||||
if video_data.get('locked'):
|
if video_data.get('locked'):
|
||||||
resource = self._get_mvpd_resource(
|
resource = self._get_mvpd_resource(
|
||||||
'nbcentertainment', title, video_id,
|
video_data.get('resourceId') or 'nbcentertainment',
|
||||||
video_data.get('rating'))
|
title, video_id, video_data.get('rating'))
|
||||||
query['auth'] = self._extract_mvpd_auth(
|
query['auth'] = self._extract_mvpd_auth(
|
||||||
url, video_id, 'nbcentertainment', resource)
|
url, video_id, 'nbcentertainment', resource)
|
||||||
theplatform_url = smuggle_url(update_url_query(
|
theplatform_url = smuggle_url(update_url_query(
|
||||||
|
|
Loading…
Reference in a new issue