/Radium

Synced stream and video playback with VOD capabilities utilizing HLS. Developed for movie nights but has many use cases.

Primary LanguageVueMIT LicenseMIT


Radium

Radium Next

Radium Next is a sub-second streaming version of Radium using OvenMediaEngine. Visit the branch for more information.

🖥️Demo may take a minute to wake app

Radium Docker Image Nginx-RTMP-HLS

screenshot Advanced Controls found below the player screenshot_ac

Features

  • HLS
    • RTMP to HLS stream with VOD capabilities
    • Direct HLS playback
  • Controls
    • Play, pause, and sync all members in the room
  • Sync Room
    • Sync button pushes users time to all clients*
  • Chat
    • No login, simply enter a displayname
    • Custom emotes from images
    • Admin authentication*
  • Now Playing
  • More coming soon!

*Only Admins are able to sync the room

Getting Started

Basic usage

Radium runs in a Docker container, simply modify and run the docker command.

# Basic Docker Container
$ docker run -d --name=radium -p 3000:3000 -e BASE_URL=https://radium.example.com zibbp/radium:latest

Prefer using docker compose? Check out the docker-compose.yml

Want to use Heroku? Click the button, enter environment variables, and click deploy!

Deploy to Heroku

Options

Base URL (REQUIRED)

The base url is required for basic functionality.

If not using a reverse proxy and a domain, the IP and PORT need to be supplied.

# Add the following environment variable
-e BASE_URL=https://radium.example.com

or

# Add the following environment variable
-e BASE_URL=http://1.2.3.4:3000
HLS

The HLS url can be changed via an environment variable or within the application when running. To set a permanent url, pass the environment variable HLS_URL through.

# Add the following environment variable
-e HLS_URL=https://domain.com/stream.m3u8

If the HLS_URL variable is not passed through, a default demo file will play.

Visit the documentation for generating HLS media.

Admin Token

The admin token is automatically generated and logged to the console whenever started, but a custom one can be passed through.

# Add the following environment variable
-e ADMIN_TOKEN=secret123

Visit the documentation for token usage.

Documentation

Highlights

Alternatives

Looking for something else? Check out these amazing opensource projects.
  • MovieNight This is a single-instance streaming server with chat. Originally written to replace Rabbit as the platform for watching movies with a group of people online.
  • Open Streaming Platform A Self-Hosted Video Streaming and Recording Server Using Python, Flask, Nginx-RTMP.
  • Jellyfin The Free Software Media System v10.6 introduced a synced playback feature

Information

zibbp.tech  ·  GitHub @zibbp  · 

License

Radium is distributed under the terms of the MIT license. See LICENSE.md for details.