0% found this document useful (0 votes)
228 views

Creating Internet Radio Station

This document describes how to set up an internet radio station using the free and open source software Icecast for streaming audio and Liquidsoap for content management. It provides step-by-step instructions for installing and configuring Icecast to host audio streams, installing Liquidsoap using OPAM, and using Liquidsoap to connect to Icecast and build automated playlists with features like crossfading and live streaming.

Uploaded by

Morpheu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
228 views

Creating Internet Radio Station

This document describes how to set up an internet radio station using the free and open source software Icecast for streaming audio and Liquidsoap for content management. It provides step-by-step instructions for installing and configuring Icecast to host audio streams, installing Liquidsoap using OPAM, and using Liquidsoap to connect to Icecast and build automated playlists with features like crossfading and live streaming.

Uploaded by

Morpheu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

FEATURE

Creating an
Internet
Radio Station
with Icecast
and Liquidsoap
Ever wanted to stream prerecorded music or a live event, such
as a lecture or concert for an internet audience? With Icecast
and Liquidsoap, you can set up a full-featured, flexible internet
radio station using free software and open standards.

BILL DENGLER

NEXT
PREVIOUS Feature: Linux
V

New Products Filesystem Events


with inotify

74 | August 2017 | http://www.linuxjournal.com

LJ280-Aug2017.indd 74 7/19/17 12:54 PM


FEATURE: Creating an Internet Radio
FEATURE
Station with Icecast and Liquidsoap

I
CECAST IS hA STREAMING MEDIA AUDIOVIDEO SERVER THAT CURRENTLY
SUPPORTS /GG 6ORBIS AND 4HEORA /PUS 7EB- AND -0 STREAMS )T
can be used to create an internet radio station or a privately running
jukebox and many things in between. It is very versatile in that new
FORMATS CAN BE ADDED RELATIVELY EASILY AND SUPPORTS OPEN STANDARDS FOR
COMMUNICATION AND INTERACTIONv
,IQUIDSOAP IS hA POWERFUL AND FLEXIBLE LANGUAGE FOR DESCRIBING YOUR
STREAMS )T OFFERS A RICH COLLECTION OF OPERATORS THAT YOU CAN COMBINE AT
WILL GIVING YOU MORE POWER THAN YOU NEED FOR CREATING OR TRANSFORMING
STREAMS "UT ,IQUIDSOAP IS STILL VERY LIGHT AND EASY TO USE IN THE 5.)8
TRADITION OF SIMPLE STRONG COMPONENTS WORKING TOGETHERv
7HEN COMBINED )CECAST AND ,IQUIDSOAP CAN CREATE A FLEXIBLE FEATURE
RICH INTERNET RADIO STATION )N THIS ARTICLE ) DESCRIBE HOW TO CONFIGURE
)CECAST TO HOST AN INTERNET RADIO STATION 4HEN ) EXPLAIN HOW TO INSTALL AND
CONFIGURE ,IQUIDSOAP TO CONNECT TO )CECAST ADDING RANDOM OR SEQUENTIAL
MUSIC PLAYBACK WITH SMART CROSS FADING PRERECORDED RANDOMLY INSERTED
ANNOUNCEMENTS AND JINGLES A SONG REQUEST SYSTEM AND SUPPORT FOR LIVE
streams, with automated recording and seamless switching between live and
AUTOMATED PROGRAMMING ) ALSO SHOW HOW TO CONFIGURE THE SERVER TO SERVE
YOUR STREAM IN -0 /GG AND /PUS FORMATS FOR MAXIMUM PLAYER COMPATIBILITY
)CECAST 6ORBIS AND RELATED PROJECTS ARE MAINTAINED BY 8IPH/RG
https://www.xiph.org A NONPROFIT ORGANIZATION THAT DEVELOPS OPEN
MULTIMEDIA STANDARDS AND SOFTWARE 4O ENSURE THAT YOU ARE RUNNING THE
LATEST VERSION OF )CECAST WITH ALL OR MOST FEATURES YOU SHOULD INSTALL
FROM AN OFFICIAL 8IPH/RG REPOSITORY 6ISIT THE LIST OF OFFICIAL REPOSITORIES AT
HTTPSWIKIXIPHORG)CECAST?3ERVER)NSTALLING?LATEST?VERSION?OFFICIAL?8IPH?
REPOSITORIES AND FOLLOW THE INSTRUCTIONS ON THAT PAGE TO ADD THE )CECAST
REPOSITORY FOR YOUR DISTRIBUTION 4HEN INSTALL USING YOUR SYSTEMS PACKAGE
MANAGER /N $EBIAN BASED SYSTEMS SUCH AS 5BUNTU YOU MAY BE ASKED
TO hCONFIGURE )CECASTv DURING PACKAGE INSTALLATION SELECT hNOv AS YOU WILL
CONFIGURE THE SERVER MANUALLY IF YOU ARE FOLLOWING ALONG WITH THIS ARTICLE
/PEN THE )CECAST CONFIGURATION FILE USING YOUR PREFERRED TEXT EDITOR /N
$EBIAN BASED SYSTEMS THE FILE IS LOCATED AT ETCICECASTICECASTXML 4HE
LOCATION ON OTHER SYSTEMS MAY DIFFER CHECK YOUR PACKAGES DOCUMENTATION
FOR THE CORRECT PATH 4HE CONFIGURATION FILE IS IN 8-, FORMAT AND IS DIVIDED

