1
0
mirror of https://codeberg.org/polarisfm/youtube-dl synced 2024-11-26 18:34:32 +01:00

[youtube] Fix TFA

This commit is contained in:
eduardog3000 2018-12-13 16:15:07 -05:00
parent 55b8588f0e
commit 9f7a57dfc3
No known key found for this signature in database
GPG Key ID: 717BD30C29F73188

View File

@ -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,
[ [
@ -213,6 +226,17 @@ class YoutubeBaseInfoExtractor(InfoExtractor):
[None, tfa_code, True, 2] [None, tfa_code, True, 2]
]] ]]
tfa_results = req(
self._TFA_URL.format(tl), tfa_req,
'Submitting TFA code', 'Unable to submit TFA code, trying another way')
if tfa_results is False:
tfa_req = [
user_hash, None, 2, None,
[
6, None, None, None, None,
[tfa_code, True]
]]
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')