What documented protocol or API does WebSDR use to stream audio over the internet?

I'm interested in capturing a WebSDR audio stream using a small embedded device which has lots of audio DSP capability, good internet access (TCP/UDP network sockets, raw http, etc.), but no (HTML/JS) browser or Java/JVM runtime.

  • 2
    $\begingroup$ Why not politely ask the author? websdr.org/background.html $\endgroup$ – sessyargc.jp Oct 28 '14 at 0:40
  • $\begingroup$ Where did this ever end up? I was going to embed a client to WebSDR in my RadioWorld app for iPhone but I also got a negative reply from the author of the software. His vision is that everyone uses his terrible UI, for some unknown reason. Intentionally opening up the SDR server over an official API would really do wonders for the community. $\endgroup$ – Kevin Elliott Jan 14 '17 at 9:41
  • $\begingroup$ I decided to use a more open solution, using rtl_tcp to stream IQ data and demodulating the data at the client end (on an iOS device). That protocol seems to be popular, well documented, and easy to implement (even in Swift 3). $\endgroup$ – hotpaw2 Jan 14 '17 at 11:14

The "HTML5"-compatible (not using Java applets) audio interface for WebSDR uses audio samples streamed over a WebSocket connection — this can be seen from the JS client files it downloads.

However, the author of WebSDR has indicated that they do not wish the software used in ways other than via the provided web client (in their FAQ and even in a comment in the very JS file I'm speaking of!) so I recommend that you do not pursue this project without asking the author, as they might well consider it abuse of their service for you to connect with an alternate client.

If you merely want a remote radio receiver and not specifically to use the hardware of existing WebSDR installations, there are several open-source possibilities. If you're interested in that option, I suggest asking about it as a separate question.

  • $\begingroup$ The "reverse engineering, is not allowed without my explicit prior permission" part is not enforceable. Otherwise, we would not have PC clones running IBM-compatible BIOS for the last 34 years... Neither APIs are subject to copyright in the US, as ruled in the recent Oracle vs Google jury verdict. $\endgroup$ – on4aa Jun 12 '16 at 17:32
  • $\begingroup$ @on4aa That just means that one can't be sued for doing so. If you do, they're still free to (attempt to) prevent you from using the service, tell people you're being rude, etc. $\endgroup$ – Kevin Reid AG6YO Jun 12 '16 at 18:06
  • $\begingroup$ That is absolutely true! $\endgroup$ – on4aa Jun 12 '16 at 18:12

The FAQ makes no mention of third party clients, and the JS file merely has standard boilerplate about being able to distribute that file unmodified.

There are already clients for other platforms (eg. glsdr, isdr)

I say to the OP, go for it.. The protocol is very simple, controlled from basic HTTP GET commands. 5 minutes on tcpdump should get you everything you need.

  • $\begingroup$ glSDR is not a WebSDR client — it is a ghpsdr client and the protocols are different. $\endgroup$ – Kevin Reid AG6YO Nov 1 '14 at 18:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.