No description
  • HTML 81.6%
  • JavaScript 12.8%
  • Shell 5.6%
Find a file
2026-05-22 15:19:03 -07:00
assets Upload files to "assets" 2026-05-22 15:13:54 -07:00
electron Upload files to "electron" 2026-05-22 15:14:16 -07:00
install.sh Update install.sh 2026-05-22 15:19:03 -07:00
open-streaming.html Upload files to "/" 2026-05-22 15:07:09 -07:00
README.md Update README.md 2026-05-22 15:14:39 -07:00

Open Streaming

A customizable, full-screen web launcher for your favorite streaming platforms. Presents a clean grid interface where you can organize, launch, and manage services like Netflix, Hulu, YouTube, Plex, Emby, Jellyfin, Romm, and more.

A demo is available here: https://benpruyne.com/open-streaming.html


Installation

The easiest way to get started. No Node.js or dependencies required — everything is bundled.

Download the latest AppImage from the Releases page, or run the install script which handles everything automatically:

curl -s https://raw.githubusercontent.com/optimuspryne/open-streaming/main/install.sh -o /tmp/install.sh && bash /tmp/install.sh

This will download the AppImage, set up the icon, and create a desktop launcher entry.

Option 2: Snap

Available from the Releases page.

sudo snap install --dangerous open-streaming-electron_1.0.0_amd64.snap

Option 3: Run from Source

Requires Node.js and npm.

git clone https://github.com/optimuspryne/open-streaming.git
cd open-streaming
npm install
npm start

Option 4: Host the HTML Yourself

Requires a Web Server (Reverse Proxy & SSL Certs optional but highly recommended)

The Electron app is a nice convenience, but a similar result can be accomplished by hosting the HTML and the assets on a webserver (Or just locally on the machine) and setting up your HTPC to launch a web browser in Fullscreen/Kiosk mode at logon, and then set the 'homepage' on the browser to the location of the HTML.

open-streaming/
├── open-streaming.html         # Main launcher HTML file
└── assets/                     # Local service images
    ├── smalllogo.png
    ├── finallogo.png
    ├── emby.png
    ├── jellyfin.png
    ├── romm.png
    └── ...

Keyboard Shortcuts

Key Action
F1 Go home (back to launcher)
F11 Toggle fullscreen
Alt + Left Go back one page
Arrow keys Navigate between services
Enter Open selected service

HTPC Setup (Linux)

This is how the app is intended to be used — as a fullscreen launcher on a dedicated HTPC that boots straight into Open Streaming.

Remote Control

A wireless remote/keyboard combo is recommended. The Rii Mini i25 works well as it supports both keyboard input and mouse cursor emulation. Most big streaming sites do not respond well to arrow key navigation alone, so a remote that can emulate a mouse cursor is important for actually using the services once you launch them.

Electron App Setup

The recommended setup uses the Electron-based app which handles fullscreen, navigation, and local service compatibility (Emby, Jellyfin, Romm, etc.) out of the box.

  1. Run the install script or follow the manual steps in Option 3 above.
  2. The app launches fullscreen automatically.
  3. Use F1 or your remote's home button to return to the launcher from any service.

Home Button (Rii / Media Remotes)

On KDE Wayland, media keys like the home button are handled at the OS level. To map your remote's home button to return to the launcher:

  1. Open System Settings > Shortcuts > Custom Shortcuts
  2. Create a new Global Shortcut > Command/URL
  3. Set the trigger to your home button
  4. Set the action to launch the app

How To Use The Launcher

  1. Click the + tile at the end of the grid to open the Add Service dialog.
  2. Use the Popular tab to pick from a list of known streaming services.
  3. Use the Custom tab to add any service manually — useful for locally hosted services like Jellyfin, Emby, or Romm.
  4. For self-hosted services, you will be prompted to enter your server URL (e.g. http://192.168.1.100:8096 for Emby).
  5. Use drag-and-drop to reorder services.
  6. Click the x button on any tile to remove it.
  7. Click the H button on any tile to hide it without deleting it — it will be greyed out and unlaunchable until shown again.
  8. Use the Export / Import buttons to back up or restore your layout as a JSON file.

Tip: For any other service, paste a full image URL from a site like SteamGridDB. Portrait ratio images (2:3) work best with the Card tile style.


Appearance

The top bar contains all layout controls:

  • Size — adjusts the tile size via a slider
  • Style — switches between Landscape (4:3) and Card (portrait 2:3) tile styles
  • Theme — 16 themes based on the Flame dashboard palette, shown with color swatches
  • Export / Import — back up or restore your layout The clock and date are displayed on the right side of the top bar.

Gamepad Support

Controllers are supported via the Gamepad API — no extra drivers needed.

Input Action
D-pad / Left stick Navigate the grid
A / Cross Launch selected service
B / Circle Go back
LB + RB Go home

Nav Bar

A persistent nav bar appears at the bottom of the screen when you move your mouse near the bottom edge. It works on all sites including those with strict security policies (Apple TV+, Spotify, YouTube Music).

Button Action
Back Go back one page
Home Return to the launcher
Fullscreen Toggle fullscreen
Exit Close the app

Compatibility

  • Tested on CachyOS and EndeavourOS with KDE Plasma on Wayland
  • Should work on any Linux distro with Electron
  • Windows is technically supported but not recommended