SkillAgentSearch skills...

Glitch.tv

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

Install / Use

/learn @elixir-webrtc/Glitch.tv
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

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 <ins><hostname>/streamer</ins> (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

View on GitHub
GitHub Stars11
CategoryDevelopment
Updated7mo ago
Forks0

Languages

Elixir

Security Score

67/100

Audited on Sep 5, 2025

No findings