[turner,cnn] move a check for wrong timestamp to CNNIE
[youtube-dl] / youtube_dl / extractor / adobepass.py
index 4e59302ab4da59ee0306c7c88689019056833576..9e3a3e3620152390bffe996a542697f6f01736af 100644 (file)
@@ -13,7 +13,7 @@ from ..utils import (
 )
 
 
-class AdobePass(InfoExtractor):
+class AdobePassIE(InfoExtractor):
     _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'
 
@@ -90,6 +90,9 @@ class AdobePass(InfoExtractor):
                     '_method': 'GET',
                     'requestor_id': requestor_id,
                 }), headers=mvpd_headers)
+            if '<pendingLogout' in session:
+                self._downloader.cache.store('mvpd', requestor_id, {})
+                return self._extract_mvpd_auth(url, video_id, requestor_id, resource)
             authn_token = unescapeHTML(xml_text(session, 'authnToken'))
             requestor_info['authn_token'] = authn_token
             self._downloader.cache.store('mvpd', requestor_id, requestor_info)
@@ -105,6 +108,9 @@ class AdobePass(InfoExtractor):
                     'mso_id': xml_text(authn_token, 'simpleTokenMsoID'),
                     'userMeta': '1',
                 }), headers=mvpd_headers)
+            if '<pendingLogout' in authorize:
+                self._downloader.cache.store('mvpd', requestor_id, {})
+                return self._extract_mvpd_auth(url, video_id, requestor_id, resource)
             authz_token = unescapeHTML(xml_text(authorize, 'authzToken'))
             requestor_info[guid] = authz_token
             self._downloader.cache.store('mvpd', requestor_id, requestor_info)
@@ -114,7 +120,7 @@ class AdobePass(InfoExtractor):
             'ap_23': xml_text(authn_token, 'simpleSamlSessionIndex'),
         })
 
-        return self._download_webpage(
+        short_authorize = self._download_webpage(
             self._SERVICE_PROVIDER_TEMPLATE % 'shortAuthorize',
             video_id, 'Retrieving Media Token', data=urlencode_postdata({
                 'authz_token': authz_token,
@@ -122,3 +128,7 @@ class AdobePass(InfoExtractor):
                 'session_guid': xml_text(authn_token, 'simpleTokenAuthenticationGuid'),
                 'hashed_guid': 'false',
             }), headers=mvpd_headers)
+        if '<pendingLogout' in short_authorize:
+            self._downloader.cache.store('mvpd', requestor_id, {})
+            return self._extract_mvpd_auth(url, video_id, requestor_id, resource)
+        return short_authorize