This commit is contained in:
		
							parent
							
								
									050f143c12
								
							
						
					
					
						commit
						8e1409fd80
					
				
					 1 changed files with 48 additions and 33 deletions
				
			
		| 
						 | 
					@ -37,7 +37,6 @@ class GoIE(AdobePassIE):
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    _VALID_URL = r'https?://(?:(?P<sub_domain>%s)\.)?go\.com/(?:[^/]+/)*(?:vdka(?P<id>\w+)|season-\d+/\d+-(?P<display_id>[^/?#]+))' % '|'.join(_SITE_INFO.keys())
 | 
					    _VALID_URL = r'https?://(?:(?P<sub_domain>%s)\.)?go\.com/(?:[^/]+/)*(?:vdka(?P<id>\w+)|season-\d+/\d+-(?P<display_id>[^/?#]+))' % '|'.join(_SITE_INFO.keys())
 | 
				
			||||||
    _GEO_COUNTRIES = ['US']
 | 
					 | 
				
			||||||
    _TESTS = [{
 | 
					    _TESTS = [{
 | 
				
			||||||
        'url': 'http://abc.go.com/shows/castle/video/most-recent/vdka0_g86w5onx',
 | 
					        'url': 'http://abc.go.com/shows/castle/video/most-recent/vdka0_g86w5onx',
 | 
				
			||||||
        'info_dict': {
 | 
					        'info_dict': {
 | 
				
			||||||
| 
						 | 
					@ -79,44 +78,60 @@ class GoIE(AdobePassIE):
 | 
				
			||||||
            ext = determine_ext(asset_url)
 | 
					            ext = determine_ext(asset_url)
 | 
				
			||||||
            if ext == 'm3u8':
 | 
					            if ext == 'm3u8':
 | 
				
			||||||
                video_type = video_data.get('type')
 | 
					                video_type = video_data.get('type')
 | 
				
			||||||
                if video_type == 'lf':
 | 
					                data = {
 | 
				
			||||||
                    data = {
 | 
					                    'video_id': video_data['id'],
 | 
				
			||||||
                        'video_id': video_data['id'],
 | 
					                    'video_type': video_type,
 | 
				
			||||||
                        'video_type': video_type,
 | 
					                    'brand': brand,
 | 
				
			||||||
                        'brand': brand,
 | 
					                    'device': '001',
 | 
				
			||||||
                        'device': '001',
 | 
					                }
 | 
				
			||||||
                    }
 | 
					                if video_data.get('accesslevel') == '1':
 | 
				
			||||||
                    if video_data.get('accesslevel') == '1':
 | 
					                    requestor_id = site_info['requestor_id']
 | 
				
			||||||
                        requestor_id = site_info['requestor_id']
 | 
					                    resource = self._get_mvpd_resource(
 | 
				
			||||||
                        resource = self._get_mvpd_resource(
 | 
					                        requestor_id, title, video_id, None)
 | 
				
			||||||
                            requestor_id, title, video_id, None)
 | 
					                    auth = self._extract_mvpd_auth(
 | 
				
			||||||
                        auth = self._extract_mvpd_auth(
 | 
					                        url, video_id, requestor_id, resource)
 | 
				
			||||||
                            url, video_id, requestor_id, resource)
 | 
					                    data.update({
 | 
				
			||||||
                        data.update({
 | 
					                        'token': auth,
 | 
				
			||||||
                            'token': auth,
 | 
					                        'token_type': 'ap',
 | 
				
			||||||
                            'token_type': 'ap',
 | 
					                        'adobe_requestor_id': requestor_id,
 | 
				
			||||||
                            'adobe_requestor_id': requestor_id,
 | 
					                    })
 | 
				
			||||||
                        })
 | 
					                else:
 | 
				
			||||||
                    entitlement = self._download_json(
 | 
					                    self._initialize_geo_bypass(['US'])
 | 
				
			||||||
                        'https://api.entitlement.watchabc.go.com/vp2/ws-secure/entitlement/2020/authorize.json',
 | 
					                entitlement = self._download_json(
 | 
				
			||||||
                        video_id, data=urlencode_postdata(data), headers=self.geo_verification_headers())
 | 
					                    'https://api.entitlement.watchabc.go.com/vp2/ws-secure/entitlement/2020/authorize.json',
 | 
				
			||||||
                    errors = entitlement.get('errors', {}).get('errors', [])
 | 
					                    video_id, data=urlencode_postdata(data), headers=self.geo_verification_headers())
 | 
				
			||||||
                    if errors:
 | 
					                errors = entitlement.get('errors', {}).get('errors', [])
 | 
				
			||||||
                        for error in errors:
 | 
					                if errors:
 | 
				
			||||||
                            if error.get('code') == 1002:
 | 
					                    for error in errors:
 | 
				
			||||||
                                self.raise_geo_restricted(
 | 
					                        if error.get('code') == 1002:
 | 
				
			||||||
                                    error['message'], countries=self._GEO_COUNTRIES)
 | 
					                            self.raise_geo_restricted(
 | 
				
			||||||
                        error_message = ', '.join([error['message'] for error in errors])
 | 
					                                error['message'], countries=['US'])
 | 
				
			||||||
                        raise ExtractorError('%s said: %s' % (self.IE_NAME, error_message), expected=True)
 | 
					                    error_message = ', '.join([error['message'] for error in errors])
 | 
				
			||||||
                    asset_url += '?' + entitlement['uplynkData']['sessionKey']
 | 
					                    raise ExtractorError('%s said: %s' % (self.IE_NAME, error_message), expected=True)
 | 
				
			||||||
 | 
					                asset_url += '?' + entitlement['uplynkData']['sessionKey']
 | 
				
			||||||
                formats.extend(self._extract_m3u8_formats(
 | 
					                formats.extend(self._extract_m3u8_formats(
 | 
				
			||||||
                    asset_url, video_id, 'mp4', m3u8_id=format_id or 'hls', fatal=False))
 | 
					                    asset_url, video_id, 'mp4', m3u8_id=format_id or 'hls', fatal=False))
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
                formats.append({
 | 
					                f = {
 | 
				
			||||||
                    'format_id': format_id,
 | 
					                    'format_id': format_id,
 | 
				
			||||||
                    'url': asset_url,
 | 
					                    'url': asset_url,
 | 
				
			||||||
                    'ext': ext,
 | 
					                    'ext': ext,
 | 
				
			||||||
                })
 | 
					                }
 | 
				
			||||||
 | 
					                if re.search(r'(?:/mp4/source/|_source\.mp4)', asset_url):
 | 
				
			||||||
 | 
					                    f.update({
 | 
				
			||||||
 | 
					                        'format_id': ('%s-' % format_id if format_id else '') + 'SOURCE',
 | 
				
			||||||
 | 
					                        'preference': 1,
 | 
				
			||||||
 | 
					                    })
 | 
				
			||||||
 | 
					                else:
 | 
				
			||||||
 | 
					                    mobj = re.search(r'/(\d+)x(\d+)/', asset_url)
 | 
				
			||||||
 | 
					                    if mobj:
 | 
				
			||||||
 | 
					                        height = int(mobj.group(2))
 | 
				
			||||||
 | 
					                        f.update({
 | 
				
			||||||
 | 
					                            'format_id': ('%s-' % format_id if format_id else '') + '%dP' % height,
 | 
				
			||||||
 | 
					                            'width': int(mobj.group(1)),
 | 
				
			||||||
 | 
					                            'height': height,
 | 
				
			||||||
 | 
					                        })
 | 
				
			||||||
 | 
					                formats.append(f)
 | 
				
			||||||
        self._sort_formats(formats)
 | 
					        self._sort_formats(formats)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        subtitles = {}
 | 
					        subtitles = {}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue