How to schedule and record live internet radio streams

So recently I had a need to record a radio broadcast that happens pretty regularly, but its an overseas station, and the time zone is not convenient to get up in the middle of the night and turn on my mp3 recorder.  So I was looking for a good scheduled radio recorder, but surprisingly didn’t find anything that would work with my stream. So that led me to my own solution… here’s what I did..

Step 1.  Get you’re streams URL

The first step is to figure out the URL for your stream, if you use an mp3 player or other streaming audio player, there are various was to do this.. I use the site Radio Garden   it gives you a Google earth view and plots all the locations where radio streams originate from, so use it to explore live radio. You can also use streamfinder.com  to get URL’s and other information

For this example lets say I want to listen to the BBC news stream for BBC Radio 1

Step 2. Download and install the Recording Software: VLC Player

For automated recording we’ll be using VLC MEdia Player, for a couple of reasons, first its supports all PC’s and Macs, second it has a wide variety of codecs to decode most streaming formats, and finally it can be run in a headless mode (via the command line) to allow us to schedule our recordings.

Download and install it form here VLC Media Player.

 

Step 3. Schedule you’re recording..

To make this part painless, here’s the simple script I put together to make this all happen easily. This is a script written for Windows 10 , 11 but it’s only a few lines an can be easily adapter to Linux or Mac . Simply save this script as record_stream.bat (or equivalent name)

' RECORD a selected Radio station
@ECHO OFF
ECHO Recordinga selected Radio station

set radio_station_url='http://open.live.bbc.co.uk/mediaselector/5/select/version/2.0/mediaset/http-icy-mp3-a/vpid/bbc_radio_one/format/pls.pls'
set record_length_sec=1800
set output_filename=radio_recordings.mp3


vlc %radio_station_url% --sout "#duplicate{dst=std{access=file,mux=raw,dst=C:\Users\tonyb\Downloads\%output_filename%}" --stop-time %record_length_sec% vlc://quit

Finally , let’s schedule this at the time we want it to run..  Obviously you’re computer will need to be on at that time, or if you do this on a server or even a NAS running some VM platform, just as long as its powered on when the scheduled time arrives.

To schedule it under windows as such. For Linux you can of course use cron. In windows  It should create a task running your batch file under your account at logon. Alternatively you can use the Windows Task Scheduler Gui to set it up

$Trigger= New-ScheduledTaskTrigger -At 10:00am –Daily # Specify the trigger settings
$User= "NT AUTHORITY\SYSTEM" # Specify the account to run the script
$Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "C:\PS\record_Stream.bat" # Specify what program to run and with its parameters
Register-ScheduledTask -TaskName "MonitorGroupMembership" -Trigger $Trigger -User $User -Action $Action -RunLevel Highest –Force # Specify the name of the task

Enjoy the Recording

That’s it, if all went as expected you should have your radio_recordings.mp3 waiting for you to listen and enjoy when you’re ready.

You can expand on this and of course set different recordings for different stations, all are just variations of the steps above.

Happy Listening..

Leave a Reply