Skip to content

Glitch.tv is a streaming platform written in the Elixir programming language using LiveExWebRTC Components.

Notifications You must be signed in to change notification settings

elixir-webrtc/Glitch.tv

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Glitch.tv

Glitch.tv is a streaming platform written in the Elixir programming language using LiveExWebRTC Components.

LiveExWebRTC is a library of Phoenix Live Components allowing for simple use of Elixir WebRTC.

Features

  • Streaming camera and audio directly from browser
  • Live chat for all the viewers with moderation features
  • Automatic stream recording and integrated recordings
  • Supports markdown in stream title, description and chat

Installation and running

  1. Clone the repository
    git clone https://github.com/elixir-webrtc/Glitch.tv.git
  2. Install dependencies
    cd Glitch.tv
    mix deps.get

Development mode

  1. Setup the database
    mix ecto.create
  2. Run the server
    mix phx.server
  3. Streamer panel is available at localhost:4000/streamer (in dev mode username is "username", password is "password")

Production Mode

  1. Setup the database
    mix ecto.create
  2. Run the server
    MIX_ENV=prod SECRET_KEY_BASE=$(mix phx.gen.secret) PHX_HOST=<hostname> PORT=<port-nr> GLITCH_STREAMER_USERNAME=<username> GLITCH_STREAMER_PASSWORD=<password> GLITCH_SLOW_MODE_DELAY_S=<delay-sec> DATABASE_PATH=mix phx.server
  3. Streamer panel is available at <hostname>/streamer (in dev mode username is "username", password is "password")

Environment variables

In development mode the environment variables are specified in config/dev.exs, feel free to adjust them as you'd like. If you're preparing a production release of Glitch.tv however, make sure to specify the following environmental variables while running the application:

  • GLITCH_STREAMER_USERNAME - username for streamer panel in prod mode,
  • GLITCH_STREAMER_PASSWORD - password for streamer panel in prod mode,
  • GLITCH_ENABLE_RECORDINGS - flag for enabling recordings, defaults to false
  • GLITCH_SLOW_MODE_DELAY_S - chat slow mode's delay in seconds, defaults to 1
  • GLITCH_ICE_SERVERS - ice servers used by JS clients. Stringified JSON array as in RTCPeerConnection() iceServers argument eg. "[{\"urls\": [\"stun:0.0.0.0:1234\"]}, {\"urls\": [\"turn:0.0.0.0:3478?transport=tcp\", \"turn:0.0.0.0:3478?transport=udp\"], \"username\": \"username\", \"credential\": \"password\"}]"

Credits

Elixir WebRTC is created by Software Mansion.

Since 2012 Software Mansion is a software agency with experience in building web and mobile apps as well as complex multimedia solutions. We are Core React Native Contributors and experts in live streaming and broadcasting technologies. We can help you build your next dream product – Hire us.

swm

About

Glitch.tv is a streaming platform written in the Elixir programming language using LiveExWebRTC Components.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •