A real-time streaming platform that supports live chat from both Twitch and YouTube, featuring chat overlay, polls, and highlights.
- Multi-platform chat integration (Twitch & YouTube)
- Interactive polls
- Stream highlights
- HLS streaming support
- WebSocket-based real-time updates
- Node.js (v14 or higher)
- Python 3.8 or higher
- FFmpeg
- PM2 (for process management)
-
Clone the repository:
-
Install Node.js dependencies:
npm install- Set up Python virtual environment:
python -m venv myenv
source myenv/bin/activate # On Linux/Mac
# or
myenv\Scripts\activate # On Windows- Install Python dependencies:
pip install python-dotenv twitchio aiohttp websocket-client- Create a
.envfile in the root directory with your credentials:
# Twitch Configuration
TWITCH_CHANNEL=your_twitch_channel
TWITCH_TOKEN=your_twitch_oauth_token
# YouTube Configuration
YOUTUBE_API_KEY=your_youtube_api_key
YOUTUBE_CHANNEL_ID=your_youtube_channel_id
# Stream Configuration
STREAM_KEY=your_stream_key
# Admin Configuration
ADMIN_USERNAME=your_admin_username # Username with admin privileges for managing highlightsThe following environment variables must be set in your .env file:
TWITCH_CHANNEL: Your Twitch channel nameTWITCH_TOKEN: Your Twitch OAuth token (generate at https://twitchtokengenerator.com/)
YOUTUBE_API_KEY: Your YouTube API key (get from Google Developer Console)YOUTUBE_CHANNEL_ID: Your YouTube channel ID
STREAM_KEY: Your stream key (defaults to 'StreamtoME' if not set)
ADMIN_USERNAME: Username with administrative privileges for managing highlights and other admin-only features
The stream key is configured through the STREAM_KEY environment variable in your .env file. If not set, it defaults to StreamtoME. This key is used for RTMP authentication and HLS stream paths.
- Start the Node.js server:
npm inpm start
# or
node server.js- Start the chat overlay service:
# Activate virtual environment
source myenv/bin/activate # On Linux/Mac
# or
myenv\Scripts\activate # On Windows
# Run with PM2 (recommended for production)
pm2 start myenv/bin/python --name "chat-overlay" -- chat_overlay.py
# Or run directly
python chat_overlay.py- RTMP URL:
rtmp://localhost:1935/live - HLS URL:
http://localhost:8000/live/StreamtoME/index.m3u8 - Web Interface:
http://localhost:3001
Stream150Server/
├── public/ # Static files and frontend
├── server/ # Server-side modules
├── data/ # Data storage
├── media/ # Media files
├── server.js # Main server file
├── chat_overlay.py # Chat integration service
└── .env # Environment variables
- Create a new branch:
git checkout -b feature/your-feature-name- Make your changes and commit:
git add .
git commit -m "Add your feature"- Push to remote:
git push origin feature/your-feature-name-
Chat Overlay Not Working
- Check if the
.envfile is properly configured - Verify Twitch and YouTube credentials
- Check WebSocket connection in browser console
- Check if the
-
Stream Not Starting
- Verify FFmpeg is installed
- Check RTMP server logs
- Ensure correct stream key is being used
-
Poll System Issues
- Check server logs for WebSocket errors
- Verify database connection
-
Admin Access Issues
- Verify
ADMIN_USERNAMEis correctly set in.env - Check that you're logged in with the correct username
- Clear browser cache if changes don't take effect
- Verify
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a new Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.