TITLE: Low bandwidth radio
DATE: 2022-09-18
AUTHOR: John L. Godlee
====================================================================


When I'm on fieldwork I sometimes have to do lab work back in the
city, grinding soils, or weighing grass biomass samples. A lot of
this work is quite mindless, repeating the same protocol hundreds
of times. It's nice to have some music, podcasts, or an audiobook
to listen to while I'm doing this work, to pass the time. I also
like listening to the radio, mainly through internet radio
stations. I wrote a post a while back demonstrating a small fzf
script I use to play radio stations through mpv.

 [post]: /2020/03/25/radio.html
 [fzf]: https://github.com/junegunn/fzf
 [mpv]: https://mpv.io/

Often when I'm doing the lab work in the field, my internet
connection is not that great. I'm either on very low bandwidth
wifi, or using my mobile data connection, tethered to my laptop. I
have been doing some research to find internet radio stations which
offer very low bandwidth streams. I was also curious about the
patterns of internet radio station quality and geographic location.

There are a few internet radio station databases available on the
web, for example:

-   radio-browser.info
-   Internet Radio: Music from Thousands of Stations
-   Database | Free Internet Radio | TuneIn
-   Radio Garden – Explore live radio by rotating the globe
-   Online radio stations | RadioForest.net

 [radio-browser.info]: https://www.radio-browser.info/
 [Internet Radio: Music from Thousands of Stations]:
https://www.internet-radio.com/
 [Database | Free Internet Radio | TuneIn]:
https://tunein.com/artist/Database-m168848/
 [Radio Garden – Explore live radio by rotating the globe]:
http://radio.garden/?r=1
 [Online radio stations | RadioForest.net]:
https://www.radioforest.net/

However, I had difficulty finding a database with an open API or
where I could download the full database. I settled with the
database available at radio-browser.info, which has a JSON endpoint
where you can return all records.

 [1]: https://radio-browser.info

The database has 31894 records, though 159 of these hadn't been
online for over a week at the time when I downloaded the database
(2022-05-06), so I discarded those. The data in the database are a
bit messy in terms of bitrate. A number of stations supposedly have
a bitrate of 34400400 kbps (34.4 gbps) for example. I decided to
discard any stations with a recorded bitrate higher than 4500 kbps,
as I don't think I'd ever listen to these streams if the bitrate is
as high as it is actually recorded. This removed 37 stations. Of
those stations with the highest bitrates, 16 are from Russia, 5 are
from Spain, 5 are from the USA, and 11 from the rest of the world.
I also discarded stations where the bitrate was recorded as 0,
which removed 5880 stations. After all this filtering, I was left
with 25863 records.

The lowest bandwidth stream I could find was 3 kbps, from
http://live.japanesemusicid.com:8000/japanesemusic. It's an AAC+
encoded stream, and when I listened, it seemed like the audio
quality was mostly fine.

I found that for talk radio especially, I could listen to anything
as low as 16 kbps without really even noticing the difference from
a high quality stream. The quality of sound is absolutely fine,
even if the volume is turned up or I'm listening through headphones.

For music, my minimum threshold for enjoyment is a tiny bit higher,
but still, a low bitrate stream is perfectly adequate for listening
to stuff in the background while I'm doing lab work. I found that
48 kbps was fine for most music, though for listening on my big
speakers I could tell the difference up to about 128 kbps.

As I had the data, I did a bit more light analysis to see if there
were any patterns.

I found that there wasn't really any correlation between bitrate
and click count.

 ![Scatter plot of bitrate vs. click
count.](https://johngodlee.xyz/img_full/low_radio/bit_click.png)

The USA and Germany had the highest number of stations recorded.
Geographically, many stations originate from Europe and North
America, also Russia. Africa has very few stations overall. In
South America, Brazil and Argentina have lots of stations, but
nearby Bolivia, Paraguay, Guyana and Venezuela have very few.

 ![Bar graph of number of stations per
country.](https://johngodlee.xyz/img_full/low_radio/n_map.png)

 ![Map of number of stations per
country.](https://johngodlee.xyz/img_full/low_radio/station_map.png)

128 kbps is by far the most common bitrate, with MP3 being the most
common format. Interestingly, for 64, 48, and 32 kbps streams, AAC+
is more common than MP3.

 ![Number of stations by bitrate and
codec.](https://johngodlee.xyz/img_full/low_radio/bitrate_bar.png)

For my cut-off of low-bitrate as 64 kbps, I found that the USA
(which also had the most stations overall) and Mexico had the most
low-bitrate streams.

 ![Bar graph of stations by country split by high and low
bitrate.](https://johngodlee.xyz/img_full/low_radio/hi_lo_country.pn
g)

As a percentage of total number of streams, many of the countries
with the lowest bitrates were in Africa or South America, but this
is likely because they had few streams in th database to begin with.

 ![Low bitrate streams per country as a percentage of the total
number of
streams.](https://johngodlee.xyz/img_full/low_radio/lo_per_map.png)

I read some other blog and forum posts about internet radio
streaming. It seems like other people also want access to low
bitrate radio streams, but consistently radio stations are shutting
down those URLs. Maybe the radio stations would prefer that you
download their dedicated app or visit their website to listen.
Maybe it's simply that only a small portion of users actually
stream via a URL now, and it's not worth the maintenance to keep
them up and running.