# RedditVideoMakerBot Command Line Arguments: How to Configure Input Without CLI Flags

> Learn how RedditVideoMakerBot handles configuration without CLI flags. Discover input setup using config.toml and direct main() function calls.

- Repository: [Lewis Menelaws/RedditVideoMakerBot](https://github.com/elebumm/RedditVideoMakerBot)
- Tags: how-to-guide
- Published: 2026-04-08

---

**RedditVideoMakerBot does not accept traditional command-line arguments; all runtime configuration is handled through the [`config.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/config.toml) file or by calling the `main()` function directly with a post ID.**

Unlike many automation scripts that rely on `argparse` or `sys.argv`, the elebumm/RedditVideoMakerBot repository uses a **configuration-driven architecture**. This design choice moves all runtime parameters into a persistent configuration file, while offering programmatic hooks for advanced users who need to specify inputs dynamically.

## How Configuration Works Under the Hood

The bot determines its behavior by reading [`config.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/config.toml) from the repository root. If this file is missing on first run, the script automatically generates it using a template and interactive prompts.

### Initial Setup via utils/settings.py

When you execute `python main.py`, the script first checks for [`config.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/config.toml). According to the source code in [`utils/settings.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/utils/settings.py) (lines 52-66), if the configuration file does not exist, the bot creates it from [`utils/.config.template.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/utils/.config.template.toml) and interactively prompts you for required values including Reddit credentials, thread IDs, TTS choices, and execution parameters.

### The config.toml Template Structure

The configuration template at [`utils/.config.template.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/utils/.config.template.toml) (line 12) defines the `reddit.thread.post_id` field, which accepts either a single Reddit post ID or multiple IDs separated by the `+` character. This file serves as the single source of truth for all bot behavior, eliminating the need for command-line flags.

## Programmatic Control Without CLI Flags

While the bot lacks traditional CLI argument parsing, the `main()` function in [`main.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/main.py) exposes a Python-level API for dynamic input.

### Calling main() with a Specific Post ID

The `main()` function signature (lines 49-55 in [`main.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/main.py)) accepts an optional `POST_ID` parameter:

```python
def main(POST_ID=None) -> None:
    ...

```

To process a specific post without modifying [`config.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/config.toml), invoke the function directly from Python:

```bash
python -c "from main import main; main('urdtfx')"

```

This passes the Reddit post ID `"urdtfx"` as a function argument, bypassing the configuration file's thread settings entirely.

### Batch Processing Multiple Posts

For processing multiple posts in sequence, the `__main__` block in [`main.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/main.py) (lines 98-115) handles iteration automatically. When [`config.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/config.toml) contains multiple IDs in the format `abc123+def456+ghi789`, the script splits the string on the `+` delimiter and calls `main(post_id)` for each entry.

### Running Multiple Iterations

To execute the bot repeatedly without manual restarts, the `run_many()` function (lines 66-73 in [`main.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/main.py)) implements a re-run loop. Set `settings.times_to_run` in [`config.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/config.toml) to your desired count; the script will invoke `run_many(times)`, which repeatedly calls `main()` using fresh random posts if no specific IDs are fixed.

## Practical Usage Scenarios

- **Default configuration run**: Execute `python main.py` and the bot reads [`config.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/config.toml). If the file is missing, the interactive setup in [`utils/settings.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/utils/settings.py) prompts you for required fields.

- **Single post execution**: Use `python -c "import main; main.main('POST_ID')"` to target a specific Reddit thread without editing configuration files. No CLI flags are parsed; the argument passes directly as a Python function parameter.

- **Batch processing via config**: Edit [`config.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/config.toml) to set `reddit.thread.post_id = "abc123+def456"` then run `python main.py`. The script automatically splits the string and processes each ID sequentially.

- **Automated repeated runs**: Set `settings.times_to_run = 3` in [`config.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/config.toml) before executing `python main.py`. The `run_many(3)` function handles the iteration logic internally.

## Summary

- **No CLI argument parsing** exists in the current codebase; the script does not implement `argparse` or parse `sys.argv`.
- **All configuration** resides in [`config.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/config.toml), automatically generated from [`utils/.config.template.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/utils/.config.template.toml) on first run.
- **Direct Python invocation** allows passing post IDs via `main(POST_ID)` for programmatic control without file modifications.
- **Batch operations** use the `+` separator in the configuration file's `post_id` field, processed by the `__main__` block in [`main.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/main.py).
- **Repeated execution** is controlled through the `settings.times_to_run` configuration value and the `run_many()` function.

## Frequently Asked Questions

### Does RedditVideoMakerBot support command-line arguments like --input or --config?

No. As implemented in elebumm/RedditVideoMakerBot, the script does not use traditional command-line flags. All input parameters are read from the [`config.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/config.toml) file or passed directly to the `main()` function when calling the script programmatically.

### How do I run the bot for a specific Reddit post without editing the config file?

Import the `main()` function from [`main.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/main.py) and call it with the post ID as a string argument: `main('urdtfx')`. You can execute this via `python -c "from main import main; main('urdtfx')"`, which avoids modifying [`config.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/config.toml) while targeting a specific thread.

### Can I process multiple Reddit posts in one execution?

Yes. Set `reddit.thread.post_id` in [`config.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/config.toml) to a `+`-delimited string of IDs (e.g., `"abc123+def456"`). The `__main__` block in [`main.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/main.py) (lines 98-115) automatically splits this string and invokes `main()` for each post ID sequentially.

### Where is the configuration file stored and how is it created?

The configuration file [`config.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/config.toml) is stored in the repository root. On first run, if the file does not exist, [`utils/settings.py`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/utils/settings.py) (lines 52-66) automatically creates it from the template at [`utils/.config.template.toml`](https://github.com/elebumm/RedditVideoMakerBot/blob/main/utils/.config.template.toml) and interactively prompts you for required authentication and behavior settings.