aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCplPwnies <barron879@gmail.com>2022-03-08 10:18:52 -0600
committerGitHub <noreply@github.com>2022-03-08 08:18:52 -0800
commit9e0e6adb2d5697e1ddedbfe3fbd23f498a8ff66c (patch)
treead3de402d9773974049b318f5486b65936f90655
parentb637c4e22ec57a178f82734fbb39f98bc1a679cb (diff)
downloadhypervideo-pre-9e0e6adb2d5697e1ddedbfe3fbd23f498a8ff66c.tar.lz
hypervideo-pre-9e0e6adb2d5697e1ddedbfe3fbd23f498a8ff66c.tar.xz
hypervideo-pre-9e0e6adb2d5697e1ddedbfe3fbd23f498a8ff66c.zip
[adobepass] Add Suddenlink MSO (#2977)
Closes #2704 Authored by: CplPwnies
-rw-r--r--yt_dlp/extractor/adobepass.py51
1 files changed, 51 insertions, 0 deletions
diff --git a/yt_dlp/extractor/adobepass.py b/yt_dlp/extractor/adobepass.py
index bebcafa6b..f0eba8844 100644
--- a/yt_dlp/extractor/adobepass.py
+++ b/yt_dlp/extractor/adobepass.py
@@ -1345,6 +1345,11 @@ MSO_INFO = {
'username_field': 'username',
'password_field': 'password',
},
+ 'Suddenlink': {
+ 'name': 'Suddenlink',
+ 'username_field': 'username',
+ 'password_field': 'password',
+ },
}
@@ -1636,6 +1641,52 @@ class AdobePassIE(InfoExtractor):
query=hidden_data)
post_form(mvpd_confirm_page_res, 'Confirming Login')
+ elif mso_id == 'Suddenlink':
+ # Suddenlink is similar to SlingTV in using a tab history count and a meta refresh,
+ # but they also do a dynmaic redirect using javascript that has to be followed as well
+ first_bookend_page, urlh = post_form(
+ provider_redirect_page_res, 'Pressing Continue...')
+
+ hidden_data = self._hidden_inputs(first_bookend_page)
+ hidden_data['history_val'] = 1
+
+ provider_login_redirect_page = self._download_webpage(
+ 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_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_association_redirect, urlh = post_form(
+ provider_login_page_res, 'Logging in', {
+ mso_info['username_field']: username,
+ mso_info['password_field']: password
+ })
+
+ provider_refresh_redirect_url = extract_redirect_url(
+ provider_association_redirect, url=urlh.geturl())
+
+ last_bookend_page, urlh = self._download_webpage_handle(
+ provider_refresh_redirect_url, video_id,
+ 'Downloading Auth Association Redirect Page')
+
+ hidden_data = self._hidden_inputs(last_bookend_page)
+ hidden_data['history_val'] = 3
+
+ mvpd_confirm_page_res = self._download_webpage_handle(
+ urlh.geturl(), video_id, 'Sending Final Bookend',
+ query=hidden_data)
+
+ post_form(mvpd_confirm_page_res, 'Confirming Login')
else:
# Some providers (e.g. DIRECTV NOW) have another meta refresh
# based redirect that should be followed.