How can I record a radio stream in Linux like the screamer in Windows? Does anyone have any idea or suggestion?

  • 1
    Are you talking about radio from an FM receiver, or radio as a stream over the Internet? If the latter, what protocol does it use? – Gilles 'SO- stop being evil' Aug 7 '13 at 23:10



If you want a GUI to do this you can do it using Audacity.

excerpt from wiki

In the drop-down menu on Audacity's Device Toolbar, choose “Wave Out” or “Stereo Mix” as the input source. (The exact name may be different, depending on your computer's sound drivers). On Windows, if you don't have a “Wave Out” or “Stereo Mix” option, or if it won't record, go to the system Control Panel and try to enable this option there. For instructions see: Using the Control Panel on the Wiki.


You can also install streamtuner to browse radio stations.

# Debian/Ubuntu
$ apt-get install streamtuner

# Fedora/CentOS/RHEL
$ yum install streamtuner

screenshot of streamtuner

   ss of streamtuner


You can install streamripper like so:

# Debian/Ubuntu
$ sudo apt-get install streamripper

# Fedora/CentOS/RHEL
$ sudo yum install streamripper

To download a stream simply do the following:

$ streamripper <url>

This will save each stream into a .mp3 file.


  • Hi! I realize this is pretty old response, but are you sure there is port for CentOS available? I get No package streamripper available – katit Mar 21 '16 at 19:56
  • @katit - there was when I wrote this answer. I only ever used Fedora/CentOS systems so I'm sure there was. – slm Mar 21 '16 at 20:21

With curl from the terminal, for example:

curl --output ~/Downloads/Radio/CostaDelMar.mp3 http://sc-costadelmar.1.fm:10156

Useful options are --max-time <seconds> and --max-filesize <bytes>.


I'm not familiar with screamer, but it sounds like streamripper is what you want. It may already be available in your distro or you can get it at http://streamripper.sourceforge.net/


Check my radio:

Example WeFunkRadio.

For the first download playlist and get server address & port:

# http://www.wefunkradio.com/play/shoutcast.pls
# cat shoutcast.pls 

This is the address of server: http://stream-90.shoutcast.com:80

To play stream:

# mplayer "http://stream-90.shoutcast.com:80"

To save stream:

# wget -O stream.mp3 "http://stream-90.shoutcast.com:80"

A tip related to answer of user170267: You can avoid overwriting previous recording by making use of date&time for file name:

 curl --output ~/Downloads/Radio/CostaDelMar_$(date '+%F_%T').mp3 http://sc-costadelmar.1.fm:10156

I use ffmpeg. Example:

ffmpeg -i "http://audio.wbhm.org:8000/live.mp3" out.mp3

To record a particular program you can do the following:

Set a cron job. For example:
20 11 * * 0 /path/sermon-recording.sh


today=$(date +%Y-%m-%d)
timeout 65m ffmpeg -i http://briarwood.primcast.com:5182 Sermon_${today}.wav > /dev/null 2>&1

I use the timeout command to end recording after a certain amount of time. I redirect the output to /dev/null to avoid getting a system mail message with the output.


Audio-recorder is another very simple option. Full instructions here.

First install from repository:

sudo add-apt-repository ppa:audio-recorder/ppa
sudo apt-get -y update
sudo apt-get install --reinstall audio-recorder

Then, select built-in audio output as source:

enter image description here

Finally, select quality, location, file name, and just start recording.

Notice this will record everything coming from your computer (e.g. sounds from new emails, etc). So make sure everything else is off. This is surely the biggest drawback of the method.

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