How to Set Up RedditVideoMakerBot Environment: Complete Installation Guide
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 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.pyif missing)
The entry point 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:
git clone https://github.com/elebumm/RedditVideoMakerBot.git
cd RedditVideoMakerBot
Create and activate a Python 3.10 virtual environment:
# 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:
pip install -r requirements.txt
Install Playwright browsers and system dependencies:
python -m playwright install
python -m playwright install-deps
Verify FFmpeg Installation
The first run of main.py automatically checks for FFmpeg via 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:
# 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:
cp utils/.config.template.toml config.toml
Edit config.toml with your Reddit API credentials. The [reddit.creds] section in utils/settings.py validates these values against the schema in utils/.config.template.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:
[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. The video_creation/voices.py module routes audio generation to the selected engine:
[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 file contains download_background_video() and download_background_audio() functions that fetch assets based on these settings:
[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:
python main.py
The main.py script (lines 45-94) handles argument parsing, loads configuration via utils/settings.py, and orchestrates the video creation workflow. To process a specific post rather than random selection, pass the post ID directly:
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):
[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.pyas the primary entry point to orchestratereddit/subreddit.pyfor data collection andvideo_creation/final_video.pyfor assembly. - Configuration validation occurs in
utils/settings.py, which checksconfig.tomlagainst the schema defined inutils/.config.template.toml. - FFmpeg auto-installation is handled by
utils/ffmpeg_install.pywhen the binary is not detected on first run. - Playwright browsers must be installed separately using
python -m playwright installto enable screenshot generation invideo_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 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.
Where do I configure Reddit API credentials?
Credentials belong in the [reddit.creds] section of config.toml, copied from 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 (line 49 in main.py accepts this parameter) to bypass the random thread selection logic in reddit/subreddit.py and process a specific submission ID directly.
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 →