Automatically turns Reddit threads into vertical short-form videos by collecting text, images, and clips, then composing captions, avatars, subtitles, and motion graphics into a ready-to-post Instagram Reel or TikTok.
Rendering one clip takes about two seconds on a modern workstation, so large batches of Reddit-proven content can be produced quickly.
Type
Non-commercial
Year
2025

Role
Developer
Tools
Python, TensorFlow, MoviePy, Pillow, OpenCV, pytesseract 
Goal
Convert successful public Reddit content into Vertical clips with little manual work. Each run reads a post, builds the timeline, and exports a file that is ready for Instagram, TikTok, or YouTube Shorts.​​​​​​​
Results
The pipeline delivers many clips per day with consistent formatting. Scheduled posts reached millions of impressions and now supply an internal marketing pipeline.
Examples
A variety of assets allows you to create content that is unique to Instagram algorithms and avoid automatic blocking. More examples in the profile.
Features
— Pulls hot or top posts for configured subreddits (src/meme_generator.py).
— Screens media with a TensorFlow NSFW model and OCR profanity filter.
— Builds 9:16 edits with overlays, LUTs, particles, emoji layers, and a watermark.
— Writes renders to output/<date>/rendered/ for upload.
Quick Start
1) pip install -r requirements.txt
2) Copy .env.example -> .env, add Reddit API values, and set paths for FFmpeg, ImageMagick, and Tesseract if needed.
3) Download assets/models/nsfw.299x299.h5 or set NSFW_MODEL_URL 
4) Populate the folders in assets/ with your media (see assets/README.md).
5) Run python src/meme_generator.py.
Customization
All creative assets live under assets/. Replace fonts, overlays, LUTs, emoji, audio beds, or watermarks to match your brand kit. The script uses whatever files you supply.
Open Source Toolki
TensorFlow & TensorFlow Hub (NSFW classifier)
MoviePy & ffmpeg-python (video composition)
OpenCV (frame sampling)
Pillow (image processing)
pytesseract (OCR)
Requests (HTTP fetching)
PRAW (Reddit API client)
All heavy assets remain local; only docs and placeholders are versioned. Add your media, run the script, and upload the rendered clips.
Back to Top