mirror of
https://codeberg.org/polarisfm/youtube-dl
synced 2024-11-26 10:24:33 +01:00
[youtube] Fix TFA
This commit is contained in:
parent
55b8588f0e
commit
9f7a57dfc3
@ -60,6 +60,7 @@ class YoutubeBaseInfoExtractor(InfoExtractor):
|
|||||||
|
|
||||||
_LOOKUP_URL = 'https://accounts.google.com/_/signin/sl/lookup'
|
_LOOKUP_URL = 'https://accounts.google.com/_/signin/sl/lookup'
|
||||||
_CHALLENGE_URL = 'https://accounts.google.com/_/signin/sl/challenge'
|
_CHALLENGE_URL = 'https://accounts.google.com/_/signin/sl/challenge'
|
||||||
|
_SELECT_TFA_URL = 'https://accounts.google.com/_/signin/selectchallenge?hl=en&TL={0}'
|
||||||
_TFA_URL = 'https://accounts.google.com/_/signin/challenge?hl=en&TL={0}'
|
_TFA_URL = 'https://accounts.google.com/_/signin/challenge?hl=en&TL={0}'
|
||||||
|
|
||||||
_NETRC_MACHINE = 'youtube'
|
_NETRC_MACHINE = 'youtube'
|
||||||
@ -206,6 +207,18 @@ class YoutubeBaseInfoExtractor(InfoExtractor):
|
|||||||
|
|
||||||
tfa_code = remove_start(tfa_code, 'G-')
|
tfa_code = remove_start(tfa_code, 'G-')
|
||||||
|
|
||||||
|
select_tfa_results = req(
|
||||||
|
self._SELECT_TFA_URL.format(tl), [2],
|
||||||
|
'Selecting TOTP TFA challenge', 'Unable to select TOTP TFA challenge')
|
||||||
|
|
||||||
|
if select_tfa_results is False:
|
||||||
|
return False
|
||||||
|
|
||||||
|
tl = try_get(select_tfa_results, lambda x: x[1][2], compat_str)
|
||||||
|
if not tl:
|
||||||
|
warn('Unable to extract TL')
|
||||||
|
return False
|
||||||
|
|
||||||
tfa_req = [
|
tfa_req = [
|
||||||
user_hash, None, 2, None,
|
user_hash, None, 2, None,
|
||||||
[
|
[
|
||||||
@ -215,10 +228,21 @@ class YoutubeBaseInfoExtractor(InfoExtractor):
|
|||||||
|
|
||||||
tfa_results = req(
|
tfa_results = req(
|
||||||
self._TFA_URL.format(tl), tfa_req,
|
self._TFA_URL.format(tl), tfa_req,
|
||||||
'Submitting TFA code', 'Unable to submit TFA code')
|
'Submitting TFA code', 'Unable to submit TFA code, trying another way')
|
||||||
|
|
||||||
if tfa_results is False:
|
if tfa_results is False:
|
||||||
return False
|
tfa_req = [
|
||||||
|
user_hash, None, 2, None,
|
||||||
|
[
|
||||||
|
6, None, None, None, None,
|
||||||
|
[tfa_code, True]
|
||||||
|
]]
|
||||||
|
tfa_results = req(
|
||||||
|
self._TFA_URL.format(tl), tfa_req,
|
||||||
|
'Submitting TFA code', 'Unable to submit TFA code')
|
||||||
|
|
||||||
|
if tfa_results is False:
|
||||||
|
return False
|
||||||
|
|
||||||
tfa_res = try_get(tfa_results, lambda x: x[0][5], list)
|
tfa_res = try_get(tfa_results, lambda x: x[0][5], list)
|
||||||
if tfa_res:
|
if tfa_res:
|
||||||
|
Loading…
Reference in New Issue
Block a user