diff options
author | Remita Amine <[email protected]> | 2020-09-13 11:26:11 +0100 |
---|---|---|
committer | Remita Amine <[email protected]> | 2020-09-13 11:26:11 +0100 |
commit | b03eebdb6aab0f778293ed298543083b6ae76963 (patch) | |
tree | e5a8bc30ddf1a640b708518c0467d6f005b0c90a | |
parent | 1f7675451c119b67edb486940e1275b096dd47d5 (diff) | |
download | youtube-dl-b03eebdb6aab0f778293ed298543083b6ae76963.tar.gz youtube-dl-b03eebdb6aab0f778293ed298543083b6ae76963.zip |
[redbulltv] improve support for rebull.com TV localized URLS(#22063)
-rw-r--r-- | youtube_dl/extractor/redbulltv.py | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/youtube_dl/extractor/redbulltv.py b/youtube_dl/extractor/redbulltv.py index 06945bd0c..3aae79f5d 100644 --- a/youtube_dl/extractor/redbulltv.py +++ b/youtube_dl/extractor/redbulltv.py @@ -192,7 +192,14 @@ class RedBullIE(InfoExtractor): }, { 'url': 'https://www.redbull.com/int-en/live/mens-dh-finals-fort-william', '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): region, lang, filter_type, display_id = re.search(self._VALID_URL, url).groups() @@ -201,8 +208,16 @@ class RedBullIE(InfoExtractor): elif filter_type == 'live': 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( - '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={ 'filter[type]': filter_type, 'filter[uriSlug]': display_id, |