Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

instabot-py

Package Overview
Dependencies
Maintainers
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

instabot-py

Instagram Python Bot

  • 0.7.18
  • PyPI
  • Socket score

Maintainers
4

Instabot.py 🤖 🌟

Instabot.py is an extremely light instagram bot that uses the undocumented Web API. Unlike other bots, Instabot.py does not require Selenium or a WebDriver. Instead, it interacts with the API over simple HTTP Requests. It runs on most systems, including Raspberry Pi.

Chat on Telegram Latest version on Supported Python versions Donate

Requirements

  • Python v3.6 or greater
  • Pip v18 or greater

Quick Start 🚀

  • Make sure you have Python 3.6 or above installed

    • python3 --version

On Windows you might have to use python without the version (3) suffix. Experienced users should use virtualenv.

Installation

  • From PyPi (Stable):
python3 -m pip install instabot-py
  • From sources (Bleeding edge):
python3 -m pip install git+https://github.com/instabot-py/instabot.py

Configuration ⚙️

Run instabot-py --create-config command and a default configuration will be created in your current directory: instabot.config.yml. It should be modified according the needs. You can also run the bot with a different configuration file using -c flag: instabot-py -c myconfiguration.yml

Start the bot 🏁

  • instabot-py or python3 -m instabot_py
  • instabot-py -c myconfiguration.yml or python3 -m instabot_py -c myconfiguration.yml

The %username%.db file contains records of posts the bot has liked, and the users who has been followed/unfollowed.

The %username%.session file stores your session with Instagram to avoid re-logins each time you start the bot.

Upgrade ⬆️

  • python3 -m pip install instabot-py --no-cache-dir --upgrade
  • pip3 install instabot-py --no-cache-dir --upgrade

Parameters

ParameterTypeDescriptionDefault value
loginstrYour instagram username
passwordstrYour instagram password
start_at_hintStart program at the hour0
start_at_mintStart program at the min0
end_at_hintEnd program at the hour23
end_at_mintEnd program at the min59
debugintEnable (1) or disable (0) debug mode1
databasedictContains the database configuration{"type": "sql", "connection_string": "sqlite:///{{login}}.db"}
session_filestrchange the name of session file so to avoid having to login every time. Set False to disable."username.session"
user_agentstrCustom User Agent to look like a real browserNone
like_per_dayintDEPRECATED, WILL BE REMOVED SOON, REPLACED BY like_per_run
like_per_runintNumber of photos to like per day (over 1000 may cause throttling)296
like_followers_per_runintNumber of your old followers to like their last photo per day (set to 0 to disable)0
media_max_likeintMaximum number of likes on photos to like (set to 0 to disable)0
media_min_likeintMinimum number of likes on photos to like (set to 0 to disable)0
follow_per_dayintDEPRECATED, WILL BE REMOVED SOON, REPLACED BY follow_per_run0
follow_per_runintUsers to follow per day156
follow_timeintSeconds to wait before unfollowing5 * 60 * 60
follow_attemptsintAttempts to make to follow someone10
user_min_followintCheck user before following them if they have X minimum of followers. Set 0 to disable0
user_max_followintCheck user before following them if they have X maximum of followers. Set 0 to disable0
follow_time_enabledboolREMOVED, TO DISBALE Follow_time, just set it to 0--
unfollow_per_dayintDEPRECATED, WILL BE REMOVED SOON, REPLACED BY unfollow_per_run0
unfollow_per_runintUsers to unfollow per day199
unfollow_recent_feedboolIf enabled, will populate database with users from recent feed and unfollow if they meet the conditions. Disable if you only want the bot to unfollow people it has previously followed.True
unlike_per_dayintDEPRECATED, WILL BE REMOVED SOON, REPLACED BY unlike_per_run0
unlike_per_runintNumber of media to unlike that the bot has previously liked. Set to 0 to disable.0
time_till_unlikeintHow long to wait after liking media before unliking them.3 * 24 * 60 * 60 (3 days)
comments_per_dayintComments to post per day0
comment_list[[str]]List of word lists for comment generation. @username@ will be replaced by the media owner's username[['this', 'your'], ['photo', 'picture', 'pic', 'shot'], ['is', 'looks', 'is really'], ['great', 'super', 'good'], ['.', '...', '!', '!!']]
tag_list[str]Tags to use for finding posts by hasthag or location(l:locationid from e.g. https://www.instagram.com/explore/locations/212999109/los-angeles-california/)['cat', 'car', 'dog', 'l:212999109']
keywords[str]Words to use for finding profiles with username or biography contain these words[]
tag_blacklist[str]Tags to ignore when liking posts[]
user_blacklist{str: str}Users whose posts to ignore. Example: {"username": "", "username2": ""} type only the key and leave value empty -- it will be populated with userids on startup.{}
max_like_for_one_tagintHow many media of a given tag to like at once (out of 21)5
unfollow_break_minintMinimum seconds to break between unfollows15
unfollow_break_maxintMaximum seconds to break between unfollows30
log_modintLogging target (0 log to console, 1 log to file, 2 no log.)0
proxiesdictAccess instagram through a proxy. {"http_proxy":"http://IP:PORT", "https_proxy":"http://IP:PORT"} (host:port or user:password@host:port)
unfollow_not_followingboolUnfollow Condition: Unfollow those who do not follow you backTrue
unfollow_inactiveboolUnfollow Condition: Unfollow those who have not posted in a while (inactive)True
unfollow_probably_fakeboolUnfollow Condition: Unfollow accounts which skewed follow/follower ratio (probably fake)True
unfollow_selebgramboolUnfollow Condition: Unfollow (celebrity) accounts with too many followers and not enough followingFalse
unfollow_everyoneboolUnfollow Condition: Will unfollow everyone in unfollow queue (wildcard condition)False

Telegram channel for instabot-py's logs

  1. Create Telegram bot
  2. Add the following settings into the configuration:
---
# Send INFO notification to Telegram channel 
logging.loggers.InstaBot.handlers:
  - telegram
  - console
logging.version: 1
logging.disable_existing_loggers: False
logging.root.level: INFO
logging.formatters.simple: 
  format: '%(asctime)s - {{login}} - %(name)s - %(levelname)s - %(message)s'
logging.handlers.telegram:
  level: INFO
  class: telegram_handler.TelegramHandler
  token: __YOUR__CHANNEL__TOKEN__
  chat_id: __CHAT_ID__
  formatter: simple
logging.handlers.console:
  level: DEBUG
  class: logging.StreamHandler
  formatter: simple
  stream: ext://sys.stdout
logging.loggers.InstaBot.handlers:
  - telegram
  - console

Community

Contributing

Please feel free to contribute and submit PR requests. All help is appreciated. Look for issues with the label needs help. If you want to be in the developer team, please email me.

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc