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)
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 .....
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.
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 challengeselect 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")...