From f44cb4e77bb9be8be291d02ab6f79dc0b4c0d4a1 Mon Sep 17 00:00:00 2001 From: Ferdinand Bachmann Date: Sat, 4 Mar 2023 22:58:16 +0100 Subject: [PATCH] [extractor/tubetugraz] Support `--twofactor` (#6424) (#6427) Authored by: Ferdi265 Closes #6424 --- yt_dlp/extractor/tubetugraz.py | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/yt_dlp/extractor/tubetugraz.py b/yt_dlp/extractor/tubetugraz.py index ebabedc9c4..2199fea19a 100644 --- a/yt_dlp/extractor/tubetugraz.py +++ b/yt_dlp/extractor/tubetugraz.py @@ -21,17 +21,36 @@ def _perform_login(self, username, password): if not urlh: return - urlh = self._request_webpage( + content, urlh = self._download_webpage_handle( urlh.geturl(), None, fatal=False, headers={'referer': urlh.geturl()}, - note='logging in', errnote='unable to log in', data=urlencode_postdata({ + note='logging in', errnote='unable to log in', + data=urlencode_postdata({ 'lang': 'de', '_eventId_proceed': '', 'j_username': username, 'j_password': password })) + if not urlh or urlh.geturl() == 'https://tube.tugraz.at/paella/ui/index.html': + return - if urlh and urlh.geturl() != 'https://tube.tugraz.at/paella/ui/index.html': + if not self._html_search_regex( + r']*>(Bitte geben Sie einen OTP-Wert ein:)

', + content, 'TFA prompt', default=None): self.report_warning('unable to login: incorrect password') + return + + content, urlh = self._download_webpage_handle( + urlh.geturl(), None, fatal=False, headers={'referer': urlh.geturl()}, + note='logging in with TFA', errnote='unable to log in with TFA', + data=urlencode_postdata({ + 'lang': 'de', + '_eventId_proceed': '', + 'j_tokenNumber': self._get_tfa_info(), + })) + if not urlh or urlh.geturl() == 'https://tube.tugraz.at/paella/ui/index.html': + return + + self.report_warning('unable to login: incorrect TFA code') def _extract_episode(self, episode_info): id = episode_info.get('id')