75 | August 2017 | http://www.linuxjournal.com

LJ280-Aug2017.indd 75 7/19/17 12:54 PM


FEATURE: Creating an Internet Radio
FEATURE
Station with Icecast and Liquidsoap

INTO SEVERAL SECTIONS &IRST ENTER YOUR SERVERS LOCATION AND EMAIL INTO THE
LOCATION AND ADMIN FIELDS RESPECTIVELYFOR EXAMPLE

<location>The Heart of Gold</location>


<admin>[email protected]</admin>

3INCE EACH FORMAT YOULL SET UP IN ,IQUIDSOAP IS A SEPARATE )CECAST


hSOURCEv YOULL QUICKLY EXHAUST THE DEFAULT SOURCE LIMIT OF TWO 3O
change that to ten:

<sources>10</sources>

5NLESS YOU ANTICIPATE LISTENERS CONNECTING FROM SLOW OR LOW BANDWIDTH


ENVIRONMENTS DISABLING )CECASTS BURST ON CONNECT FEATURE WILL
SIGNIFICANTLY DECREASE LATENCY

<burst-on-connect>0</burst-on-connect>
<burst-size>0</burst-size>

4HE DEFAULT PASSWORDS hHACKMEv INVITE SECURITY COMPROMISE


#HANGE THEM TO SOMETHING ELSE !LSO ITS PROBABLY A GOOD IDEA TO
CHANGE THE DEFAULT ADMIN USER NAME 4HE FOLLOWING PASSWORDS ARE JUST
EXAMPLES CHANGE THEM FOR YOUR CONFIGURATION BOTH HERE AND WHEN
they are mentioned later in the article:

<source-password>dontpanic</source-password>
<relay-password>dontpanic42</relay-password>
<admin-user>zaphod</admin-user>
<admin-password>2Headsarebetterthanone!</admin-password>

%NTER YOUR SYSTEMS FULLY QUALIFIED DOMAIN NAME IN THE HOSTNAME FIELD

<hostname>example.com</hostname>

3AVE AND CLOSE THE FILE )F YOU EDITED THE FILE AS ROOT YOULL NEED TO RESET
ITS PERMISSIONS /N $EBIAN BASED SYSTEMS )CECAST RUNS UNDER USER ICECAST

76 | August 2017 | http://www.linuxjournal.com

LJ280-Aug2017.indd 76 7/19/17 12:54 PM


FEATURE: Creating an Internet Radio
FEATURE
Station with Icecast and Liquidsoap

Many distributions provide broken


and out-of-date versions of Liquidsoap
in their repositories. For this reason
(along with improved ability to customize
your installation), the Liquidsoap
developers recommend installing it using
the OCaml Package Manager (opam).

AND GROUP ICECAST 4O FIX PERMISSIONS ON A $EBIAN BASED SYSTEM RUN

chown icecast2:icecast /etc/icecast2/icecast.xml

/N $EBIAN BASED SYSTEMS )CECASTS SYSTEM SERVICE IS DISABLED BY


