InstaBot
On 03-Apr-2018, I wiped out the existing issues/PRs associated with this repo, they've built up due to some neglect. Now, there's a clean slate. New issues must follow the format provided and PRs will be reviewed and potentially accepted. Contributors are encouraged to review existing issues and submit changes.
Please do not clone this repo and publish it as your own. Fork the repo if you wish to publish any changes.
Toolkit for building automated Instagram bots without direct access to the Instagram API or passsing through the review process.
Parameters
Parameter | Type | Description | Default value |
---|---|---|---|
login | str | Your instagram username | |
password | str | Your instagram password | |
start_at_h | int | Start program at the hour | 0 |
start_at_m | int | Start program at the min | 0 |
end_at_h | int | End program at the hour | 23 |
end_at_m | int | End program at the min | 59 |
database_name | str | change the name of database file to use multiple account | "follows_db.db" |
like_per_day | int | Number of photos to like per day (over 1000 may cause throttling) | 1000 |
media_max_like | int | Maximum number of likes on photos to like (set to 0 to disable) | 0 |
media_min_like | int | Minimum number of likes on photos to like (set to 0 to disable) | 0 |
follow_per_day | int | Photos to like per day | 0 |
follow_time | int | Seconds to wait before unfollowing | 5 * 60 * 60 |
unfollow_per_day | int | Users to unfollow per day | 0 |
comments_per_day | int | Comments to post per day | 0 |
comment_list | [[str]] | List of word lists for comment generation | [['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'] |
tag_blacklist | [str] | Tags to ignore when liking posts | [] |
user_blacklist | {str: str} | Users whose posts to ignore | {} |
max_like_for_one_tag | int | How many media of a given tag to like at once (out of 21) | 5 |
unfollow_break_min | int | Minimum seconds to break between unfollows | 15 |
unfollow_break_max | int | Maximum seconds to break between unfollows | 30 |
log_mod | int | Logging target (0 log to console, 1 log to file, 2 no log.) | 0 |
proxy | str | Access instagram through a proxy. (host:port or user:password@host:port) |
Methods
Method | Description |
---|---|
get_media_id_by_tag(tag) | Add photos with a given tag to like queue |
like_all_exist_media(num) | Like some number of media in queue |
auto_mod() | Automatically loop through tags and like photos |
unlike(id) | Unlike media, given its ID. |
comment(id, comment) | Write a comment on the media with a given ID. |
follow(id) | Follow the user with the given ID. |
unfollow(id) | Unfollow the user with the given ID. |
logout() | Log out of Instagram. |
Usage examples
Basic bot implementation:
bot = InstaBot('login', 'password')
bot.auto_mod()
Standard use with custom tags:
bot = InstaBot('login', 'password', tag_list=['with', 'your', 'tag'])
bot.auto_mod()
Standard use with change default settings (you should know what you do!):
bot = InstaBot('login', 'password',
like_per_day=1000,
media_max_like=50,
media_min_like=5,
tag_list=['like', 'follow', 'f4f'],
max_like_for_one_tag=50,
log_mod=1)
bot.auto_mod()
Get media by one tag 'python'
and like 4 of them:
bot = InstaBot('login', 'password')
bot.get_media_id_by_tag('python')
bot.like_all_exist_media(4)
Video Tutorials
The following video tutorials demo setting up and running the bot: