Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Instagram temporary locked #828

Closed
AyluinReymaer opened this issue Oct 5, 2020 · 46 comments
Closed

Instagram temporary locked #828

AyluinReymaer opened this issue Oct 5, 2020 · 46 comments
Labels
bug Bug stale Issue is inactive for a long time

Comments

@AyluinReymaer
Copy link

Describe the bug
I've been letting instaloader run every 5 min for the last few months.
Yesterday, it raised a 400 Bad Request exception and when I went to instagram I was met with a temporarily locked page and was forced to change my password.
I changed the password and re-created the instaloader-session file with the new credentials and restarted instaloader.
All was working fine until today at 03:00 AM where it started having the same issues. I went to the instagram page and I was temporarily locked again.

To Reproduce
Steps to reproduce the behavior:
(e.g. Instaloader command line)
It's a python script that I have running against profiles on a sql table on a schedule every 5 min (each iteration runs against 1 profile only. The next profile runs on the next iteration).
It runs in order the following instaloader functions:

  • get_posts()
    • download_post()
  • get_tagged_posts()
    • download_post()
  • get_stories()
    • get_items()
      • download_storyitem()

Expected behavior
A clear and concise description of what you expected to happen (even if it seems obvious).
To run instaloader without raising 400 Bad Request exceptions which may be the reason or a result of my account being locked.

Error messages and tracebacks
If applicable, add error messages and tracebacks to help explain your problem.

Job "update_instagram_profile (trigger: cron[year='*', month='*', day='*', hour='*', minute='*/5'], next run at: 2020-10-05 07:55:00 UTC)" raised an exception
Traceback (most recent call last):
  File "/workspace/environment/lib/python3.8/site-packages/apscheduler/executors/base.py", line 125, in run_job
    retval = job.func(*job.args, **job.kwargs)
  File "/workspace/social_network_apps/instagram/functions.py", line 155, in update_instagram_profile
    raise _e
  File "/workspace/social_network_apps/instagram/functions.py", line 99, in update_instagram_profile
    _instagram_profile_object = retrieve_instagram_profile(
  File "/workspace/social_network_apps/instagram/functions.py", line 10, in retrieve_instagram_profile
    _instagram_profile_object = instaloader.Profile.from_username(instaloader_object.context, db_profile_object.instagram_name)
  File "/workspace/environment/lib/python3.8/site-packages/instaloader/structures.py", line 560, in from_username
    profile._obtain_metadata()  # to raise ProfileNotExistException now in case username is invalid
  File "/workspace/environment/lib/python3.8/site-packages/instaloader/structures.py", line 604, in _obtain_metadata
    metadata = self._context.get_json('{}/'.format(self.username), params={})
  File "/workspace/environment/lib/python3.8/site-packages/instaloader/instaloadercontext.py", line 406, in get_json
    raise QueryReturnedBadRequestException("400 Bad Request")
instaloader.exceptions.QueryReturnedBadRequestException: 400 Bad Request

Instaloader version
instaloader --version output.
4.5.3

Additional context
Add any other context about the problem here.
I will change the schedule to run every 7 min and see if the problem is the timer. (shouldn't be since it has been running fine for months now. Maybe instagram changed something on their side?)

@AyluinReymaer AyluinReymaer added the bug Bug label Oct 5, 2020
@Thammus
Copy link
Member

Thammus commented Oct 5, 2020

Similar problems are discussed in #813 and #770. The latter one indicates that the "400 Bad Request" error might have something to do with big loads of traffic, so there is hope that your approach to schedule the runs less frequently will lead to less 400 errors.

@UweLau
Copy link

UweLau commented Oct 5, 2020

Also have these errors with only using instaloader. Burning accounts after accounts (older and new ones). Always the same: gets 400 error after a few minutes through a few hours. Always locked. Also happens with instagram-scraper. So something major over at Instagram is happening ...

@davispuh
Copy link
Contributor

davispuh commented Oct 6, 2020

Having this same issue.

@Dramacydal
Copy link

Same 400, first got unusual login attempts, then got account closue due to 'violation of terms'

@AyluinReymaer
Copy link
Author

Can somewhat confirm that increasing the schedule to every 7 min (5 min before) worked.

I had 2 temporary locks in 2 days, if I would be having another lock it would have already happened.

Another thing worth mentioning, after I created an instaloader-session file, I went to the login history on my instagram account settings and confirmed that the linux login that happened was indeed me, may or may not have been what solved the issue.

@AyluinReymaer
Copy link
Author

Increasing the delay of the schedule only delayed when instagram would block me again.
It blocked me 2 hours ago according the logs...

I'm considering on just contacting instagram and asking whats up. Before I do that I have a question, are bots that only retrieve posts on instagram allowed? If said bot doesn't like, post, comment, follow or any of that, will they still not like the bot and I'll just be risking a ban if contacting them?

@davispuh
Copy link
Contributor

davispuh commented Oct 7, 2020

Before I do that I have a question, are bots that only retrieve posts on instagram allowed? If said bot doesn't like, post, comment, follow or any of that, will they still not like the bot and I'll just be risking a ban if contacting them?

Most sites have clause in their terms and conditions that disallow any automated usage (eg. bots). I think I saw it mentioned in Facebook terms, but you should go over and read Instagram's before you ask them about it. In general we just need to make this to be not detectable and that would solve our problems :)

@Tydoki
Copy link

Tydoki commented Oct 9, 2020

After setting my script schedule to 6 hours I'm still getting temporary locked out of my acc.

@m4gnet98
Copy link

Getting locked with only using :feed and :stories once per day.

@AyluinReymaer
Copy link
Author

AyluinReymaer commented Oct 10, 2020

I have been using instaloader twice per day (mid-day and mid-night) for half of the target profiles in my sql table each iteration since my last update here.

I haven't had issues yet. When I start having issues again, I'll provide feedback again.

@AyluinReymaer
Copy link
Author

Ok, so I haven't had any issues for the past few days.

Here is what I have done:

  • Setup my scheduler to only run instaloader functions on mid-day and mid-night for half of the target profiles in my sql table (currently 26), meaning it will run 13 on mid-day and another 13 on mid-night;
  • After creating the session file with instaloader, I went to instagram to confirm that the recent login was indeed performed by me. You can find this option under Login Activity under instagram settings;
  • Starting from 11:55 until at least 12:05 and 23:55 until at least 00:05, I don't go to instagram in any platforms (phone, web browser or anything else). Let instaloader do it's thing and when it's done you are free to go.

I believe the last point is the dominant one as I believe instagram is currently checking for simultaneous active sessions and locking the account if an account matches this criteria.
The best way to confirm this is if someone who is having the same issue, to not use instagram on the phone or web browser when instaloader is running.

@DennisPing
Copy link

To add on:

  • Warm up your smurf Instagram account(s) by doing normal human actions every few days. This means liking, commenting, reply to DMs, and adding your own photos. Search "warm up instagram account" and follow those articles.
  • The best way for the algorithm to like you is to have followers. Having 0 followers and following 300 is a little suspicious. But solving this can be tricky since you don't want 100 bot followers spamming crap.

@jladuval
Copy link

I have my own library that I use for this but I have a good reason to believe that it's just the login that triggers the lock. I've had situations where I've logged in and not hit any other endpoints, then been pinged with the lock after 12-36 hours.

@marlosotavio
Copy link

marlosotavio commented Oct 19, 2020

I ran my personal Instagram account scrapper last week once (about 20 or so profiles, only downloads the new posts), accessed the Instagram app yesterday and today I tried to access Instagram on my mobile browser (same phone that I access using the app) but got the "account temporary blocked" which asked me to change my password.

Last week, my other scrapper account got temporary blocked too. It has more profiles, so it is KINDA understandable. Weirdly, the instaloader can't save the password anymore, it wants me to access the checkpoint link, which I do, but it asks me for another one every single time.... Gonna try the Firefox cookie work around....

Edit: Nope. Tried the Firefox cookie method, but it didn't work either :/

@chocolatepaper
Copy link

Does this problem still occur?
I'm too scared to run instaloader at the moment because I don't want instagram to demand a phone number (i.e. lock my account forever).

@Bastien1533
Copy link

Does this problem still occur?
I'm too scared to run instaloader at the moment because I don't want instagram to demand a phone number (i.e. lock my account forever).

Yep just happened to me ;)

@quietsecret123
Copy link

Ok, so I haven't had any issues for the past few days.

Here is what I have done:

  • Setup my scheduler to only run instaloader functions on mid-day and mid-night for half of the target profiles in my sql table (currently 26), meaning it will run 13 on mid-day and another 13 on mid-night;
  • After creating the session file with instaloader, I went to instagram to confirm that the recent login was indeed performed by me. You can find this option under Login Activity under instagram settings;
  • Starting from 11:55 until at least 12:05 and 23:55 until at least 00:05, I don't go to instagram in any platforms (phone, web browser or anything else). Let instaloader do it's thing and when it's done you are free to go.

I believe the last point is the dominant one as I believe instagram is currently checking for simultaneous active sessions and locking the account if an account matches this criteria.
The best way to confirm this is if someone who is having the same issue, to not use instagram on the phone or web browser when instaloader is running.

Is this method still working for you? Also, do you only scape 26 accounts?

@AyluinReymaer
Copy link
Author

Hello @quietsecret123.

Yes, currently, I am using the same method as I mentioned previously for the exact same accounts (26).

Ever since I have posted that method, I have been using it and to this day I have not had any issues what so ever.

There is just one change for the method which is point 3:

* Starting from 11:55 until at least 12:05 and 23:55 until at least 00:05, I don't go to instagram in any platforms (phone, web browser or anything else). Let instaloader do it's thing and when it's done you are free to go.

I actually stopped being careful with this, so I still use instagram even during the mentioned timestamps. Have been doing so for a little while after I posted this (from late October onwards).

So I would say that the 3rd point is not actually a must. It was just me being overly cautious and for me it is not necessary.

@quietsecret123
Copy link

Yes, currently, I am using the same method as I mentioned previously for the exact same accounts (26).

Ever since I have posted that method, I have been using it and to this day I have not had any issues what so ever.

Thanks for getting back to me! I'm glad this method is working for you. I subscribe to a significantly larger number than 26 accounts so I'm afraid this method will not work for me. I appreciate you sharing your input, though. It gives me something to think about and work with! :)

