aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMozi <29089388+pzhlkj6612@users.noreply.github.com>2024-05-23 16:25:16 +0000
committerGitHub <noreply@github.com>2024-05-23 16:25:16 +0000
commiteead3bbc01f6529862bdad1f0b2adeabda4f006e (patch)
tree46c6d7760c6b6898122ebbf7a7584b56dd2713d8
parent5bbfdb7c999b22f1aeca0c3489c167d6eb73013b (diff)
[ie/brilliantpala] Fix login (#9788)
Closes #9771 Authored by: pzhlkj6612
-rw-r--r--yt_dlp/extractor/brilliantpala.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/yt_dlp/extractor/brilliantpala.py b/yt_dlp/extractor/brilliantpala.py
index 0bf8622c1..950a70a5e 100644
--- a/yt_dlp/extractor/brilliantpala.py
+++ b/yt_dlp/extractor/brilliantpala.py
@@ -27,8 +27,17 @@ class BrilliantpalaBaseIE(InfoExtractor):
r'"username"\s*:\s*"(?P<username>[^"]+)"', webpage, 'logged-in username')
def _perform_login(self, username, password):
- login_form = self._hidden_inputs(self._download_webpage(
- self._LOGIN_API, None, 'Downloading login page'))
+ login_page, urlh = self._download_webpage_handle(
+ self._LOGIN_API, None, 'Downloading login page', expected_status=401)
+ if urlh.status != 401 and not urlh.url.startswith(self._LOGIN_API):
+ self.write_debug('Cookies are valid, no login required.')
+ return
+
+ if urlh.status == 401:
+ self.write_debug('Got HTTP Error 401; cookies have been invalidated')
+ login_page = self._download_webpage(self._LOGIN_API, None, 'Re-downloading login page')
+
+ login_form = self._hidden_inputs(login_page)
login_form.update({
'username': username,
'password': password,