1
0
mirror of https://github.com/l1ving/youtube-dl synced 2024-11-20 21:15:35 +08:00

[redbulltv] improve support for rebull.com TV localized URLS(#22063)

This commit is contained in:
Remita Amine 2020-09-13 11:26:11 +01:00
parent 1f7675451c
commit b03eebdb6a

View File

@ -192,7 +192,14 @@ class RedBullIE(InfoExtractor):
}, { }, {
'url': 'https://www.redbull.com/int-en/live/mens-dh-finals-fort-william', 'url': 'https://www.redbull.com/int-en/live/mens-dh-finals-fort-william',
'only_matching': True, 'only_matching': True,
}, {
# only available on the int-en website so a fallback is need for the API
# https://www.redbull.com/v3/api/graphql/v1/v3/query/en-GB>en-INT?filter[uriSlug]=fia-wrc-saturday-recap-estonia&rb3Schema=v1:hero
'url': 'https://www.redbull.com/gb-en/live/fia-wrc-saturday-recap-estonia',
'only_matching': True,
}] }]
_INT_FALLBACK_LIST = ['de', 'en', 'es', 'fr']
_LAT_FALLBACK_MAP = ['ar', 'bo', 'car', 'cl', 'co', 'mx', 'pe']
def _real_extract(self, url): def _real_extract(self, url):
region, lang, filter_type, display_id = re.search(self._VALID_URL, url).groups() region, lang, filter_type, display_id = re.search(self._VALID_URL, url).groups()
@ -201,8 +208,16 @@ class RedBullIE(InfoExtractor):
elif filter_type == 'live': elif filter_type == 'live':
filter_type = 'live-videos' filter_type = 'live-videos'
regions = [region.upper()]
if region != 'int':
if region in self._LAT_FALLBACK_MAP:
regions.append('LAT')
if lang in self._INT_FALLBACK_LIST:
regions.append('INT')
locale = '>'.join(['%s-%s' % (lang, reg) for reg in regions])
rrn_id = self._download_json( rrn_id = self._download_json(
'https://www.redbull.com/v3/api/graphql/v1/v3/query/%s-%s' % (lang, region.upper()), 'https://www.redbull.com/v3/api/graphql/v1/v3/query/' + locale,
display_id, query={ display_id, query={
'filter[type]': filter_type, 'filter[type]': filter_type,
'filter[uriSlug]': display_id, 'filter[uriSlug]': display_id,