CBC Radio Stream URLs

Update, July 30, 2023: Repo is now on Codeberg and mirrored to GitHub; new MP3 links added.


Recently CBC revamped its music streams again and the old MP3 stream URLs don’t work. Why would they do this? Well, they want people to listen using the website or official app, or via platforms they have agreements with, like Google Home and Alexa.

Personally, I think this is bullshit. I like listening to music while on the computer, but I’m not opening a whole-ass modern web browser, on top of whatever else I have open, for a simple audio stream. And if I’m using headphones with my phone or an actual physical radio, how am I supposed to hear sounds on my computer? So, after some helpful tips from more techy folks on Mastodon and Github, I threw together a few playlists of the live radio streams.

  • This playlist (modern) uses the .m3u8 URLs from the CBC Listen website. The CBC now uses the HLS (HTTP Live Streaming) protocol rather than MP3 streaming. The stream is broken up into into multiple tiny files, which are then fed into the .m3u8 playlist file that delivers them to your computer in the right order. This works with modern media players like VLC, Transistor, MPD, etc.

  • This playlist (legacy) will work for older programs like Winamp that don’t support HLS. It uses good old-fashioned MP3 streams, found on PublicRadioFan.com. I don’t know how long these URLs will be around, but they work.

How to use it:

When viewing a file on the Codeberg website, there is a "Download file" button (down arrow) in the upper right corner.
To download the playlist, click the “Download file” button () above the upper right corner of the file.
  • Download the playlist file by clicking the “Download file” link in the upper right corner (shown above) and saving it to your computer.
  • Optionally, first open the file in a text editor (like Notepad, TextEdit, or nano) and delete the stations you don’t want.
  • Open the file with your preferred web radio application of choice.
  • Pick your preferred radio station. “CBC Music” is what used to be Radio 2.

Personally, I like VLC’s ncurses interface, so I added this to my .bash_aliases file: alias cbcradio='vlc -I ncurses ~/Music/cbc.m3u'. Typing cbcradio into my terminal app results in this:

A playlist opened in VLC's text-based interface.
It’s lightweight. Shut up.

To do:

  • I don’t know how to get the proper streaming URL for individual shows/podcasts and playlists. If anyone does, please let me know!
  • One could do the same thing for ICI/Radio-Canada streams, a network I’m not familiar with because I’m a filthy Anglophone, but I can work on it if people want. Done! Now includes Ici Musique and Ici Première streams.

54 thoughts on “CBC Radio Stream URLs”

  1. Hi Neville, I tried a couple of the links in Logitech Media Server, to try to reestablish CBC playability on my Squeezebox, but all I get is 10sec of silence from the stream, then it stops. VLC just crashes right away. [MacOS Mojave, latest]. Any suggestions? Thanks, John

    1. Hi! I’m afraid don’t know anything about LMS/Squeezebox, but you may need to install extra stuff to enable support for HLS format streams. Here’s a couple of threads that might help.

      1. Hi, I have already succeeded in configuring LMS to play HLS streams from BBC, so I think that isn’t it. However, I did manage to play CBC through the TuneIn Radio app within LMS – no account required either. The CBC app does not work. For anyone else trying this, just search within TuneIn for “CBC Radio One” to obtain a fairly clean list of stations, instead of having to wade through every program ever streamed by CBC. Straightforward then, to add streams to Favourites. So all is good, I can now listen when FM signals are poor. Cheers, John

      2. Update. I just found that iTunes now pulls CBC Radio from TuneIn. All of the Live Radio streams are there (just search for “CBC Radio” in the Browse tab), and all of the podcasts too (have to go to Podcasts instead of Music at top-left dropdown). For those of us on Macs, this will all change with the update to Mojave (Podcasts & Music are separate apps), and who knows the fate of iTunes on Windows ….
        Good luck!

  2. Thanks much for your work on this. I’m with you, if I want to hear the World at 6 why the sam hill do I need to fire up a web browser to listen? I’m going to use this with mplayer and scripts for a crude internet radio player.

    Thanks again!

  3. Neville, Like you I stream audio from CBC.ca or its French counterpart Radio-Canada.ca (R-C) in the background while on my PC. I like VLC because I can tweak sound with its equalizer, and can make the interface invisible with its “-I dummy” option. CBC and R-C cut their URLs at the end of July 2019, and R-C did it again a few days ago. I’m guessing it’s just a matter of time before CBC follows suit. I’ve been with CBC since 1969 so this hits me hard. Anyway I found how to fetch stream URLs. I use Pale Moon browser. Instructions:
    – navigate to a CBC or R-C stream, start the stream
    – when the stream is running, hit Ctrl-Shift-Q to bring up the “Developer/Network” pane
    – top left you’ll see 2 URLs. They repeat every few seconds
    – Click on the URL that doesn’t change. Its details are then displayed in the right pane
    – Right-click on the URL at the top of the right-hand pane, select “select all”
    – Right-click again on the URL at the top of the right-hand pane, select “copy”

    You have copied the URL for this stream. It works in VLC

    You will have something like this
    https://cbcliveradio-lh.akamaihd.net/i/CBCR1_MTL@360544/index_96_a-p.m3u8?sd=10&rebase=on
    CBC (English) streams all terminate with “/index_96_a-p.m3u8?sd=10&rebase=on”
    Cut what follows m3u8 so you have
    https://cbcliveradio-lh.akamaihd.net/i/CBCR1_MTL@360544/index_96_a-p.m3u8
    Optionally you can replace “index_96_a-p” with “master”, so you have
    https://cbcliveradio-lh.akamaihd.net/i/CBCR1_MTL@360544/master.m3u8
    which akso works. For now anyway.

    Enjoy

    1. Thanks Neville Park and Kevin Aris. Your posts and work were extremely useful.

      I am building a Raspberry Pi (and Arduino) internet radio and was struggling to have CBC play. The builds I was following use the Music Player Daemon (mpd) and mpc. Music Player Daemon (MPD) is a server-side application for playing music.

      For those using mpd and mpc I found that you should remove the “/master.m3u8” part of the url. For example here is the CBC Radio One Toronto url I use when I add a url to mpc: https://cbcliveradio-lh.akamaihd.net/i/CBCR1_TOR@118420/index_96_a-p.m3u8?sd=10&rebase=on

      Note that several places suggest building and changing mpd. I found this was not necessary – I used mod 0.21.25 (Sept. 1 2020) from https://www.musicpd.org/ and mpc version: 0.31

  4. I expect the browser requirement allows advertisements – there are no ads on CBC One, why do we have to have them when we stream through the web browser!

    So thank you for doing the groundwork on this – extremely useful!

  5. I use “Radio Tray”, a little tiny radio stream player for Linux written in Python that just sits on your taskbar. It doesn’t do anything other than play radio streams. It’s so lightweight that it’ll run on just about any old computer … I have it working on an old original Asus EeePC netbook which is about the size of most of those internet radio boxes and the machine has an old 900 MHz. Celeron processor with 512 MB RAM.

    Radio Tray stores everything in a simple “bookmarks.xml” file and so that makes it easy to copy the file from computer to computer. All my computers run Linux (yes even an iMac and MacBook Pro).

    I have literally hundreds of radio stations in my bookmarks.xml file from all over the place…so many that it’s actually quite a chore to keep them up to date!

    Since the recent change though I find a lot of timeouts on the CBC Radio streams. I was able to figure out all of the CBC Radio One and Two streams. I haven’t yet figured out the new streams on the Radio Canada side of things.

    You can figure out most radio streams in Firefox just by going to “Tools” and then “Web Developer” and then “Network”. There’s a little button in the box marked “Reload” to reload the web page that the streamlink is on, reload the page and then play the radio stream. You’ll find the “actual” stream URL in there most of the time.

    It’s a similar process in the Chrome/Chromium browsers.

    1. I love Radio Tray! Sadly it has stopped playing nicely with my particular OS, and the project seems to have been abandoned, so I had to find something else.

      I still have an old EeePC kicking around, running Lubuntu. Painstakingly themed LXDE to look like Windows 95. 😀

  6. That’s true, it’s unmaintained but works 🙂 Someone else has picked up the project as “Radio Tray-NG”. The database is stored in a JSON file instead of an XML file. Initially, to add stations to the JSON file meant manually editing the JSON file, which most folks would find a bit of a pain.

    They’ve added an editor now I understand. But I’m a bit lazy and have built such a large bookmarks.xml file for the old unmaintained version that I haven’t bothered 🙂

    Some Linux distros package the “old” Radio Tray (Debian and Ubuntu-based), others like Solus packages Radio Tray-NG, and Manjaro/Arch seem to package both of them. You can also install Radio Tray-NG using Flatpak on any distro.

    I guess, if you’re starting from scratch, you can give Radio Tray-NG a try. Me, I’ll probably keep using the old one until I can’t anymore 🙂

    But, I’m typing this from a 2007 vintage iMac running Lubuntu 18.04. Not using new computers is kind of a point of pride for me LOL!!! The price on this thing was right…a freebee rescued from heading to the Apple recycle store 🙂

    There’s another approach of course to doing it all yourself. It’s using applications that make use of the Community Radio Browser database as a “back end”.

    http://www.radio-browser.info/gui/#!/

    “RadioDroid” for Android implements it there. “Gradio” was the best implementation on Linux, but that’s been abandoned in favour of a “still in the works” application called “Shortwave”. There’s also a “Kodi” plugin that makes use of it.

  7. I just found a script on the Radio Tray-NG github page that will convert my “bookmarks.xml” file to a “bookmarks.json” file. I’ll have to re-arrange my file structure somewhat first, but I might try that and switch to Radio Tray-NG.

    1. The locations are the URLs in the .m3u, e. g. https://cbcliveradio-lh.akamaihd.net/i/CBCR1_TOR@118420/master.m3u8. Rather than MP3 streaming, CBC Music uses the HLS (HTTP Live Streaming) protocol. The stream is broken up into into multiple .ts files (each a few seconds long), which are then fed into the .m3u8 playlist file that delivers them to your computer in the right order.

      Hope this helps!

      1. Thank you for this information. It is going to help a great deal with my application. I’ll look at HLS and see how I can adapt it for my use. Stay Safe, my frien!

  8. I just did a fresh install of Ubuntu 20.04 and these m3u8 streams would not work in Rhythmbox until I installed ffmpeg.

    I had also installed ubuntu-restricted-extras but don’t know if that was necessary.

    I had also installed
    libdvdnav4
    libdvd-pkg
    gstreamer1.0-plugins-bad
    gstreamer1.0-plugins-ugly
    but I don’t know if they were necessary

    1. That’s good to know! I would have assumed ffmpeg was installed by default, but I guess not.

  9. Thanks so much for compiling all the stations for CBC. It’s so helpful. One extra bit of advice from this iTunes user, since the stream is HLS, if you switch https to itals in the URL iTunes will play it problem free!

  10. Can anyone tell me which is the highest quality available stream of CBC Radio One? Are any available in stereo? I see that many streams are 96 kbps. Is that better or worse than the mono FM feed? Need to hear Errol’s shows in full fidelity!

  11. Thank you so much! I was able to add this to my alarmclock app. Ill still use the CBC listen app other times but I really wanted this for my wake-up. Thank you thank you!

  12. All this sounds like I’m utterly out of luck. I’m still using a Roku Soundbridge from the dawn of time and a few years ago when CBC did this nonsense my ability to listen through the device went kaput. It certainly sounds like there is no simple link to an m3u or similar stream designation to be had. Sad face.

  13. I was successfully using the ‘modern’ playlist with MPD v0.22.3 until recently. Some time around Dec 2021 MPD started reporting that it failed to decode the CBC URLs. I understand that HLS permits many codecs. I may not have all available codecs on my music player (trying to keep it small). Does anybody know if CBC switched codecs and which codec they use now?

    In the meantime, the ‘legacy’ playlist works.

    Thank you for your efforts to provide these.

    1. I received a reply from a CBC employee that the stream identified as ADTS. I am not an expert on digital media, but I found that ADTS is a container format. The codec used is likely AAC. I believe ffmpeg handles this combination. In order to keep my music player small, I did not include ffmpeg. For an AAC codec I used FAAD2. It appears FAAD2 may not handle the ADTS container. I speculate that CBC may have changed to an ADTS container in Dec 2021.

      Much of this is inference. More definitive interpretation is welcome.

  14. Hello all, and apologies in advance for veering off topic slightly, but this thread seems like the right place. First off, I’m so happy to hear that many of you have had successes implementing these features.

    I am in a similar, but slightly different situation.

    We used to have a Google Home in the house which would play, on an alarm in the morning, CBC The World This Hour, its Radio-Canada equivalent, and a whole back of others in succession including The Daily and The Economist Espresso.

    So we’ve transitioned off of Google Home and now have Sonos in our home. Now on Sonos, its easy enough to play a podcast through their various apps, but there doesn’t seem to be a way to play the latest podcast (CBC or otherwise) tied to an alarm.

    Taking the Sonos system out of the equation for a moment (because we can stream from almost anything to our Sonos system anyway), does anyone have a way of automating this process so we can wake up to our audio news briefs? All of these services have RSS feeds in XML format, although, I am at a loss as to what to do with them,

    Any help for this low skilled tech enthusiast, would be greatly appreciated.

  15. Neville:

    A big thank you for this post and the associated GitHub stream URLs for CBC! If there’s a Buy Me A Coffee link somewhere I owe you one.

    I have been using MP3 streams from Radio One and Two for ages (on an old LMS-based setup, the server chugging away reliably on a geriatric but still alive XP box in the basement) talking to a bunch of clients through the house. There were some networking issues with my neighbourhood Rogers network. Not quite sure if it was something they did to the network or just something CBC did simultaneously but the MP3 streams stopped working. (Other radio streams I listen to both local and from around the world continue to work fine, so it’s something specific with the CBC streams.) Devices would play a few seconds, then display a “buffering x%” message and stall. I’m recording the solution here in case someone else has the same problem and stumbles across this post.

    I could not make the MP3 streams documented on GitHub work. I found that I needed to install a server plugin called PlayHLS. I needed the latest version (2.8), not the default V1.1. (See https://forums.slimdevices.com/showthread.php?103158-Announce-PlayHLS-Plugin-plugin-to-play-Apple-HLS-m3u8-stream for details.)

    With that installed the .m3u8 (HLS) streams documented on GitHub work and everything seems happy.

    Someone provided similar instructions earlier, but for anyone who wants to find the Radio Two stream URLs you can do the following (instructions specific to Firefox but probably similar using other browsers):

    Open Firefox and navigate to CBC Radio Listen Live.

    open the browser menu and choose > More Tools > Web Developer Tools (shortcut Ctrl-Shift-I)

    Press the Network link in the console that opens up.

    Press Play on what you want to listen to.

    Scroll the URLs in the console looking for the file name master.m3u8. Right-click that, choose Copy > Copy URL. That’s the URL you want.

  16. Here are the URLs for the Ici Musique streams:
    Ici Musique
    Pacific Time Zone
    https://rcavliveaudio.akamaized.net/hls/live/2006996/M-7BVAN0_VAN/master.m3u8

    Central Time Zone
    https://rcavliveaudio.akamaized.net/hls/live/2006998/M-7MWIN0_WIN/master.m3u8

    Eastern Time Zone
    https://rcavliveaudio.akamaized.net/hls/live/2006979/M-7QMTL0_MTL/master.m3u8

    Atlantic(?) Time Zone
    https://rcavliveaudio.akamaized.net/hls/live/2006980/M-7EMCT0_MCT/master.m3u8

    Not positive about the Atlantic time zone URL, because as I’m listening to it at the moment, it’s playing the same thing as the eastern time zone stream, but this may just be how things are scheduled in the maritimes.

    I’m not a francophone, but I listen almost exclusively to the French music network, because I’m a jazz fan, and the English network has dumped almost everything but pop music except for a bit of classical early in the day.

      1. Oops, I forgot to include the mountain time zone. Here it is:
        Mountain
        https://rcavliveaudio.akamaized.net/hls/live/2006999/M-7AEDM0_EDM/master.m3u8

        Also, these mp3 stream URLs still seem to be active for legacy music players:

        Ici Musique Legacy MP3 streams:
        Pacific:
        http://cbcmp3.ic.llnwd.net/stream/cbcmp3_M-7BVAN0_VAN

        Mountain:
        http://cbcmp3.ic.llnwd.net/stream/cbcmp3_M-7AEDM0_EDM

        Central:
        http://cbcmp3.ic.llnwd.net/stream/cbcmp3_M-7MWIN0_WIN

        Eastern:
        http://cbcmp3.ic.llnwd.net/stream/cbcmp3_M-7QMTL0_MTL

        Atlantic:
        http://cbcmp3.ic.llnwd.net/stream/cbcmp3_M-7EMCT0_MCT

        Again, Atlantic time zone content appears to be the same as eastern time zone content.

          1. I just load them in Firefox (paste the URL into the address bar). They show up as a player control in the browser window, and they work for me. I had assumed that they were the old mp3 format, but maybe they’re not. I do notice that they are not as reliable as the new HLS streams, and frequently fail to load.

            For playing music on my phone, I have the new HLS URLs saved as bookmarks in the phone’s web browser, so I don’t bother with a separate music player app.

  17. Robert W: You are a life-saver! Thank you so much for the URLs for Ici Musique. The MP3 link works with a very ancient version of WunderRadio that is running on an equally ancient iPod. (The device, needless to say, cannot run OHDio.) All of the Radio Canada links I had went dead a couple of months ago. Do you by any chance have equivalent URLs for Ici Première?

    1. Hi John,
      For some reason I never got notification of your post. So, I just saw it now (2023-07-26). I thought that Neville had added all of the Ici Première streams to his playlist files, but if not, and if you’re still looking for them, I can have a go at trying to find them. I seem to recall that there’s a systematic way of figuring out the stream URLs.

  18. Kevin A. Kelly, who developed and maintains the excellent site PublicRadioFan.com, has discovered that nearly all the CBC MP3 stream links continue to exist, albeit in a new format; as he communicated to me recently, “this time around they used the call letters for the stations in the addresses.”

    They can be found at: http://publicradiofan.com/cgibin/source.pl?cmd=ss&sourceid=18.

    Neville added in a separate communication:
    If anyone is unfamiliar with the call letters, you can find the list with matching cities on wiki… https://en.wikipedia.org/wiki/CBC_Radio_One

  19. Another source for stream URL’s for just about anything on the planet is the Radio Browser website at:

    https://www.radio-browser.info/

    This site takes a “crowd sourcing” approach to radio station stream URL’s.

    One of the drawbacks of the site is that the site owner has blocked the ability to “edit” entries due to some problems with vandalism in years past and so all you can do is add new entries. So, sometimes this results in multiple entries for the same station with each entry describing the station in a slightly different way. So at times it can be a little “messy”.

    Also since the site is located in Europe, any station that is geoblocked in Europe can’t be listed. Bell Media does this with all of their stations that play music or comedy recordings for whatever reason. 99.9% of the rest of them don’t. For some reason the campus station (CHMR 93.5) at Memorial University in St. John’s geoblocks. It’s the only one I’ve found that does.

    The back end of the site is used for quite a number of free/open source radio streaming software apps. The best implementations I’ve seen are “Shortwave” for Linux and “RadioDroid” on Android, but there’s a list on the site of apps that are using this database.

    I think “Transistor” for Android takes periodic “snapshots” of the Radio Browser database and updates it from time to time. “Shortwave” and “RadioDroid” are updated in real time.

    I have made use of some of your lists recently to update the Radio Browser site. I go on binges of adding stuff to it from time to time. 🙂

    I’ve given some thought to publishing my own stream lists of radio stations. I have some pretty big lists stored locally in “RadioTray-NG” for Linux.

  20. I’m not getting what I hoped from the HLS-format streams – trying to get CBC R1 Sydney got me a native-language program that might be CBC R1 Yellowknife, not sure. So does CBC R1 Halifax.

    I was also not having success with links of this form (e.g. CBC Sydney NS):

    http://playerservices.streamtheworld.com/pls/CBIS_CBC.pls

    But from https://streamurl.link/, I found that two edits (both to ‘pls’) fix this:

    https://playerservices.streamtheworld.com/api/livestream-redirect/CBIS_CBC.mp3

    With those edits, all I’ve tried seem to work.

    I run Linux and use some scripts wrapped around ffmpeg and ‘cron’ to record radio streams and publish them to a private podcast for timeshifting. When streams change, it’s always a pain in the butt. BBC changing their streaming drove me from a Windows app I had used for years to Linux, but it’s been good after I got my scripts in place.

  21. All of my CBC streams (radio1 and Music) stopped working yesterday (Dec. 8) evening. Is anyone else finding this?

      1. Looks like they were fixed on Monday. None of the feeds worked for me over the weekend… I guess the IT staff gets some breaks.

  22. OMG thank you so much for digging out this information, I have been looking for it since the last time they changed it. Like you I much prefer to stream with a low overhead app that I can control. Especially with the updated CBC privacy notice that they are now providing user data to third parties.

  23. I LOVE this, thank you Neville! I had been using RythmBox and the old mp3 streams when they switched over and it was really annoying. I quite like your VLC ncurses method as well, thank you for sharing that. I had no idea VLC had a curses interface, I’ve only really ever used it for watching video. Doing it this way really reduces the system overhead compared to having firefox open for streaming. That was using a surprising amount of CPU.

    1. You’re welcome!

      VLC even has an even more minimal mode, cvlc, which starts it without any interface at all. (I guess you just kill the process to quit it.)

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.