Skip to content
Self hosted simulcasting to Twitch, Youtube, and Facebook made easy
Branch: master
Clone or download
dustinblackman Merge pull request #4 from laice/uuid
Upstream UUID String() changes
Latest commit ebc5dce Feb 28, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
logger 1.0.0 May 13, 2017
services Revert "streamrollerlib, exposing private methods" Feb 27, 2019
.travis.yml update to go 1.8 May 14, 2017 add changelog May 14, 2017
Dockerfile Revert "streamrollerlib, exposing private methods" Feb 27, 2019
LICENSE Initial commit Nov 4, 2016
Makefile fix linter setup May 14, 2017
docker-compose.yml Revert "streamrollerlib, exposing private methods" Feb 27, 2019
main.go Revert "streamrollerlib, exposing private methods" Feb 27, 2019


Self hosted simulcasting made easy

Build Status

Deploy to Docker Cloud

Streamroller is a mutlistream tool that allows you to broadcast your streams (e.g OBS/Xsplit) to multiple platforms such as Twitch, Youtube, and Facebook at once. It also has read only chat to make it easy to vocally respond to your viewers in a single window.

This tool is meant to be hosted remotely to avoid networking issues locally as trying to stream for multiple sources can get quite heavy.


Chat: Chat


  • Combined chat (read)
  • Combined chat (write)
  • RTMP cloning
  • Streamroller stream key protection


  • Twitch
  • Facebook Live
  • Youtube
  • Azubu
  • Hitbox


Getting Keys/Tokens

Before installing to make the setup simpler, it's best to get all the keys and tokens you'll need from your accounts first. Not every platform is required, only keys and tokens for the platforms you wish to stream to. See the doc.


Docker Cloud

Deploy to Docker Cloud

Docker Cloud is users who are atleast somewhat familiar with working on servers. You can follow Docker Cloud's get started guide here, and then afterwards hit the Deploy with Cloud button.


A docker image is available over at Docker Hub. It's suggested to use a tag rather then latest.


Grab the latest release from the releases page, or build from source and install directly from master. Streamroller is currently built and tested against Go 1.8.

Quick install for Linux:

curl -Ls "" | tar xz -C /usr/local/bin/

Build From Source:

A makefile exists to handle all things needed to build and install from source.

git pull
cd streamroller
make install


Configuration can be done either by command line parameters, environment variables, or a JSON file. Please see all available flags with streamroller --help or in the example below.

To set a configuration, you can take the flag name and export it in your environment or save in one of the three locations for config files.

After launch, chat can be found on the index, (e.g http://localhost:8080). And streams can also be submitted to index (e.g rtmp://localhost:8080).


  "twitch-livekey": "", // Twitch live key
  "twitch-username": "", // Twitch Username
  "twitch-oauth": "", // Twitch oauth key

  "facebook-livekey": "", // Facebook live key
  "facebook-token": "", // Facebook auth token

  "youtube-livekey": "", // Youtube live key
  "youtube-token": "", // Youtube oauth refresh token

  "port": 8080, // Port for server to listen on
  "debug": false, // Debug logging



streamroller --twitch-livekey aBc123 facebook-livekey EfG456


All flags/parameters can be used with environment variables by prefixing with SR_, and replacing dashes with underscores.


JSON File:

Configuration files can be stored in one of the three locations

  "twitch-livekey": "aBc123",
  "facebook-livekey": "EfG456"


  • Ethan for the name
  • JDoeDevel for the chat snippet

Related Projects

  • StreamWithFriends - StreamWithFriends allows your friends webcams to appear on your stream all through a web broswer.


You can’t perform that action at this time.