@Donearm
Copy link

Donearm commented Mar 4, 2021

Adding my 2¢: I've been using the method suggested by @AyluinReymaer without success. I have a long list of accounts to scrape but I only do about 5-6 of them per day, as the images to be downloaded are plenty and I am not online much on the machine where instaloader is run from.

Initially confirming the log-in through the web seemed to go smoothly but after 5 days of downloading a few accounts, around 20-50 images per account, I got my account locked. Restored it, next day, locked again. Then for 2 days it wasn't locked and now it is at "risk disabling", says Instagram. I had to confirm via sms-authentication that I'm a genuine user and have stopped running instaloader altogether since 3 days, waiting for Instagram to decide to reinstate my account (I currently can't log in at all).

I've never accessed Instagram with the account I use for instaloader while my script was running. I usually access to this account on my phone in the early morning and then late at night, while the script runs between midday and the late afternoon. I had not ran instaloader for many weeks before these last days, as I was sorting through the previously, many, images downloaded. That was last November so it's not like I was downloading all the time but apparently short stints of downloading sessions are enough for Instagram to trigger the locking of the account.

If it can help, I use Instagram on an android phone, never owned an iPhone. Plus, the list of accounts I'm downloading images from has hardly changed since early 2020, just added and removed around 10-12. The "fake use" from the instaloader script isn't much weird then. The only weird thing I noticed is that twice, in the last 2 days before my account got temporarily disabled, I noticed that I had to confirm 2 login attempt on Instagram, not only 1 as before. Both were recognised as "Linux" and from where I live, which is correct, but of course I only ran instaloader once. That may indeed seem suspect to Instagram, but I don't know why it happened (the script hasn't changed in months).

