m3u radio music playlists

index of content


how to listen

on the web

all of the stream files in the root folder of this repo can be listened to using their own page on this repo and the amazing webamp player, use the playlist buttons or click on the entries and hit play

decades
60s 70s 80s 90s
genres
americana acid_jazz alternative ambient anime big band
bluegrass blues breakbeat chillout classical club
college comedy country dance disco discofox
downtempo drum & bass easy listening ebm electronic eurodance
film folk funk goa gospel gothic
hardcore hardrock hip hop house indie industrial
instrumental jazz jpop jungle lounge metal
mixed musical oldies opera pop progressive
punk rap reggae retro rnb rock
salsa schlager ska smooth jazz soul soundtrack
trance urban various wave
location
france world asian india portugal usa
language
african arabic deutsch italian greek latin
polish polka romanian russian turk
miscellaneous
christian quran

to listen to other m3u playlists in this repo click on the specific repo for each folder and listen to them from there

repo
vtuner openradio.app zeno.fm radiostationusa.fm radioonlinelive
pea.fm onlineradio.eu hit-tuner.net streema radioguide.fm
internetradio.com laut.fm radio.net onlineradiobox liveonlineradio
allradio.net get-me_radio vo-radio radio-volna escuchar.radio
radio-trucker radio_map.eu world-radio_map radio-to_live web-radio_directory
icecast radio-alltrack liveradio.ie keep_one all-online_radio
raddio.net deso.fm non-stop-radio radio.menu top-radio
stream_finder live-radio-24 my_radio-box radio_matik fm_cube

if you are on a chromium based web browser (chrome, vivaldi, opera, edge etc …) you are not able to listen to the most of the streams, here is an explanation from chrome support which tells you why this happens and how to fix it

Usually this error occurs because the radio station you are trying to listen to is running on an unencrypted port (not 443). This is quite common and it's not technically necessary for radio stations to be encrypted but nowadays web browsers like Chrome have started disallowing unencrypted content to be shown in an otherwise encrypted websites. There is a few solutions for you right now:


on windows, mac and linux

note: i need to investigate players for other devices, i will update this section later, if you know of a good program to use please let me know


How to download from a station

as a long audio file

downloading from these m3u files is not possible as far as i know since they contain multiple streams, but if you want to download from a particular stream you can achieve this by using ffmpeg, i use the most popular (first stream) in the trance.m3u to showcase this, in your terminal change directory to where you want this file to be downloaded (note that lines starting with # are not actual streams and are there for embedding extra info to your media player)

ffmpeg -y -i http://stream.dancewave.online:8080/dance.mp3 -c copy dancewave.mp3

change the filename at the end to what you like, as ffmpeg suggests when you feel happy with the length/size of this file press q in your terminal emulator to finish the process and save the file

because these are online streams there is no way to download the whole thing as they are constantly changing, but you can set a hard limit to when recording stops using the timeout command on bash/zsh shells

timeout 60 ffmpeg -y -i http://stream.dancewave.online:8080/dance.mp3 -c copy dancewave.mp3

the above command saves about one minute of the audio live-stream, you can specify longer times using -m for minutes -h for hours and -d for days, these can also be used with decimals for more control, so one and half minute can be set with 1.5m or 3 hour and 45 minutes can be set with 3.75h

timeout 1h ffmpeg -y -i http://stream.dancewave.online:8080/dance.mp3 -c copy dancewave.mp3

another more elegant way to do this is to use ffmpeg to segment these files with your desired time and add a timestamp at the end as filenames, code was copied from here

ffmpeg -i http://stream.dancewave.online:8080/dance.mp3 -c copy -f segment -strftime 1 -segment_time 60 %Y-%m-%d-%H-%M-%S.mp3

this will save a new mp3 file every minute, if you want to make this longer change -segment_time 60 and multiply the number of minutes you want for each file by 60, so if i want my mp3 files to each be 5 minutes i do -segment_time 300 this process goes on forever unless you run out of disk space or if you are not connected to the internet for some reason

this command can also be stopped using ctrl + c shortcut or the timeout command showcased above so adding timeout 1h in front of the above command stops the whole process after an hour


as individual songs

i have been looking for a way to do this for a while, i found this program streamwriter that does this but unfortunently it's only available on windows, this winehq page lists the program as platinum and it should work with wine without any issues but i have not tested it myself as i'm not on linux at the moment and don't have a virtual machine ready either

download the portable version of the program and extract it somewhere in your hard drive, the first time you open the program it's going to ask a few questions, things like language and where it's going to save downloaded songs, now that you are greeted with the program go to a m3u file of your favorite music genre and copy a stream link to start download, here is mine from the trance.m3u

http://51.89.148.171:8022/stream/1/

now put it inside the area i've shown and click to button next to it to start recording, after each song is completed it's going to create a new file and put a name on it from the title the stream is broadcasting

streamwriter

once you are happy with the amount of songs downloaded, right click on the stream and click on stop recording after current title

note that in some rare cases a stream does not broadcast song titles and if you happen to come accross of these there is really nothing else you can do and the program is going to continuously record the stream until you manually stop it


if you prefer to stay on the commandline, use the streamripper program, change directory to the folder you want to save songs in and do:

streamripper http://51.89.148.171:8022/stream/1/ -u Mozilla/5.0 -l 3600

this command will download this stream http://51.89.148.171:8022/stream/1/ for 1 hour, splitting all the songs and uses mozilla as the user agent, for more examples visit the man page for the program


how to download this repo

using git

run a git clone on this repo

git clone https://github.com/junguler/m3u-radio-music-playlists.git

for further updates cd into the folder and do git pull

as a zip file

download the auto-generated zip file


git Stats

since the traffic section of the insight tab is hidden to other viewers of this repo i'm going to include them and update them every two weeks so you can have a feel for how this repo is doing


sources

here is a list of websites i've scraped from already and included m3u streams for in this repo

website folder script
http://radio.pervii.com/en/online-playlists-m3u.htm root radio.pervii.sh
https://www.internet-radio.com/ /internet-radio internet-radio.sh
https://liveonlineradio.net/ /live_online_radio live_online_radio.sh
https://onlineradiobox.com/ /online_radio_box online_radio_box.sh
https://www.radio.net/ /radio.net radio.net.sh
https://www.radioguide.fm/ /radio_guide.fm radio_guide.fm.sh
https://streema.com/ /streema streema.sh
http://www.hit-tuner.net/ /hit_tuner.net hit_tuner.net.sh
https://online-radio.eu/ /online_radio.eu online_radio.eu.sh
https://pea.fm /pea.fm pea.fm.sh
https://radioonlinelive.com/ /radio_online_live radio_online_live.sh
https://radiostationusa.fm/ /radio_station_usa.fm radio_station_usa.fm.sh
https://zeno.fm/ /zeno.fm zeno.fm.sh
https://openradio.app /openradio.app openradio.app.sh
https://vtuner.com/setupapp/guide/asp/BrowseStations/startpage.asp /vtuner vtuner.sh
https://laut.fm/ /laut.fm laut.fm.sh
https://www.allradio.net/ /allradio.net allradio.net.sh
https://www.getmeradio.com/ /get-me_radio get-me_radio.sh
https://vo-radio.com/ /vo-radio vo-radio.sh
https://radiovolna.net/en/ /radio-volna radio-volna.sh
https://escuchar.radio/ /escuchar.radio escuchar.radio.sh
https://radiotrucker.com /radio-trucker radio-trucker.sh
https://radiomap.eu /radio_map.eu radio_map.eu.sh
https://worldradiomap.com/ /world-radio_map world-radio_map.sh
https://radiotolive.com/ /radio-to_live radio-to_live.sh
https://webradiodirectory.com/ /web-radio_directory web-radio_directory.sh
http://dir.xiph.org/ /icecast icecast.sh
http://radio.alltrack.org/ /radio-alltrack radio-alltrack.sh
https://www.liveradio.ie /liveradio.ie liveradio.ie.sh
http://keepone.net/ /keep_one Keep_one.sh
https://www.allonlineradio.com/ /all-online_radio all-online_radio.sh
https://raddio.net/ /raddio.net raddio.net.sh
https://deso.fm/ /deso.fm deso.fm.sh
https://thenonstopradio.com /non-stop-radio non-stop-radio.sh
https://radio.menu/ /radio.menu radio.menu.sh
https://top-radio.org/ /top-radio top-radio.sh
https://www.streamfinder.com/ /stream_finder stream_finder.sh
https://liveradio24.com/ /live-radio-24 live-radio-24.sh
http://myradiobox.com/ /my_radio-box my_radio-box.sh
https://radiomatik.com/ /radio_matik radio_matik.sh
https://fmcube.net/ /fm_cube fm_cube.sh

my future plans for this repo is to keep scraping online radio websites, if and when i found one or few that are easy enough for me to scrape or not overly complicated (websites that have a cipher system to hide stream link or use services like cloudflare to avoid being easily scraped)


you

me


related projects


acknowledgement, thanks


behind the scenes

if you are interested on how i actually scrape websites, i've made a markdown that goes thru the nitty gritty of it all, you can find it here

this repo was made possible by using github actions, you can see my temp repo for more details and access to raw un-edited files here