How to caption your Twitch streams
Tags: streaming, twitch, a11y
Published: 2021-01-12 04:01:25

> Hey friends! If you have a better way, let me know in the comments below and I'll update the article to include your solutions.

There are two types of captions: open and closed. Closed captions are captions included along your stream and your viewers can turn them on or off, and change the font, color, and style to suit their needs. Open captions are text captions captured in your video, and cannot be changed or hidden by the viewer. We're going to be focusing on closed captions which are [supported by Twitch](https://help.twitch.tv/s/article/guide-to-closed-captions?language=en_US#HowtoUseLiveClosedCaptionsforBroadcasters). There are a number of [twitch](https://dashboard.twitch.tv/extensions/h1ekceo16erc49snp0sine3k9ccbh9-1.5.1) [extensions](https://dashboard.twitch.tv/extensions/g8w1nnehm3uxv44zl9eutspl8g3jcz-0.9.6) [that](https://dashboard.twitch.tv/extensions/xxwoffr2lnpxrgpq228mawvdgxetip-1.0.1) circumvent Twitch captions, but I want to focus on captions through Twitch.

# Recording Software
You need a caption provider, and to transmit captions through your recording software. All of the solutions I've found so far require an OBS plugin. Streamlabs does not support OBS plugins, so you have to use OBS. StreamElements offers OBS.Live on Windows which adds a lot of the functionality Streamlabs offered. You can also import your Streamlabs widgets as browser sources. If you still want to use Streamlabs, look at the extension options offered in the previous paragraph.

# Caption Provider
Your caption provider converts your voice into a transcript and captions. All options here are supported in Mac and Windows.

### Cloud Closed Captions
[Cloud Closed Captions](https://github.com/ratwithacompiler/OBS-captions-plugin) is an OBS plugin that uses Google Cloud Speech Recognition API to generate captions in OBS. You do not need to open a browser window to caption.
1. Install Cloud Closed captions [windows](https://github.com/ratwithacompiler/OBS-captions-plugin#installation-windows) [mac](https://github.com/ratwithacompiler/OBS-captions-plugin#installation-mac-os)
2. Restart OBS
3. Go to settings and select the microphone source, and enable captions.
If you are on Mac, fight with Security & Permissions, but you have captions!

### Webcaptioner
Webcaptioner is a common choice for open captions, because it runs on the [Web Speech API for browsers](https://webcaptioner.com/help/getting-started/web-speech-api). It's currently only supported by Google Chrome. In order to integrate with webcaptioner, [follow these steps](https://webcaptioner.com/help/integrations/obs):
1. Install [OBS websockets plugin](https://github.com/Palakis/obs-websocket/releases/tag/4.8.0)
2. Configure Websockets in OBS with a password and port number.
3. Open webcaptioner in Google Chrome, and configure an OBS Studio channel with port and password.
4. Set webcaptioner to use your microphone for captions.
You must have the webcaptioner window open and recording the correct microphone at all times in order to receive captions.
# Captioning Guests
The solutions offered above only work with one microphone, but often, you'll have guests on stream to chat with, or TTS messages you want to hear. You need to turn multiple audio source into one using a virtual mixer like Voicemeeter. Voicemeeter has several competitors, but this article will start with just covering voicemeeter. Let me know in the comments what your favorite virtual mixer is, and I'll add it to the list!

### Voicemeeter
[Voicemeeter](https://vb-audio.com/Voicemeeter/banana.htm) is a virtual mixer that allows you to combine multiple audio sources into a virtual output or input source. It is only supported on Windows.
1. Set up your microphone as a hardware input, and select a virtual output (like B1).
2. Separate you vocal audio into one virtual input, by adjusting the output of each application. The setting should be where you decide which speaker to use.
3. Set that virtual input to the same virtual output from step one (B1).
4. Set this virtual output as your microphone source in your caption provider.
You do not need to output this audio as your source in OBS. You could use it exclusively to create your captions.