How I built a music bot for virtual meetings on jitsi and hangouts

📅 2020-Sep-18

Nowadays, our daily interactions are mostly through virtual meetings for work events, catching up with friends, or even taking classes online. But, have you ever wanted to enjoy music in your meetings that all participants can listen to at the same time while chatting as normal?

While having an impromptu study with us session with the Co-x3 Family, we felt extremely dissatisfied with our low-tech solution of playing background music.

We rigged up a speaker (google home) and put it in front of a mic so that the music would be picked up and shared to the participants.

The sound quality was horrible, and the person playing music would be almost inaudible and would have to lower the music every time they wanted to speak. Sharing our screens to play music also wasn't a great solution also as it took up a lot of bandwidth and caused choppy audio.

We were familiar with applications like discord which had many third party music bots options, but we needed a browser-based conference experience which did not require login authentication for participants — which was user friendly for all members of our community with varying technological backgrounds. We tested and compared the best free web-based meeting options and narrowed down the list to jitsi meet and hangouts, of which we took the former and built our own secure self-hosted browser-based zoom clone using the open source code.

Note: Having your own self-hosted meetings application is entirely optional for this project. If you want to learn how to build your own, comment below and we'll share a guide!

The solution we hacked together would prove useful for not just us, but dance studios, fitness classes, lecturers, and so much more. And the best thing, it's completely FREE. So today, we'll be teaching you how to add a music bot to any browser-based conferencing app to enhance your virtual meeting experience.

What does this bot accomplish?

  • Plays music that is perfectly synced between all participants in a meeting.
  • Plays music directly through the server so the sound output is crystal clear.

Do I need any additional hardware?

  • You just need your computer! Eventually even this will not be necessary.

How do I get started?

1. Download and install VB cable;

2. Restart your computer;

Go to your advanced sound settings and select your sound output device that is playing music (eg. Spotify, browser, etc.) and then set the output to CABLE Input (VB-Audio Virtual Cable)

Screenshot of the settings panel on windows computers. If you have a screenshot for MacOS, please share it with us and I can share it for those who use apple devices!

This step routes all the output sound from the app you choose (source) into a virtual mic called CABLE Output (VB). You'll notice that you can actually route multiple sources into the virtual output. This is entirely up to you.

3. Join your meeting in another browser instance

Jitsi/Hangouts Instructions: Open a new profile in chrome or start incognito/guest mode in chrome so you are not sharing the same login session as your main browser. I recommend setting up a new profile for this 'bot' so the settings can be preserved for future sessions.

For that user, turn off the camera, and set the mic to the Cable Output, and mute the browser tab (you can right-click the tab and click mute)

Now, you can play music through spotify (or any app) and then the sound will be routed into the CABLE Input, which is cloned into the CABLE Output, which then goes into your meeting; and because your main user with the regular speaker and mic settings are still in the meeting, you will hear the music as if it was coming from another user (but in reality it's you!)

This is a diagram of how your devices are interacting after the whole setup!

Improve your experience on Jitsi

Give your 'bot' a cute name and give it a profile picture by going to settings (in the 3 dots menu) → profile → Set your display name / Set your gravatar email

Additional Ways To Solve This Problem

If you are using a Windows machine, you can use Voicemeeter Audio Device Mixer, which offers a free way for you to mix multiple hardware and virtual inputs into output A (physical speaker/headset) and output B (virtual for recording/VOIP).

The only application we've found with similar functionality on MacOS is Loopback, but the free version is limited and the license key is quite expensive.

What We Want To Innovate On Next

  • Running this bot on a server and creating an easy-to-use interface so anybody can add this bot into their meetings without creating a new browser instance;

If you're interested to help out don't hesitate to let us know in the community or send us an email at! Please also feel free to share this article with a friend that might enjoy this resource.

Did this resonate with you?