From zero to live
in about ten minutes
No installer, no account, no cloud sign-up. Install three tools, run one script, paste your stream key. This guide walks the whole path — plus the optional API setup for search, analytics and broadcast control.
01Prerequisites
You need a desktop machine (or VPS with a display) and three command-line tools. The app itself is Python and runs without installation — you just launch it.
Linux — Ubuntu 20.04 or 22.04 is the tested target. Most distros with Python 3.10+ and a desktop will work.
Windows — Windows 10 or 11. Phase 1 brings the full streaming core; webcam, screen-share and picture-in-picture inputs are Linux-only for now.
02Install dependencies
Three tools do the heavy lifting: ffmpeg streams the video, python3-tk draws the interface, and yt-dlp fetches source videos.
ffmpeg & tkinter
$ sudo apt install ffmpeg python3-tk
yt-dlp
$ sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp $ sudo chmod +x /usr/local/bin/yt-dlp
Python
Download Python 3.10+ from python.org and run the installer with Add to PATH ticked. tkinter ships with it.
ffmpeg
> winget install Gyan.FFmpeg
Close and reopen the terminal afterwards so the new PATH takes effect.
yt-dlp
The launcher installs yt-dlp for you via pip on first run — nothing to do here.
03Launch the app
Extract the download to a folder, then run the launcher. It checks your dependencies, installs anything missing it can, and opens the app.
$ chmod +x install_and_run.sh $ ./install_and_run.sh
Keep streamer.py, start_streamer.bat and the streamer_plugins folder together, then double-click:
> start_streamer.bat
If a check fails, the window stays open so you can read the message.
You'll see each plugin load in the terminal:
==> Launching YT Live Streamer... [plugin] loaded: Download Manager v1.0 [plugin] loaded: Scheduler v1.0 [plugin] loaded: Health Monitor v1.0 … +18 more
04Install plugins
Plugins live in a folder in your home directory. Copy the ones you want in — the app loads them on the next launch.
$ mkdir -p ~/streamer_plugins $ cp streamer_plugins/*.py ~/streamer_plugins/
> mkdir %USERPROFILE%\streamer_plugins > copy streamer_plugins\*.py %USERPROFILE%\streamer_plugins\
05Quick Setup wizard
The very first launch opens a short wizard. The one thing it really needs is your YouTube stream key.
Open YouTube Studio
Go to youtube.com/studio → Create → Go Live → Stream settings.
Copy your stream key
Reveal and copy the key. Treat it like a password — anyone with it can stream to your channel.
Paste it into the wizard
Drop it in the stream-key field and finish. You can change it later under Settings.
06Your first stream
Add videos
On the Stream tab, add video files to the playlist. Drag to reorder.
Pick your settings
Set resolution and bitrate to match your upload speed. 1080p needs ~6 Mbps up; 720p needs ~3.
Hit Start Stream
The app runs a pre-flight check, then pushes to YouTube. Watch FPS and bitrate climb on the Health tab.
07YouTube Data API key — optional
The Search tab and AI Playlist Builder need a free YouTube Data API v3 key (10,000 units/day — plenty).
Open Google Cloud Console
Go to console.cloud.google.com and create or pick a project.
Enable the API
APIs & Services → Library → enable YouTube Data API v3.
Create a key
Credentials → Create Credentials → API Key. Copy it.
Paste it in the app
Open the Search tab (or AI Builder) → Set API Key → paste. Saved for next time.
08OAuth sign-in — optional
My Channel, Broadcast control and Analytics sign in to your channel. This needs an OAuth client, separate from the API key above.
Enable the APIs
In the same project, enable YouTube Data API v3 and YouTube Analytics API.
Create an OAuth client
Credentials → Create Credentials → OAuth client ID → Desktop app. Copy the ID and secret.
Sign in
My Channel tab → paste ID & secret → Sign In → approve in the browser.
09Run on a VPS — optional
For true 24/7 without leaving your home machine on, run it on a cheap VPS. A $5/month instance handles a 1080p stream comfortably and gives you better upload bandwidth.
Stream from the VPS
Install the dependencies as above, copy the app over (the SFTP Manager plugin can sync your files and playlists), and run it. Pair with the Remote API plugin to control it from your laptop or a WordPress site.
Self-hosted player
The player website bundle runs on the same VPS — an HLS watch page with live chat. Point the Multi-RTMP plugin at it to stream to YouTube and your own site at once.
10Dependency matrix
The core needs the three required tools. Each row below is only needed if you use that plugin.
| What | Needed for | Install |
|---|---|---|
| ffmpeg | required | apt install ffmpeg |
| python3-tk | required | apt install python3-tk |
| yt-dlp | required | downloaded / pip |
| flask | Remote API | pip install flask |
| psutil | Health Monitor | pip install psutil |
| websockets | Player chat | pip install websockets |
| paramiko | SFTP Manager | pip install paramiko |
| google-auth* | My Channel, Live, Analytics | pip install google-auth google-auth-oauthlib google-api-python-client |
| mpv or vlc | Search "Play" button | apt install mpv |
11Troubleshooting
The app opens then closes immediately
./install_and_run.sh or start_streamer.bat) rather than running streamer.py directly, so the error message stays visible. Read what it says — it's usually a missing dependency.A plugin tab is missing
~/streamer_plugins/ and that its required pip package is installed (see the matrix). Clear __pycache__ if you recently updated it."ffmpeg is not recognized" / streaming fails instantly
ffmpeg -version.Search or AI Builder says "no API key"
Analytics shows "missing scope"
YouTube rejects the stream ("bot detection")
cookies.txt from your browser and point Settings → Download → YouTube Cookies at it. This is mostly relevant when downloading on a VPS.
YT LIVE STREAMER