[adobepass] Fix Verizon SAML login (#743)
Original PR: https://github.com/ytdl-org/youtube-dl/pull/19136 from 64bddfe15c
Authored-by: nyuszika7h, ParadoxGBB <paradoxgbb@yahoo.com>
This commit is contained in:
parent
8b7491c8d1
commit
52a2f994c9
1 changed files with 24 additions and 2 deletions
|
@ -1508,7 +1508,8 @@ class AdobePassIE(InfoExtractor):
|
||||||
# In general, if you're connecting from a Verizon-assigned IP,
|
# In general, if you're connecting from a Verizon-assigned IP,
|
||||||
# you will not actually pass your credentials.
|
# you will not actually pass your credentials.
|
||||||
provider_redirect_page, urlh = provider_redirect_page_res
|
provider_redirect_page, urlh = provider_redirect_page_res
|
||||||
if 'Please wait ...' in provider_redirect_page:
|
# From non-Verizon IP, still gave 'Please wait', but noticed N==Y; will need to try on Verizon IP
|
||||||
|
if 'Please wait ...' in provider_redirect_page and '\'N\'== "Y"' not in provider_redirect_page:
|
||||||
saml_redirect_url = self._html_search_regex(
|
saml_redirect_url = self._html_search_regex(
|
||||||
r'self\.parent\.location=(["\'])(?P<url>.+?)\1',
|
r'self\.parent\.location=(["\'])(?P<url>.+?)\1',
|
||||||
provider_redirect_page,
|
provider_redirect_page,
|
||||||
|
@ -1516,7 +1517,8 @@ class AdobePassIE(InfoExtractor):
|
||||||
saml_login_page = self._download_webpage(
|
saml_login_page = self._download_webpage(
|
||||||
saml_redirect_url, video_id,
|
saml_redirect_url, video_id,
|
||||||
'Downloading SAML Login Page')
|
'Downloading SAML Login Page')
|
||||||
else:
|
elif 'Verizon FiOS - sign in' in provider_redirect_page:
|
||||||
|
# FXNetworks from non-Verizon IP
|
||||||
saml_login_page_res = post_form(
|
saml_login_page_res = post_form(
|
||||||
provider_redirect_page_res, 'Logging in', {
|
provider_redirect_page_res, 'Logging in', {
|
||||||
mso_info['username_field']: username,
|
mso_info['username_field']: username,
|
||||||
|
@ -1526,6 +1528,26 @@ class AdobePassIE(InfoExtractor):
|
||||||
if 'Please try again.' in saml_login_page:
|
if 'Please try again.' in saml_login_page:
|
||||||
raise ExtractorError(
|
raise ExtractorError(
|
||||||
'We\'re sorry, but either the User ID or Password entered is not correct.')
|
'We\'re sorry, but either the User ID or Password entered is not correct.')
|
||||||
|
else:
|
||||||
|
# ABC from non-Verizon IP
|
||||||
|
saml_redirect_url = self._html_search_regex(
|
||||||
|
r'var\surl\s*=\s*(["\'])(?P<url>.+?)\1',
|
||||||
|
provider_redirect_page,
|
||||||
|
'SAML Redirect URL', group='url')
|
||||||
|
saml_redirect_url = saml_redirect_url.replace(r'\/', '/')
|
||||||
|
saml_redirect_url = saml_redirect_url.replace(r'\-', '-')
|
||||||
|
saml_redirect_url = saml_redirect_url.replace(r'\x26', '&')
|
||||||
|
saml_login_page = self._download_webpage(
|
||||||
|
saml_redirect_url, video_id,
|
||||||
|
'Downloading SAML Login Page')
|
||||||
|
saml_login_page, urlh = post_form(
|
||||||
|
[saml_login_page, saml_redirect_url], 'Logging in', {
|
||||||
|
mso_info['username_field']: username,
|
||||||
|
mso_info['password_field']: password,
|
||||||
|
})
|
||||||
|
if 'Please try again.' in saml_login_page:
|
||||||
|
raise ExtractorError(
|
||||||
|
'Failed to login, incorrect User ID or Password.')
|
||||||
saml_login_url = self._search_regex(
|
saml_login_url = self._search_regex(
|
||||||
r'xmlHttp\.open\("POST"\s*,\s*(["\'])(?P<url>.+?)\1',
|
r'xmlHttp\.open\("POST"\s*,\s*(["\'])(?P<url>.+?)\1',
|
||||||
saml_login_page, 'SAML Login URL', group='url')
|
saml_login_page, 'SAML Login URL', group='url')
|
||||||
|
|
Loading…
Reference in a new issue