How I live-stream programming

I’ve been live-streaming myself doing operating systems programming every week for 6 months now. This is not meant to be a comprehensive guide on streaming, just an overview of how I do it.

The bare basics

I stream to Youtube using OBS. I use Youtube because:

  • It automatically archives the streams indefinitely to your channel by default. (Twitch only keeps the video for a limited time IIRC).
  • It exposes you to all of Youtube for potential viewership.

I tried Twitch once but didn’t get many viewers, so I stopped trying there.

A bit more (chat widget, alert boxes, chatbot)

I use Streamlabs’ free plan for my Chat Widget, Alert Boxes, and Chatbot. It works very well for a free offering and these add some more flair and professionalism to your stream.

  • Chat Widget: The messages in the chat are rendered directly into the stream video. The chat is an important part of the streaming experience, and it would be a shame to lose those messages. This ensure they are at least captured in the video.
  • Alert Boxes: These are visual effects that show in the stream when someone subscribes or does other actions.
  • Chatbot: I have a few chatbot commands for answering common questions about my tools, discord, or recommended sources. The chatbot is also useful for moderating the chat and e.g. restricting offensive language.

After using a basic OBS setup for a while, I customized it with a text box at the top that gives viewers a quick sense of what I do (“Streaming OS/Kernel Dev, Assembly & Low Level Programming”), the topic of today’s stream, and a friendly invitation to engage in the chat.

Misc tips

I used this plugin for background removal for that streamer green-screen effect (without a green-screen). It’s quality is just ok. I eventually stopped using it and just show my background.

  • After streaming to Youtube, be careful to not use their built in trimming tools because this removes the chat replay from the video. I used to press stream, then trim the beginning, but now I press stream and immediately start to preserve the native Youtube replay.
  • Resolution โ€” Increase your screen resolution so people can read the text more easily. On my monitor, I reduce the resolution to 720p and live with the fact that it’s comically big for me when I stream.
  • Music โ€” I use a 3 hour LoFi hip hop video on Youtube that explicitly claims to be No Copyright. I have OBS set to do a macOS capture which records audio. I then play it, and actually mute my laptop so I don’t hear it (it distracts me when programming) but it gets recorded in the stream.
  • Multi-streaming โ€” You can multi-stream to Youtube and Twitch with paid Streamlabs, but there are other ways to do it, apparently even including using ffmpeg locally.
  • Youtube Thumbnails โ€” I use CapCut, which is perfect for this. I took a screenshot of one of my streams, loaded it in CapCut, then overlay a few text objects and images on top. CapCut paid version also conveniently can remove backgrounds from people and give a colored border for that authentic Youtuber effect.

Any thoughts?