{"id":13579825,"url":"https://github.com/MoritzGruber/instabot","last_synced_at":"2025-04-05T23:32:43.129Z","repository":{"id":76330436,"uuid":"91566693","full_name":"MoritzGruber/instabot","owner":"MoritzGruber","description":"A Instagram bot for educational purposes","archived":false,"fork":false,"pushed_at":"2017-08-14T22:45:03.000Z","size":10869,"stargazers_count":37,"open_issues_count":1,"forks_count":7,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-03T03:02:20.907Z","etag":null,"topics":["analytics","automation","bot","bots","instagram","socialmedia"],"latest_commit_sha":null,"homepage":null,"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/MoritzGruber.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2017-05-17T11:00:26.000Z","updated_at":"2023-10-02T09:55:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"5f4921fe-6bc1-42d1-9742-25658a6dc381","html_url":"https://github.com/MoritzGruber/instabot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MoritzGruber%2Finstabot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MoritzGruber%2Finstabot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MoritzGruber%2Finstabot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MoritzGruber%2Finstabot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MoritzGruber","download_url":"https://codeload.github.com/MoritzGruber/instabot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247415793,"owners_count":20935383,"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":["analytics","automation","bot","bots","instagram","socialmedia"],"created_at":"2024-08-01T15:01:43.672Z","updated_at":"2025-04-05T23:32:38.120Z","avatar_url":"https://github.com/MoritzGruber.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# Instabot\nDisclaimer: The whole Application is for educational purposes only.\n\n![dashboard-example-image](https://github.com/MoritzGruber/instabot/blob/master/dashboard/dashboard-img.png)\n\n# Setup\nMake sure to get the right chromedriver for your system from [here](https://chromedriver.storage.googleapis.com/index.html?path=2.30/). Put it in app/assets and add a valid instagram account in the config.json.\n\n## Linux x64 Ubuntu 16.04 LTS\n```bash\ncd instabot \nbash linuxsetup.sh\n```\nMake sure to put a valid instagram account in the config.json\n## Mac\nRequirements: Python3, Pip3, node, npm, php, php compose, chrome browser\n```bash\ncd instabot \n./macsetup\n```\n# Dashboard \n\nThe Dashboard consists of 3 parts\n* Website (Dashboard GUI)\n* Node.js server\n* Python Remote Executer\n\nRunning on port localhost:3000\n\n### Run \nNode.js Server:\n```bash\ncd dashboard\nnode index.js\n```\nPython Remote Executer:\n```bash\ncd app\npython3 remoteExec.py\n```\n\n# Micro Services\n\n\n\nYou can start and use the micro services on it's own. They are located at app/Services/Content.\n\n## statistics\n\nReturns different information from a Instagram account:\n\n* timestamp\n* username\n* follower_count\n* following_count\n* media_count\n* usertags_count\n* feed_items\n* likes\n* comments\n\n#### Usage\n\n```python \nfrom Services.Content import Statistics\nusername = 'someusername'\nres = Statistics.getUserInformation(username)\n```\n\nUse carefully on users with a lot of posts (1000+), long duration loading times and potential ban of the parser account, because of to many API calls: about one for each ~18 posts.\n\n#### Results\n\nThe received data gets returned and written into savedStatus/userinformation.json.\n## Content Services\n### grabcomments\n\nGrabs different comments for a specified topic.\n\n##### Usage\n\n```python \nfrom Services.Content import Comments\ntopic='dog'\nmaxpp=2\nnum=10\nres = Comments.getComments(topic, maxpp, num)\n```\n\nWhere topic is your specified hashtag, maxpp is the number of comments grabbed per picture and num is the overall number of comments which get returned.\n\n##### Results\nThe received data gets returned and written into savedStatus/comments.json.\n\n### generateHashtags\n\nFinds similar hashtags to one given hashtag.\n\n##### Usage\n\n```python\nfrom Services.Content import Hashtags\ntopic= 'dog'\namount= 15\nres = Hashtags.generate(topic, amount)\n```\n#### Results\nThe received data gets returned and written into savedStatus/hashtags.json.\n\n### generateImages\n\nFinds similar hashtags to one given hashtag.\n\n##### Usage\n\n```python\nfrom Services.Content import Images\ntopic= 'dog'\nres = Images.generate(topic)\n```\n##### Results\nThe received image links gets returned and written into savedStatus/images.json.\n\n## Scheduling Services\n\n### HumanScheduler\nThe HumanScheduler adds some random delay between executed tasks\n\n##### Usage\n```python\nfrom Services.Scheduling import HumanScheduler\nfrom Services.Tasks import InstaPySession\n\nTasks = [InstaPySession.InstaPyTask, InstaPySession.InstaPyTask, UploadImage.uploadTask]\nHumanScheduler.mainloop(Tasks)\n\n```\n\n### SleepJob\nThe SleepJob stops the bot in the evening and wakes him up in the morning like a real human.\n##### Usage\n```python\nfrom Services.Scheduling import SleepJob\nfrom Services.Scheduling import HumanScheduler\nfrom Services.Tasks import InstaPySession\n\nTasks = [InstaPySession.InstaPyTask, InstaPySession.InstaPyTask, UploadImage.uploadTask]\nSleepJob.start(HumanScheduler.mainloop, Tasks)\n```\nThis is used as another layer around the HumanScheduler\n\n### Upload Image Service\n\nThis service uses gathered data to make posts. This can be a Task for the Scheduler\n\n#### Usage\n\n```python\nfrom Services.Tasks import UploadImage\nUploadImage.uploadTask.run()\n```\nThe following code will access the saved data under ./app/savedStatus -\u003e So make sure hashtags and Images have already been generated.\n\n## Configuration\nTo configure the project change the example config file (./config.json)\n```json\n{\n  \"username\": \"someinstagramaccount\",\n  \"password\": \"somepassword\",\n  \"amountOfHashtags\": 10,\n  \"topic\": \"computer\",\n  \"wakeUpHour\": 8,\n  \"sleepHour\": 22,\n  \"marginTime\": 1.5,\n  \"maxImagesPerDay\": 18,\n  \"minImagesPerDay\": 4,\n  \"maxLikePerDay\": 900,\n  \"minLikePerDay\": 100,\n  \"percentageToFollow\": 6.66,\n  \"lowerFollowerCount\": 2,\n  \"upperFollowerCount\": 400,\n  \"minBreakAfterATaskInMinutes\": 1.00,\n  \"maxBreakAfterATaskInMinutes\": 60.00\n}\n\n```\n\n# FAQ\n* What means: checkpoint_required response? -\u003e Account blocked, login manually and unlock it with sms code.\n\nLicence MIT\n\nCredits: David Bochan, Moritz Gruber\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMoritzGruber%2Finstabot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMoritzGruber%2Finstabot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMoritzGruber%2Finstabot/lists"}