Update: my account is irrevocably disabled by Instagram. So it is possible to get banned by using instaloader, even occasionally.

@Dinth
Copy link

Dinth commented Mar 7, 2021

Same thing here. My account has roughly 200 followers and im following 300 people, it was few months old before i started using instaloader.
Basically what im trying to do is downloading stories of about 6 account daily.
Firstly i have created a batch file running instaloader session separately for each of those accounts. This didnt work very well at all - was getting an account blocked every time ive been running the batch file. Then i compacted the batch file to one instaloader command downloading stories for all those 6 users at same time - this helped a lot, sometimes i can run the script (at different times, as im running it manually) five days in a row, before getting my account blocked, but at the end it is still always blocked. Anyhow, this proves that the number of logins in short timespan/in a day is very critical for banning instaloader, but it's also not the only criteria they use

@iminet
Copy link

iminet commented Apr 2, 2021

Hi, how can I prevent this issue?
I've tired changing password every month.

@zehad2871
Copy link

Hi @AyluinReymaer,
How did you make a scheduler to scrape the 26 accounts you mentioned?
Can it be shared?

@Dinth
Copy link

Dinth commented Apr 19, 2021

After some testing i think i have a solution, i can do 10 accounts once a day as long as i am doing that in one go. If i run instaloader separately for each account i am scraping, then i got banned after 2 or 3 accounts though.

@AyluinReymaer
Copy link
Author

