1
0
mirror of https://github.com/yt-dlp/yt-dlp.git synced 2025-12-16 04:58:56 +00:00

[ie] Add _download_firefox_webpage helper

Authored by: bashonly
This commit is contained in:
bashonly
2025-06-25 12:50:20 -05:00
parent 73bf102116
commit 63590cd928
4 changed files with 55 additions and 26 deletions

View File

@@ -63,17 +63,6 @@ class TelecincoBaseIE(InfoExtractor):
'http_headers': headers,
}
def _download_akamai_webpage(self, url, display_id):
try: # yt-dlp's default user-agents are too old and blocked by akamai
return self._download_webpage(url, display_id, headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; rv:136.0) Gecko/20100101 Firefox/136.0',
})
except ExtractorError as e:
if not isinstance(e.cause, HTTPError) or e.cause.status != 403:
raise
# Retry with impersonation if hardcoded UA is insufficient to bypass akamai
return self._download_webpage(url, display_id, impersonate=True)
class TelecincoIE(TelecincoBaseIE):
IE_DESC = 'telecinco.es, cuatro.com and mediaset.es'
@@ -151,7 +140,8 @@ class TelecincoIE(TelecincoBaseIE):
def _real_extract(self, url):
display_id = self._match_id(url)
webpage = self._download_akamai_webpage(url, display_id)
# yt-dlp's default Chrome user-agents are too old and blocked by akamai
webpage = self._download_firefox_webpage(url, display_id, impersonate=True)
article = self._search_json(
r'window\.\$REACTBASE_STATE\.article(?:_multisite)?\s*=',
webpage, 'article', display_id)['article']