[lynda] Simplify login and improve error capturing (#16891)
authorSergey M․ <dstftw@gmail.com>
Mon, 2 Jul 2018 19:47:09 +0000 (02:47 +0700)
committerSergey M․ <dstftw@gmail.com>
Mon, 2 Jul 2018 19:47:09 +0000 (02:47 +0700)
youtube_dl/extractor/lynda.py

index f5c7abc13eb431605355c080ade55da197fc04e3..1316cddb6b5d0df93edc11c8d5fa550dc6bfe44a 100644 (file)
@@ -44,21 +44,15 @@ class LyndaBaseIE(InfoExtractor):
         form_data = self._hidden_inputs(form_html)
         form_data.update(extra_form_data)
 
-        try:
-            response = self._download_json(
-                action_url, None, note,
-                data=urlencode_postdata(form_data),
-                headers={
-                    'Referer': referrer_url,
-                    'X-Requested-With': 'XMLHttpRequest',
-                })
-        except ExtractorError as e:
-            if isinstance(e.cause, compat_HTTPError) and e.cause.code == 500:
-                response = self._parse_json(e.cause.read().decode('utf-8'), None)
-                self._check_error(response, ('email', 'password'))
-            raise
-
-        self._check_error(response, 'ErrorMessage')
+        response = self._download_json(
+            action_url, None, note,
+            data=urlencode_postdata(form_data),
+            headers={
+                'Referer': referrer_url,
+                'X-Requested-With': 'XMLHttpRequest',
+            }, expected_status=(418, 500, ))
+
+        self._check_error(response, ('email', 'password', 'ErrorMessage'))
 
         return response, action_url