BigBlueButton, The Tales Within


It’s been almost a year since my journey with BigBlueButton started. From the very first days of trying to get it up and running using the install script to now, the days of sleeping at night with every BigBlueButton API Endpoint in my mind.

My experience with BigBlueButton to be put fairly has been pleasurably challenging. I’ve spent days setting up servers and getting Scalelite up and running.

Scalelite is the load balancing solution provided by BigBlueButton.

All of this has led me to put my programming knowledge where it belongs, to work. So I developed several tools and scripts. I’ve done this to help my forgetful future self and others in the ways of BigBlueButton. Here are some of the mentioned works of mine.

The Tale of Customization

The first thing that occurred to me when setting up servers was how much of a hassle it was to customize each one of them. The bigger problem though was customizing all of them in the same way so on the large scale there wouldn’t be any differences between servers.

To do so, I made a bash script that uses my set of customizations and preferences corresponding to the files. It’s easy to use and a breeze to make it yours. You can fork it on my Github repo.

The Tale of BigBlueButton Recordings

So, How do you get the list of BigBlueButton recordings? You hit the API. But what if you’re using Scalelite and have a dozen of servers. Scalelite doesn’t provide anything for recordings so what are your options? To hit every single server one by one? well unfortunately yes and no.

BigBlueButton Recording Helper is a node.js app developed by me to help with this. After setup, you can hit one single endpoint and get a simplified JSON of every recording on every server.

Fetching recordings isn’t the only thing this tool has up its sleeve. There are two more and you have probably already guessed one of them. When you have multiple recordings on multiple servers how do you delete a recording? This tool also provides help for that and lets you delete a recording no matter on what server it’s stored.

I also added another trick that might not seem as necessary as the others. There are ways to make BigBlueButton remove recordings after a certain amount of time but sometimes you don’t want automatic removal of your recordings. With that in mind, you also have full storage on your hands. There’s a clean-up tool in the program which lets you delete all recordings older than the desired number of days.

You can find the script in this GitHub repo of mine.

The Tale of BigBlueButton Server Resources and Testing

One of the weird things about a BigBlueButton server configuration is that there is no official word on the exact specs that are needed for an exact number of participants. So you have to constantly test your limits to know what resources you need in your case. The gorilla way of doing this is creating a session and opening as many as chrome tabs you can and join the session. A less-gorilla way, which is definitely a word in the dictionary, is to do it programmatically.

I developed the next tool in Python using selenium. You know where this is going if you have worked with selenium. Basically, it’s a program that creates a BigBlueButton session. Then it opens how many tabs you want and joins that exact session and connects the users to audio.

You can also find this tool on my GitHub in the this repo.

The Tale Has Yet To Offer

It felt like years of toying with BigBlueButton but I’m sure it will punish me for my cruel actions more and more in the future. The fact that I still can’t get the 2.3 beta version to work haunts my dreams. Hope you have a pleasant time dealing with BigBlueButton and I sincerely hope that these tools make it less frustrating. Don’t forget to check my GitHub and give me lovely stars.