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,7 +78,6 @@ 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,
 | 
			
		||||
@@ -97,6 +95,8 @@ class GoIE(AdobePassIE):
 | 
			
		||||
                        '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())
 | 
			
		||||
@@ -105,18 +105,33 @@ class GoIE(AdobePassIE):
 | 
			
		||||
                    for error in errors:
 | 
			
		||||
                        if error.get('code') == 1002:
 | 
			
		||||
                            self.raise_geo_restricted(
 | 
			
		||||
                                    error['message'], countries=self._GEO_COUNTRIES)
 | 
			
		||||
                                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