diff options
author | Jelle Besseling <jelle@pingiun.com> | 2022-06-24 01:21:03 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-23 16:21:03 -0700 |
commit | 34baaced11fc34ab38e39c45d1f6fccc09292404 (patch) | |
tree | 7468ed2322fffe421b0e9e7ee147aef53ee54a4f | |
parent | 9809740ba5cc5daf53e690d104a37aa6545e53f9 (diff) | |
download | hypervideo-pre-34baaced11fc34ab38e39c45d1f6fccc09292404.tar.lz hypervideo-pre-34baaced11fc34ab38e39c45d1f6fccc09292404.tar.xz hypervideo-pre-34baaced11fc34ab38e39c45d1f6fccc09292404.zip |
[extractor/dropout] Support cookies and login only as needed (#4075)
Closes #4035
Authored by: pingiun, pukkandan
-rw-r--r-- | yt_dlp/extractor/dropout.py | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/yt_dlp/extractor/dropout.py b/yt_dlp/extractor/dropout.py index 039ac4b2c..e280b1c9f 100644 --- a/yt_dlp/extractor/dropout.py +++ b/yt_dlp/extractor/dropout.py @@ -119,16 +119,16 @@ class DropoutIE(InfoExtractor): 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') |