]> jfr.im git - yt-dlp.git/commitdiff
[extractor/dropout] Support cookies and login only as needed (#4075)
authorJelle Besseling <redacted>
Thu, 23 Jun 2022 23:21:03 +0000 (01:21 +0200)
committerGitHub <redacted>
Thu, 23 Jun 2022 23:21:03 +0000 (16:21 -0700)
Closes #4035
Authored by: pingiun, pukkandan

yt_dlp/extractor/dropout.py

index 039ac4b2c581b1ae55853eb58da47ffc14e1d339..e280b1c9f42e91f64390ea4a74fbb46c06a48a48 100644 (file)
@@ -119,16 +119,16 @@ def _login(self, display_id):
 
     def _real_extract(self, url):
         display_id = self._match_id(url)
-        login_err, webpage = False, ''
-        try:
+
+        webpage = None
+        if self._get_cookies('https://www.dropout.tv').get('_session'):
+            webpage = self._download_webpage(url, display_id)
+        if not webpage or '<div id="watch-unauthorized"' in webpage:
             login_err = self._login(display_id)
             webpage = self._download_webpage(url, display_id)
-        finally:
-            if not login_err:
-                self._download_webpage('https://www.dropout.tv/logout', display_id, note='Logging out', fatal=False)
-            elif '<div id="watch-unauthorized"' in webpage:
+            if login_err and '<div id="watch-unauthorized"' in webpage:
                 if login_err is True:
-                    self.raise_login_required(method='password')
+                    self.raise_login_required(method='any')
                 raise ExtractorError(login_err, expected=True)
 
         embed_url = self._search_regex(r'embed_url:\s*["\'](.+?)["\']', webpage, 'embed url')