I have recently been trying to learn about marketing through social media, Twitter in particular.
I didn’t want to pay for any bots since I was just starting out and I decided to make my own twitter automation bot which is split into different modules that let you do different things:
-Scraping accounts for followers
-Using scraped data to follow/unfollow
-Follower count analytics
-Tweeting tweets from a list either randomly or in order
-Unlimited twitter account and proxy support
Note: The file is completely clean despite the 4 false positives in the scan
After you download the bot you can extract the zip with a free program like 7zip
Recommended proxy service
I have used BuyProxies.org to buy proxies in the past for a number of different services like pinterest and instagram bot. They offer very good support as when one of my proxies didn’t work once they replaced it within 2 minutes.
The bot is tested with private proxies from BuyProxies so I cannot ensure that proxies from other websites will work with it too.
Once you buy the proxies you should receive them within 5-15 minutes, the proxies have to be in this format in order to work user:pass@ip:port so once you receive them go to this page and paste your proxies in “Click here if you need the proxies in a different format” and in the proxy format field copy and paste user:pass@ip:port
Note: This bot will only work with phone verified twitter accounts since it uses the official twitter api to make calls
For each account that you’re planning to use you have to go over to https://apps.twitter.com/ and make an application and copy the oath keys and access tokens to the accountData.txt file (I recommend editing your files in a program like Notepad++ )
Click create new app
Fill in the details:
Name: choose any name it doesn’t matter
Description: choose any description it doesn’t matter
Website: choose any website url like http://www.google.com
Tick the agreement
Now go to the “Keys and Access Tokens” tab and click “Create my access token” at the very bottom, keep this page open as you will copy the data generated in the next few steps
Now open the TwitBot folder and double click on the settingsFolder shortcut and open up the accountData.txt file
Now copy and paste the keys and access tokens you generated into the appropriate fields
Consumer Key (API Key) = cKey
Consumer Secret (Api Secret) = cSecret
Access Token = accToken
Access Token Secret = accTokenSecret
Now if you want to add multiple accounts, you can simply re-use the same data fields and make sure you increment the names e.g. cKey0, cKey1, cKey2 etc
Note: the index starts at 0 so make sure your data is correct
In the “numberOfAccounts” field change the number to the number of accounts that you would like to use and if you’re not going to use a proxy because you’re perhaps only using one account then change the “useProxy” field to “No”
Make sure that all the lines have a comma at the end except the last one, if you don’t do so the software will throw an error.
In the “proxy” field you can assign your proxies to each account, make sure its in the format user:pass@ip:port and starts with https://
You should also make note of which account is which for later, for example you will want to know which account is account number 0 or account number 5. I would make a file with the following information:
Account Number – Twitter Screen Name
With this module you can scrape the followers of target account, in the settings folder you can find the scrapeSettings.txt file that will let you choose the account name and number of followers to scrape.
“screen_name” = The twitter name of the target account
“numberOfUsersToScrape” = The number of users to retrieve (by default the minimum is 50k)
This module will scrape 50k users per batch every 15 minutes (This is the maximum allowed number of calls by the Twitter Api)
If the target account has less than 50k followers it will simply retrieve all the target users followers
After it’s done it will save your list in a .csv file in the scrapedData folder, you do not need to modify this data in any way since it will be used by other modules.
This module uses the previously scraped data to follow users, it can also be used as a twitter unfollow app, followed users are ordered by the follow date (It will unfollow the accounts that were followed first rather than recent accounts)
Follow a large number of users and then unfollowing them after a some time has passed can be a great way to gain free twitter followers.
Note: After the bot follows a user, it will automatically delete that user from the scraped list so you don’t follow the same user on other accounts.
In the settings folder you can find the friendshipSettings.txt file that will allow you to customize the module
“followDelayMin” = Minimum follow delay per account (in seconds)
“followDelayMax” = Maximum follow delay per account (in seconds)
“unfollowDelayMin” = Minimum unfollow delay per account (in seconds)
“unfollowDelayMax” = Maximum unfollow delay per account (in seconds)
The bot will generate a random delay based on the 2 values
The actual delay between actions will be different depending on the amount of accounts you have. For example if you have 10 accounts and you set the delay between actions to be 60 seconds, the bot will actually execute an action on every account every 6 seconds because after it finishes looping around all the accounts and by the time it gets back to the first account again 60 seconds would have passed as the delay is cumulative.
“sleepIterations” = How many times to sleep throughout the whole operation (leave 0 to turn off)
“sleepTime” = Time to sleep for (in seconds)
The bot will take the sleepIterations value and randomly generate points throughout the operation where it will sleep for the given time, very useful to make the bot seem more human like.
“usersToFollow” = Amount of users to follow per account
“usersToUnfollow” = Amount of users to unfollow per account
“userMaxFollowing” = Max following threshold
This function will allow you to skip any users that follow more than “userMaxFollowing” people, useful if you want to skip users that follow a lot of accounts and are likely bots.
“filePerAccount” = Yes or No
This function lets you use a different file to follow from on a per account basis, if you turn this on then make sure you create a “scrapedFilename” entry for every account.
“scrapedFilename0” = Name of file (in the scrapedData folder)
Sequential files can can be formatted as:
“scrapedFilename0” : “file1.csv”
“scrapedFilename1” : “file2.csv”
The number denotes the account number to assign it to.
When you run the program it will give you an estimate as to how long the operation will take based on your settings, if you’re happy with the estimate just enter the character “Y” into the console and press enter.
This module pulls data from the tweetList.csv file that you will add your custom tweets to.
The settings can be found in the settings folder in the tweetSettings.txt file.
“postMode” = Either random or ordered
Random will randomly pick out a tweet from the list and post it.
Ordered will go through your tweet list and post them in order, if you schedule to post 100 tweets in your settings but your tweet list only contains 50 posts, once it runs out of tweets to post it will start to post tweets from the beginning.
“tweetFile” = Leave as default unless you want to use a different file
“numberOfTweets” = Number of tweets that you want to post, note that this isn’t per account
Tweets can be setup by opening the tweetList.csv file located in the tweetData folder.
The first index column should have an incremental value starting from 0, i.e 0 1 2 3 4
accountNumber = The number of the account that the tweet will be posted on (the number represents the account number in the accountData file)
tweetText = the text that will be tweeted (Note: Twitter imposes a 280 character limit)
postType = Either media or text. Text is used if you only want to tweet text while media is if you want to tweet an image with optional text
randomImage = Yes or no. If turned on, it will look at all the images in the tweetData/images folder and post a random one.
imageFilename = The name of the image that is to be posted, located in the tweetData/images folder, won’t work if randomImage is turned on.
This module records the current follower count of all your accounts in a .csv file and saves it against the current date. Then it plots 2 graphs that automatically open at the end, one shows the follower count over time and the other shows the daily change in followers for all the accounts.
This module is to be ran once a day, if you accidentally run it twice or more in 1 day it will record the same data.
Sample follower count graph
Sample follower count daily change graph
Safe twitter practices
It’s important to follow certain rules and not go overboard with the bot because you will get banned fast. Here are a few tips:
- Don’t share the same content through all accounts
- Don’t post the same content on 1 account all over again
- Don’t run the bot 7 days a week, take a break every 1 or 2 days
- Don’t run the bot 24 hours a day, run it like a normal human would, 5-10 hours a day
- Be careful with the delay, don’t post 100 tweets in 10 minutes, spread them out over a few days.
- On some days only unfollow people and on some days only follow people
Your delays should be set up in a way which a normal human would act, an action every minute or so.
If you’re looking for some ideas on what to use this bot for I have a few.
- Promote products that you’re dropshipping in a specific niche to followers of an account in that niche.
- Promote t-shirts and other merch the same as the previous one
- Ogads – Affiliate network with a lot of mobile content, get paid when a user purchases or installs an app
- Crakrevenue – Affiliate network with a lot of adult content, get paid for user signups/purchases
- Chaturbate (Warning, not safe for work content!) – Adult cam website, two ways of monetization, one is pay per signup and the other is earn 20% of whatever the signed up user spends on tokens.
Apart from my own computer I haven’t tested the bot on any other machine so I cannot guarantee that there won’t be any bugs on other configurations.
If you do find a bug please leave a comment or email me at firstname.lastname@example.org and I will do my best to fix it.
If you have an idea and would like a new module to be created I will consider it just drop me a message.