|
|
@ -32,6 +32,7 @@ MSO_INFO = {
|
|
|
|
class AdobePassIE(InfoExtractor):
|
|
|
|
class AdobePassIE(InfoExtractor):
|
|
|
|
_SERVICE_PROVIDER_TEMPLATE = 'https://sp.auth.adobe.com/adobe-services/%s'
|
|
|
|
_SERVICE_PROVIDER_TEMPLATE = 'https://sp.auth.adobe.com/adobe-services/%s'
|
|
|
|
_USER_AGENT = 'Mozilla/5.0 (X11; Linux i686; rv:47.0) Gecko/20100101 Firefox/47.0'
|
|
|
|
_USER_AGENT = 'Mozilla/5.0 (X11; Linux i686; rv:47.0) Gecko/20100101 Firefox/47.0'
|
|
|
|
|
|
|
|
_MVPD_CACHE = 'ap-mvpd'
|
|
|
|
|
|
|
|
|
|
|
|
@staticmethod
|
|
|
|
@staticmethod
|
|
|
|
def _get_mvpd_resource(provider_id, title, guid, rating):
|
|
|
|
def _get_mvpd_resource(provider_id, title, guid, rating):
|
|
|
@ -85,7 +86,7 @@ class AdobePassIE(InfoExtractor):
|
|
|
|
guid = xml_text(resource, 'guid')
|
|
|
|
guid = xml_text(resource, 'guid')
|
|
|
|
count = 0
|
|
|
|
count = 0
|
|
|
|
while count < 2:
|
|
|
|
while count < 2:
|
|
|
|
requestor_info = self._downloader.cache.load('mvpd', requestor_id) or {}
|
|
|
|
requestor_info = self._downloader.cache.load(self._MVPD_CACHE, requestor_id) or {}
|
|
|
|
authn_token = requestor_info.get('authn_token')
|
|
|
|
authn_token = requestor_info.get('authn_token')
|
|
|
|
if authn_token and is_expired(authn_token, 'simpleTokenExpires'):
|
|
|
|
if authn_token and is_expired(authn_token, 'simpleTokenExpires'):
|
|
|
|
authn_token = None
|
|
|
|
authn_token = None
|
|
|
@ -125,12 +126,12 @@ class AdobePassIE(InfoExtractor):
|
|
|
|
'requestor_id': requestor_id,
|
|
|
|
'requestor_id': requestor_id,
|
|
|
|
}), headers=mvpd_headers)
|
|
|
|
}), headers=mvpd_headers)
|
|
|
|
if '<pendingLogout' in session:
|
|
|
|
if '<pendingLogout' in session:
|
|
|
|
self._downloader.cache.store('mvpd', requestor_id, {})
|
|
|
|
self._downloader.cache.store(self._MVPD_CACHE, requestor_id, {})
|
|
|
|
count += 1
|
|
|
|
count += 1
|
|
|
|
continue
|
|
|
|
continue
|
|
|
|
authn_token = unescapeHTML(xml_text(session, 'authnToken'))
|
|
|
|
authn_token = unescapeHTML(xml_text(session, 'authnToken'))
|
|
|
|
requestor_info['authn_token'] = authn_token
|
|
|
|
requestor_info['authn_token'] = authn_token
|
|
|
|
self._downloader.cache.store('mvpd', requestor_id, requestor_info)
|
|
|
|
self._downloader.cache.store(self._MVPD_CACHE, requestor_id, requestor_info)
|
|
|
|
|
|
|
|
|
|
|
|
authz_token = requestor_info.get(guid)
|
|
|
|
authz_token = requestor_info.get(guid)
|
|
|
|
if authz_token and is_expired(authz_token, 'simpleTokenTTL'):
|
|
|
|
if authz_token and is_expired(authz_token, 'simpleTokenTTL'):
|
|
|
@ -146,12 +147,12 @@ class AdobePassIE(InfoExtractor):
|
|
|
|
'userMeta': '1',
|
|
|
|
'userMeta': '1',
|
|
|
|
}), headers=mvpd_headers)
|
|
|
|
}), headers=mvpd_headers)
|
|
|
|
if '<pendingLogout' in authorize:
|
|
|
|
if '<pendingLogout' in authorize:
|
|
|
|
self._downloader.cache.store('mvpd', requestor_id, {})
|
|
|
|
self._downloader.cache.store(self._MVPD_CACHE, requestor_id, {})
|
|
|
|
count += 1
|
|
|
|
count += 1
|
|
|
|
continue
|
|
|
|
continue
|
|
|
|
authz_token = unescapeHTML(xml_text(authorize, 'authzToken'))
|
|
|
|
authz_token = unescapeHTML(xml_text(authorize, 'authzToken'))
|
|
|
|
requestor_info[guid] = authz_token
|
|
|
|
requestor_info[guid] = authz_token
|
|
|
|
self._downloader.cache.store('mvpd', requestor_id, requestor_info)
|
|
|
|
self._downloader.cache.store(self._MVPD_CACHE, requestor_id, requestor_info)
|
|
|
|
|
|
|
|
|
|
|
|
mvpd_headers.update({
|
|
|
|
mvpd_headers.update({
|
|
|
|
'ap_19': xml_text(authn_token, 'simpleSamlNameID'),
|
|
|
|
'ap_19': xml_text(authn_token, 'simpleSamlNameID'),
|
|
|
@ -167,7 +168,7 @@ class AdobePassIE(InfoExtractor):
|
|
|
|
'hashed_guid': 'false',
|
|
|
|
'hashed_guid': 'false',
|
|
|
|
}), headers=mvpd_headers)
|
|
|
|
}), headers=mvpd_headers)
|
|
|
|
if '<pendingLogout' in short_authorize:
|
|
|
|
if '<pendingLogout' in short_authorize:
|
|
|
|
self._downloader.cache.store('mvpd', requestor_id, {})
|
|
|
|
self._downloader.cache.store(self._MVPD_CACHE, requestor_id, {})
|
|
|
|
count += 1
|
|
|
|
count += 1
|
|
|
|
continue
|
|
|
|
continue
|
|
|
|
return short_authorize
|
|
|
|
return short_authorize
|
|
|
|