DEFAULT /PEN THE FILE ETCDEFAULTICECAST AND SET ENABLED TO TRUE
4HEN SAVE AND CLOSE THE FILE
-OST MODERN ,INUX SYSTEMS USE SYSTEMD FOR SERVICE MANAGEMENT 4O
ENABLE )CECAST ON BOOT AND START IT FOR THIS SESSION RUN THE FOLLOWING
COMMANDS AS ROOT USING SUDO OR SIMILAR 

systemctl enable icecast2


systemctl start icecast2

3ERVICE NAMES ON VARIOUS SYSTEMS DIFFER IF THOSE COMMANDS DONT WORK


CHECK YOUR SYSTEMS DOCUMENTATION FOR THE CORRECT SERVICE NAME
-ANY DISTRIBUTIONS PROVIDE BROKEN AND OUT OF DATE VERSIONS OF
,IQUIDSOAP IN THEIR REPOSITORIES &OR THIS REASON ALONG WITH IMPROVED
ABILITY TO CUSTOMIZE YOUR INSTALLATION THE ,IQUIDSOAP DEVELOPERS
RECOMMEND INSTALLING IT USING THE /#AML 0ACKAGE -ANAGER OPAM  5SE
YOUR DISTROS PACKAGE MANAGER TO INSTALL OPAM )F YOUVE BEEN DOING
EVERYTHING UP TO THIS POINT LOGGED IN AS ROOT YOULL NOW NEED TO CREATE A
NON ROOT USER UNDER WHICH TO INSTALL ,IQUIDSOAP 9OU ALSO NEED TO INSTALL
SUDO AND GIVE THIS NEW USER PERMISSION TO USE IT /N $EBIAN BASED

77 | August 2017 | http://www.linuxjournal.com

LJ280-Aug2017.indd 77 7/19/17 12:54 PM


FEATURE: Creating an Internet Radio
FEATURE
Station with Icecast and Liquidsoap

systems, the adduser and gpasswd utilities allow you to create users
AND ADD THEM TO GROUPS RESPECTIVELY /N $EBIAN BASED SYSTEMS RUN THE
FOLLOWING COMMANDS AS ROOT TO ADD A NEW USER AND GRANT IT SUDO ACCESS
FOR OTHER SYSTEMS REFER TO THE DOCUMENTATION  ,ET username represent
THE USER NAME OF THE NEW USER

adduser username
gpasswd -a username sudo

0ERFORMING AS YOUR NON ROOT USER INITIALIZE THE /#AML 0ACKAGE -ANAGER
by running:

opam init

!NSWER hYESv WHEN ASKED TO MODIFY YOUR PROFILE THIS WILL PLACE
,IQUIDSOAP ON YOUR PATH AND ALLOW IT TO BE EXECUTED WHEN YOU TYPE ITS
NAME 4O APPLY OPAM CHANGES RUN

eval `opam config env`

.EXT INSTALL ,IQUIDSOAPS SYSTEM DEPENDENCIES

opam install depext


opam depext taglib mad lame vorbis cry ssl samplerate
magic opus liquidsoap

.OW INSTALL LIQUIDSOAP BY REPLACING depext with install :

opam install taglib mad lame vorbis cry ssl samplerate


magic opus liquidsoap

4O SET UP A STARTING POINT FOR THE STATION CONFIGURATION AND ENABLE


,IQUIDSOAP AS A SERVICE THE DEVELOPERS HAVE CREATED LIQUIDSOAP DAEMON A
SET OF SCRIPTS FOR USING ,IQUIDSOAP AS A SYSTEM SERVICE ,IQUIDSOAP DAEMON
USES SYSTEMD FOR SERVICE MANAGEMENT BY DEFAULT THEREFORE IT IS COMPATIBLE
WITH MOST MODERN ,INUX DISTRIBUTIONS 4O SET IT UP INSTALL 'IT USING YOUR

78 | August 2017 | http://www.linuxjournal.com

LJ280-Aug2017.indd 78 7/19/17 12:54 PM


FEATURE: Creating an Internet Radio
FEATURE
Station with Icecast and Liquidsoap

SYSTEMS PACKAGE MANAGER THEN RUN THE FOLLOWING AS YOUR NON ROOT USER

git clone https://github.com/savonet/liquidsoap-daemon


cd liquidsoap-daemon
./daemonize-liquidsoap.sh

9OU MAY BE PROMPTED TO ENTER YOUR USERS PASSWORD TO AUTHENTICATE


SUDO /NCE THE DMON IS INSTALLED YOULL NOW CREATE A DIRECTORY STRUCTURE
FOR STORING MUSIC JINGLES AND ARCHIVES OF LIVE STREAMS IN YOUR NON ROOT
USERS HOME DIRECTORY 2UN THE FOLLOWING COMMAND

mkdir -p ~/music/music1 ~/music/jingles ~/archives

.OW OPEN THE FILE MAINLIQ IN THE LIQUIDSOAP DAEMON DIRECTORY !T THIS
POINT THAT FILE JUST CONTAINS

output.dummy(blank())

4HIS LINE SENDS NO AUDIO NOWHERE WHICH IS NOT VERY INTERESTING SO


DELETE THAT LINE AND ADD THE FOLLOWING BASE CONFIGURATION LINES STARTING
WITH  ARE COMMENTS SO THEY ARE IGNORED BY ,IQUIDSOAP  4HIS BASE
CONFIGURATION SETS UP ONE MUSIC PLAYLIST WITH SONGS PLAYED IN RANDOM
order, jingles inserted approximately every seven songs, smart
CROSS FADING SONG REQUESTS AND AUTOMATICALLY RECORDED LIVE STREAMS
music.mp3, music.ogg and music.opus stream stored music and jingles
IN -0 /GG 6ORBIS AND /GG /PUS FORMATS RESPECTIVELY STREAMMP
STREAMOGG AND STREAMOPUS PLAY A LIVE STREAM WHEN AVAILABLE FALLING
back to music when the live stream is down:

#Settings
set("server.telnet", true)
set("server.telnet.port", 1234)
set("harbor.bind_addr","0.0.0.0")
# Music playlists
music1 = playlist("~/music/music1")
# Some jingles

79 | August 2017 | http://www.linuxjournal.com

LJ280-Aug2017.indd 79 7/19/17 12:54 PM


FEATURE: Creating an Internet Radio
FEATURE
Station with Icecast and Liquidsoap

jingles = playlist("~/music/jingles")
# If something goes wrong, we'll play this
security = single("~/music/default.ogg")
# Start building the feed with music
radio = random([music1])
# Add the security, requests and smart crossfade
radio = fallback(track_sensitive = false,
[smart_crossfade(fallback([request.queue(id="request"),
radio])),security])
# Now add some jingles
radio = random(weights = [1, 7],[jingles, radio]) # This plays
# a jingle once every approximately seven songs, change 7 to
# another number to change this
# Add a skip command for the music stream
server.register(
usage="skip",
description="Skip the current song.",
"skip",
fun(_) -> begin source.skip(radio) "Done!" end
#Add support for live streams.
live =
audio_to_stereo(input.harbor("live",port=8080,password=
"dontpanic1764",buffer=1.0)) #dontpanic1764 is the
# password used to connect a live stream; it can (and should) be
# different from the source-password in icecast.xml.
full = fallback(track_sensitive=false,
[live,radio])
# Dump archives
file_name = '~/archives/%Y-%m-%d-%H:%M:%S$(if $(title),
"-$(title)","").ogg'
output.file(%vorbis,file_name,live,fallible=true)
# Stream it out
output.icecast(%mp3.vbr,
host = "localhost", port = 8000,
password = "dontpanic", mount = "music.mp3",
name="myStation Music Service", description="This is the myStation

80 | August 2017 | http://www.linuxjournal.com

LJ280-Aug2017.indd 80 7/19/17 12:54 PM


FEATURE: Creating an Internet Radio
FEATURE
Station with Icecast and Liquidsoap

music stream. Add some information about your station's automated


programming.",
radio)
output.icecast(%vorbis,
host = "localhost", port = 8000,
password = "dontpanic", mount = "music.ogg",
name="myStation Music Service", description="This is the myStation
music stream. Add some information about your station's
automated programming.",
radio)
output.icecast(%opus(vbr="unconstrained",bitrate=60),
host = "localhost", port = 8000,
password = "dontpanic", mount = "music.opus",
name="myStation Music Service", description="This is the myStation
music stream. Add some information about your station's
automated programming.",
radio)
output.icecast(%mp3.vbr,
host = "localhost", port = 8000,
password = "dontpanic", mount = "stream.mp3",
name="myStation Main Stream", description="The myStation main stream.",
full)
output.icecast(%vorbis,
host="localhost",port=8000,password="dontpanic",
mount="stream.ogg",
name="myStation Main Stream", description="The myStation main stream.",
full)
output.icecast(%opus(vbr="unconstrained",bitrate=60),
description="The myStation main stream.",
host="localhost",port=8000,password="dontpanic",
mount="stream.opus",
full)

