# How to Set Up RedditVideoMakerBot Environment: Complete Installation Guide

> Learn how to set up the RedditVideoMakerBot environment with this complete installation guide. Follow simple steps to clone the repo, install dependencies, configure settings, and run the bot.

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

---

**To set up RedditVideoMakerBot environment, clone the elebumm/RedditVideoMakerBot repository, create a Python 3.10 virtual environment, install dependencies via `pip`, configure Playwright browsers, and populate [`config.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/config.toml) with Reddit API credentials before running `python main.py`.**

RedditVideoMakerBot is a Python 3.10-compatible application that automates the creation of short-form videos from Reddit content. The tool orchestrates **PRAW** for Reddit data collection, **Playwright** for screenshot generation, and **FFmpeg** for video stitching. This guide walks through the complete environment setup using the actual source code structure in the `elebumm/RedditVideoMakerBot` repository.

## Prerequisites and System Requirements

Before installation, ensure your system meets the following requirements:

- **Python 3.10** (required for compatibility with the codebase)
- **Git** for cloning the repository
- **Reddit API credentials** (script-type application from the Reddit developer portal)
- **FFmpeg** (automatically installed by [`utils/ffmpeg_install.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/utils/ffmpeg_install.py) if missing)

The entry point [`main.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/main.py) validates dependencies and configuration before executing the video pipeline.

## Step-by-Step Installation Process

### Clone the Repository and Create Virtual Environment

First, clone the repository and navigate into the directory:

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

```

Create and activate a Python 3.10 virtual environment:

```bash

# Windows

python -m venv ./venv
.\venv\Scripts\activate

# macOS/Linux

python3 -m venv ./venv
source ./venv/bin/activate

```

### Install Python Dependencies and Playwright

Install the required packages from [`requirements.txt`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/requirements.txt):

```bash
pip install -r requirements.txt

```

Install Playwright browsers and system dependencies:

```bash
python -m playwright install
python -m playwright install-deps

```

### Verify FFmpeg Installation

The first run of [`main.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/main.py) automatically checks for FFmpeg via [`utils/ffmpeg_install.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/utils/ffmpeg_install.py). If missing, the script prompts to download the appropriate binary for Windows, Linux, or macOS. Alternatively, install FFmpeg manually before running:

```bash

# Windows (Chocolatey)

choco install ffmpeg

# Linux (Ubuntu/Debian)

sudo apt install ffmpeg

# macOS (Homebrew)

brew install ffmpeg

```

## Configuring Reddit API Credentials

Create your configuration file by copying the template:

```bash
cp utils/.config.template.toml config.toml

```

Edit [`config.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/config.toml) with your Reddit API credentials. The `[reddit.creds]` section in [`utils/settings.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/utils/settings.py) validates these values against the schema in [`utils/.config.template.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/utils/.config.template.toml):

```toml
[reddit.creds]
client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"
username = "YOUR_REDDIT_USERNAME"
password = "YOUR_REDDIT_PASSWORD"
2fa = false

```

For thread selection, configure the `[reddit.thread]` section:

```toml
[reddit.thread]
random = false
subreddit = "AskReddit+RedditDev"

```

## Setting Up Text-to-Speech (TTS)

### Configure Voice Settings

Choose your TTS provider under `[settings.tts]` in [`config.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/config.toml). The [`video_creation/voices.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/video_creation/voices.py) module routes audio generation to the selected engine:

```toml
[settings.tts]
voice_choice = "tiktok"
tiktok_sessionid = "YOUR_TIKTOK_SESSIONID"

```

Alternative options include **ElevenLabs** (`elevenlabs_api_key`) or **OpenAI**. Each provider requires specific authentication tokens as documented in the template file.

### Background Video and Audio

Customize visual elements in the `[settings.background]` section. The [`video_creation/background.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/video_creation/background.py) file contains `download_background_video()` and `download_background_audio()` functions that fetch assets based on these settings:

```toml
[settings.background]
background_video = "minecraft"
background_audio = "lofi"
background_audio_volume = 0.2
enable_extra_audio = true

```

## Running the Bot

Execute the main entry point to start the pipeline:

```bash
python main.py

```

The [`main.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/main.py) script (lines 45-94) handles argument parsing, loads configuration via [`utils/settings.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/utils/settings.py), and orchestrates the video creation workflow. To process a specific post rather than random selection, pass the post ID directly:

```bash
python main.py --post-id abc123

```

For batch processing, set `times_to_run` in `[settings]` to invoke `run_many()` (lines 67-74 in [`main.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/main.py)):

```toml
[settings]
times_to_run = 5

```

The bot clears temporary files automatically after each iteration via the cleanup routine, producing `final_video.mp4` in the output folder.

## Summary

- **RedditVideoMakerBot** requires **Python 3.10** and uses [`main.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/main.py) as the primary entry point to orchestrate [`reddit/subreddit.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/reddit/subreddit.py) for data collection and [`video_creation/final_video.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/video_creation/final_video.py) for assembly.
- **Configuration validation** occurs in [`utils/settings.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/utils/settings.py), which checks [`config.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/config.toml) against the schema defined in [`utils/.config.template.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/utils/.config.template.toml).
- **FFmpeg auto-installation** is handled by [`utils/ffmpeg_install.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/utils/ffmpeg_install.py) when the binary is not detected on first run.
- **Playwright browsers** must be installed separately using `python -m playwright install` to enable screenshot generation in [`video_creation/screenshot_downloader.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/video_creation/screenshot_downloader.py).

## Frequently Asked Questions

### How do I fix the "ffmpeg not found" error?

Install FFmpeg manually if the automatic installation in [`utils/ffmpeg_install.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/utils/ffmpeg_install.py) fails due to network restrictions or unsupported operating systems. Use `choco install ffmpeg` on Windows, `sudo apt install ffmpeg` on Linux, or `brew install ffmpeg` on macOS, then restart the bot.

### What Python version does RedditVideoMakerBot require?

The application specifically requires **Python 3.10** for compatibility with the codebase architecture. Using other Python versions may cause dependency conflicts with the TTS and video processing libraries specified in [`requirements.txt`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/requirements.txt).

### Where do I configure Reddit API credentials?

Credentials belong in the `[reddit.creds]` section of [`config.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/config.toml), copied from [`utils/.config.template.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/utils/.config.template.toml). You must register a **script-type** application in the Reddit developer portal to obtain the `client_id` and `client_secret` values.

### Can I run the bot for specific Reddit posts only?

Yes. Pass the `--post-id` argument when running [`main.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/main.py) (line 49 in [`main.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/main.py) accepts this parameter) to bypass the random thread selection logic in [`reddit/subreddit.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/reddit/subreddit.py) and process a specific submission ID directly.