From 4022e7fae798d02eb1048f162b967213c2069e0b Mon Sep 17 00:00:00 2001 From: Alexander Graf <17130992+aandergr@users.noreply.github.com> Date: Mon, 16 Oct 2023 08:44:40 +0200 Subject: [PATCH] attempt to fix 2FA --- instaloader/instaloadercontext.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/instaloader/instaloadercontext.py b/instaloader/instaloadercontext.py index e65ce61..5c59789 100644 --- a/instaloader/instaloadercontext.py +++ b/instaloader/instaloadercontext.py @@ -253,7 +253,7 @@ class InstaloaderContext: 'ig_vw': '1920', 'ig_cb': '1', 'csrftoken': '', 's_network': '', 'ds_user_id': ''}) session.headers.update(self._default_http_header()) - #Getting mid cookie value + # Getting mid cookie value session.get("https://i.instagram.com/api/v1/web/login_page/") # Override default timeout behavior. # Need to silence mypy bug for this. See: https://github.com/python/mypy/issues/2427 @@ -327,8 +327,15 @@ class InstaloaderContext: raise InvalidArgumentException("No two-factor authentication pending.") (session, user, two_factor_id) = self.two_factor_auth_pending - login = session.post('https://www.instagram.com/accounts/login/ajax/two_factor/', - data={'username': user, 'verificationCode': two_factor_code, 'identifier': two_factor_id}, + login = session.post('https://www.instagram.com/api/v1/web/accounts/login/ajax/two_factor/', + data={ + 'identifier': two_factor_id, + 'queryParams': '{"next":"/"}', + 'trust_signal': 'true', + 'username': user, + 'verification_method': '1', + 'verificationCode': two_factor_code, + }, allow_redirects=True) resp_json = login.json() if resp_json['status'] != 'ok':