mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	This commit is contained in:
		| @@ -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()) | ||||
|     _GEO_COUNTRIES = ['US'] | ||||
|     _TESTS = [{ | ||||
|         'url': 'http://abc.go.com/shows/castle/video/most-recent/vdka0_g86w5onx', | ||||
|         'info_dict': { | ||||
| @@ -79,44 +78,60 @@ class GoIE(AdobePassIE): | ||||
|             ext = determine_ext(asset_url) | ||||
|             if ext == 'm3u8': | ||||
|                 video_type = video_data.get('type') | ||||
|                 if video_type == 'lf': | ||||
|                     data = { | ||||
|                         'video_id': video_data['id'], | ||||
|                         'video_type': video_type, | ||||
|                         'brand': brand, | ||||
|                         'device': '001', | ||||
|                     } | ||||
|                     if video_data.get('accesslevel') == '1': | ||||
|                         requestor_id = site_info['requestor_id'] | ||||
|                         resource = self._get_mvpd_resource( | ||||
|                             requestor_id, title, video_id, None) | ||||
|                         auth = self._extract_mvpd_auth( | ||||
|                             url, video_id, requestor_id, resource) | ||||
|                         data.update({ | ||||
|                             'token': auth, | ||||
|                             'token_type': 'ap', | ||||
|                             'adobe_requestor_id': requestor_id, | ||||
|                         }) | ||||
|                     entitlement = self._download_json( | ||||
|                         'https://api.entitlement.watchabc.go.com/vp2/ws-secure/entitlement/2020/authorize.json', | ||||
|                         video_id, data=urlencode_postdata(data), headers=self.geo_verification_headers()) | ||||
|                     errors = entitlement.get('errors', {}).get('errors', []) | ||||
|                     if errors: | ||||
|                         for error in errors: | ||||
|                             if error.get('code') == 1002: | ||||
|                                 self.raise_geo_restricted( | ||||
|                                     error['message'], countries=self._GEO_COUNTRIES) | ||||
|                         error_message = ', '.join([error['message'] for error in errors]) | ||||
|                         raise ExtractorError('%s said: %s' % (self.IE_NAME, error_message), expected=True) | ||||
|                     asset_url += '?' + entitlement['uplynkData']['sessionKey'] | ||||
|                 data = { | ||||
|                     'video_id': video_data['id'], | ||||
|                     'video_type': video_type, | ||||
|                     'brand': brand, | ||||
|                     'device': '001', | ||||
|                 } | ||||
|                 if video_data.get('accesslevel') == '1': | ||||
|                     requestor_id = site_info['requestor_id'] | ||||
|                     resource = self._get_mvpd_resource( | ||||
|                         requestor_id, title, video_id, None) | ||||
|                     auth = self._extract_mvpd_auth( | ||||
|                         url, video_id, requestor_id, resource) | ||||
|                     data.update({ | ||||
|                         'token': auth, | ||||
|                         'token_type': 'ap', | ||||
|                         'adobe_requestor_id': requestor_id, | ||||
|                     }) | ||||
|                 else: | ||||
|                     self._initialize_geo_bypass(['US']) | ||||
|                 entitlement = self._download_json( | ||||
|                     'https://api.entitlement.watchabc.go.com/vp2/ws-secure/entitlement/2020/authorize.json', | ||||
|                     video_id, data=urlencode_postdata(data), headers=self.geo_verification_headers()) | ||||
|                 errors = entitlement.get('errors', {}).get('errors', []) | ||||
|                 if errors: | ||||
|                     for error in errors: | ||||
|                         if error.get('code') == 1002: | ||||
|                             self.raise_geo_restricted( | ||||
|                                 error['message'], countries=['US']) | ||||
|                     error_message = ', '.join([error['message'] for error in errors]) | ||||
|                     raise ExtractorError('%s said: %s' % (self.IE_NAME, error_message), expected=True) | ||||
|                 asset_url += '?' + entitlement['uplynkData']['sessionKey'] | ||||
|                 formats.extend(self._extract_m3u8_formats( | ||||
|                     asset_url, video_id, 'mp4', m3u8_id=format_id or 'hls', fatal=False)) | ||||
|             else: | ||||
|                 formats.append({ | ||||
|                 f = { | ||||
|                     'format_id': format_id, | ||||
|                     'url': asset_url, | ||||
|                     '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) | ||||
|  | ||||
|         subtitles = {} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Remita Amine
					Remita Amine