Instaloader: Is Instaloader broken for good? Still doesn't login after SMS Challenge

Created on 25 Dec 2018  路  3Comments  路  Source: instaloader/instaloader

Describe the bug
Requests Challange every single time, and doesn't allow me to use it, used multiple accounts (4), which all reproduce the same result, as well as tried using a vpn, also tried 3 different devices (macbook, windows, and a raspberry pi), every time the problem still occurs, It started happening every so often in 4.1.1, and always happens with 4.2 and the earlier version. I've also seen PLENTY of others with the exact same problem.

Error messages and tracebacks

Session file does not exist yet - Logging in.
Fatal error: Login: Checkpoint required. Point your browser to https://www.instagram.com/challenge/{ID}/{ID}/, follow the instructions, then retry.
Instaloader version
4.2 (but also sometimes happened on 4.1.1 and always happened on the version before 4.2)

duplicate

Most helpful comment

When I was stuck with this issue a while back, I ended up copying the session data from my browser by hand.

$ python3
>>> import pickle
>>> data = pickle.load(open(<old-sessionfile>, 'rb'))
>>> data['csrftoken'] = <browser-csrftoken>
>>> data['sessionid'] = <browser-sessionid>
>>> pickle.dump(data, open(<new-sessionfile>, 'wb'))

I think those are the only cookies that need to be copied. This could be automated, if one were to figure out how to export cookies from the various browsers. Firefox is easy enough, select name, value from moz_cookies where baseDomain = "instagram.com". Chromium and its derivatives is more of a challenge select name,encrypted_value from cookies where host_key like "%instagram.com" (AES-128-CBC, on linux without kde/gnome-keyring-stuff password: "peanuts" salt: "saltysalt")...

All 3 comments

When I was stuck with this issue a while back, I ended up copying the session data from my browser by hand.

$ python3
>>> import pickle
>>> data = pickle.load(open(<old-sessionfile>, 'rb'))
>>> data['csrftoken'] = <browser-csrftoken>
>>> data['sessionid'] = <browser-sessionid>
>>> pickle.dump(data, open(<new-sessionfile>, 'wb'))

I think those are the only cookies that need to be copied. This could be automated, if one were to figure out how to export cookies from the various browsers. Firefox is easy enough, select name, value from moz_cookies where baseDomain = "instagram.com". Chromium and its derivatives is more of a challenge select name,encrypted_value from cookies where host_key like "%instagram.com" (AES-128-CBC, on linux without kde/gnome-keyring-stuff password: "peanuts" salt: "saltysalt")...

I'm closing this in favor of #92, our thread for login problems.

The workaround from e5150 above is fine for me, but you don't even need to load an existing session file:

$ python3

import pickle
data = { "csrftoken": "...", "sessionid": "..." }
pickle.dump(data, open("new_sessionfilename", 'wb'))

instaloader -f new_sessionfilename .....

Was this page helpful?
0 / 5 - 0 ratings

Related issues

kurttian picture kurttian  路  3Comments

remlap picture remlap  路  3Comments

clublek picture clublek  路  3Comments

WaseemRakab picture WaseemRakab  路  3Comments

nerdysciencegrl picture nerdysciencegrl  路  4Comments