[brightcove] cache brightcove player policy keys
This commit is contained in:
		
							parent
							
								
									cb7e053e0a
								
							
						
					
					
						commit
						75ef77c1b1
					
				
					 1 changed files with 19 additions and 17 deletions
				
			
		| 
						 | 
					@ -586,24 +586,26 @@ class BrightcoveNewIE(AdobePassIE):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        account_id, player_id, embed, content_type, video_id = re.match(self._VALID_URL, url).groups()
 | 
					        account_id, player_id, embed, content_type, video_id = re.match(self._VALID_URL, url).groups()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        webpage = self._download_webpage(
 | 
					        policy_key_id = '%s_%s' % (account_id, player_id)
 | 
				
			||||||
            'http://players.brightcove.net/%s/%s_%s/index.min.js'
 | 
					        policy_key = self._downloader.cache.load('brightcove', policy_key_id)
 | 
				
			||||||
            % (account_id, player_id, embed), video_id)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        policy_key = None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        catalog = self._search_regex(
 | 
					 | 
				
			||||||
            r'catalog\(({.+?})\);', webpage, 'catalog', default=None)
 | 
					 | 
				
			||||||
        if catalog:
 | 
					 | 
				
			||||||
            catalog = self._parse_json(
 | 
					 | 
				
			||||||
                js_to_json(catalog), video_id, fatal=False)
 | 
					 | 
				
			||||||
            if catalog:
 | 
					 | 
				
			||||||
                policy_key = catalog.get('policyKey')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if not policy_key:
 | 
					        if not policy_key:
 | 
				
			||||||
            policy_key = self._search_regex(
 | 
					            webpage = self._download_webpage(
 | 
				
			||||||
                r'policyKey\s*:\s*(["\'])(?P<pk>.+?)\1',
 | 
					                'http://players.brightcove.net/%s/%s_%s/index.min.js'
 | 
				
			||||||
                webpage, 'policy key', group='pk')
 | 
					                % (account_id, player_id, embed), video_id)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            catalog = self._search_regex(
 | 
				
			||||||
 | 
					                r'catalog\(({.+?})\);', webpage, 'catalog', default=None)
 | 
				
			||||||
 | 
					            if catalog:
 | 
				
			||||||
 | 
					                catalog = self._parse_json(
 | 
				
			||||||
 | 
					                    js_to_json(catalog), video_id, fatal=False)
 | 
				
			||||||
 | 
					                if catalog:
 | 
				
			||||||
 | 
					                    policy_key = catalog.get('policyKey')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if not policy_key:
 | 
				
			||||||
 | 
					                policy_key = self._search_regex(
 | 
				
			||||||
 | 
					                    r'policyKey\s*:\s*(["\'])(?P<pk>.+?)\1',
 | 
				
			||||||
 | 
					                    webpage, 'policy key', group='pk')
 | 
				
			||||||
 | 
					            self._downloader.cache.store('brightcove', policy_key_id, policy_key)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        api_url = 'https://edge.api.brightcove.com/playback/v1/accounts/%s/%ss/%s' % (account_id, content_type, video_id)
 | 
					        api_url = 'https://edge.api.brightcove.com/playback/v1/accounts/%s/%ss/%s' % (account_id, content_type, video_id)
 | 
				
			||||||
        headers = {
 | 
					        headers = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue