coderholic / pyradio

Curses based internet radio player
www.coderholic.com/pyradio
MIT License
971 stars 129 forks source link

Lossless Radio Stations CSV #195

Open amski1 opened 1 year ago

amski1 commented 1 year ago

Mostly stations collected from https://www.hiresaudio.online/cd-quality-internet-radio/ but also some that I found scouring the web.

If any stations do not play, they either went quiet and I'm still waiting until they perhaps show up again, or they need to reboot their streaming server. I try to update this list often. Some stations may not work if you use a VPN.

I have removed stations that don't stream in OggPCM or FLAC, the truly lossless formats.

But then again, care has to be taken even when judging FLAC because some stations will use an EQ that cuts off high frequencies (happened on Radio 2.0 from Italy), others will just up-sample mp3.

For example, Punk Rockers Radio streams in FLAC, if you test the spectrum of it, it cuts off at 16KHz. Another station - Dance Wave Retro - streams at 14KHz. I'm sorry, but that's mp3 128kbps territory. The only explanation is that it's up-sampled from lower quality.

So if you'd like to check the quality of a playing stream, record a little bit of it in Audacity, export as WAV, then drag & drop into Spek. I would consider anything that registers below 20KHz to be an up-sample. However, it does happen that a single song or two are played in lower quality, then all of a sudden true lossless plays and so the station still counts as lossless, so we need to be careful with judgement.

🔹 Note on m3u8 "stations"... I know VLC and MPV play these, Foobar2000 needs a component, I do not know about MPlayer, you tell me.

🔹 Note on La Radio de La Mer, VLC doesn't like its expired certificate so it may not play, Foobar2000 has an option to suppress this.

🔹 Note on La SuperSonica, Foobar2000 doesn't like it.

If you think you can help me make corrections to this list, please let me know. Perhaps a station that I missed / misjudged needs to be included, or removed.

Sorted alphabetically by station name.

Enjoy,

stations.csv - updated June 6, 2023

Excel file with stations that didn't make the cut (in red)

s-n-g commented 1 year ago

Ho @amski1

Thank you very much for creating this list of stations! It is awesome!

I can confirm that all stations in the list do play correctly using pyradio (tested with mpv).

It would be great if you could publish it as a github repo, and more importantly maintain it, so that users can download and benefit from it. What do you think of this idea?

s-n-g commented 1 year ago

If you think you can help me make corrections to this list, please let me know. Perhaps a station that I missed / misjudged needs to be included, or removed.

I think I probably do not have the knowledge (surely not the time) to help you with that, but I will leave this issue open, so hopefully someone else will :)

I have pinned the issue, maybe add a "[Help wanted]" at the title?

amski1 commented 1 year ago

Hey, thank you for taking the time to check it out and reply. I probably should create a repo and not piggy-back here. It'd be a more responsible way of doing it. I will get to it, just not sure if it'll be today.

As I understand it, I ought to be able to create a pull request if I have my own repo, correct?

s-n-g commented 1 year ago

just not sure if it'll be today.

Don't worry about it, take your time

As I understand it, I ought to be able to create a pull request if I have my own repo, correct?

Creating a pull request has nothing to do with you creating a repo for this list of stations.

The way it works is, after you create a repo, anyone can clone it (github calls it fork it), then he can change anything in their copy and submit a PR to you, to either accept their changes (merge them to your original repo) or decline them.

You just go on and create a repo with the list and we'll get back to it then.

Just a suggestion; do not call the CSV file stations.csv, give it another name, maybe lossless.csv or something.

amski1 commented 1 year ago

Isn't it better for me to fork Pyradio repo and submit a Pull Request? If not, then I will stick to creating my own.

If I rename it to lossless.csv, how will Pyradio know which file to load? By default it loads stations.csv, therefore you can just replace the file in the Pyradio folder and have it loaded.

s-n-g commented 1 year ago

There are two or three ways to load a different playlist.

  1. You can just load it, press "o" and select it (it has to be in ~/.config/pyradio

  2. The you can set it to "always reload the last opened playlist", press "c" and you'll see it there.

  3. You can change the default playlist in the config, again with "c".

Now, regarding this lossless.csv there are a couple of ways to get it:

  1. pack it with pyradio
  2. let the user know about it and how to download it and such

We'll have to think about it

For the time being, just create the repo and we'll go from there

amski1 commented 1 year ago

Good to know about the "o" and "c"

amski1 commented 1 year ago

So I had no time to create a new repo yet. But today I noticed two stations went dead. Completely dead, as in - servers offline.

stations.csv - updated August 6, 2023

Excel file with stations that didn't make the cut (in red)

amski1 commented 1 year ago

Several stations went down due to geo-blocking. Some new appeared.

stations.csv - updated September 5, 2023

Excel file with stations that didn't make the cut (in red)

amski1 commented 1 year ago

Another update. BesideFM went offline completely. 95bFM switched to HTTPS.

stations.csv - updated September 18, 2023

Excel file with stations that didn't make the cut (in red)

s-n-g commented 1 year ago

Just a something to consider...

Using the following script, I created a CSV file which contains groups, using the third column from the xlsx file as a group name... Manipulating these comments will probably give better result

import pandas as pd
from numpy import nan
import csv

print('Reading "ALL.Stations.xlsx" ... ', end='', flush=True)
x = pd.read_excel("ALL.Stations.xlsx")
d = x._data.as_array()

out = {}

for n in d:
    index = n[2]
    if index is nan:
        if 'Stations' in out:
            out['Stations'].append([n[0], n[1]])
        else:
            out['Stations']=[[n[0], n[1]]]
    else:
        # index = index[:40]
        if index in out:
            out[index].append([n[0], n[1]])
        else:
            out[index]=[[n[0], n[1]]]

llist = []
for n in out.keys():
    if n != 'Stations':
        llist.append([ n, '-' ])
    for k in out[n]:
        llist.append([k[0], k[1]])
out = None

# for n in llist:
#     print(n)

print('done\nWritting "Lossless-grouped.csv" ... ', end='', flush=True)

with open('Lossless-grouped.csv', 'w', encoding='utf-8') as csvfile:
    wr = csv.writer(csvfile, quoting=csv.QUOTE_ALL)
    for n in llist:
        wr.writerow(n)

print('done')

This is what it looks like...

2023-09-19_18-00

And this is the resulting file...

Lossless-grouped.csv

Thoughts?

amski1 commented 1 year ago

Hey, by all means, if you want it - go ahead. Though I think the groups will kill you, because reasons change all the time.

amski1 commented 1 year ago

This is completely off-topic, but where can I submit a theme I created?

s-n-g commented 1 year ago

This is completely off-topic, but where can I submit a theme I created?

Why don't you create a new issue? Just for clarity :wink:

amski1 commented 1 year ago

True

amski1 commented 1 year ago

Chiru is gone.

Stations.csv - Updated October 5, 2023

Excel file with stations that didn't make the cut (in red)

Turns out they are back. Use the previous list.

amski1 commented 1 year ago

Hate to do this, but two stations came back alive. I shouldn't update this list too often.

Stations.csv - Updated October 28, 2023

Excel file with stations that didn't make the cut (in red)

amski1 commented 12 months ago

Few changes. Few new streams, several ones that didn't make the cut. New names for some stations. A couple dead...

I found a new (to me at least) tool called Fakin' The Funk, which checks true bitrate of the recordings. I tested it several times and haven't gotten a false positive, but these are possible. Lossless Audio Checker is a complete joke, it thinks every recording is OK lol. That said, always try to test with several tools (i.e. FTF, Spek, Audacity, etc.)

I'm holding out on PiratenKanon in case it comes back online. If it doesn't, the next update I'll throw it out.

Enjoy.

Stations.csv - Updated November 29, 2023

Excel file with stations that didn't make the cut (in red)

amski1 commented 10 months ago

This one took a little...

Unfortunately chillout.zone decided to shut down. Sad day for me, because they were my favorites.

Open Broadcast has two new 16 and 24 bit FLAC streams. NONE of them plays true FLAC. I tested three recordings. They are consistently cut at about 19KHz, which suggests 320 VBR. I'm removing them.

PiratenKanon has not come back, out it goes.

Now, when it comes to SuperStereo... I updated the links, but these guys are doing something weird. It's impossible that they have all these old (SuperStereo 1a) songs at 192 KHz!!! They just don't exist at that frequency - clearly an upscale but it still could be a real FLAC. Or 50s and 60s songs at 96KHz... Seriously, WTH... Some other recordings seem to check out well (like SuperStereo 5 - Rock). I don't know, I have to sleep on that and decide. Leaving them in the main list for now.

There were also a bunch of new stations that didn't make it, but I put them in the aggregate file, if anyone wants to check.

New stations: City Radio - new stream Frequence 3 - two new French streams Jammin Vibez Radio - 3 Caribbean stations Radio 80FM (Valencia) Radio Club 80 - three streams, one silent, perhaps it'll come back Sector Radio - Jazz Sweet FM

Stations.csv - Updated January 24, 2024

Excel file with stations that didn't make the cut (in red)

amski1 commented 8 months ago

Some updates. I am giving Radio Club 80 - Hits and Calamar Radio a break and will wait, perhaps they fix the streams.

Several new stations didn't score favorably enough. Again, only because a station plays FLAC doesn't mean it's truly lossless. Then sometimes they'll actually play a lossless song, other times insert high pass filters and judgement becomes difficult in the short time I've got to devote to it. If I made a mistake anywhere, please point it out.

PS. I wish I had hardware to automate this...

Stations.csv - Updated March 29, 2024

Excel file with stations that didn't make the cut (in red)

amski1 commented 5 months ago

Long time no see...

Few corrections and changes. Radio Club 80 is temporarily out. Once proper stream links are extracted I will upload an updated list. For now, please use this:

Edit: Radio Club 80 has low quality FLAC streams. This remains the final version:

Stations.csv - Updated June 2, 2024

Excel file with stations that didn't make the cut (in red)

amski1 commented 1 month ago

Many new stations that unfortunately don't qualify. Few went silent.

Stations.csv - Updated October 21, 2024

Excel file with stations that didn't make the cut (in red)