@zehad2871 Hello (:

From the time that I had last posted, I changed my schedule.

So, instead of processing 13 accounts at once on 2 different times of the day, right now I'm processing 1 account every 30 min during "work hours" in order to mimic human behavior.

This is the scheduler that I'm running

self.day_of_week = "*"
self.year = "*"
self.month = "*"
self.day = "*"
self.hour = "8-23"
self.minute = "*/30"

Which translates to * * * * 8-23 */30

I think if I'm not mistaken, I changed it to this 2 or 3 months ago and never had an issue ever again.
Though this solution might not be appropriate for everyone since it progresses an account every 30 min.
With this scheduler, if you have for example 60 accounts to process, then you will process the same account every 2 days.

@AyluinReymaer
Copy link
Author

@Dinth I think that will depend on how you are using Instagram though.

For example, I could process like 10-20 accounts by scraping them every 5 min. After many accounts would I get the warning.

If I'm not mistaken, Instagram's algorithm takes into account "human factor" of sorts. Basically, try giving evidence to Instagram that you are not a bot and you should be good to go.

Scraping accounts every 5 min 24/7 is definitely not human behavior, so Instagram kicks you off.

For example, the account that I'm using for web scrapping, is the same account that I have on my device. The human factor is me in this case. That and also the fact that the bot has working hours as mentioned in my previous comment.

@rm1410
Copy link

rm1410 commented Apr 21, 2021

It's a python script that I have running against profiles on a sql table on a schedule every 5 min (each iteration runs against 1 profile only. The next profile runs on the next iteration).

@AyluinReymaer
As I can see from the comments, you have already found a good solution. I think it would be a great idea to create a repository with such a Python script/cron settings, which update accounts and always contain the latest settings so that accounts are not blocked further. Possibly you could dynamically respond to the number of accounts in the SQL table and allow downloading with multiple accounts.

@Simon-W66
Copy link

I have similar problem, I have been blocked I got a ban for 1day, How should i set up sleep delay to get it again? Can be the problem in, that i have short delay and it's working maybe fast right.. (the whole app is done in Instapy) sleep_delay = 30, Should i change it to more ?

Forward thanks a lot!

@marlosotavio
Copy link

I have similar problem, I have been blocked I got a ban for 1day, How should i set up sleep delay to get it again? Can be the problem in, that i have short delay and it's working maybe fast right.. (the whole app is done in Instapy) sleep_delay = 30, Should i change it to more ?

Forward thanks a lot!

Currently, I gave up on trying the scrap with an account. I tried doing a single profile after 2 weeks not using instaloader, got a block later the same day.

So, I am using it without any login and, even then, I notice when scrapping the profiles' videos, after about 5 videos or so, it bugs out. It won't download the video (and it takes about 15min to timeout) or download only 4MB of the video....

@Donearm
Copy link

Donearm commented Dec 10, 2021

I have been playing with different sleeping settings, downloading 1 profile and then pausing the script for x minutes. 5 minutes worked until I reached 10 profiles, then I got a temporary ban. I paused for about a week, not downloading anything and just using the profile with the app on the phone.

Then I raised the sleep to 15 minutes after 1 profile and got temporarily banned again, almost immediately.

It looks to me as IG is not just looking at how you scrape but also flagging an account that used to scrape more aggressively in the past as more sensitive to further bans. As of now I haven't found a good solution other than scraping 1-2 profiles at most and taking long pauses between the scraping attempts. With a small list of profiles to scrape it can be viable (not with mine).

@AyluinReymaer
Copy link
Author

AyluinReymaer commented Dec 10, 2021 via email

@Donearm
Copy link

Donearm commented Dec 11, 2021

I never let the bot run overnight, nor outside of any "office hours". I simply launch it when I want and stop it after 2-3 hours, very randomly and sometimes letting pass whole days without running it. I personally use IG here and there throughout the day, roughly 8:30-23:30. The bot therefore runs alongside my use of IG but I have been careful in not logging with the account I use for the bot in the app when I know it is scraping.

And yet, I regularly get temp bans :/ I will let a few days pass without scraping and increase the bot sleep time to 30 min as you suggest and report back. Thanks for your suggestions :)

@sotiris-bos
Copy link

