# How to Install RedditVideoMakerBot on macOS: Complete Setup Guide

> Install RedditVideoMakerBot on macOS with this complete guide. Learn to clone the repo, set up a virtual environment, install dependencies, and launch the bot for seamless video creation.

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

---

**TLDR:** To install RedditVideoMakerBot on macOS, clone the elebumm/RedditVideoMakerBot repository, create a Python 3.10+ virtual environment, install dependencies from [`requirements.txt`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/requirements.txt), run `playwright install` and `playwright install-deps`, and execute `python main.py` to launch the interactive configuration wizard.

RedditVideoMakerBot is a pure-Python application that transforms Reddit threads into short-form videos suitable for platforms like TikTok and YouTube Shorts. The installation process on macOS requires setting up a virtual environment, installing headless browser dependencies for screenshot capture, and configuring Reddit API credentials through the bot's validation system.

## Prerequisites

Before beginning the installation, ensure your system meets the following requirements:

- **macOS** with Python 3.10, 3.11, or 3.12 installed (the version check in [`main.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/main.py) strictly enforces this and aborts if an older interpreter is detected)
- **Git** for cloning the repository
- An active internet connection for downloading Playwright browser binaries and FFmpeg

## Installation Methods

You can install RedditVideoMakerBot using the automated script or perform a manual installation for greater control over the environment.

### Method 1: Automated Installation (One-Command Setup)

The repository includes an [`install.sh`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/install.sh) script that automates cloning, virtual environment creation, dependency installation, and initial configuration:

```bash
bash <(curl -sL https://raw.githubusercontent.com/elebumm/RedditVideoMakerBot/master/install.sh)

```

This script executes the equivalent of all manual steps below and is located at [`install.sh`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/install.sh) in the repository root.

### Method 2: Manual Installation (Step-by-Step)

For a manual installation that demonstrates exactly how the bot initializes, follow these steps:

#### 1. Clone the Repository

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

```

#### 2. Create and Activate a Virtual Environment

Create a dedicated Python 3.10+ virtual environment to isolate dependencies:

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

```

#### 3. Install Python Dependencies

Install the required libraries listed in [`requirements.txt`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/requirements.txt), including `praw` (Reddit API), `playwright` (browser automation), and `ffmpeg-python`:

```bash
pip install -r requirements.txt

```

#### 4. Install Playwright Browsers and System Dependencies

The screenshot capture functionality in [`video_creation/screenshot_downloader.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/video_creation/screenshot_downloader.py) requires Playwright browser binaries and underlying system libraries:

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

```

The `install-deps` command ensures macOS system libraries such as `libxcb` and `libx11` are available for headless browser operation.

#### 5. Install FFmpeg

You have two options for installing FFmpeg:

- **Automatic:** Run the built-in downloader which places a static binary in the project directory:
  ```bash
  python -c "import utils.ffmpeg_install as f; f.ffmpeg_install()"
  ```

  The `ffmpeg_install()` function in [`utils/ffmpeg_install.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/utils/ffmpeg_install.py) handles the download and extraction automatically.

- **Manual via Homebrew:** Install FFmpeg system-wide:
  ```bash
  brew install ffmpeg
  ```

#### 6. Configure the Bot

Run the entry point to trigger the interactive configuration wizard:

```bash
python main.py

```

On first execution, [`main.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/main.py) calls [`utils/settings.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/utils/settings.py) to validate your environment and create [`config.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/config.toml). The wizard prompts you for Reddit API credentials (client ID, client secret), TTS voice preferences, and optional background video settings.

## Running the Bot

After successful installation, generate videos by invoking the main entry point:

```bash
python main.py

```

To process multiple Reddit threads in a single session, modify [`config.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/config.toml) to set `settings.times_to_run = 5`, then run `python main.py`. Alternatively, use the `run_many()` function programmatically:

```python
from main import run_many
run_many(5)  # Generates 5 videos sequentially

```

To generate a video for a specific Reddit post, pass the post ID as an argument:

```bash
python main.py <POST_ID>

```

The `main()` function forwards this ID to `reddit/subreddit.py:get_subreddit_threads` to fetch the specific thread data.

## Summary

- **Python 3.10+ is mandatory:** The [`main.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/main.py) entry point enforces a version check that aborts execution if an incompatible Python version is detected.
- **Playwright installation is required:** Run both `playwright install` (for browsers) and `playwright install-deps` (for system libraries) to enable screenshot functionality.
- **FFmpeg can be auto-installed:** The [`utils/ffmpeg_install.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/utils/ffmpeg_install.py) module provides `ffmpeg_install()` to download static binaries, or you can use Homebrew.
- **Configuration is interactive:** The [`utils/settings.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/utils/settings.py) module creates and validates [`config.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/config.toml) during the first run, storing all Reddit API and TTS settings.
- **Entry point is [`main.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/main.py):** This file orchestrates the entire pipeline from Reddit data fetching to final video assembly in [`video_creation/final_video.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/video_creation/final_video.py).

## Frequently Asked Questions

### Why does the bot require Python 3.10 or newer?

The version validation logic in [`main.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/main.py) enforces Python 3.10+ to ensure compatibility with modern type hinting and asynchronous features used throughout the codebase. Attempting to run the bot with Python 3.9 or older triggers an immediate abort with a version error message.

### Can I install FFmpeg manually instead of using the automatic downloader?

Yes. While [`utils/ffmpeg_install.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/utils/ffmpeg_install.py) provides the `ffmpeg_install()` function for automatic static binary downloads, macOS users can install FFmpeg via `brew install ffmpeg`. The bot automatically detects FFmpeg in the system PATH, so both methods are fully supported.

### What system libraries does `playwright install-deps` add to my Mac?

The `python -m playwright install-deps` command installs underlying dependencies required for headless Chromium operation, including `libxcb` and `libx11` libraries. Most modern macOS installations already include these, but the command ensures the specific versions required by Playwright are available for [`video_creation/screenshot_downloader.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/video_creation/screenshot_downloader.py).

### How do I change TTS providers after the initial setup?

Edit the [`config.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/config.toml) file directly and modify the `settings.tts.voice_choice` value (for example, to `"GoogleTranslate"` or `"TikTok"`). Alternatively, override it programmatically before calling voice generation:

```python
from utils import settings
settings.config["settings"]["tts"]["voice_choice"] = "GoogleTranslate"

```

The [`video_creation/voices.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/video_creation/voices.py) module maps this string to the appropriate TTS implementation class via the `TTSProviders` dictionary.