diff --git a/yt_dlp/extractor/mgtv.py b/yt_dlp/extractor/mgtv.py index c793626fde..a1a59d5114 100644 --- a/yt_dlp/extractor/mgtv.py +++ b/yt_dlp/extractor/mgtv.py @@ -9,6 +9,7 @@ from ..utils import ( int_or_none, parse_resolution, traverse_obj, + try_call, try_get, url_or_none, urljoin, @@ -94,12 +95,18 @@ class MGTVIE(InfoExtractor): raise stream_data = self._download_json( - 'https://pcweb.api.mgtv.com/player/getSource', video_id, query={ + 'https://tinker.glb.mgtv.com/player/getSource', video_id, query={ + '_support': '10000000', 'tk2': tk2, 'pm2': api_data['atc']['pm2'], 'video_id': video_id, 'type': 'pch5', + 'auth_mode': '1', + 'cxid': '', + 'supportMse': '1', 'src': 'intelmgtv', + 'abroad': try_call(lambda: self._get_cookies('https://www.mgtv.com')['abroad'].value) or '10', + 'allowedRC': '1', }, headers=self.geo_verification_headers())['data'] stream_domain = traverse_obj(stream_data, ('stream_domain', ..., {url_or_none}), get_all=False) @@ -110,7 +117,8 @@ class MGTVIE(InfoExtractor): self._RESOLUTIONS, (stream_name, 1 if stream.get('scale') == '16:9' else 0)) format_url = traverse_obj(self._download_json( urljoin(stream_domain, stream['url']), video_id, fatal=False, - note=f'Downloading video info for format {resolution or stream_name}'), + note=f'Downloading video info for format {resolution or stream_name}', + headers=self.geo_verification_headers()), ('info', {url_or_none})) if not format_url: continue