@zehad2871 Hello (:

From the time that I had last posted, I changed my schedule.

So, instead of processing 13 accounts at once on 2 different times of the day, right now I'm processing 1 account every 30 min during "work hours" in order to mimic human behavior.

This is the scheduler that I'm running

self.day_of_week = "*"
self.year = "*"
self.month = "*"
self.day = "*"
self.hour = "8-23"
self.minute = "*/30"

Which translates to * * * * 8-23 */30

I think if I'm not mistaken, I changed it to this 2 or 3 months ago and never had an issue ever again. Though this solution might not be appropriate for everyone since it progresses an account every 30 min. With this scheduler, if you have for example 60 accounts to process, then you will process the same account every 2 days.

How can we implement this schedule? I am using crontab and I don't see a way of implementing this.

@AyluinReymaer
Copy link
Author

@sotiris-bos I'm using the instaloader python module in a python script. Not the CLI.

Below is the full code of how I'm using instaloader and a cron scheduler.

It could use some optimization for sure, but it works so I didn't bother with optimization.

You will need to install apscheduler which this uses to schedule cronjobs.

# Create a class to handle the cron schedule.
class Schedule():
    def __init__(self):
        self.day_of_week = "*"
        self.year = "*"
        self.month = "*"
        self.day = "*"
        self.hour = "8-23"
        self.minute = "*/30"

    def cron_to_dict(self):
        return {
            "day_of_week": self.day_of_week,
            "year": self.year,
            "month": self.month,
            "day": self.day,
            "hour": self.hour,
            "minute": self.minute
        }

    def __repr__(self):
        return '<Schedule (day_of_week=%r, year=%r, month=%r, day=%r, hour=%r, minute=%r)>' % (self.day_of_week, self.year, self.month, self.day, self.hour, self.minute)


# Create a class to handle the app creation and cron scheduler.
# It will create a few things and store them as properties so that it is easier to manage:
# - Instaloader instance
# - Cron scheduler
# - Cron job
# - Custom instaloader function that the cron job will call
class Instagram_App_Constructor():
    def __init__(self, instance_username, instance_session_path="/workspace/instaloader-session"):
        # Import the BackgroundScheduler which is used to create the cron job.
        from apscheduler.schedulers.background import BackgroundScheduler
        from instaloader import Instaloader
        from . import functions
        import atexit

        # Create the cron schedule with the class Schedule class we created above.
        self.schedule = Schedule()

        # Create the BackgroundScheduler which will be used to create the cron job.
        self.scheduler = BackgroundScheduler()

        # Define relevant properties to create the instaloader instance.
        self.instance_username = instance_username
        self.instance_session_path = instance_session_path

        # Define the function that the cron job will call
        self.instance_function = functions.update_instagram_profile

        # Create the instaloader instance.
        self.instaloader = Instaloader(
            compress_json = False,
            post_metadata_txt_pattern = "",
            filename_pattern = '{date}_{profile}_{owner_id}_{shortcode}',
            fatal_status_codes=[400,500]
        )

        # Load the instaloader session.    
        self.instaloader.load_session_from_file(username=instance_username, filename=instance_session_path)

        # Clean shutdown of the scheduler when the app is closed.
        atexit.register(lambda: self.scheduler.shutdown())

    # Create the cron job.
    # Define the function that the cron job will call.
    # Define the schedule the cron job will run.
    # Define the arguments that will be passed to the function in the kwargs parameter.
    def start_scheduler(self):
        self.job = self.scheduler.add_job(
            func=self.instance_function,
            trigger="cron",
            year=self.schedule.year,
            month=self.schedule.month,
            day=self.schedule.day,
            hour=self.schedule.hour,
            minute=self.schedule.minute,
            kwargs={
                "instaloader_object": self.instaloader
            }
        )

        return self.scheduler.start()

    # In case we change the schedule, we can update the cron job with the new schedule.
    def modify_schedule(self):
        self.job.reschedule('cron', **self.schedule.cron_to_dict())
        return self.job.trigger

    # In case we want to trigger instaloader manually, this will pause the scheduler, call the function and then resume the scheduler.
    def update_profile(self, id):
        self.job.pause()
        self.instance_function(self.instaloader, id=id)
        self.job.resume()

        return "insta profile with id '%r' updated at : %r" % (id, datetime.now().strftime("%d/%m/%Y %H:%M:%S"))

    def __repr__(self):
        return "<Instagram_App (instance_username=%r, next_run_time=%r)>" % (self.instance_username, self.job.next_run_time.strftime("%d/%m/%Y %H:%M"))


# Create the app and pass the username and optionally the session path to the constructor.
Instagram_App = Instagram_App_Constructor(app.config["instagram_username"])

if app.env == 'production':
    # Start the scheduler.
    Instagram_App.start_scheduler()

@Allen-Kwan
Copy link

So I'm just getting started and got this error on the very first account I tried to scrape, causing a temporary lockout of my account. Are there any other settings that need to be changed in order to prevent this from happening?

@Alicia33333

This comment was marked as abuse.

@Alicia33333

This comment was marked as abuse.

@Alicia33333

This comment was marked as abuse.

@RyanWor
Copy link

RyanWor commented Jul 28, 2022

Is there any concern about a permanent ban here? I am trying to help a friend recover all his photos/videos. His account was hacked but the stuff is still there and I still have access to view his photos/videos so trying to dump the entire profile to files for him. I made it about ~425 items out of the ~2300 today before I got a temp banned. Wondering if I will get perma banned after getting temp banned too many times or how long I should wait before trying to run Instaloader again.

@Donearm
Copy link

Donearm commented Jul 29, 2022

I fear a permanent ban is easier to receive now than it was when I lamented mine, a few months ago. Yesterday I tried downloading a smallish profile, 127 pictures and a couple of videos, and while it did download it all, I got a temp ban. I hadn't been using instaloader for weeks with that login credentials and normally used the account through the mobile IG app only.

So, yes, a permanent ban seems more probable today, regardless of how much time you leave between attempts with instaloader.

@metttii
Copy link

metttii commented Aug 28, 2022

Has anyone tried to implement a delay between each individual request rather than delays between each entire script execution?

I've seen may people saying that the instagram ban algorithm seems to look for some "human" behaviour.

Maybe adding some random delay (7s-20s)between each single request is more human-like. Yes, it might take some insane time to scrape large profiles but it might also be possible to get a similar/higher yield if run continuously during "office-hours".

(Unfortunately I cannot test this theory yet since I'm still a massive newbie in this domain but maybe I'll be able to in the near future. I will of course post an Update if I should succeed with this idea)

Edit: I just checked the Terms Of Service from Instagram and found this:

"You can't attempt to create accounts or access or collect information in unauthorized ways.
This includes creating accounts or collecting information in an automated way without our express permission."

and this in the Meta TOS:

"You may not access or collect data from our Products using automated means (without our prior permission) or attempt to access data that you do not have permission to access. We also reserve all of our rights against text and data mining."

@AyluinReymaer
Copy link
Author

@metttii This is exactly what I'm doing actually.

Not a delay per request, but a delay per run and the bot runs on office hours from 08:00 to 23:30.

Aside from these hours, it doesn't work.

I am also using the same account on my phone and doing actual human interaction to further confuse the algorithm.

It was quite that I got logged out or temp blocked.

A few days ago however, I have been frequently been logged out (not blocked, banned or temp banned. Just logged out).

This messes with my bot in which I start receiving 429 responses and redirected to login messages,

Today again, I have been logged out for no reason whatsoever....

When I tried to access Instagram from my phone, it logged me out and I couldn't login. A few seconds later, I receive an email with the following content:

Hi XXX,

It seems like you were unexpectedly logged out of Instagram. We can help you get back into your account.
Button: Login as XXX

Clicking on the button, logs me in immediately without any password.

Sometimes I get this email, other times I don't for whatever reason...

Most likely, Instagram did something (again) and messed up the logins.

@metttii
Copy link

metttii commented Aug 28, 2022

@AyluinReymaer It would be interesting to see if users still get blocked or logged out if there's a delay between each single request (just like a human user would manually navigate to each post/story/image, pull up the source code, open the image link and save). I will attempt this during the next week and will report back!

I tried the tool for the first time today for exploring and got temp banned immediately after about 30 requests during the run. I also used the account that I regularly use on my phone.

@maf654321
Copy link

Just reporting that the same issue happened to me — first usage of logged-in downloading gave 400 Bad Request after ~20 requests, got temp banned immediately afterwards. Reactivating required adding a phone number to the account, which annoys me, though I did get an email that the account was "mistakenly banned" after doing this. This was using my long-time personal that I'm not really willing to risk to try again.

@lukehutch
Copy link

What I don't understand is why instaloader pulls down metadata for literally all posts every time it runs. Content is returned from the API in reverse chronological order, so why not just download until reaching the most recent post that is already downloaded? This would dramatically reduce the number of API calls.

@github-actions
Copy link

There has been no activity on this issue for an extended period of time. This issue will be closed after further 14 days of inactivity.

@github-actions github-actions bot added the stale Issue is inactive for a long time label Oct 30, 2023
@github-actions github-actions bot closed this as completed Dec 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Bug stale Issue is inactive for a long time
Projects
None yet
Development

No branches or pull requests