Multiple Music Playlists


9OU MAY WISH TO SET UP MULTIPLE MUSIC PLAYLISTS PERHAPS WITH DIFFERENT
TYPES OF MUSIC AND CHANGE THE FREQUENCY AT WHICH SONGS FROM EACH

81 | August 2017 | http://www.linuxjournal.com

LJ280-Aug2017.indd 81 7/19/17 12:54 PM


FEATURE: Creating an Internet Radio
FEATURE
Station with Icecast and Liquidsoap

PLAYLIST ARE PLAYED 4O DO THIS CREATE DIRECTORIES UNDER MUSIC FOR EACH
PLAYLIST NAMED MUSIC MUSIC AND SO ON 4HEN JUST COPY THE music1
LINE IN THE MUSIC PLAYLISTS SECTION OF MAINLIQ CHANGING THE REFERENCE TO
music1 accordingly.
4O INSERT SONGS RANDOMLY FROM THE NEW PLAYLIST EVERY N SONGS IN
the stream, add a line below radio = random([music1]) , where n
REPRESENTS THE APPROXIMATE NUMBER OF SONGS TO PLAY BEFORE INSERTING A
SONG FROM THE NEW PLAYLIST

radio = random(weights = [1, n],[music2, radio])

(ERES AN EXAMPLE WITH THREE MUSIC PLAYLISTS

# Music playlists
music1 = playlist("~/music/music1")
music2 = playlist("~/music/music2")
music3 = playlist("~/music/music3")
...
radio = random([music1])
radio = random(weights = [1, 6],[music2, radio])
radio = random(weights = [1,12],[music3, radio])

File-Based Playlists
)N THE BASE CONFIGURATION ,IQUIDSOAP WILL SEARCH THE DIRECTORY
^MUSICMUSIC RECURSIVELY FOR SONGS TO PLAY (OWEVER YOU ALSO CAN GIVE
,IQUIDSOAP A NEWLINE DELIMITED TEXT FILE OF PATHS TO SONGS EITHER LOCALLY
ON YOUR SYSTEM OR ON THE WEB 4O DO THIS SIMPLY CHANGE THE PATH TO A
DIRECTORY TO A PATH TO YOUR TEXT FILE LIKE THIS

music1 = playlist("~/music/music1.pls")

Sequential Playback
"Y DEFAULT ,IQUIDSOAP PLAYS TRACKS IN RANDOM ORDER )F YOU WANT TO PLAY TRACKS
SEQUENTIALLY ADD mode="sequential" TO YOUR PLAYLIST DEFINITION LIKE THIS

music1 = playlist("~/music/music1",mode="sequential")

82 | August 2017 | http://www.linuxjournal.com

LJ280-Aug2017.indd 82 7/19/17 12:54 PM


FEATURE: Creating an Internet Radio
FEATURE
Station with Icecast and Liquidsoap

)NSTEAD OF USING random FOR EXAMPLE WHEN ADDING OTHER PLAYLISTS OR


JINGLES USE rotate :

radio = rotate(weights = [1, 7],[jingles, radio])

3EQUENTIAL PLAYBACK IS BEST COMBINED WITH FILE BASED PLAYLISTS AS THEY BOTH
GIVE YOU TOTAL CONTROL OVER THE ORDER IN WHICH TRACKS ARE PLAYED BY ,IQUIDSOAP

