How to set up your own internet radio station
by Larry Heyl
Setting up your own internet radio station is surprisingly easy and can be inexpensive or free. Managing any radio station is time consuming and a whole lot of work. MixRemix Radio runs 24 hours a day, every day, which means I have to program 24 hours of music, every day. This is a choice I made because it’s what I wanted to do. You might choose to broadcast for 2 or 3 hours a day or even do one show a week. That would be a lot less work but it’s still work. If you want to broadcast for 24 hours a day or one hour a week read on. What I discuss here will work for both.
There are a lot of choices to be made setting up a radio station. I’m going to explain how I did it with the choices I made.
I’m not saying is that my choices are the right choices or the best choices or that you should make the same choices I made. Hopefully the information I give you about how I did this will inform you so you are better prepared to make your own choices.
To start with stations need to have a format. There should be a theme or a focus, a central idea for what the station is about. I chose to make MixRemix Radio a music station that plays Free Culture music, Creative Commons music, and entire concerts from the Live Music Archive. This fits my background as a Free Culture advocate and an active taper who regularly uploads to the Live Music Archive and programs radio shows with music from the Live Music Archive.
You may be a podcaster who would like to stream your podcasts and other podcasts with similar subject matter. You may be in a band and want to stream your original music. You may want to be a DJ and play tunes from your extensive heavy metal collection. This should be easy to figure out. If you want to set up an internet radio station there is probably a reason you would like to do it. Think about that reason and then mold it into your format.
Next you want to think about your schedule. In the broadest sense your schedule is when you are going to be on the air. I chose all day, every day, you might choose three hours every Thursday night or something in between. Then you want to work within that on-air schedule and schedule your shows. Here is my initial show schedule for my 24 hour station.
MixRemix Radio Daily Schedule
All times Central Time
Broadcast day starts at 8:00 AM and runs between 23 and 24 hours
Show times are approximate. Some shows run under or over so we’re running on blues time.
8:00 AM – Free Culture – All Free Culture Music. CC-BY, CC-BY-SA, CC-0 (public domain) – an eclectic mix
11:00 AM – Delta Boogie Radio – a mix from Delta Boogie Radio – blues, jazz, roots
1:00 PM – LMAJazz – a mix from LMAJazz – jazz from the Live Music Archive
3:00 PM – KGPL For Deadheads – A mix from KGPL – The Grateful Dead, dead spinoffs, dead cover bands
5:00 PM – Hairy Larry Recordings – Concerts and studio recordings that Hairy Larry uploaded to the Live Music Archive.
7:00 PM – Free Culture and Creative Commons Mix – Creative Commons, Free Culture, and Public Domain songs. All genres.
10:00 PM – Something Blue – One show each night. Many shows from the Live Music Archive. Many recorded by Hairy Larry. Some commercial releases.
11:00 PM – HairyLarryLand – A mix of songs from the HairyLarryLand label. All Creative Commons. Some Free Culture.
1:00 AM – Alive All Night – Full concerts from the Live Music Archive.
Then you want to develop your station library. I already had a good start on this because of other radio projects I do. You probably have a good start on your station library too because you probably selected a format around something you’re interested in and already collect. You want to spend some time organizing your library to make show production easier. I have directories for Free Culture music, other Creative Commons music, HairyLarryLand recordings, Something Blue shows, etc. I also have a continually growing library of great concerts from the Live Music Archive. I keep notes about the concert length, band name, date, location, and a link to where I downloaded it. I keep a list of the concerts that I have recorded and uploaded. This should give you some ideas about how to organize you library.
If you are going to stream podcasts you will want to organize the podcasts you intend to play with the important info about them. If you are going to do a two hour interview once a week your library might be your rolodex or contact list. You will probably also want to record and catalog the shows you have done.
Organizing your library from the start will be much easier than to try to enforce order on a huge collection of disorganized stuff later.
Live or automated?
Another choice you will have to make is whether to do this live or run an automated station. Broadcast radio used to be almost all live but now it’s almost all automated. So internet radio is kind of the last bastion of live broadcast where hobbyist DJs can run their show, check their chat boxes and their email, take skype calls, and program the songs on the fly to match the mood of their audience. Since MixRemix Radio is 24/7 I chose automated. You might also choose to do a mix. Live DJ for an hour followed by a couple more hours of automation.
Now we’re going to get into the technology of running a streaming station on the internet.
It is possible to install the software on your own server and if you’re a computer geek and you have a good internet connection you may want to do that. I’m a computer geek with a relatively poor internet connection so I chose to use a streaming provider. I looked at several and chose caster.fm. They have a free plan with twice a month server resets that probably won’t interfere much with your schedule. They provide a webpage for your station and a player you can embed on your blog or website. (One caution, their embedded player throws popup ads until you get 100 votes or likes for your station. You may be ok with this but I’m not so I had to get out on my social networks and beg people for votes.)
After you choose your service provider you will need to make a decision on the name for your station. If you want to support your station with a regular web site like I do you will want the name to be available at your provider and as a domain name. Fortunately since there are now many TLDs as well as extensions with 4, 5, and more letters you can probably find a domain that fits the name of your station. In my case I already had mixremix.cc so I checked at caster.fm and I was able to get mixremix.caster.fm. See how that works? You want the same name for your website and for your streaming provider. (More about this below)
So now I have mixremix.caster.fm and I have to learn how to use it. You have to feed the stream to your streaming provider using software on your computer. If you’re going to do the Live DJ thing I recommend Mixxx. If you’re going to do automation and stream playlists I recommend EZStream. There are many other options. The reason I’m recommending these two is because I used them and was able to get them to work. So this is another choice you will have to make to fit your needs, your format, and your schedule.
At caster.fm with the free plan you have to start and stop your streams manually. So you log on, then you start your server, then you start your stream by running MIxxx or EZStream on your computer. The caster.fm dashboard will tell you that you are on air. Then you can start listening from your webpage, in my case, mixremix.caster.fm. To log on you have to type a captcha, to start the server you have to type a captcha, to do about anything you have to type a captcha. This isn’t as cumbersome as it sounds but it does preclude a lot of automation methods.
So here’s my automation method. I build a 24 hour playlist. I start it at 8:00 in the morning. Then around 7:45 or 7:50 the next morning I drop that source (quit broadcasting that playlist), change my EZStream configuration file to point at the new playlist, and then I start broadcasting again by starting EZStream again with today’s 24 hour playlist. So my broadcast day is from 8:00 AM to around 7:45 AM the next morning. Once a day I start my stream with the new playlist. And then it runs all day and overnight.
Now this is actually a stupid way to automate a streaming station, there are many much more sophisticated programs to do this if you have your own Icecast server. But … the account at caster.fm is free and EZStream is free so stupid ain’t so bad. In fact EZStream is licensed GPL so it’s libre software, free as in freedom, not just cheap to use. Mixxx is also licensed GPL. They both run on Linux, Windows, and Mac.
There’s one more headscratcher I had to puzzle through. Evidently caster.fm only plays your playlist when someone is listening. So if you want your playlist to track with the time so that your shows start close to when they are scheduled you have to be sure there’s a station always listening. I have a computer in another room that’s always playing my stream. I can turn the volume up or down to control when I’m actually listening.
How do I set up EZStream or Mixxx?
For EZStream there is a configuration file with an xml extension. If you log on to your caster.fm dashboard you will see all the information needed to edit your configuration file. The Server address, Port, and Mount are combined together as one element of the XML file.
You will also need to enter the bitrate, Username, and Password as listed on the Dashboard Server tab. Be sure to use the Username for the stream not your username that you use to log on to caster.fm. You also need to enter the filename of your playlist. For this example I will use playlist.m3u. And I am calling the EZStream configuration file ezstream.xml.
EZStream is a command line program. Go to your caster.fm Dashboard and make sure your server is online. Open a terminal in the same directory as your configuration file and playlist. Then enter
ezstream -c ezstream.xml
You should get a streaming message with the name of the first mp3 file listed in your playlist.m3u.
Mixxx is a GUI program. You enter the data listed above from your dashboard into the Broadcast Configuration screen. Make sure the configuration is selected. Go back to your DJ Console and click the broadcast icon in the top menu bar. The colors of the icon let you know when you’re connected. Red or maroon is bad. Unable to connect. White is connected. Then you move one of your files onto Deck1 and hit the play button. Since it’s a live DJ mixing program Mixxx is going to play your audio on the computer you’re broadcasting from. So you need to test your broadcast on another system to tell if it’s working.
Now about those playlists
If you know what an m3u playlist is you’re home free here. EZStream uses m3u playlists fine. If not here we go.
An m3u playlist is a text file. On every line of the text file there is the filename and path of one mp3 file that lives on your harddrive. The path can be the full path on your computer or it can be the path relative to the folder with the m3u file. So my m3u playlist file lives in my radio directory. In the radio directory I have a HairyLarryLand directory. In the HairyLarryLand directory I have my mp3 files. My playlist file looks like this.
If you are using windows you will use backslashes instead of forward slashes but the principle is the same. You see why I recommended organizing your station library.
My playlist for today has 278 songs listed for about 23 hours of music. That plus the transition times gives me more than 24 hours on the air, at least so far.
No, I don’t pick every one of those 278 songs and decide what order they’re going to be played in. I prepare a list of the available songs for each show often doing something like
ls *.mp3 > pl.m3u
which writes a list of all the mp3 files in that directory to pl.m3u.
Then I use the shuf command to shuffle this playlist.
shuf pl.m3u > playlist.m3u
Then I load the playlist into my Deadbeef audio player and start deleting songs off the bottom of the list until I have the two or three hours I need.
Then I copy and paste that show’s playlist into my 24 hour playlist, 2018-06-25.m3u.
And, of course, I’m doing this in linux so if you use windows these exact programs won’t work for you. And, depending on your format and schedule this may not even be what you want to do. This is just the choice I made. I do recommend that you find a media player that will give you the total time of a playlist. This is helpful for radio production even if you’re going to DJ live.
So I am constantly building out my station library and using command line tools to build my playlists randomly out of different directories in the library. That’s the way my gearhead works. You have to figure out what works for you. The real question is what do you want to do? That’s the hard part. After you know what you want to do you can figure out how to do it.
If your library has ogg files instead of mp3 files most streaming tools work fine with ogg too.
On to the station’s website
The webpage provided by caster.fm has a player on it and a little bit of information about the station but it’s not the same as a website. Since you are streaming on the internet and all your listeners are listening on the internet you will want to have a web site that’s a little more comprehensive and ongoing. Here’s how you can do that for free too.
There are many free hosts and mostly they’re not very good and many of them don’t have stable businesses. I use awardspace.com. They provide a quality free hosting space that supports domain names and has a WordPress installer. Besides being a great blog tool WordPress is also good as a general purpose website builder. This is another choice you have to make. If you’re a web developer you might roll your own or choose something else. If you’re not WordPress is no harder to run than Facebook, easier really because it’s not so idiosyncratic. I’m a website developer and I chose WordPress.
If you want to go totally free this is possible with AwardSpace because they will give you a free subdomain. I don’t recommend this. If you choose to move to a different host in the future you can take your own domain name with you. I already had the mixremix.cc domain so this choice was easy for me. My take on it is this. If you are willing to do the work to maintain a radio station then you should probably shell the $10 a year and get your own domain.
A widget is a little piece of code that you can paste into your website to embed a player or a radio station status box or other cool stuff. At caster.fm they have several good widgets on your dashboard to help you move your radio station functionality to your website. As I mentioned above until you get 100 votes their player will throw a popup ad. After I got my 100 votes I installed the player on my website and I like it very much. It’s a very reliable player and I am using it now in preference to my media player.
WordPress also has widgets that will let you customize your website with menus, tag clouds, RSS feeds, etc.
Putting it all together
Check out my website and listen to MixRemix Radio. It will help you understand some of the points I’ve been making here. Here’s the link.
Let me know if you’ve enjoyed this article. If you build a streaming station send me the link. I’ll give you a listen.
About Hairy Larry
Hairy Larry aka Larry Heyl has an extensive history in radio. He has hosted Something Blue at KASU for over 25 years. He has three other internet radio stations, Delta Boogie Radio, LMAJazz, and KGPL for Deadheads. He wrote the KGPL software these stations run on to provide demand radio as opposed to streaming radio. He is also a host at anonradio.net the SDF Icecasting service. He records many live concerts which he posts at the Live Music Archive. He runs HairyLarryLand, a recording studio and indie label.
Here’s the links: