https://github.com/anniedotexe/rnn-twitter-bot
๐คโ๏ธ A Twitter bot written in Python trained with a recurrent neural network.
https://github.com/anniedotexe/rnn-twitter-bot
automation bot colaboratory python python-3 python3 recurrent-neural-network recurrent-neural-networks rnn rnn-tensorflow text-generation textgenrnn textgenrnn-colaboratory-notebook tweet-bot tweetbot twitter twitter-bot twitterbot
Last synced: 3 months ago
JSON representation
๐คโ๏ธ A Twitter bot written in Python trained with a recurrent neural network.
- Host: GitHub
- URL: https://github.com/anniedotexe/rnn-twitter-bot
- Owner: anniedotexe
- Created: 2020-08-26T07:32:05.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2023-02-02T14:54:19.000Z (over 3 years ago)
- Last Synced: 2025-06-06T09:04:15.039Z (12 months ago)
- Topics: automation, bot, colaboratory, python, python-3, python3, recurrent-neural-network, recurrent-neural-networks, rnn, rnn-tensorflow, text-generation, textgenrnn, textgenrnn-colaboratory-notebook, tweet-bot, tweetbot, twitter, twitter-bot, twitterbot
- Language: Python
- Homepage: https://twitter.com/dickinson_rnn
- Size: 220 KB
- Stars: 7
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# RNN Twitter Bot :robot::pencil2:
[](https://www.python.org/downloads/release/python-379/)
[](https://github.com/Naereen/badges/)
A Twitter bot written in Python. The recurrent neural network Twitter bot tweets generated text with a temperature of 0.7 from the trained model.
### Important Notice
Starting February 9, we will no longer support free access to the Twitter API, both v2 and v1.1. A paid basic tier will be available instead ๐งต
โ Twitter Dev (@TwitterDev) February 2, 2023
---
### Table of Contents
- [Getting Started](#getting-started)
- [Prerequisites](#prerequisites)
- [To Train the Model](#to-train-the-model)
- [To Run the Bot](#to-run-the-bot)
- [Instructions](#instructions)
- [File Structure](#file-structure)
- [Contributing](#contributing)
- [Creator / Maintainer](#creator--maintainer)
- [Acknowledgments](#acknowledgments)
- [Additional Information](#additional-information)
---
## Getting Started
Make sure to follow [Twitter's Automation Rules](https://help.twitter.com/en/rules-and-policies/twitter-automation) to avoid getting your account banned.
### Prerequisites
#### To Train the Model
- [textgenrnn Colaboratory Notebook](https://colab.research.google.com/drive/1mMKGnVxirJnqDViH7BDJxFqWrsXlPSoK) - easily train your own text-generating neural network of any size and complexity for free on a GPU using Colaboratory
#### To Run the Bot
- [Python 3.6 or 3.7](https://www.python.org/downloads/release/python-379/)
- [Pip](https://pypi.org/project/pip/) - a python package manager
- Download this [file](https://bootstrap.pypa.io/get-pip.py), open a command prompt and navigate to the folder containing the `get-pip.py` installer, and run `python get-pip.py` to install
- Run `pip --version` to check if it has installed correctly
- [Tweepy](http://docs.tweepy.org/en/latest/index.html) - an easy-to-use python library for accessing Twitter's API
- Run `pip install tweepy`
- [textgenrnn](https://github.com/minimaxir/textgenrnn) - a python3 module to easily train your own text-generating neural network of any size and complexity on any text dataset with a few lines of code, or quickly train on a text using a pretrained model
- Run `pip install textgenrnn`
---
## Instructions
1. Apply for [Twitter Developer Access](https://developer.twitter.com/en/apply-for-access) with the account you want the bot to be used for.
2. Create a new [Twitter Application](https://developer.twitter.com/app/new) to generate your private keys, secrets, and tokens.

- Make sure the app settings has _Read and Write_ permissions.

3. Create a file named `credentials.py` to hold your private information using the format below.
- See [File Structure](#file-structure).
```
TWITTER_API_KEY="xxxx"
TWITTER_API_KEY_SECRET="xxxx"
TWITTER_ACCESS_TOKEN="xxxx"
TWITTER_ACCESS_TOKEN_SECRET="xxxx"
```
4. Adjustments you can make in `config.py` to tweak the bot to your liking. _(Make sure to follow [Twitter's Automation Rules](https://help.twitter.com/en/rules-and-policies/twitter-automation) to avoid getting your account banned.)_
- **model_name** - (_MUST CHANGE_) Name of the model used for the weights and configuration files you downloaded from Colaboratory.

- **temperature** - Level of randomness for the predicted text. Higher temperature will generate crazier text.
- **prefix** - Set a prefix if you want each generated text to start with a given seed text.
- **n** - Number of texts to generate.
- **max_gen_length** - Maximum number of characters for each text generated.
- **max_tweet_length** - Maximum number of characters for each tweet to have.
- If the generated text is too long, it will be split into multiple tweets at this length.
- Set to 280 (Twitter's character limit for tweets) if you are not adding anything to the end of the tweets.
- **add_to_tweet** - Optional if you want to add text to end of every tweet.
- Set to None if you do not want to use.
- **delay** - Time to wait in between each tweet in seconds.
- **min_tweet_length** - Minimum number of characters in the tweet, will ignore tweets that are not long enough.
- Set to 0 if this is not relevant to you.
5. Use the [textgenrnn Colaboratory Notebook](https://colab.research.google.com/drive/1mMKGnVxirJnqDViH7BDJxFqWrsXlPSoK) to train your RNN.
- See [Additional Information](#additional-information) for more details.
6. Download the weights and configuration files from the Colaboratory Notebook (as shown below) and put them in the `model` directory
- See [File Structure](#file-structure).

7. Install all required packages needed to run the script
```
pip install -r requirements.txt
```
8. Run the script. Enjoy your Twitter bot!
```
python twitter-ai-bot.py
```
### File Structure
```
RNN-Twitter-Bot
|-- model
| |-- yourmodelname_config.json
| |-- yourmodelname_vocab.json
| `-- yourmodelname_weights.hdf5
|-- credentials.py
`-- twitter-ai-bot.py
```
---
## Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. Please make sure to update tests as appropriate.
### How To Contribute
1. Fork the repository to your own Github account.
2. Clone the project to your machine.
3. Create a branch locally with a succinct but descriptive name.
4. Commit changes to the branch.
5. Following any formatting and testing guidelines specific to this repo.
6. Push changes to your fork.
7. Open a Pull Request in my repository.
---
## Creator
Annie Wu ([anniedotexe](https://github.com/anniedotexe))
Copyright ยฉ 2021-2026 Annie Wu. All rights reserved.
I do not maintain this code anymore and will not respond to any questions sent to me.
If you like my content or find this code useful, give it a โญ or support me by buying me a coffee โ๐
---
## Acknowledgments
- [Max Woolf](https://minimaxir.com/)
- creator of [textgenrnn](https://github.com/minimaxir/textgenrnn)
- creator of the [textgenrnn Colaboratory Notebook](https://colab.research.google.com/drive/1mMKGnVxirJnqDViH7BDJxFqWrsXlPSoK) that allows us to quickly train the RNN with a GPU for free
---
## Additional Information
- textgenrnn
- [Max Woolf's YouTube Video on Training a Text-Generating Neural Network for Free with textgenrnn](https://www.youtube.com/watch?v=RW7mP6BfZuY)
- [Max Woolf's Blog Post on How to Quickly Train a Text-Generating Neural Network for Free](https://minimaxir.com/2018/05/text-neural-networks/)
- [Max Woolf's Demo of using the Colaboratory Notebook](https://github.com/minimaxir/textgenrnn/blob/master/docs/textgenrnn-demo.ipynb)
