Icecast

Creating Accounts

written for Icecast 2.3.1 

Icecast accounts in Linux and Windows are created by directly editing the configuration file with a text editor. Most probably you will be working with a config file on a server so it will be necessary to use a text editor in the terminal. Try  nano, pico, or emacs, vi, vim. If you have no experience with terminal based text editors I suggest you try the first two.

If you want one password for all encoders (the Icecast default setting) you need to look at the following section:

<source-password>hackme</source-password>

In this situation anyone can create a stream on any mountpoint on your server using this password ('hackme'). If you want to change the password you simply edit between the tags and include a new plain text password.

You can however create individual mountpoints for individual users, requiring them to authenticate with their own password. For these 'accounts' you must stipulate the mountpoint to be used. The options for controlling the parameters of these type of mountpoints are quite extensive, and you can limit the number of listeners, the bitrate, where to save the stream as an archive, and even an 'intro' file to be played before a listener hears the stream (amongst other things). 

Each account of this type is listed within  <mount></mount> tags. If you want to start a very simple account where you give someone a username and password and a user can stream to the server then the configuration you would add would be as simple as this:

 <mount> <mount-name>newuser.mp3</mount-name> <password>hackmetoo</password> </mount> 

 
Unfortunately if you add mount 'accounts' like the above to the configuration file you will need to force Icecast to re-read the configuration file before the changes take place. You don't need to restart Icecast to do this but you do need to send it a SIGHUP signal from the command line.  You do this by issuing the following command:

killall -HUP icecast 


You can also add any number of the following parameters (the mount-name is always required):
  • mount-name
  • username
  • password
  • max-listeners
  • max-listener-duration
  • dumpfile
  • intro
  • fallback mount
  • fallback-override
  • fallback-when-full
  • public
  • stream-name
  • stream-description
  • stream-url
  • genre
  • bitrate
  • type
  • subtype
  • hidden
  • burst-size
  • mp3-metadata-interval
  • authentication-type
  • on-connect
  • on-disconnect

Common Account Settings

What we refer to as account settings are really settings specific to individual mountpoints. The following are some of the more useful settings:

password

the password required before any stream will be accepted by the server on that mountpoint. The password will be entered into the password field of the encoder, if the encoder is a command line encoder, then the password will be either entered in the command line or added to a text config file. If the encoder has a graphical user interface (GUI) then there is usually a form field in the interface for the password.

max-listeners 

the maximum number of listeners that the mountpoint can support concurrently (at the same time). If you set the value to 50 for example, then you will be able to have up to 50 listeners or viewers at any one moment.

dump-file 

the path and filename where the stream on this mountpoint should be archived (saved).

intro

this stipulates that an intro must be streamed on the mountpoint before the listener hears the stream. For example, if you had a live stream for an event, you may wish to play a short introduction announcement when the listener connects, followed by the stream. In this case you would use this option and include a link to the intro file to be played.