# How to Install RedditVideoMakerBot on Windows: Complete Setup Guide

> Learn how to install RedditVideoMakerBot on Windows easily. Follow our guide to clone the repo, set up your environment, and run the bot for an automatic setup.

- Repository: [Lewis Menelaws/RedditVideoMakerBot](https://github.com/elebumm/RedditVideoMakerBot)
- Tags: how-to-guide
- Published: 2026-04-08

---

**You can install RedditVideoMakerBot on Windows by cloning the repository, creating a Python 3.10–3.12 virtual environment, installing dependencies from [`requirements.txt`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/requirements.txt), and running `run.bat`, which automatically handles FFmpeg installation via [`utils/ffmpeg_install.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/utils/ffmpeg_install.py) if the executable is missing.**

RedditVideoMakerBot is a Python-based open-source application that automates video creation by pulling Reddit threads, converting comments to speech, capturing screenshots, and stitching assets into a final MP4. This guide walks through the complete Windows installation process using the actual source code implementation from the `elebumm/RedditVideoMakerBot` repository.

## Prerequisites: Python Version Requirements

Before cloning, ensure you have **Python 3.10, 3.11, or 3.12** installed. According to [`main.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/main.py), the application explicitly checks the Python version on startup and exits if the major version is not 3 or the minor version falls outside the 10–12 range.

```python
if __name__ == "__main__":
    if sys.version_info.major != 3 or sys.version_info.minor not in [10, 11, 12]:
        sys.exit("This program only works on Python 3.10+.")

```

If you attempt to run the bot on older Python versions (such as 3.9 or 3.13), the process will terminate immediately before loading any dependencies.

## Clone the Repository and Set Up the Virtual Environment

First, clone the repository to your local machine and navigate into the directory:

```bash
git clone https://github.com/elebumm/RedditVideoMakerBot.git
cd RedditVideoMakerBot

```

Create a virtual environment to isolate the project dependencies. The repository convention uses a folder named `.venv` or `venv`:

```bash
python -m venv .venv

```

Activate the virtual environment using the Windows-specific activation script:

```bash
.venv\Scripts\activate.bat

```

Once activated, install the required packages:

```bash
pip install -r requirements.txt

```

## FFmpeg Installation (Automatic or Manual)

The bot requires **FFmpeg** to splice video and audio streams. If FFmpeg is not detected in your system PATH, the bot calls `ffmpeg_install()` from [`utils/ffmpeg_install.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/utils/ffmpeg_install.py) to handle installation automatically.

### Automatic Installation Flow

The function `ffmpeg_install_windows()` downloads the official full build from GitHub, extracts the binaries, and places `ffmpeg.exe` in the project root:

```python
def ffmpeg_install_windows():
    try:
        ffmpeg_url = "https://github.com/GyanD/codexffmpeg/releases/download/6.0/ffmpeg-6.0-full_build.zip"
        ffmpeg_zip_filename = "ffmpeg.zip"
        ffmpeg_extracted_folder = "ffmpeg"

        # clean any previous download

        if os.path.exists(ffmpeg_zip_filename):
            os.remove(ffmpeg_zip_filename)

        # download the ZIP

        r = requests.get(ffmpeg_url)
        with open(ffmpeg_zip_filename, "wb") as f:
            f.write(r.content)

        # extract and flatten binaries

        with zipfile.ZipFile(ffmpeg_zip_filename, "r") as zip_ref:
            zip_ref.extractall()
        os.remove("ffmpeg.zip")
        os.rename(f"{ffmpeg_extracted_folder}-6.0-full_build", ffmpeg_extracted_folder)
        for file in os.listdir(os.path.join(ffmpeg_extracted_folder, "bin")):
            os.rename(os.path.join(ffmpeg_extracted_folder, "bin", file), os.path.join(".", file))
        print("FFmpeg installed successfully! Please restart your computer and then re‑run the program.")
    except Exception as e:
        print("An error occurred while trying to install FFmpeg. Please try again or install it manually.")
        print(e)
        exit()

```

If you prefer manual installation, download FFmpeg from the official source, add it to your system PATH, and the bot will skip the automatic download step when it detects the executable via `ffmpeg -version`.

## Configure Reddit API Credentials

On the first run, [`main.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/main.py) invokes `settings.check_toml()` from [`utils/settings.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/utils/settings.py) to generate [`config.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/config.toml) by merging the template at [`utils/.config.template.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/utils/.config.template.toml) with any existing values. The script interactively prompts you for missing or invalid entries via `utils/console.handle_input`.

You must provide:
- **Reddit API credentials** (client ID, client secret, username, password) to authenticate via PRAW in [`reddit/subreddit.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/reddit/subreddit.py)
- **Voice and video preferences** (TTS provider, background video options)

The configuration file is created automatically in the project root after the first execution of [`main.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/main.py).

## Run the Bot Using run.bat

The repository includes a Windows batch wrapper, `run.bat`, that automates virtual environment activation and script execution:

```bat
@echo off
set VENV_DIR=.venv

if exist "%VENV_DIR%" (
    echo Activating virtual environment...
    call "%VENV_DIR%\Scripts\activate.bat"
)

echo Running Python script...
python main.py

if errorlevel 1 (
    echo An error occurred. Press any key to exit.
    pause >nul
)

```

To start the bot, simply double-click `run.bat` or execute it from Command Prompt. The batch file checks for the `.venv` folder, activates it if present, and launches [`main.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/main.py).

Once running, the bot executes the full pipeline: validating the Python version, ensuring FFmpeg is present, loading [`config.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/config.toml), fetching Reddit threads via [`reddit/subreddit.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/reddit/subreddit.py), generating TTS audio, downloading screenshots, and assembling the final video through modules in [`video_creation/final_video.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/video_creation/final_video.py).

## Summary

- **Python 3.10–3.12 is mandatory**: [`main.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/main.py) enforces this version check immediately on startup.
- **Use `run.bat` on Windows**: This batch file handles virtual environment activation and provides error handling.
- **FFmpeg installs automatically**: If missing, [`utils/ffmpeg_install.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/utils/ffmpeg_install.py) downloads and extracts Windows binaries from GitHub releases.
- **Configuration is automated**: [`utils/settings.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/utils/settings.py) generates [`config.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/config.toml) from the template and prompts for Reddit API credentials interactively.
- **Pipeline orchestration**: [`main.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/main.py) coordinates the entire workflow from authentication to final video rendering.

## Frequently Asked Questions

### Which Python versions are compatible with RedditVideoMakerBot?

The source code in [`main.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/main.py) explicitly requires **Python 3.10, 3.11, or 3.12**. The application checks `sys.version_info` and terminates if your Python version falls outside this range, ensuring compatibility with the project's dependencies and syntax.

### Does the bot install FFmpeg automatically on Windows?

Yes. If `ffmpeg.exe` is not found in your system PATH, the `ffmpeg_install()` function in [`utils/ffmpeg_install.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/utils/ffmpeg_install.py) prompts you to download it automatically. The `ffmpeg_install_windows()` helper downloads the official 6.0 full build ZIP, extracts the binaries to your project directory, and instructs you to restart your computer before running the bot again.

### Where is the configuration file stored?

The bot creates [`config.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/config.toml) in the project root directory on first run. This file is generated by [`utils/settings.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/utils/settings.py) using [`utils/.config.template.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/utils/.config.template.toml) as a base. The script interactively requests missing values (such as Reddit API credentials) through console prompts handled by [`utils/console.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/utils/console.py).

### Can I run the bot without using run.bat?

Yes, you can activate the virtual environment manually with `.venv\Scripts\activate.bat` and then execute `python main.py` directly. However, `run.bat` provides a convenient wrapper that ensures the virtual environment is activated and provides visual feedback if errors occur during execution.