[extractor/dplay] GlobalCyclingNetworkPlus: Add extractor (#7360)
* Allows `country` API param to be configured with `--xff`/`geo_bypass_country` Closes #7324 Authored by: bashonly
This commit is contained in:
parent
f2ff0f6f19
commit
774aa09dd6
2 changed files with 38 additions and 0 deletions
|
@ -497,6 +497,7 @@ from .dplay import (
|
||||||
DiscoveryPlusItalyIE,
|
DiscoveryPlusItalyIE,
|
||||||
DiscoveryPlusItalyShowIE,
|
DiscoveryPlusItalyShowIE,
|
||||||
DiscoveryPlusIndiaShowIE,
|
DiscoveryPlusIndiaShowIE,
|
||||||
|
GlobalCyclingNetworkPlusIE,
|
||||||
)
|
)
|
||||||
from .dreisat import DreiSatIE
|
from .dreisat import DreiSatIE
|
||||||
from .drbonanza import DRBonanzaIE
|
from .drbonanza import DRBonanzaIE
|
||||||
|
|
|
@ -65,6 +65,7 @@ class DPlayBaseIE(InfoExtractor):
|
||||||
return streaming_list
|
return streaming_list
|
||||||
|
|
||||||
def _get_disco_api_info(self, url, display_id, disco_host, realm, country, domain=''):
|
def _get_disco_api_info(self, url, display_id, disco_host, realm, country, domain=''):
|
||||||
|
country = self.get_param('geo_bypass_country') or country
|
||||||
geo_countries = [country.upper()]
|
geo_countries = [country.upper()]
|
||||||
self._initialize_geo_bypass({
|
self._initialize_geo_bypass({
|
||||||
'countries': geo_countries,
|
'countries': geo_countries,
|
||||||
|
@ -1001,3 +1002,39 @@ class DiscoveryPlusIndiaShowIE(DiscoveryPlusShowBaseIE):
|
||||||
_SHOW_STR = 'show'
|
_SHOW_STR = 'show'
|
||||||
_INDEX = 4
|
_INDEX = 4
|
||||||
_VIDEO_IE = DiscoveryPlusIndiaIE
|
_VIDEO_IE = DiscoveryPlusIndiaIE
|
||||||
|
|
||||||
|
|
||||||
|
class GlobalCyclingNetworkPlusIE(DiscoveryPlusBaseIE):
|
||||||
|
_VALID_URL = r'https?://plus\.globalcyclingnetwork\.com/watch/(?P<id>\d+)'
|
||||||
|
_TESTS = [{
|
||||||
|
'url': 'https://plus.globalcyclingnetwork.com/watch/1397691',
|
||||||
|
'info_dict': {
|
||||||
|
'id': '1397691',
|
||||||
|
'ext': 'mp4',
|
||||||
|
'title': 'The Athertons: Mountain Biking\'s Fastest Family',
|
||||||
|
'description': 'md5:75a81937fcd8b989eec6083a709cd837',
|
||||||
|
'thumbnail': 'https://us1-prod-images.disco-api.com/2021/03/04/eb9e3026-4849-3001-8281-9356466f0557.png',
|
||||||
|
'series': 'gcn',
|
||||||
|
'creator': 'Gcn',
|
||||||
|
'upload_date': '20210309',
|
||||||
|
'timestamp': 1615248000,
|
||||||
|
'duration': 2531.0,
|
||||||
|
'tags': [],
|
||||||
|
},
|
||||||
|
'skip': 'Subscription required',
|
||||||
|
'params': {'skip_download': 'm3u8'},
|
||||||
|
}]
|
||||||
|
|
||||||
|
_PRODUCT = 'web'
|
||||||
|
_DISCO_API_PARAMS = {
|
||||||
|
'disco_host': 'disco-api-prod.globalcyclingnetwork.com',
|
||||||
|
'realm': 'gcn',
|
||||||
|
'country': 'us',
|
||||||
|
}
|
||||||
|
|
||||||
|
def _update_disco_api_headers(self, headers, disco_base, display_id, realm):
|
||||||
|
headers.update({
|
||||||
|
'x-disco-params': f'realm={realm}',
|
||||||
|
'x-disco-client': f'WEB:UNKNOWN:{self._PRODUCT}:27.3.2',
|
||||||
|
'Authorization': self._get_auth(disco_base, display_id, realm),
|
||||||
|
})
|
||||||
|
|
Loading…
Reference in a new issue