The YouTube Live Stream Manager with OBS Control is a Python-based GUI application that allows users to:
- Manage YouTube live streams (authentication, scheduling, uploading thumbnails, starting/stopping streams).
- Control OBS Studio (connect, start/stop streaming, and select scenes) via WebSocket integration.
- Authenticate: OAuth2-based authentication with YouTube.
- Stream Management: Create, view, and manage live streams.
- Thumbnail Upload: Upload a custom thumbnail for a scheduled live stream.
- Dynamic Stream Key Selection: Populate stream keys directly from the user's YouTube account.
- Privacy Defaults: Default privacy set to "Unlisted".
- Connect to OBS: Establish a WebSocket connection with OBS Studio.
- OBS Streaming: Start/stop streaming directly from the application.
- Scene Management: (Optional enhancement: Switch between scenes in OBS).
- Python 3.9 or higher.
- OBS Studio with the WebSocket plugin enabled.
- YouTube API Credentials:
- Download
client_secrets.json
from your Google Cloud Console.
- Download
-
Clone the repository:
git clone <repository_url> cd <repository_folder>
-
Install dependencies:
pip install -r requirements.txt
-
Add the
client_secrets.json
file to the project directory. -
Run the application:
python youtube_live_stream_manager.py
usage_content = """
- Click "Authenticate" to log in with your YouTube account.
- Cached credentials will be used on subsequent runs for convenience.
- Fill out the required fields:
- Stream Title: Enter the title for your stream.
- Start/End Time: Set the schedule for the stream.
- Stream Key: Select a stream key from the dropdown.
- Click "Create Live Stream" to create the stream.
- Click the "Upload Thumbnail" button.
- Select an image file from your system to set as the thumbnail for the selected stream.
- Use the "Connect to OBS" button to establish a WebSocket connection with OBS Studio.
- Start/stop streaming directly in OBS:
- Click "Start OBS Streaming" to begin streaming.
- Click "Stop OBS Streaming" to end the OBS stream.
- Manage OBS scenes (optional, if scene management is enabled in the app).
The OBS configuration file (obs_config.json
) is used to store connection details for the OBS WebSocket server. This file is essential for enabling the application to connect to OBS Studio.
The configuration file must be a JSON file with the following structure:
{
"host": "localhost",
"port": 4455,
"password": "your_password"
}
"""
---
## File Structure
YouTubeLiveStreamManager/ ├── client_secrets.json # OAuth credentials for authentication ├── requirements.txt # List of Python dependencies ├── youtube_live_stream_manager.py # Main Python script ├── README.md # Project documentation └── LICENSE # Project license
---
## License
This project is licensed under the MIT License. See the LICENSE file for details.
---
## Contributing
This was created 100% with openai and im not well versed in programming.
---