[vzaar] override AES decryption key URL(closes #17521)
This commit is contained in:
		
							parent
							
								
									6797de75e0
								
							
						
					
					
						commit
						c712b16dc4
					
				
					 2 changed files with 11 additions and 8 deletions
				
			
		| 
						 | 
				
			
			@ -64,7 +64,7 @@ class HlsFD(FragmentFD):
 | 
			
		|||
        s = urlh.read().decode('utf-8', 'ignore')
 | 
			
		||||
 | 
			
		||||
        if not self.can_download(s, info_dict):
 | 
			
		||||
            if info_dict.get('extra_param_to_segment_url'):
 | 
			
		||||
            if info_dict.get('extra_param_to_segment_url') or info_dict.get('_decryption_key_url'):
 | 
			
		||||
                self.report_error('pycrypto not found. Please install it.')
 | 
			
		||||
                return False
 | 
			
		||||
            self.report_warning(
 | 
			
		||||
| 
						 | 
				
			
			@ -169,7 +169,7 @@ class HlsFD(FragmentFD):
 | 
			
		|||
                    if decrypt_info['METHOD'] == 'AES-128':
 | 
			
		||||
                        iv = decrypt_info.get('IV') or compat_struct_pack('>8xq', media_sequence)
 | 
			
		||||
                        decrypt_info['KEY'] = decrypt_info.get('KEY') or self.ydl.urlopen(
 | 
			
		||||
                            self._prepare_url(info_dict, decrypt_info['URI'])).read()
 | 
			
		||||
                            self._prepare_url(info_dict, info_dict.get('_decryption_key_url') or decrypt_info['URI'])).read()
 | 
			
		||||
                        frag_content = AES.new(
 | 
			
		||||
                            decrypt_info['KEY'], AES.MODE_CBC, iv).decrypt(frag_content)
 | 
			
		||||
                    self._append_fragment(ctx, frag_content)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -87,12 +87,15 @@ class VzaarIE(InfoExtractor):
 | 
			
		|||
        usp = video_data.get('usp')
 | 
			
		||||
        if video_data.get('uspEnabled') and isinstance(video_guid, compat_str) and isinstance(usp, dict):
 | 
			
		||||
            hls_aes = video_data.get('hlsAes')
 | 
			
		||||
            m3u8_url = ('http://fable.vzaar.com/v5/usp%s/%s/%s.ism/.m3u8?'
 | 
			
		||||
                        % ('aes' if hls_aes else '', video_guid, video_id)) + '&'.join(
 | 
			
		||||
                '%s=%s' % (k, v) for k, v in usp.items())
 | 
			
		||||
            formats.extend(self._extract_m3u8_formats(
 | 
			
		||||
                m3u8_url, video_id, 'mp4', 'm3u8' if hls_aes else 'm3u8_native',
 | 
			
		||||
                m3u8_id='hls', fatal=False))
 | 
			
		||||
            qs = '&'.join('%s=%s' % (k, v) for k, v in usp.items())
 | 
			
		||||
            url_templ = 'http://%%s.vzaar.com/v5/usp%s/%s/%s.ism%%s?' % ('aes' if hls_aes else '', video_guid, video_id)
 | 
			
		||||
            m3u8_formats = self._extract_m3u8_formats(
 | 
			
		||||
                url_templ % ('fable', '/.m3u8') + qs, video_id, 'mp4', 'm3u8_native',
 | 
			
		||||
                m3u8_id='hls', fatal=False)
 | 
			
		||||
            if hls_aes:
 | 
			
		||||
                for f in m3u8_formats:
 | 
			
		||||
                    f['_decryption_key_url'] = url_templ % ('goose', '') + qs
 | 
			
		||||
            formats.extend(m3u8_formats)
 | 
			
		||||
 | 
			
		||||
        self._sort_formats(formats)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue