Overview
MoneyPrinter V2 includes a built-in CRON scheduler (src/cron.py) that enables fully automated content generation and posting. Schedule your YouTube Shorts and Twitter posts to run at specific intervals without manual intervention.
How Scheduling Works
The CRON script accepts three key parameters:- Purpose: Which platform to post to (
twitteroryoutube) - Account UUID: Which account to use for posting
- Ollama Model: Which LLM model to use for content generation
- Retrieves account configuration from cache
- Generates content using the specified LLM model
- Posts/uploads to the target platform
- Logs the operation for monitoring
Setting Up CRON Jobs
Prerequisites
Before scheduling automated tasks:- Configure at least one account (see Account Setup)
- Note the account UUID (visible when selecting accounts)
- Install and configure Ollama with at least one model
- Test manual posting to ensure everything works
CRON Job Syntax
Basic CRON syntax:Common Schedule Examples
Every hour
Every hour
Every 6 hours
Every 6 hours
Twice daily (morning and evening)
Twice daily (morning and evening)
Once daily at specific time
Once daily at specific time
Business hours only (Mon-Fri, 9am-5pm)
Business hours only (Mon-Fri, 9am-5pm)
Weekends only
Weekends only
Platform-Specific Scheduling
Twitter Scheduling
The Twitter automation flow:- Loads account configuration from cache
- Initializes Twitter automation with Firefox profile
- Generates tweet content using Ollama
- Posts tweet to Twitter/X
YouTube Scheduling
The YouTube automation flow:- Loads account configuration from cache
- Initializes YouTube automation with Firefox profile
- Generates video script using Ollama
- Creates video with TTS and visuals
- Uploads video to YouTube Shorts
Implementation Guide
Linux/macOS Setup
-
Find your account UUID:
-
Open crontab editor:
-
Add your scheduled jobs:
-
Save and exit (in vim:
:wq, in nano:Ctrl+XthenY) -
Verify scheduled jobs:
Windows Setup
- Task Scheduler (GUI)
- Command Line (schtasks)
- Open Task Scheduler (search in Start Menu)
- Click “Create Basic Task”
- Name: “MPV2 Twitter Bot” (or similar)
- Trigger: Choose frequency (Daily, Weekly, etc.)
- Action: “Start a program”
- Program: Path to Python in your venv
- Arguments:
- Start in: Path to MoneyPrinterV2 directory
- Finish and enable the task
Best Practices
Frequency Recommendations
Recommended: 3-8 times per dayAvoid posting more than once per hour to prevent spam flags.
YouTube Shorts
Recommended: 1-3 times per dayVideo generation takes time. Space uploads at least 6 hours apart.
Logging and Monitoring
Add logging to your CRON jobs for debugging:Error Handling
The CRON script includes basic error handling:- Missing UUID: Exits with error message
- Account not found: Exits gracefully
- Ollama model not specified: Exits with error
Environment Considerations
Multiple Account Scheduling
You can schedule different accounts at different times:Troubleshooting
CRON job not running
CRON job not running
Check:
- Verify CRON service is running:
systemctl status cron(Linux) - Check crontab syntax:
crontab -l - Review system logs:
grep CRON /var/log/syslog - Ensure absolute paths are used
Job runs but fails silently
Job runs but fails silently
Solution:
- Add output redirection:
>> /tmp/mpv2.log 2>&1 - Check log file for error messages
- Test command manually from terminal
- Verify virtual environment activation
Firefox profile conflicts
Firefox profile conflicts
Solution:
- Ensure Firefox is not running when CRON job executes
- Use separate Firefox profiles for different accounts
- Check file permissions on profile directories
Ollama model not found
Ollama model not found
Solution:
- Verify model is installed:
ollama list - Check model name spelling in CRON command
- Ensure Ollama service is running:
systemctl status ollama
Account UUID not found
Account UUID not found
Solution:
- Verify UUID in cache files:
.mp/twitter.jsonor.mp/youtube.json - UUIDs are case-sensitive - copy exactly as shown
- Ensure cache files have correct permissions
Testing Your Schedule
Before setting up production schedules, test manually:Advanced Scheduling
Dynamic Model Selection
Rotate between different models for variety:Rate Limiting
Preventing platform rate limits:Conditional Execution
Run only during specific conditions:Next Steps
Configuration Settings
Optimize settings for scheduled operations
Account Management
Manage multiple accounts for scheduling