Compression and Normalization


)F YOUD LIKE TO ADD A MORE hRADIO LIKEv SOUND TO YOUR AUTOMATED
PROGRAMMING ,IQUIDSOAP SUPPORTS AUTOMATIC COMPRESSION AND
NORMALIZATION 4O COMPRESS AND NORMALIZE THE TRACKS OF A PLAYLIST OR
input.harbor live stream, wrap it in an nrj() operator, like so:

music1 = nrj(playlist("~/music/music1"))

Talking Over Automated Programming


You can add a mountpoint allowing you to talk over the automated
PROGRAMMING WHICH WILL HAVE ITS VOLUME REDUCED WHILE YOURE CONNECTED
!DD THE FOLLOWING TO YOUR CONFIGURATION ABOVE #Add support for live
streams  4HE AUTOMATED PROGRAMMING VOLUME WILL BE CHANGED TO 
OF NORMAL WHILE THE MIC IS CONNECTED CHANGE p=0.15 to adjust:

# Talk over stream using microphone mount.


mic=input.harbor("mic",port=8080,password="dontpanic1764",buffer=1.0)
radio = smooth_add(delay=0.8, p=0.15, normal=radio, special=mic)

Finishing Up
%DIT THE CONFIGURATION AS NECESSARY THEN SAVE AND CLOSE THE FILE
2ECORD A FILE TO ^MUSICDEFAULTOGG THIS FILE WILL BE PLAYED WHEN
,IQUIDSOAP CANNOT FIND OTHER TRACKS TO PLAY 4HE FILE SHOULD TELL LISTENERS
THAT THE STREAM IS DOWN AND GIVE THEM INFORMATION FOR CONTACTING YOU
TO NOTIFY YOU OF THE PROBLEM 0OPULATE THE PLAYLISTS WITH MUSIC THEN
START ,IQUIDSOAP WITH THE FOLLOWING COMMAND

sudo systemctl start liquidsoap

83 | August 2017 | http://www.linuxjournal.com

LJ280-Aug2017.indd 83 7/19/17 12:54 PM


FEATURE: Creating an Internet Radio
FEATURE
Station with Icecast and Liquidsoap

%NABLE IT ON BOOT

sudo systemctl enable liquidsoap

/NCE ,IQUIDSOAP IS STARTED VISIT HTTPEXAMPLECOM IN A WEB


BROWSER WHERE EXAMPLECOM IS THE FULLY QUALIFIED DOMAIN NAME OF YOUR
SERVER  )F YOUR SYSTEM IS CONFIGURED PROPERLY MUSICMP MUSICOGG AND
music.opus will appear, playing automated programming. Also, stream.mp3,
stream.ogg and stream.opus will play automated programming unless a
live stream is connected.
)F )CECAST APPEARS BUT NO MOUNTPOINTS ARE LISTED CHECK THE ,IQUIDSOAP
LOGS AT LIQUIDSOAP DAEMONLOGRUNLOG FOR ERRORS )F )CECAST DOESNT LOAD
restart it with systemctl restart icecast2 .
4O BROADCAST A LIVE STREAM THROUGH YOUR SERVER YOU WILL NEED A
COMPATIBLE SOURCE CLIENT &OR 7INDOWS ) RECOMMEND !LTACAST
http://www.altacast.com/index.php/downloads  &OR -AC USERS ) SUGGEST
Ladiocast, available in the Mac App Store. For Linux, install DarkIce
THROUGH YOUR SYSTEMS PACKAGE MANAGER /N I/3 ) RECOMMEND I#AST /N
!NDROID ) SUGGEST #OOL -IC )N ALL CASES USE THE FOLLOWING CONFIGURATION

Q (OST YOUR SERVERS FULLY QUALIFIED DOMAIN NAME

Q Port: 8080

Q -OUNT MOUNTPOINT  LIVE OR LIVE FOR A LIVE STREAM )F YOU ENABLED THE
ability to talk over automated programming, replace live with mic to
talk over the music.

Q USERNAME SOURCE SOME CLIENTS DONT PROMPT FOR A USER NAME IN WHICH
CASE SOURCE IS THE IMPLIED DEFAULT 

Q PASSWORD DONTPANIC OR THE PASSWORD YOU SPECIFIED IN THE


INPUTHARBOR CONFIGURATION 

