How to Install RedditVideoMakerBot on macOS: Complete Setup Guide
TLDR: To install RedditVideoMakerBot on macOS, clone the elebumm/RedditVideoMakerBot repository, create a Python 3.10+ virtual environment, install dependencies from 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.pystrictly 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 script that automates cloning, virtual environment creation, dependency installation, and initial configuration:
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 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
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:
python3 -m venv ./venv
source ./venv/bin/activate
3. Install Python Dependencies
Install the required libraries listed in requirements.txt, including praw (Reddit API), playwright (browser automation), and ffmpeg-python:
pip install -r requirements.txt
4. Install Playwright Browsers and System Dependencies
The screenshot capture functionality in video_creation/screenshot_downloader.py requires Playwright browser binaries and underlying system libraries:
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:
python -c "import utils.ffmpeg_install as f; f.ffmpeg_install()"The
ffmpeg_install()function inutils/ffmpeg_install.pyhandles the download and extraction automatically. -
Manual via Homebrew: Install FFmpeg system-wide:
brew install ffmpeg
6. Configure the Bot
Run the entry point to trigger the interactive configuration wizard:
python main.py
On first execution, main.py calls utils/settings.py to validate your environment and create 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:
python main.py
To process multiple Reddit threads in a single session, modify config.toml to set settings.times_to_run = 5, then run python main.py. Alternatively, use the run_many() function programmatically:
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:
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.pyentry 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) andplaywright install-deps(for system libraries) to enable screenshot functionality. - FFmpeg can be auto-installed: The
utils/ffmpeg_install.pymodule providesffmpeg_install()to download static binaries, or you can use Homebrew. - Configuration is interactive: The
utils/settings.pymodule creates and validatesconfig.tomlduring the first run, storing all Reddit API and TTS settings. - Entry point is
main.py: This file orchestrates the entire pipeline from Reddit data fetching to final video assembly invideo_creation/final_video.py.
Frequently Asked Questions
Why does the bot require Python 3.10 or newer?
The version validation logic in 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 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.
How do I change TTS providers after the initial setup?
Edit the 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:
from utils import settings
settings.config["settings"]["tts"]["voice_choice"] = "GoogleTranslate"
The video_creation/voices.py module maps this string to the appropriate TTS implementation class via the TTSProviders dictionary.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →