Installation
System Requirements
Python 3.10 or higher
Windows, macOS, or Linux
At least 2GB of available RAM
Internet connection for streaming service integrations
OBS Studio (for browser source integration)
Installing from Source
Clone the repository:
git clone https://github.com/yourusername/mycelian.git cd mycelian
Install using UV (recommended):
uv pip install -e .
Or using pip:
pip install -e .
Install development dependencies (optional):
uv pip install -e ".[docs]"
First Launch
Desktop Application Interface
Launch Mycelian:
python main.py
The desktop application will open with a tabbed interface including: * Activity Feed: Real-time alert monitoring and history * Settings: Service configuration and database setup * Custom Sources: Template configuration management * Source Controls: Interactive template controls * Connectors: Automation workflow designer and management
The Flask web server will automatically start on
http://localhost:5000to serve browser sources
Initial Configuration
Database Setup
On first launch, configure your database in the Settings tab:
Option 1: Firebase Realtime Database (Recommended for cloud sync)
Create a Firebase project at https://console.firebase.google.com/
Enable Realtime Database
Download your service account key file
In Settings → Database Configuration: * Select “Firebase” as database type * Browse and select your Firebase key file * Enter your database URL * Test the connection
Option 2: Local SQLite Database
In Settings → Database Configuration: * Select “SQLite” as database type * Choose or create a local database file * Test the connection
The application will create necessary database structures automatically.
Service Integration Setup
🔑 IMPORTANT - Personal Credentials Required:
Each service integration requires you to create your own developer applications and obtain your own unique credentials. Mycelian does not provide shared API keys or credentials. You must:
Create developer accounts with each service you want to use
Register your own applications on their developer platforms
Generate your own Client IDs and Client Secrets
Use your own account credentials for OAuth authorization
This ensures your data privacy and complies with each service’s terms of use.
Twitch Integration
Prerequisites: * Active Twitch account * Twitch Developer account
⚠️ Important: You MUST create your own Twitch application to get unique credentials
Setup Process:
Create Your Own Twitch Application: * Visit https://dev.twitch.tv/console/apps * Log in with your Twitch account * Click “Register Your Application” * Fill in application details:
Name: “Mycelian” (or your preferred name)
OAuth Redirect URI:
http://localhost:3000Category: “Application Integration”
Click “Create”
Get Your Unique Credentials: * Click “Manage” on your newly created application * Copy your Client ID (visible immediately) * Click “New Secret” to generate your Client Secret * Copy your Client Secret (keep this secure!)
Configure Mycelian: * In Mycelian Settings → Service Integrations → Twitch: * Enter YOUR unique Client ID and Client Secret * Click “Connect to Twitch” * Complete OAuth authorization in your browser * Verify connection status shows “Connected”
Features Enabled: * Real-time follower and subscription alerts * Chat integration with emotes and badges * Channel point redemption notifications * Raid and host alerts * Bits/cheer tracking
Spotify Integration
Prerequisites: * Spotify Premium account (for full playback control) * Spotify Developer account
⚠️ Important: You MUST create your own Spotify application to get unique credentials
Setup Process:
Create Your Own Spotify Application: * Visit https://developer.spotify.com/dashboard * Log in with your Spotify account * Click “Create app” * Fill in application details:
App name: “Mycelian” (or your preferred name)
App description: “Stream overlay integration”
Website: Leave blank or add your stream URL
Redirect URI:
http://localhost:8888/callbackWhich API/SDKs are you planning to use: “Web API”
Accept terms and click “Save”
Get Your Unique Credentials: * Click on your newly created application * Go to “Settings” * Copy your Client ID (visible immediately) * Click “View client secret” to reveal your Client Secret * Copy your Client Secret (keep this secure!)
Configure Mycelian: * In Mycelian Settings → Service Integrations → Spotify: * Enter YOUR unique Client ID and Client Secret * Click “Connect to Spotify” * Authorize the application in your browser * Verify connection status shows “Connected”
Features Enabled: * Now playing track display * Album artwork integration * Playback history tracking * Track information for overlays
YouTube Integration
Prerequisites: * Google account (Gmail) * YouTube channel(s) you want to monitor * Basic understanding of API concepts
⚠️ Important: You MUST create your own Google Cloud project and API key
Setup Process:
Create a Google Cloud Project:
Sign in with your Google account (Gmail)
Click “Create Project” (or select an existing project if you have one)
Enter a project name: “Mycelian YouTube Integration” (or your preferred name)
Choose your organization if applicable
Click “Create”
Enable the YouTube Data API v3:
In your Google Cloud Console, go to “APIs & Services” → “Library”
Search for “YouTube Data API v3”
Click on “YouTube Data API v3” from the results
Click “Enable” to activate the API for your project
Create API Credentials:
Go to “APIs & Services” → “Credentials”
Click “Create Credentials” → “API key”
Your API key will be generated and displayed
IMPORTANT: Copy and save your API key immediately (you won’t be able to see it again)
SECURITY NOTE: Keep your API key secure and never share it publicly
Configure API Key Restrictions (Recommended):
Click on your newly created API key
Under “API restrictions”: - Select “Restrict key” - Check “YouTube Data API v3”
Under “Application restrictions”: - Select “HTTP referrers (web sites)” - Add referrer:
localhost:*(for local development) - You can add additional restrictions based on your needsClick “Save” to apply the restrictions
Configure Mycelian:
Launch Mycelian and go to Settings → YouTube Integration tab
Enter your API key in the “API Key” field
Enter channel URLs separated by pipe symbols (|):
https://youtube.com/@Channel1|https://youtube.com/@Channel2Supported URL formats: -
https://youtube.com/@ChannelHandle-https://youtube.com/channel/UC_CHANNEL_ID-https://youtube.com/c/CustomChannelName-https://youtube.com/user/UsernameClick “Save Settings”
Test the connection to verify everything works
API Quota and Costs:
Free Tier: YouTube Data API v3 provides 10,000 units per day for free
Cost: $0.50 per 1,000 units beyond the free tier
Usage: Each video/channel lookup uses approximately 1-3 units
Monitoring: With 5-minute refresh intervals, typical usage is well within free limits
Security Best Practices:
API Key Restrictions: Always restrict your API key to specific APIs and referrers
Regular Rotation: Rotate your API keys periodically for security
Environment Variables: Consider using environment variables for API keys in production
Access Control: Only share API keys with trusted team members
Troubleshooting API Key Issues:
“API key not valid” error: - Verify you copied the API key correctly - Check that the YouTube Data API v3 is enabled in your project - Ensure API key restrictions aren’t blocking your requests
“Daily quota exceeded” error: - Wait for the quota to reset (24 hours) - Consider increasing your refresh intervals - Upgrade to a paid plan if needed
“Access denied” error: - Check API key restrictions are configured correctly - Verify the HTTP referrer matches your setup - Ensure you’re using the correct API key for the correct project
Features Enabled: * Multi-channel video monitoring (unlimited channels) * Real-time latest video detection across all channels * Channel-specific and global latest video variables * Automatic video filtering based on keywords * WebSocket integration for live template updates * Chatbot integration with dynamic YouTube variables
PlayStation Network Integration
Prerequisites: * Active PlayStation Network account * PSN username you want to monitor for trophies
⚠️ Important: You must use your own PSN account credentials
Setup Process:
Configure Your PSN Account: * In Settings → Service Integrations → PlayStation Network: * Enter YOUR PSN username (the account you want to monitor) * Configure trophy notification preferences * Test the connection * Verify your profile is accessible for trophy tracking
Features Enabled: * Trophy unlock notifications * Game status updates * Achievement progress tracking * Game artwork display
Streamlabs Integration
⚠️ Important: You must have your own accounts with these services
Streamlabs:
Prerequisites: * Active Streamlabs account linked to your streaming platform * Streamlabs dashboard access
Setup Process:
Ensure Streamlabs Account Setup: * Visit https://streamlabs.com/ * Sign in with your streaming platform account (Twitch/YouTube) * Complete your Streamlabs dashboard setup
Connect to Mycelian: * In Mycelian Settings → Service Integrations → Streamlabs: * Click “Connect to Streamlabs” * Complete OAuth authorization using YOUR Streamlabs account * Configure event preferences * Verify connection status shows “Connected”
OBS Studio Integration
Browser Source Setup
Enable Templates: Ensure the Flask server is running (automatic with Mycelian)
Add Browser Sources in OBS: * Create new Browser Source * Set URL to
http://localhost:5000/{template_name}* Common templates:Alerts:
http://localhost:5000/bitbossActivity Feed:
http://localhost:5000/activity_feedChat:
http://localhost:5000/chatNow Playing:
http://localhost:5000/spotify
Configure Source Properties: * Set width/height appropriate for your template
Template Configuration
Custom Sources Tab
Use the Custom Sources tab to configure template appearance:
Select Template: Choose from available configurations
Edit Properties: Modify colors, fonts, animations, and layout
Save Changes: Apply configuration to template files
Preview: View changes in real-time
Source Controls Tab
Use the Source Controls tab for real-time interaction:
Interactive Elements: Buttons, sliders, toggles for live control
Dynamic Updates: Changes reflect immediately in browser sources
Template Actions: Trigger animations, reset counters, spin wheels
Connector Automation Setup
Connectors Tab
The Connectors tab provides a powerful automation system for creating trigger-action workflows:
Getting Started with Connectors:
Access the Connectors Tab: Open the Connectors tab in the desktop application
Create Your First Connector: Click “New Connector” to open the creation dialog
Configure Basic Information: * Enter a descriptive name for your connector * Add an optional description explaining what it does
Set Up Triggers: * Choose from 15+ trigger types (Twitch events, donations, timers, manual triggers) * Add optional conditions to make triggers more specific * Configure trigger-specific parameters
Configure Actions: * Add one or more actions to execute when triggered * Choose from 9+ action types including:
Template controls (counters, roulette wheels, etc.)
Chat messages with dynamic placeholders
API calls to external services
File operations and logging
System commands and keyboard/mouse input
Audio control (volume, microphone)
Test Your Connector: * Use the built-in test functionality to verify your connector works * Review the test results and debug any issues * Enable the connector when you’re satisfied it works correctly
Example Connector Workflows:
High Bits Counter: When someone cheers 100+ bits → increment a counter template
VIP Follow Response: When a user with “VIP” in their name follows → send a special chat message
Donation Logger: When someone donates $5+ → write donation details to a log file
Music Control: When channel points are redeemed for “Next Song” → make API call to skip track
Alert Trigger: When specific chat command is used → trigger a custom alert animation
Connector Management:
Statistics: View how often connectors trigger and execute actions
Enable/Disable: Toggle connectors on/off without deleting them
Edit: Modify existing connectors with the same interface used for creation
Delete: Remove connectors you no longer need
Examples: Use the “Examples” button to create pre-configured sample connectors
Verification
Testing Your Setup
Database Connection: Check Settings → Database for green status indicator
Service Connections: Verify all integrations show “Connected” status
Browser Sources: Add a test browser source in OBS to confirm template loading
Alert Testing: Use test buttons in Settings to verify alert functionality
WebSocket Communication: Check Activity Feed for real-time event updates
Connector Testing: Create a simple test connector and verify it triggers correctly
Troubleshooting
Common Issues
Port Already in Use (5000): * Close other applications using port 5000 * Or modify the port in application settings and update OBS browser source URLs
Database Connection Failed: * For Firebase: Verify key file path and database URL * For SQLite: Check file permissions and path accessibility * Test connection using built-in connection tester
Service Authentication Errors: * Verify API credentials are correct and active * Check OAuth redirect URIs match exactly * Re-authorize connections if tokens expire * Review service-specific permissions and scopes
Browser Sources Not Loading:
* Confirm Flask server is running (check Activity Feed tab)
* Verify template files exist in templates/ directory
* Check browser console for JavaScript errors
* Ensure OBS browser source URL format is correct
WebSocket Connection Issues: * Verify web server is running on correct port * Check firewall settings for port 5000 * Review browser console for connection errors * Confirm templates are properly connecting to Socket.IO
Template Controls Not Working:
* Check Source Controls tab for registered dynamic controls
* Verify template configuration includes dynamic_controls section
* Ensure WebSocket events are properly defined
* Test with Source Controls tab before using in OBS
Performance Issues: * Close unnecessary browser sources in OBS * Reduce animation complexity in template configurations * Monitor system resources and available RAM * Consider using audio-only alerts for resource-intensive setups
Connector Issues: * Connectors Not Triggering: Verify service integrations are connected and active, check trigger conditions for typos, test with manual trigger events * Actions Not Executing: Review action configuration parameters, check logs for execution errors, verify template names and action IDs are correct * Template Control Actions Failing: Ensure template supports the specified action, verify WebSocket connection is active, check template configuration includes required elements * Test Mode Not Working: Confirm connector is properly saved, check that all required fields are filled, review test data matches trigger expectations
Migration from Other Platforms
Alert Import: * Use Settings → Alert Migration to import from Streamlabs * Backup your current alert configurations before migration * Test imported alerts thoroughly before going live
Database Migration: * Use Settings → Database Migration for switching between Firebase and SQLite * Create backups before starting migration process * Monitor migration progress and logs for any issues
Getting Help
Diagnostic Information:
* Check logs/ directory for detailed error messages
* Use Settings → Debug Information for system status
* Monitor Activity Feed for real-time event processing
Support Resources:
* Verify all dependencies are properly installed with uv pip list
* Ensure your system meets minimum requirements
* Check template configurations for syntax errors
* Review WebSocket event logs for communication issues
Log Locations:
* Application logs: logs/mycelian.log
* Database operations: logs/database.log
* WebSocket events: logs/websocket.log