9OU CAN STREAM IN /GG 6ORBIS OR -0 /GG /PUS MAY OR MAY NOT WORK
depending on your source client.

84 | August 2017 | http://www.linuxjournal.com

LJ280-Aug2017.indd 84 7/19/17 12:54 PM


FEATURE: Creating an Internet Radio
FEATURE
Station with Icecast and Liquidsoap

In addition to Liquidsoaps telnet


interface, Icecast also has a web-based
administrative interface that you can
use to view listener statistics, kill
Liquidsoaps streams or move listeners
among mountpoints.
,IQUIDSOAP OFFERS CONTROL VIA 4#0 OVER TELNET OR SIMILAR  4HE BASE
CONFIGURATION PRESENTED IN THIS ARTICLE ENABLES A SONG REQUEST SYSTEM
AND THE ABILITY TO SKIP TRACKS ON DEMAND "Y DEFAULT THIS INTERFACE
IS AVAILABLE ONLY TO USERS ON THE LOCAL SYSTEM 4HE TELNET PROTOCOL
DOES NOT SUPPORT AUTHENTICATION )F YOU WANT TO MAKE SONG REQUEST
FUNCTIONALITY AVAILABLE TO YOUR USERS YOULL NEED TO WRITE A PROGRAM OR
SCRIPT CUSTOMIZED FOR YOUR STATION THAT INTERFACES WITH ,IQUIDSOAP
#ONNECT TO ,IQUIDSOAP VIA TELNET LIKE SO

telnet localhost 1234

/NCE CONNECTED YOU CAN REQUEST A SONG WITH THE FOLLOWING WHERE
uri IS AN ABSOLUTE PATH TO AN AUDIO FILE ON YOUR SYSTEM OR A 52, OF AN
AUDIO FILE ON THE INTERNET

request.push uri

4O SKIP THE CURRENTLY PLAYING SONG AND IMMEDIATELY PLAY THE NEXT
one, simply type skip .
&OR A LIST OF ALL AVAILABLE COMMANDS TYPE help , or type help
FOLLOWED BY THE NAME OF A COMMAND FOR USAGE INFORMATION ON A
particular command.
4O END YOUR SESSION TYPE quit .
)N ADDITION TO ,IQUIDSOAPS TELNET INTERFACE )CECAST ALSO HAS
A WEB BASED ADMINISTRATIVE INTERFACE THAT YOU CAN USE TO VIEW
LISTENER STATISTICS KILL ,IQUIDSOAPS STREAMS OR MOVE LISTENERS AMONG

85 | August 2017 | http://www.linuxjournal.com

LJ280-Aug2017.indd 85 7/19/17 12:54 PM


FEATURE: Creating an Internet Radio Station with Icecast and Liquidsoap

MOUNTPOINTS !CCESS IT AT HTTPEXAMPLECOMADMIN WHERE


EXAMPLECOM IS YOUR SERVERS FULLY QUALIFIED DOMAIN NAME  5SE THE
ADMIN USER AND ADMIN PASSWORD YOU SET IN ICECASTXML
!T THIS POINT YOU NOW HAVE A FULLY FUNCTIONAL STREAMING SERVER THAT
SHOULD FIT THE NEEDS OF MOST USERS (OWEVER ,IQUIDSOAP IS EXTREMELY
FLEXIBLE ALLOWING FOR MORE EXOTIC SETUPS FOR SPECIAL USE CASES 2EFER TO THE
,IQUIDSOAP DOCUMENTATION HTTPLIQUIDSOAPFMDOC DEVREFERENCEHTML
FOR INFORMATION ON ADDITIONAL LANGUAGE FEATURES THAT MAY BE USEFUL TO YOUQ

Bill Dengler has been a Linux user and tinkerer since age nine. He was born totally blind due
to a rare genetic condition called Norrie Disease, so he relies on a screen reader to access his
computer. He is currently pursuing an International Baccalaureate diploma. Feel free to send
him questions and comments at [email protected].

Send comments or feedback via


http://www.linuxjournal.com/contact
or to [email protected].

RETURN TO CONTENTS

86 | August 2017 | http://www.linuxjournal.com

LJ280-Aug2017.indd 86 7/19/17 12:54 PM

You might also like