Create Reddit Videos with just one command
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Go to file
Hong Phuc f97b0cc881
feat: public demo mode + base-path proxy + security hardening
2 days ago
.github feat: improve Threads settings and add Supertonic TTS 2 weeks ago
GUI feat: public demo mode + base-path proxy + security hardening 2 days ago
TTS chore: cleanup code 6 days ago
assets fancy title screen 2 years ago
fonts Added the story mode with 2 methods by Electro199 (#1288) 3 years ago
platforms chore: cleanup code 6 days ago
reddit fix: re-review findings — os.system, truncation, recursion, swallowed errors 4 weeks ago
tests feat: public demo mode + base-path proxy + security hardening 2 days ago
utils chore: cleanup code 6 days ago
video_creation fix: improve Threads screenshot quality — sizing, login overlay, dead code 6 days ago
.dockerignore Make the app runnable in Docker for GUI and CLI 1 month ago
.gitattributes chore(*): Add devcontainer vscode support 4 years ago
.gitignore chore: cleanup code 6 days ago
.pylintrc Remove init-hook from pylint 4 years ago
.python-version chore: update Python version 4 weeks ago
AGENTS.md chore: admend gitignore, update AGENTS.md 2 weeks ago
CLAUDE.md chore: cleanup code 6 days ago
CODE_OF_CONDUCT.md Add code of conduct completing community standards 4 years ago
CONTRIBUTING.md Sorry, wrong repo URL 4 years ago
Dockerfile feat: improve Threads settings and add Supertonic TTS 2 weeks ago
GUI.py feat: public demo mode + base-path proxy + security hardening 2 days ago
LICENSE Merge branch 'develop' into pr/ProjectSlxsh/418 4 years ago
README.md feat: video creation dashboard with real-time progress tracking 4 weeks ago
build.sh Make the app runnable in Docker for GUI and CLI 1 month ago
docker-compose.yml feat: improve Threads settings and add Supertonic TTS 2 weeks ago
docker-entrypoint.sh Make the app runnable in Docker for GUI and CLI 1 month ago
fly.toml feat: public demo mode + base-path proxy + security hardening 2 days ago
install.sh Update install.sh 4 years ago
main.py fix(gui): harden settings and background flows 3 weeks ago
ptt.py fixed a error(self-made), added default values 4 years ago
requirements.txt feat: improve Threads settings and add Supertonic TTS 2 weeks ago
run.bat Version 3.2 3 years ago
run.sh Make the app runnable in Docker for GUI and CLI 1 month ago

README.md

Reddit Video Maker Bot 🎥

All done WITHOUT video editing or asset compiling. Just pure programming magic.

Created by Lewis Menelaws & TMRRW

Video Explainer

lewisthumbnail

Motivation 🤔

These videos on TikTok, YouTube and Instagram get MILLIONS of views across all platforms and require very little effort. The only original thing being done is the editing and gathering of all materials...

... but what if we can automate that process? 🤔

Disclaimers 🚨

  • At the moment, this repository won't attempt to upload this content through this bot. It will give you a file that you will then have to upload manually. This is for the sake of avoiding any sort of community guideline issues.

Requirements

  • Python 3.10+
  • Playwright (this should install automatically in installation)
  • Docker and Docker Compose for the container workflow
  • FFmpeg (for video composition)

Installation 👩‍💻

  1. Clone this repository:

    git clone https://github.com/elebumm/RedditVideoMakerBot.git
    cd RedditVideoMakerBot
    
  2. Create and activate a virtual environment:

    • On Windows:
      python -m venv ./venv
      .\venv\Scripts\activate
      
    • On macOS and Linux:
      python3 -m venv ./venv
      source ./venv/bin/activate
      
  3. Install the required dependencies:

    pip install -r requirements.txt
    
  4. Install Playwright and its dependencies:

    python -m playwright install
    python -m playwright install-deps
    

Docker

The repository now includes a shared image plus Compose services for the GUI and CLI.

Build the image:

docker compose build

Start the GUI:

docker compose up gui

Open http://localhost:4000 in your browser.

Run the CLI pipeline:

docker compose run --rm cli

Run the CLI for a specific post:

docker compose run --rm cli python main.py <post_id>

Stop the GUI and remove the Compose stack:

docker compose down

The repo root is bind-mounted into the container so config.toml, results/, assets/temp/, and the runtime JSON files persist across rebuilds and repeated runs.


EXPERIMENTAL!!!!

  • On macOS and Linux (Debian, Arch, Fedora, CentOS, and based on those), you can run an installation script that will automatically install steps 1 to 3. (requires bash)
  • bash <(curl -sL https://raw.githubusercontent.com/elebumm/RedditVideoMakerBot/master/install.sh)
  • This can also be used to update the installation

  1. Run the bot:

    python main.py
    
  2. Visit the Reddit Apps page, and set up an app that is a "script". Paste any URL in the redirect URL field, for example: https://jasoncameron.dev.

  3. The bot will prompt you to fill in your details to connect to the Reddit API and configure the bot to your liking.

  4. Enjoy 😎

  5. If you need to reconfigure the bot, simply open the config.toml file and delete the lines that need to be changed. On the next run of the bot, it will help you reconfigure those options.

(Note: If you encounter any errors installing or running the bot, try using python3 or pip3 instead of python or pip.)

For a more detailed guide about the bot, please refer to the documentation.

Video

https://user-images.githubusercontent.com/66544866/173453972-6526e4e6-c6ef-41c5-ab40-5d275e724e7c.mp4

Web User Interface 🖥️

VideoMakerBot features a modernized Flask-based web UI for easier management and generation.

  • Technology Stack: Tailwind CSS, DaisyUI, Lucide Icons, Vanilla ES6 JavaScript.
  • Video Library: View, download, and copy source links for generated videos.
  • Background Manager: Add and remove background videos (YouTube-linked) and manage audio tracks.
  • Settings: Complete configuration of platform credentials (Reddit, Threads), TTS providers, and visual preferences.

To start the UI locally without Docker:

python GUI.py

Visit http://localhost:4000 to access the dashboard.

Contributing & Ways to improve 📈

In its current state, this bot does exactly what it needs to do. However, improvements can always be made!

I have tried to simplify the code so anyone can read it and start contributing at any skill level. Don't be shy :) contribute!

  • Creating better documentation and adding a command line interface.
  • Allowing the user to choose background music for their videos.
  • Allowing users to choose a reddit/threads thread instead of being randomized.
  • Allowing users to choose a background that is picked instead of the Minecraft one.
  • Allowing users to choose between any subreddit.
  • Allowing users to change voice.
  • Checks if a video has already been created.
  • Light and Dark modes.
  • NSFW post filter.
  • Threads platform support.
  • Modern Web UI (Tailwind + DaisyUI).

Please read our contributing guidelines for more detailed information.

For any questions or support join the Discord server

Developers and maintainers.

Elebumm (Lewis#6305) - https://github.com/elebumm (Founder)

Jason Cameron - https://github.com/JasonLovesDoggo (Maintainer)

Simon (OpenSourceSimon) - https://github.com/OpenSourceSimon

CallumIO (c.#6837) - https://github.com/CallumIO

Verq (Verq#2338) - https://github.com/CordlessCoder

LukaHietala (Pix.#0001) - https://github.com/LukaHietala

Freebiell (Freebie#3263) - https://github.com/FreebieII

Aman Raza (electro199#8130) - https://github.com/electro199

Cyteon (cyteon) - https://github.com/cyteon

LICENSE

Roboto Fonts are licensed under Apache License V2