Skip to main content

Overview

MoneyPrinter V2 uses a cache-based system to store and manage social media accounts. Each account is associated with a Firefox profile to maintain authentication across sessions, eliminating the need to log in repeatedly.

Firefox Profile Setup

What is a Firefox Profile?

A Firefox profile is a collection of settings, bookmarks, extensions, and cookies specific to a user. By using a Firefox profile that’s already logged into your social media accounts, MPV2 can automate posting without manual authentication.

Finding Your Firefox Profile Path

  1. Open Firefox and type about:profiles in the address bar
  2. Find the profile you want to use (usually the default profile)
  3. Look for “Root Directory” and click “Open Folder”
  4. Copy the full path (e.g., C:\Users\YourName\AppData\Roaming\Mozilla\Firefox\Profiles\abc123.default)

Setting Global Firefox Profile

You can set a default Firefox profile in config.json:
{
  "firefox_profile": "/path/to/your/firefox/profile"
}
This profile will be used as the default for all accounts unless overridden with account-specific profiles.
Make sure Firefox is closed when MPV2 is using a profile. Running Firefox and MPV2 with the same profile simultaneously can cause conflicts.

YouTube Account Setup

Adding a YouTube Account

  1. Run the application:
    python src/main.py
    
  2. Select the “YouTube Shorts Automater” option
  3. If no accounts exist, you’ll be prompted to create one:
    • UUID: Auto-generated unique identifier for the account
    • Nickname: A friendly name to identify the account (e.g., “Tech Channel”)
    • Firefox Profile: Path to your Firefox profile (already logged into YouTube)
    • Niche: Content niche for the channel (e.g., “Technology”, “Gaming”, “Finance”)
    • Language: Content language (e.g., “English”, “Spanish”, “French”)

YouTube Account Structure

Accounts are stored in .mp/youtube.json:
{
  "accounts": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "nickname": "Tech Channel",
      "firefox_profile": "/path/to/firefox/profile",
      "niche": "Technology",
      "language": "English",
      "videos": []
    }
  ]
}

Managing YouTube Accounts

When you select “YouTube Shorts Automater” with existing accounts:
  • View Accounts: A table displays all configured accounts with their UUID, nickname, and niche
  • Select Account: Enter the account number to use that account
  • Delete Account: Type d to enter delete mode, then specify the account number to remove

Twitter Account Setup

Adding a Twitter Account

  1. Run the application:
    python src/main.py
    
  2. Select the “Twitter Bot” option
  3. If no accounts exist, you’ll be prompted to create one:
    • UUID: Auto-generated unique identifier
    • Nickname: Friendly name for the account (e.g., “Daily Tips Bot”)
    • Firefox Profile: Path to Firefox profile (logged into Twitter/X)
    • Topic: Content topic for tweets (e.g., “Productivity”, “Crypto”, “Motivation”)

Twitter Account Structure

Accounts are stored in .mp/twitter.json:
{
  "accounts": [
    {
      "id": "660e9500-f39c-52e5-b827-557766551111",
      "nickname": "Daily Tips Bot",
      "firefox_profile": "/path/to/firefox/profile",
      "topic": "Productivity"
    }
  ]
}

Managing Twitter Accounts

When you select “Twitter Bot” with existing accounts:
  • View Accounts: A table displays all configured accounts with UUID, nickname, and topic
  • Select Account: Enter the account number to use that account
  • Delete Account: Type d to enter delete mode, then specify the account number to remove

Cache Management

Cache Location

All account data is stored in the .mp/ directory in the project root:
.mp/
├── youtube.json     # YouTube account cache
├── twitter.json     # Twitter account cache
├── afm.json         # Affiliate marketing products
└── scraper_results.csv  # Google Maps scraper results

Cache Functions

The application provides several cache management functions:
from cache import get_accounts

# Get all YouTube accounts
youtube_accounts = get_accounts("youtube")

# Get all Twitter accounts
twitter_accounts = get_accounts("twitter")

Backup and Restore

Since account configurations are stored as JSON files, you can easily backup and restore them:
# Backup
cp -r .mp .mp_backup

# Restore
cp -r .mp_backup .mp
Keep backups of your .mp/ directory, especially before major updates or system changes.

Multiple Account Support

Using Different Profiles for Different Accounts

You can configure multiple accounts with different Firefox profiles:
  1. Create separate Firefox profiles for each social media account
  2. Log into each social media account in its respective Firefox profile
  3. When adding accounts to MPV2, specify the appropriate Firefox profile path
This approach allows you to:
  • Manage multiple YouTube channels
  • Run multiple Twitter bots with different personas
  • Keep account credentials isolated

Account-Specific vs. Global Profile

The precedence for Firefox profile selection is:
  1. Account-specific profile: Set during account creation in the cache
  2. Global profile: Set in config.json as fallback
Example configuration:
// config.json - Global fallback
{
  "firefox_profile": "/path/to/default/profile"
}

// .mp/youtube.json - Account-specific
{
  "accounts": [
    {
      "id": "abc-123",
      "firefox_profile": "/path/to/specific/profile",
      // ... other fields
    }
  ]
}

Troubleshooting

Common Issues

Solution: Make sure you’re using the correct Firefox profile path. The profile should already be logged into your social media accounts. Close Firefox before running MPV2.
Solution: Check that the UUID exists in the appropriate cache file (.mp/youtube.json or .mp/twitter.json). UUIDs are case-sensitive.
Solution: Firefox is already running with that profile. Close all Firefox windows and try again.
Solution: Restore from backup or manually edit the JSON file to fix syntax errors. Each cache file should have an accounts array at the root level.

Next Steps

Scheduling

Set up CRON jobs for automated posting

Configuration Settings

Fine-tune application settings

Build docs developers (and LLMs) love