About me
My name is Chris - I am living in germany and currently working as Head of Datadriven Content Portals for t-online.de - one of, if not the biggest german news site with more than 47 million monthly active users.
My team is responsible for concept/planning, development and delivery of the web portals which deliver live stock market and sports data.
I am an active web developer for nearly 20 years now and worked on lots of medium and big projects, try to be helpful for other devs and in the open source community and even founded a startup once.
In my free time, I work on different pet projects and one of them is RoboStreamer.
Why I started working on RoboStreamer
Out of personal interest, I have a closer eye on the indie point-and-click adventure bubble. In my childhood, I loved playing games like Monkey Island, Day of the Tentacle, Kings’ Quest and others.
During a recent Adventure Game Steam Event, I noticed some developers were hosting pre-recorded Steam Broadcasts. I researched a bit about how this is done and noticed that its surprisingly much work to do so. You not only have to produce your video but you need to leave your computer running and follow strict configuration parameters in order to make your video appear as a live stream on your Steam Store Page.
And there are lots of developers doing this because - totally understandable - they have games to develop.
I noticed that - when you know how to do it, it’s relatively simple to let an instance of ffmpeg handle the streaming part. For initial tests, I had a webserver running, installed ffmpeg there and configured the streaming settings by hand. I did so in order to support an indie game developer friend of mine.
This worked surprisingly well, and I thought by myself: if I add a simple UI around it, I may be able to help a lot of indie devs out there!
How RoboStreamer works
This is my first personal project I built in a decentralized manner where even parts of the main system are separated processes being able to run on separate servers. For the sake of development speed, I settled with Strapi as my main data storage solution. It gives me an API and user authentication without much hassle. And from Strapi, its relatively straightforward piping events to my other services.
There is the upload service which accepts large video files cut into small pieces. It’s responsible for merging the pieces back together and moves them to a storage solution hosted with Hetzner. I will add video conversion there as well to make it even easier to create Steam Broadcasts from pre-recorded videos.
Another service is the coordination process which will spread streaming jobs to multiple running streamer processes. The coordination process is like a load balancer for the streaming requests - it will give jobs to streamer instances with free capacity or even boot up new streamer instances, when needed.
All of those services are written in Typescript and run via Node.js.
Finally, there is the frontend process powering this website and the control center. The whole frontend is created with Svelte using Astro which makes it easy to create fast and SEO friendly web projects.
Thanks for reading!
If you are interested in using RoboStreamer for your Steam Store Page, give me a shout on Twitter or register for the newsletter on the homepage.
If you’d like to discuss techy things - you are very welcome to have a chat with me as well!
Greetings,
Chris
You have a question or just want to talk?
You can reach out by mail or find RoboStreamer on Twitter or join my RoboStreamer Discord Server.
I am always available for a chat (just sometimes, I need to sleep a few hours)!