A server which allows audio publishers to broadcast to subscribers on a channel, using nothing more than a modern web browser.
It uses websockets for signalling & WebRTC for audio.
The designed use case is for live events where language translation is happening. A translator would act as a publisher and people wanting to hear the translation would be subscribers.
Download a precompiled binary or build it yourself.
Usage of ./babelcast:
-debug
enable debug log
-port int
listen on this port (default 8080)
Then point your web browser to http://localhost:8080/
If the PUBLISHER_PASSWORD environment variable is set, then publishers will be required to enter the
password before they can connect.
Except when testing against localhost, web browsers require that TLS (https://) be in use any time media devices (e.g. microphone) are in use. You should put Babelcast behind a reverse proxy that can provide SSL certificates e.g. Caddy.
See this Stackoverflow post for more information.
If you want to stream audio through a different device then the server , you may need to visit chrome://flags/#unsafely-treat-insecure-origin-as-secure and add http://192... or http://li.ve to the list so that Chrome allows you to use the microphone.
Thanks to the excellent Pion library for making WebRTC so accessible.