From 1f1df1251e869cb539ed8ae9d72590d2b2e275a6 Mon Sep 17 00:00:00 2001 From: CplPwnies Date: Tue, 22 Mar 2022 16:09:38 -0500 Subject: [PATCH] [adobepass] Fix Suddenlink MSO (#3148) Authored by: CplPwnies --- yt_dlp/extractor/adobepass.py | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/yt_dlp/extractor/adobepass.py b/yt_dlp/extractor/adobepass.py index f0eba8844..5d98301b8 100644 --- a/yt_dlp/extractor/adobepass.py +++ b/yt_dlp/extractor/adobepass.py @@ -1650,21 +1650,27 @@ def extract_redirect_url(html, url=None, fatal=False): hidden_data = self._hidden_inputs(first_bookend_page) hidden_data['history_val'] = 1 - provider_login_redirect_page = self._download_webpage( + provider_login_redirect_page_res = self._download_webpage_handle( urlh.geturl(), video_id, 'Sending First Bookend', query=hidden_data) - provider_tryauth_url = self._html_search_regex( - r'url:\s*[\'"]([^\'"]+)', provider_login_redirect_page, 'ajaxurl') + provider_login_redirect_page, urlh = provider_login_redirect_page_res - provider_tryauth_page = self._download_webpage( - provider_tryauth_url, video_id, 'Submitting TryAuth', - query=hidden_data) + # Some website partners seem to not have the extra ajaxurl redirect step, so we check if we already + # have the login prompt or not + if 'id="password" type="password" name="password"' in provider_login_redirect_page: + provider_login_page_res = provider_login_redirect_page_res + else: + provider_tryauth_url = self._html_search_regex( + r'url:\s*[\'"]([^\'"]+)', provider_login_redirect_page, 'ajaxurl') + provider_tryauth_page = self._download_webpage( + provider_tryauth_url, video_id, 'Submitting TryAuth', + query=hidden_data) - provider_login_page_res = self._download_webpage_handle( - f'https://authorize.suddenlink.net/saml/module.php/authSynacor/login.php?AuthState={provider_tryauth_page}', - video_id, 'Getting Login Page', - query=hidden_data) + provider_login_page_res = self._download_webpage_handle( + f'https://authorize.suddenlink.net/saml/module.php/authSynacor/login.php?AuthState={provider_tryauth_page}', + video_id, 'Getting Login Page', + query=hidden_data) provider_association_redirect, urlh = post_form( provider_login_page_res, 'Logging in', {