Add voice chat to your Twitch stream

August 08, 2020

While I usually stream on Twitch, I have recently been doing streams in Reactadelphia's Discord server. The idea of interacting with viewers via voice chat was quite appealing; however, the downside is that it lacks the visibility of Twitch -- folks not in your Discord server can't join in on the fun.

After chatting with Kurt Kemple and Trevor Blades (coincidentally, using Discord's voice capabilities) during the recent GraphQL Summit, I thought it be nice if we could mix the visibility of one service with the immediacy of the other.

The TL;DR of the solution I came up with was to pipe Discord's audio into my streaming software, along with my mic audio. Of course, my setup also had a self imposed complication -- I wanted to listen to Spotify while streaming, but not broadcast it since I do not have the rights.

It took some experimentation, but here's the general setup I landed on:

Tools

  • Macbook Pro (2019)
  • Streamlabs OBS (stream software)
  • iShowU Audio (desktop audio capture)
  • USB-C hub w/ headphone jack

Configuration

Since I want to split Spotfiy and Discord audio up, I can't simply use iShowU to capture and output all my audio wholesale. To do this, I had to:

  1. Set the macOS Sound preferences to out put to Multi-Output Device. You can create this in the Audio MIDI Setup app.

Sound preferences

  1. In the aforementioned app, select the headphones (USB PnP Audio Device). All desktop audio now plays in the headphones.

Audio MIDI settings

  1. Change the Discord audio preference to output to iShowU Audio Capture. You will no longer hear Discord audio in your headphones.

Discord settings

  1. In Streamlabs OBS, add your microphone and the iShowU audio as inputs (see below)

Streamlabs preferences

Now, you'll only receive the two audio signals you want in Streamlabs (mic and desktop) while still being able to listen to copyrighted on Spotify without risking its transmission.