YT LIVE STREAMER
Getting started

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.

HEADS UP Use the official python.org installer, not the Microsoft Store build — the Store version can break tkinter. Tick "Add python.exe to PATH" during install.

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

bash
$ sudo apt install ffmpeg python3-tk

yt-dlp

bash
$ 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

powershell
> 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.

VERIFY Run ffmpeg -version in a fresh terminal. If you see version info rather than "not found", you're set.

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.

bash
$ 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:

cmd
> 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:

output
==> 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.

bash
$ mkdir -p ~/streamer_plugins
$ cp streamer_plugins/*.py ~/streamer_plugins/
cmd
> mkdir %USERPROFILE%\streamer_plugins
> copy streamer_plugins\*.py %USERPROFILE%\streamer_plugins\
UPDATING A PLUGIN When you replace a plugin file, clear its cached copy so the new version loads: rm ~/streamer_plugins/__pycache__/<name>*

05Quick Setup wizard

The very first launch opens a short wizard. The one thing it really needs is your YouTube stream key.

  1. Open YouTube Studio

    Go to youtube.com/studio → Create → Go Live → Stream settings.

  2. Copy your stream key

    Reveal and copy the key. Treat it like a password — anyone with it can stream to your channel.

  3. Paste it into the wizard

    Drop it in the stream-key field and finish. You can change it later under Settings.

06Your first stream

  1. Add videos

    On the Stream tab, add video files to the playlist. Drag to reorder.

  2. Pick your settings

    Set resolution and bitrate to match your upload speed. 1080p needs ~6 Mbps up; 720p needs ~3.

  3. Hit Start Stream

    The app runs a pre-flight check, then pushes to YouTube. Watch FPS and bitrate climb on the Health tab.

RUNNING 24/7 Turn on loop so the playlist repeats, and use the Schedule tab to swap playlists by day and time without touching the app.

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).

  1. Open Google Cloud Console

    Go to console.cloud.google.com and create or pick a project.

  2. Enable the API

    APIs & Services → Library → enable YouTube Data API v3.

  3. Create a key

    Credentials → Create Credentials → API Key. Copy it.

  4. 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.

  1. Enable the APIs

    In the same project, enable YouTube Data API v3 and YouTube Analytics API.

  2. Create an OAuth client

    Credentials → Create Credentials → OAuth client ID → Desktop app. Copy the ID and secret.

  3. Sign in

    My Channel tab → paste ID & secret → Sign In → approve in the browser.

ONE SIGN-IN COVERS ALL THREE My Channel, Broadcast and Analytics share the same token. If you added the analytics or broadcast plugins after signing in, just sign out and back in once to grant the new permissions.

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.

TIP Keep port 5000 (the Remote API) firewalled to localhost or your own IP. The WordPress control plugin talks to it over 127.0.0.1, so it never needs to face the internet.

10Dependency matrix

The core needs the three required tools. Each row below is only needed if you use that plugin.

WhatNeeded forInstall
ffmpegrequiredapt install ffmpeg
python3-tkrequiredapt install python3-tk
yt-dlprequireddownloaded / pip
flaskRemote APIpip install flask
psutilHealth Monitorpip install psutil
websocketsPlayer chatpip install websockets
paramikoSFTP Managerpip install paramiko
google-auth*My Channel, Live, Analyticspip install google-auth google-auth-oauthlib google-api-python-client
mpv or vlcSearch "Play" buttonapt install mpv

11Troubleshooting

The app opens then closes immediately
Launch via the script (./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
Confirm the plugin file is in ~/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 isn't on your PATH. Reinstall it and open a new terminal so the PATH refreshes. Verify with ffmpeg -version.
Search or AI Builder says "no API key"
Add a free YouTube Data API v3 key (Section 07). The Search tab and AI Builder both read from the same key field.
Analytics shows "missing scope"
Enable the YouTube Analytics API in Google Cloud, then sign out and back in via My Channel so the new permission is granted.
YouTube rejects the stream ("bot detection")
Export a cookies.txt from your browser and point Settings → Download → YouTube Cookies at it. This is mostly relevant when downloading on a VPS.
Stream quality is poor or buffering
Your upload speed needs roughly 2× your stream bitrate. Lower the bitrate under Settings → Stream, or move to a VPS with a faster connection.
STILL STUCK? The app has a built-in Help tab with 35+ searchable articles, and a Development tab with the full test checklist — both cover most setup questions in more depth.