How to Install RedditVideoMakerBot on Windows: Complete Setup Guide
You can install RedditVideoMakerBot on Windows by cloning the repository, creating a Python 3.10–3.12 virtual environment, installing dependencies from requirements.txt, and running run.bat, which automatically handles FFmpeg installation via 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, 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.
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:
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:
python -m venv .venv
Activate the virtual environment using the Windows-specific activation script:
.venv\Scripts\activate.bat
Once activated, install the required packages:
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 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:
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 invokes settings.check_toml() from utils/settings.py to generate config.toml by merging the template at 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 - 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.
Run the Bot Using run.bat
The repository includes a Windows batch wrapper, run.bat, that automates virtual environment activation and script execution:
@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.
Once running, the bot executes the full pipeline: validating the Python version, ensuring FFmpeg is present, loading config.toml, fetching Reddit threads via reddit/subreddit.py, generating TTS audio, downloading screenshots, and assembling the final video through modules in video_creation/final_video.py.
Summary
- Python 3.10–3.12 is mandatory:
main.pyenforces this version check immediately on startup. - Use
run.baton Windows: This batch file handles virtual environment activation and provides error handling. - FFmpeg installs automatically: If missing,
utils/ffmpeg_install.pydownloads and extracts Windows binaries from GitHub releases. - Configuration is automated:
utils/settings.pygeneratesconfig.tomlfrom the template and prompts for Reddit API credentials interactively. - Pipeline orchestration:
main.pycoordinates 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 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 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 in the project root directory on first run. This file is generated by utils/settings.py using 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.
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.
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 →