[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):
 | 
			
		||||
        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(
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue