{"id":24953489,"url":"https://github.com/birdhouses/instabot","last_synced_at":"2025-04-10T15:38:29.411Z","repository":{"id":154419460,"uuid":"629710599","full_name":"birdhouses/instabot","owner":"birdhouses","description":"Python bot for managing instagram accounts","archived":false,"fork":false,"pushed_at":"2024-08-03T19:17:42.000Z","size":178,"stargazers_count":16,"open_issues_count":6,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-24T13:21:26.167Z","etag":null,"topics":["bot","instagram","instagram-api","instagrapi","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/birdhouses.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"patreon":"birdhouses","custom":"https://www.buymeacoffee.com/birdhouses"}},"created_at":"2023-04-18T21:50:51.000Z","updated_at":"2025-01-23T09:47:42.000Z","dependencies_parsed_at":"2024-04-11T02:39:10.155Z","dependency_job_id":"5f0262ef-0de0-4f12-a082-b30f006c5bf5","html_url":"https://github.com/birdhouses/instabot","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/birdhouses%2Finstabot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/birdhouses%2Finstabot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/birdhouses%2Finstabot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/birdhouses%2Finstabot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/birdhouses","download_url":"https://codeload.github.com/birdhouses/instabot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248243482,"owners_count":21071054,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bot","instagram","instagram-api","instagrapi","python"],"created_at":"2025-02-03T03:38:39.798Z","updated_at":"2025-04-10T15:38:29.385Z","avatar_url":"https://github.com/birdhouses.png","language":"Python","funding_links":["https://patreon.com/birdhouses","https://www.buymeacoffee.com/birdhouses","https://www.patreon.com/birdhouses"],"categories":[],"sub_categories":[],"readme":"# InstaBot\nAutomate your instagram account management using this bot. Fill in your requirements in the config.json file and run the script! You can configure multiple accounts which will run simutanously.\n\nPlease note that using automated scripts to interact with Instagram can be against their terms of service, and your account may be at risk of being temporarily or permanently banned. Use this bot at your own risk.\n\n### Supporting the project\nPlease consider donating to support development of the project\n\n[![Become a Patron](https://c5.patreon.com/external/logo/become_a_patron_button.png)](https://www.patreon.com/birdhouses) \u003cbr\u003e\n\n[![Buy Me a Coffee](https://img.shields.io/badge/Buy%20Me%20a-Coffee-orange)](https://www.buymeacoffee.com/birdhouses) \u003cbr\u003e\n\n\n## Current Features\n- Automated posting\n- Automated stories\n- Automated Direct Messaging (mass DM's)\n- Follow / unfollowing\n- Post comments on recent posts by a specified hashtag\n- Using multiple accounts at the same time\n- Proxy support for making requests (unstable)\n\n\n## Prerequisites\n\n- Python 3.11+\n\n## Installation\n\nClone this repository:\n\n    git clone https://github.com/birdhouses/instabot.git\n    cd instabot\n\nInstall the required Python packages:\n\n    pip install -r requirements.txt\n\n# Usage guide\n### Run the bot:\nOpen the GUI\n\n    /instabot/src python3.11 gui.py\n\nIf you want to run the without the gui, you can run\n\n    /instabot/src python3.11 main.py\n\n### Using GUI to add accounts\nIn a terminal navigate to ```/instabot/src``` and run ```gui.py```. A window will open where you fill in your required configurations. After you're done simply click on the \"Add account\" button and a new file called ```config.json``` will be created in the ```/src``` directory with the account data.\nIf you accidentally added a account, you may manually remove it from the ```config.json``` file.\n\nPlease note that this feature is still under development. Feel free to create an issue in the github repo with any errors you encounter.\n\n## DM Automation\nTo send automatically send DMs to users you need to manually specify a list of usernames to send the DM's to. Using the GUI, each username must be on a newline in the textarea.\nYou can also modify the config.json manually, and provide an array of usernames in the `dm_accounts_from_list.accounts` setting. You can set the `timeout` in seconds between each DM. \nYou can specify the `message`. This needs to be a single-line string.\n\n## Proxy configuration\nIn the main directory of your Instagram Bot, create a file named proxies.txt. Each line in this file should represent a single proxy in the format IP:Port:Username:Password. For example:\n\n    123.45.67.89:8080:user1:pass1\n    98.76.54.32:8080:user2:pass2\n\n### Uploading posts\nIn order to upload posts you need to specify the source directory of where the files to be posted are stored.\nFor example if you want to upload posts from the `/src/posts` folder (you'd need to create the `/posts` folder manually) then specify it as follows in the `config.json` file:\n\n    \"upload_posts\": {\n        \"enabled\": true,\n        \"amount_per_day\": 3,\n        \"posts_dir\": \"./posts\",\n        \"delete_after_upload\": true,\n        \"caption\": \"Cool caption..\"\n      },\nThe folder structure for the files to be depends on if you want to upload single posts or albums. Here is an example folder structure that will upload 1 single post and 1 album containing 2 pictures:\n\n    /posts\n        /image_1.jpg\n        /album_1\n            /image_1.jpg\n            /image_2.jpg\n            \n### Uploading stories\nFor example if you want to upload posts from the `/src/posts` folder (you'd need to create the `/posts` folder manually) then specify it as follows in the `config.json` file:\n\n    \"upload_stories\": {\n        \"enabled\": true,\n        \"amount_per_day\": 3,\n        \"posts_dir\": \"./posts\",\n        \"delete_after_upload\": true,\n        \"caption\": \"Cool caption..\"\n      },\nExample folder structure:\n\n    /posts\n        /image_1.jpg\n        /video_1.mp4\n        \n### Downloading posts from a specified instagram account\nTo download posts from one instagram account, you need to specify the username of the instagram account in the `config.json` file:\n\n    \"download_posts_from_account\": {\n          \"enabled\": false,\n          \"save_path\": \"./posts\",\n          \"source_account\": \"instagram\",\n          \"amount\": 5,\n          \"timeout\": 2\n        }\nMake sure the `source_account` is public. You can specify the amount of posts you want to download, and the timeout between each download.\nIt should be noted that this task does not use authentication, which means that it is not possible to use proxies for this task. (Because the get_client method handles authentication \u0026 proxies properly).\n\n### Commenting on posts\nTo comment on posts from a specified tag you can use the following settings:\n\n    \"comment_on_media\": {\n            \"enabled\": false,\n            \"comment_on_tag\": \"memes\",\n            \"amount_per_day\": 10,\n            \"comments\": [\n                \"Intresting comment\",\n                \"Intresting comment 2\"\n            ]\n            },\nThis will automatically comment on 10 posts from a specified tag each day and select a random comment from the list of comments to comment.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbirdhouses%2Finstabot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbirdhouses%2Finstabot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbirdhouses%2Finstabot/lists"}