diff options
-rw-r--r-- | youtube/accounts.py | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/youtube/accounts.py b/youtube/accounts.py index 8399c9a..a7461c0 100644 --- a/youtube/accounts.py +++ b/youtube/accounts.py @@ -158,6 +158,13 @@ def try_get(src, getter, expected_type=None): def remove_start(s, start): return s[len(start):] if s is not None and s.startswith(start) else s + +yt_dl_headers = { + 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0 (Chrome)', + 'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', + 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', + 'Accept-Language': 'en-us,en;q=0.5', +} _LOGIN_URL = 'https://accounts.google.com/ServiceLogin' _TWOFACTOR_URL = 'https://accounts.google.com/signin/challenge' @@ -172,8 +179,10 @@ def _login(username, password, cookie_jar): Taken from youtube-dl """ - login_page = common.fetch_url(_LOGIN_URL, report_text='Downloaded login page', cookie_jar_receive=cookie_jar).decode('utf-8') - + login_page = common.fetch_url(_LOGIN_URL, yt_dl_headers, report_text='Downloaded login page', cookie_jar_receive=cookie_jar).decode('utf-8') + '''with open('debug/login_page', 'w', encoding='utf-8') as f: + f.write(login_page)''' + #print(cookie_jar.as_lwp_str()) if login_page is False: return @@ -195,7 +204,11 @@ def _login(username, password, cookie_jar): 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8', 'Google-Accounts-XSRF': 1, } - result = common.fetch_url(url, headers, report_text=note, data=data, cookie_jar_send=cookie_jar, cookie_jar_receive=cookie_jar) + headers.update(yt_dl_headers) + result = common.fetch_url(url, headers, report_text=note, data=data, cookie_jar_send=cookie_jar, cookie_jar_receive=cookie_jar).decode('utf-8') + #print(cookie_jar.as_lwp_str()) + '''with open('debug/' + note, 'w', encoding='utf-8') as f: + f.write(result)''' result = re.sub(r'^[^\[]*', '', result) return json.loads(result) @@ -324,7 +337,7 @@ def _login(username, password, cookie_jar): return False try: - check_cookie_results = common.fetch_url(check_cookie_url, report_text="Checked cookie", cookie_jar_send=cookie_jar, cookie_jar_receive=cookie_jar).decode('utf-8') + check_cookie_results = common.fetch_url(check_cookie_url, headers=yt_dl_headers, report_text="Checked cookie", cookie_jar_send=cookie_jar, cookie_jar_receive=cookie_jar).decode('utf-8') except (urllib.error.URLError, compat_http_client.HTTPException, socket.error) as err: return False |