How to Use RedditVideoMakerBot for Specific Subreddits

To use RedditVideoMakerBot for specific subreddits, configure the reddit.thread.subreddit field in your config.toml file with your target subreddit name (or multiple joined by +), then run python main.py to automatically fetch, filter, and convert posts into videos.

The RedditVideoMakerBot repository by elebumm automates the creation of short-form videos from Reddit threads. To target specific communities, you must configure the subreddit selection criteria in the configuration file and understand how the filtering pipeline processes posts from the Reddit API.

Configuring Target Subreddits in config.toml

All subreddit targeting occurs in the [reddit.thread] section of config.toml. The bot validates this configuration against utils/.config.template.toml at startup.

Single vs. Multiple Subreddits

Set the subreddit key to the exact name of your target community. To process multiple subreddits simultaneously, separate names with a plus sign (+) without spaces.

[reddit.thread]
subreddit = "AskReddit"

For multiple subreddits:

[reddit.thread]
subreddit = "AskReddit+funny+gaming"

Targeting Specific Post IDs

Instead of fetching from the hot list, you can process exact posts by setting the post_id field. In reddit/subreddit.py, the get_subreddit_threads() function checks for this value at lines 75-94. When provided, the bot fetches that specific submission rather than scanning the subreddit feed.

[reddit.thread]
post_id = "k9v2z9+mx4p2a"

When post_id contains multiple IDs separated by +, the script calls main() for each ID sequentially (see main.py lines 8-15).

Understanding the Subreddit Selection Pipeline

The selection workflow involves two critical files: reddit/subreddit.py handles Reddit API authentication and thread fetching, while utils/subreddit.py manages content filtering and "undone" post selection.

When you execute python main.py, the main() function calls get_subreddit_threads() from reddit/subreddit.py (lines 49-53). This function:

  1. Creates a praw.Reddit instance using credentials loaded by utils/settings.py
  2. Checks if post_id is configured; if so, retrieves that specific submission
  3. Otherwise, fetches the hot list using subreddit.hot(limit=25)
  4. Passes candidates to get_subreddit_undone() in utils/subreddit.py (lines 19-86)

Filtering Rules and Content Moderation

The get_subreddit_undone() function filters the fetched submissions by checking against video_creation/data/videos.json to skip previously processed posts. It applies the following rules:

  • NSFW content: Skipped unless settings.allow_nsfw is set to true
  • Sticky posts: Automatically excluded from selection
  • Blocked words: Posts and comments containing terms from reddit.thread.blocked_words are rejected via the _contains_blocked_words() helper in utils/subreddit.py (lines 9-16)

Comment Count and Engagement Requirements

The bot enforces minimum engagement thresholds before selecting a post. The min_comments setting (default 20) filters out posts with insufficient discussion. Additionally, individual comments must satisfy the min_comment_length and max_comment_length constraints defined in your configuration.

Advanced Configuration Examples

Enabling Interactive Subreddit Selection

To bypass the config file and manually enter a subreddit name at runtime, set the subreddit value to an empty string. The bot will prompt you interactively at lines 55-60 of reddit/subreddit.py.

[reddit.thread]
subreddit = ""

AI-Based Similarity Sorting

When ai.ai_similarity_enabled is true, the bot reorders fetched submissions using cosine similarity against keywords defined in ai.ai_similarity_keywords. This logic is implemented in utils/subreddit.py (lines 30-35) which calls sort_by_similarity() from utils/ai_methods.py.

[ai]
ai_similarity_enabled = true
ai_similarity_keywords = "python, coding, programming"

Complete Configuration Example

[reddit.creds]
client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"
username = "YOUR_REDDIT_USERNAME"
password = "YOUR_REDDIT_PASSWORD"
2fa = false

[reddit.thread]
subreddit = "AskReddit+relationship_advice"
post_id = ""
min_comments = 25
max_comment_length = 500
min_comment_length = 10
blocked_words = "nsfw, spoiler, update"

[settings]
allow_nsfw = false
storymode = false

Summary

  • Configure target subreddits in the [reddit.thread] section of config.toml using the subreddit key
  • Use the + character to process multiple subreddits simultaneously (e.g., AskReddit+funny)
  • Specify exact posts with the post_id field instead of fetching from hot lists
  • Filter unwanted content using blocked_words, min_comments, and the allow_nsfw setting
  • The selection logic resides in reddit/subreddit.py and utils/subreddit.py, tracking processed posts in video_creation/data/videos.json

Frequently Asked Questions

Can I process multiple subreddits in a single run?

Yes. Enter multiple subreddit names separated by a plus sign (+) in the subreddit field of your config.toml file, such as AskReddit+funny. The bot will fetch posts from all specified subreddits and treat them as a single pool for selection.

How does the bot avoid processing the same post twice?

The bot maintains a record of processed video IDs in video_creation/data/videos.json. The get_subreddit_undone() function in utils/subreddit.py (lines 19-86) automatically skips any submission whose ID appears in this file, ensuring you don't create duplicate content.

Can I block posts containing specific words or phrases?

Yes. Add a comma-separated list to the blocked_words setting in [reddit.thread]. The _contains_blocked_words() function in utils/subreddit.py (lines 9-16) checks both post titles and comment bodies against this list, skipping any content containing those terms.

Why is the bot ignoring my specific post ID?

Ensure the post_id value in config.toml is correctly formatted without the full Reddit URL (use just the ID string like k9v2z9). Also verify the post is not marked NSFW (when allow_nsfw is false), doesn't contain blocked words, and meets the minimum comment count requirements configured in your settings.

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:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →