<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.winamp.com/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.winamp.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Djegg</id>
		<title>Winamp Developer Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.winamp.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Djegg"/>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/Special:Contributions/Djegg"/>
		<updated>2026-05-15T05:13:03Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.22.3</generator>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_Getting_Started_Guide</id>
		<title>SHOUTcast Getting Started Guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_Getting_Started_Guide"/>
				<updated>2022-10-06T10:48:15Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Transcoder */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
The aim of this page is to help guide you through the process of getting a SHOUTcast 2 system installed and broadcasting so people can connect to it through the SHOUTcast Radio Directory and hear the great content you have and want to provide to the world.&lt;br /&gt;
&lt;br /&gt;
It is assumed throughout the documentation that you have a basic knowledge of how to use the command-line console for the platform you decide to install the tools on i.e. how to run and control a program via the command-line console including being able to pass to it commands and the sending of signals as is appropriate to the platform being used. Windows users see [[#Windows_Users|section 1.2]].&lt;br /&gt;
&lt;br /&gt;
Additionally it is assumed you know how to setup your network connection and router to allow your server instance to be visible when broadcasting i.e. being able to open up and forward any required ports to allow your server instance to be visible to other machines on the internet as well as so the SHOUTcast Radio Directory can see you.&lt;br /&gt;
&lt;br /&gt;
This guide will refer you to other places in the documentation provided with the tools by showing references to the relevant file and section in the documentation files e.g. [[Source_DSP_Plug-in#Encoder_Tab|dsp_sc.txt - section 3.2.3]]. These referenced sections generally provide a lot more detail on the option or feature such as what would need to be set in the Transcoder configuration to allow for it to work with the DNAS Server being setup and so on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===What is SHOUTcast?===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If you are new to SHOUTcast then this is probably something you may have already asked or you are trying to find out.&lt;br /&gt;
&lt;br /&gt;
At its most basic, the SHOUTcast system is based around a ''''client + server'''' configuration which allows you to run a server (either directly or via a hosted service) which can then provide a stream or streams of the 'source' connected to the server to any clients which are connected to the server.&lt;br /&gt;
&lt;br /&gt;
The clients connect via a direct connection i.e. '''server &amp;lt;-&amp;gt;&amp;gt; client''' where the main flow of data (the stream data) will go from the server to the client.&lt;br /&gt;
&lt;br /&gt;
So a simple SHOUTcast setup would consist of the following:&lt;br /&gt;
&lt;br /&gt;
    Winamp + DSP  ?  DNAS [sc_serv]  ?   Winamp&lt;br /&gt;
      (Source)          (Server)        (Client)&lt;br /&gt;
&lt;br /&gt;
This is not the only way to setup a SHOUTcast system and more examples can be seen in the [[SHOUTcast_System_Overview|shoutcast_system_overview.txt]] which goes into more detail about the way SHOUTcast works as well as other ways of setting up a SHOUTcast system (see [[SHOUTcast_System_Overview#Example_SHOUTcast_System_Setups|section 2.0]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows Users===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The SHOUTcast DNAS Server and Transcoder are both built to be run from the command-line console (or as a native service if using this mode) which may appear to be daunting when most interaction done with the operating system is done via a graphical interface (GUI).&lt;br /&gt;
&lt;br /&gt;
If you are not acquainted with using the command-line console then you will need to find a guide which shows you the basics of using the command-line console along with getting you familiar with using it before trying to get any of the SHOUTcast tools running. If you search for 'how to use the command prompt' then you should find a guide which you can follow to help get you knowledgeable enough with using the command-line console.&lt;br /&gt;
&lt;br /&gt;
This may appear to be a step backwards if you previously used the v1 DNAS Server with its very basic GUI wrapper which otherwise was acting in the same manner as the command-line console just without the look of the operating system. However the v1 DNAS Server was at its core a command-line tool just like the v2 DNAS Server is now.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows Vista / 7 Specifics===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Due to the UAC feature (http://en.wikipedia.org/wiki/User_Account_Control) of these OSes you will need to remember the effect that this will have on editing and saving of files.&lt;br /&gt;
&lt;br /&gt;
By default the Windows versions of the installer will choose the native 'Program Files' folder '''(*)''' but unless you have disabled UAC or do not have full access to the folder then you will find attempts to save and edit any configuration files will not work.&lt;br /&gt;
&lt;br /&gt;
If this is an issue then you should either choose a different folder of all of the files or change where the tools are trying to save files and also to save any changes in your configuration files with a text editor which is running with administrator permissions.&lt;br /&gt;
&lt;br /&gt;
This is an unfortunate inconvenience though for making it easier to known where all of the configuration examples and documentation can be found is better. Finally there is no reason not to choose a different folder when installing the tools if you experience this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''(*)''' This will be slightly different depending on if you are using the 32-bit or 64-bit version of the OS as well as the language of the OS. As well the installer will pick the native 'Program Files' folder so installing the 32-bit version on the 64-bit OS will use 'Program Files (x86)' whereas installing the 64-bit version on the same OS will use 'Program Files'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Required?==&lt;br /&gt;
&lt;br /&gt;
To make your SHOUTcast system you will need the following software tools and hardware:&lt;br /&gt;
&lt;br /&gt;
:*A computer running on a supported operating system ([[#Supported_Operating_Systems|see section 2.1]])&lt;br /&gt;
:*SHOUTcast DNAS Server&lt;br /&gt;
:*An input source (Transcoder or Winamp plus Source DSP plug-in)&lt;br /&gt;
:*Media or DJ's or a Capture device i.e. the content you want to provide to people&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Operating Systems===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
There are versions of the DNAS Server and Transcoder available on the following operating systems:&lt;br /&gt;
&lt;br /&gt;
:*Windows 32-bit&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Windows 2000, XP, Vista, Windows 7, 8, 10&lt;br /&gt;
:*Windows 64-bit&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;64-bit versions of Windows XP, Vista, Windows 7, 8, 10&lt;br /&gt;
:*Linux 32-bit&lt;br /&gt;
:*Linux 64-bit&lt;br /&gt;
:*BSD 8.x &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; v2.4.7 only, not higher&lt;br /&gt;
:*Mac OS X (Intel)&amp;amp;nbsp;&amp;amp;nbsp; Should work on 10.4.4 and up though is only tested against 10.5.5 (DNAS v2.4.7 only, not higher)&lt;br /&gt;
&lt;br /&gt;
Remember to download the version of the tools which fits the operating system of the machine you will be installing the tools onto e.g. you could install the 32-bit Windows version on Windows 7 64-bit but could not install the 64-bit Windows version on Windows XP 32-bit.&lt;br /&gt;
&lt;br /&gt;
If using machines with different operating systems for different tasks then there should not be any problems with them working together e.g. Windows for the source and Linux for the server. This is due to the tools using the same communication style irrespective of the platform which they being run upon. If you do find an incompatibility then report it.&lt;br /&gt;
&lt;br /&gt;
==Getting Installed==&lt;br /&gt;
&lt;br /&gt;
When following the steps listed remember to only follow the parts which are applicable to the operating system and the tool or tools which you are attempting to install. If you do want to install multiple tools then it is better to work through the guide for one tool and then to do the same for the other one otherwise it may become confusing especially if you are new to command-line console tools and manual editting of configuration files.&lt;br /&gt;
&lt;br /&gt;
If you are not happy with manual editting of configuration files then there is also a configuration builder included as part of the Server and Transcoder distribution - see [[#Configuration_Builder|section 4.2]]. The aim of the configuration builder is to aid in the creation of matching configuration files for both tools which should work. It is still recommended that you do read the accompanying documentation so you can understand what it is that you are doing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Download the Correct Version===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
To begin with you will need to download the correct version of the tools you are going to use for the operating system you are setting up your SHOUTcast system on. See [[#Supported_Operating_Systems|see section 2.1]] for clarification of the supported operating systems for the tools.&lt;br /&gt;
&lt;br /&gt;
Current versions of the SHOUTcast tools can be obtained from:&lt;br /&gt;
&lt;br /&gt;
:*http://www.shoutcast.com/pricing&lt;br /&gt;
:*http://forums.winamp.com/showthread.php?t=324877 '''(*)'''&lt;br /&gt;
&lt;br /&gt;
Remember you will need to download a Server (sc_serv) and a source for the server which can be the Transcoder (sc_trans) or if using Windows then you can also use the Source DSP plug-in (dsp_sc) for Winamp (which may work on non-Windows systems using WINE but is not guaranteed and no support is offered with such a setup).&lt;br /&gt;
&lt;br /&gt;
Additionally there are a number of third party programs which can act as a source for a server instance. These are not covered as part of this guide and if you decide you want to use one of these programs then you will need to consult their help for getting it to work with the server instance.&lt;br /&gt;
&lt;br /&gt;
'''(*)''' This is a summary page and contains links to the latest versions of the tools such as when a new release has just been released or is being tested before it is  provided via the main SHOUTcast site download page.&lt;br /&gt;
&lt;br /&gt;
===Choose an Install Location===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Choose an install location for the tool you want to install (be it the Server, Transcoder or the source plug-in for Winamp) as is applicable for the SHOUTcast setup you are making on the machine.&lt;br /&gt;
&lt;br /&gt;
On Windows this choice is handled via the installer which selects a sensible new location or it re-uses the previous install location if doing an upgrade of an install which was previously made with a v2 tool installer. This can be changed if wanted during install.&lt;br /&gt;
&lt;br /&gt;
On Windows this choice is handled via the installer which selects a sensible new location or it re-uses the previous install location if doing an upgrade of an install which was previously made with a v2 tool installer. This can be changed if wanted during install and will be needed if you are running on a Windows system with UAC enabled ([[#Windows_Vista_.2F_7_Specifics|section 1.3]]).&lt;br /&gt;
&lt;br /&gt;
On non-Windows operating systems you can choose any location for the extracted location as long as you have the correct permission and access to the folder chosen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
On Windows you now need to run the installer, using the folder you have decided upon for the install location along with ensuring the option to install the documentation has been checked. Doing this will install the documentation and example configuration files which are included in the installer and referenced in later stages of this guide.&lt;br /&gt;
&lt;br /&gt;
Note: If using Windows Vista / 7 then make sure to install into a location which allows you to save and edit the configuration files and to save any log files into. More information can be found on what is required in [[#Windows_Vista_.2F_7_Specifics|see section 1.3]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On non-Windows you now need to extract the files for the tool(s) you have downloaded and ensure that you extract all contents of the archive into the install location decided on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Setting Up The Tools===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following sections are grouped together for what needs to be done in configuring and getting ready to start one or more of the officially provided tools. If you are not using one or more of them then you can skip the section as appropriate. Remember that you will need to have a valid source for use with the DNAS in order to have a listenable stream.&lt;br /&gt;
&lt;br /&gt;
 Ensuring the Server is properly configured is the most important thing as unless it&lt;br /&gt;
 is and running then none of the tools will be able to connect to it successfully.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Server===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====Server Configuration Setup====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Getting the Server started you first need to open up the '''sc_serv_simple.conf''' example file in the root of the install location. Work through the file's contents and then fill in or change any of the values required for how you want to use the server.&lt;br /&gt;
&lt;br /&gt;
The provided example will create a simple server configuration and contains the basic settings needed to allow for the server to work so it will appear in the SHOUTcast lists.&lt;br /&gt;
&lt;br /&gt;
The only thing missing from the example is an authhash which is required for a stream to be listed in the SHOUTcast Radio Directory when using the SHOUTcast 2 system. This needs to be obtained once the Server is running and a source has correctly connected to it. See [[#Obtaining_An_Authhash|section 3.5.4]] for how to do this one all other stages have been completed.&lt;br /&gt;
&lt;br /&gt;
Additionally there are example configuration files for the following scenarios:&lt;br /&gt;
&lt;br /&gt;
::'''sc_serv_basic''' - shows how to get a more multi-stream setup working&lt;br /&gt;
::'''sc_serv_public''' - shows how to make a public server from sc_serv_basic&lt;br /&gt;
::'''sc_serv_relay''' - shows how to relay another source&lt;br /&gt;
&lt;br /&gt;
There is more information about these example configurations in sc_serv2.txt - [[SHOUTcast_DNAS_Server_2#Example_Configurations|section 10]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Starting the Server====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
For simplicity we will only run the Server in the command-line console though when your Server setup is completed and everything is known to be working correctly then running as a service (Windows) or as a daemon (non-Windows) can be done to automate loading of the Server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To start the Server instance you now need to enter the correct command string for the operating system you are using in the command-line console like the following which assumes using the base example configuration file in the same directory as the Server program file:&lt;br /&gt;
&lt;br /&gt;
::For Windows     -  '''sc_serv.exe sc_serv_simple.conf'''&lt;br /&gt;
::For non-Windows  -  '''./sc_serv sc_serv_simple.conf'''&lt;br /&gt;
&lt;br /&gt;
If you use one of the other example configuration files or a different one then you can just change '''sc_serv_simple.conf''' to the name or full path to the configuration file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For more information on running the Server see [[SHOUTcast_DNAS_Server_2|sc_serv2.txt]] and the relevant section for the operating system you are using:&lt;br /&gt;
&lt;br /&gt;
::Windows - [[SHOUTcast_DNAS_Server_2#Run_as_a_Non-Service_in_the_Console|3.2.3]] (or [[SHOUTcast_DNAS_Server_2#Windows|3.2]] for more advanced options)&lt;br /&gt;
::Linux / Mac OS X / BSD - [[SHOUTcast_DNAS_Server_2#Run_as_a_Non-Daemon|3.3.3]] (or [[SHOUTcast_DNAS_Server_2#Linux_.2F_Mac_OS_X_.2F_BSD|3.3]] for more advanced options)&lt;br /&gt;
&lt;br /&gt;
====Errors Running the Server====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Skip this if you experience no error reports when trying to run the Server.&lt;br /&gt;
&lt;br /&gt;
If an issue is reported in the console output from the Server then you first need to look at the actual issue being reported which will be prefixed with an 'E' at the start of the message in the console output.&lt;br /&gt;
&lt;br /&gt;
The error message shown should make it clear as to what is wrong e.g. passing an invalid or missing configuration file passed would cause an error along with closing the server instance.&lt;br /&gt;
&lt;br /&gt;
If the error message still does not make any sense then either double-check [[SHOUTcast_DNAS_Server_2|sc_serv2.txt]] or goto the SHOUTcast support forums http://forums.winamp.com/forumdisplay.php?f=140 and post the question along with a copy of the log including the error message.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Obtaining An Authhash====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
With the Server now running, you will need to obtain an authhash for any stream(s) you want to be listed in the Shoutcast Radio Directory. This is done via the [https://radiomanager.shoutcast.com/ RadioManager]. See [[SHOUTcast_Authhash_Management|Shoutcast Authhash Management]] for further details.&lt;br /&gt;
&lt;br /&gt;
===Transcoder===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note: The Transcoder is no longer maintained or supported.'''&lt;br /&gt;
&lt;br /&gt;
'''This documentation remains here solely for legacy purposes.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====MP3 Streaming License====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note: All mp3 patents have now expired so an encoding licence is no longer required.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Skip this if you are not setting up the Transcoder for MP3 streaming.&lt;br /&gt;
&lt;br /&gt;
If you want to provide an MP3 stream and are going to use the Transcoder then you will need to obtain a license key in-order to unlock the support to do this in the tool. Details on how to obtain this can be found in [[SHOUTcast_DNAS_Transcoder_2#Registering_for_MP3_Stream_Encoding|sc_trans.txt - section 2.5]].&lt;br /&gt;
&lt;br /&gt;
 AAC encoding does not need you to purchase a license as one has&lt;br /&gt;
 already been paid for you as detailed in [[SHOUTcast_DNAS_Transcoder_2#Why_Does_AAC_Encoding_Not_Require_a_License_Key.3F|sc_trans.txt - section 2.5.1]].&lt;br /&gt;
&lt;br /&gt;
Once the key has been obtained you need to add the key and your name into the 'unlockkeyname' and 'unlockkeycode' values in you configuration file exactly as they have been received. So if your key is '123456' and you have used 'Bob' as the registered name, you would add the following to your Transcoder configuration file:&lt;br /&gt;
&lt;br /&gt;
    unlockkeyname=Bob&lt;br /&gt;
    unlockkeycode=123456&lt;br /&gt;
&lt;br /&gt;
====Transcoder Configuration Setup====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Getting the Transcoder started you first need to open up the sc_trans_simple.conf example file in the root of the install location. Work through the file's contents and then fill in or change any of the values required for how you want to use the server.&lt;br /&gt;
&lt;br /&gt;
If you are wanting to use MP3 encoding then make sure you have followed '[[#MP3_Streaming_License|section 3.6.1]]' and entered the required 'unlockkeyname' and 'unlockkeycode' values in you configuration file exactly as they have been received. You will be informed when later running the Transcoder if there is an issue with the MP3 license details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additionally there are example configuration files for the following scenarios:&lt;br /&gt;
&lt;br /&gt;
::'''sc_trans_basic''' - shows how to get a basic setup without relying on the Server&lt;br /&gt;
::'''sc_trans_capture''' - shows how to use a capture device&lt;br /&gt;
::'''sc_trans_dj''' - shows how to setup a DJ connection&lt;br /&gt;
::'''sc_trans_playlist''' - shows how to use scheduled playlists&lt;br /&gt;
&lt;br /&gt;
There is more information about these example configurations in [[SHOUTcast_DNAS_Transcoder_2#Example_Configurations|sc_trans.txt - section 11]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Starting the Transcoder====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
For simplicity we will only run the Transcoder in the command-line console though when your Transcoder setup is completed and everything is known to be working correctly then running as a service (Windows) or as a daemon (non-Windows) can be done to automate loading of the Transcoder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To start the Transcoder instance you now need to enter the correct command string for the operating system you are using into the command-line console like the following which assumes using the base example configuration file in the same directory as the Transcoder program file:&lt;br /&gt;
&lt;br /&gt;
::For Windows     -  '''sc_trans.exe sc_trans_simple.conf'''&lt;br /&gt;
::For non-Window  -  '''./sc_trans sc_trans_simple.conf'''&lt;br /&gt;
&lt;br /&gt;
If you use one of the other example configuration files or a different one then you can just change '''sc_trans_simple.conf''' to the name or full path to the configuration file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For more information on running the Transcoder see [[SHOUTcast_DNAS_Transcoder_2|sc_trans.txt]] and the relevant section for the operating system you are using:&lt;br /&gt;
&lt;br /&gt;
::Windows - [[SHOUTcast_DNAS_Transcoder_2#Run_as_a_Non-Service_in_the_Console|2.2.3]] (or [[SHOUTcast_DNAS_Transcoder_2#Windows|2.2]] for more advanced options)&lt;br /&gt;
::Linux / Mac OS X / BSD - [[SHOUTcast_DNAS_Transcoder_2#Run_as_a_Non-Daemon|2.3.3]] (or [[SHOUTcast_DNAS_Transcoder_2#Linux_.2F_Mac_OS_X_.2F_BSD|2.3]] for more advanced options)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Errors Running the Transcoder====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Skip this if you experience no error reports when trying to run the Transcoder.&lt;br /&gt;
&lt;br /&gt;
If an issue is reported in the console output from the Server then you first need to look at the actual issue being reported which will be prefixed with an 'E' at the start of the message in the console output.&lt;br /&gt;
&lt;br /&gt;
The error message shown should make it clear as to what is wrong e.g. passing an invalid or missing configuration file passed would cause an error along with closing the server instance.&lt;br /&gt;
&lt;br /&gt;
If the error message still does not make any sense then either double-check [[SHOUTcast_DNAS_Transcoder_2|sc_trans.txt]] or goto the SHOUTcast support forums http://forums.winamp.com/forumdisplay.php?f=140 and post the question along with a copy of the log including the error message.&lt;br /&gt;
&lt;br /&gt;
===Source DSP===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Install Source DSP====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Skip this if you are not setting up the Source DSP plug-in for MP3 streaming.&lt;br /&gt;
&lt;br /&gt;
If you want to provide an MP3 stream and are going to use Winamp and the Source DSP then you just need to make sure to install the Source DSP plug-in and select the MP3 encoder on the 'Output -&amp;gt; Encoder' tab (as detailed in [[Source_DSP_Plug-in#Encoder_Tab|dsp_sc.txt - section 3.2.3]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Configuring the Source DSP====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
For getting Winamp and the Source DSP plug-in setup look through the [[Source_DSP_Plug-in_Configuration_Examples|dsp_sc_config.txt]] file and enter in the relevant values as described in it once you have setup:&lt;br /&gt;
&lt;br /&gt;
::the Server (from [[#Server_Configuration_Setup|section 3.5.1]]) if you are going to use the plug-in as the only source&lt;br /&gt;
:and / or&lt;br /&gt;
::the Transcoder (from [[#Transcoder_Configuration_Setup|section 3.6.2]]) if it is to act as a DJ source&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Starting the Source DSP====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Using the Source DSP plug-in requires the plug-in to be set as the current DSP plug-in which is done by going to 'Winamp Preferences -&amp;gt; Plug-ins -&amp;gt; DSP/Effect' and selecting 'Nullsoft SHOUTcast Source DSP &amp;lt;version&amp;gt;' (*) from the plug-in's list.&lt;br /&gt;
&lt;br /&gt;
When this entry in the list is selected then the plug-in's configuration window will be opened and from there the plug-in will be in a state where a connection can be started via the 'Connect' button on the 'Output' tab.&lt;br /&gt;
&lt;br /&gt;
(*) The string &amp;lt;version&amp;gt; would be the actual version of the plug-in which is installed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Completion===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You should now be up and running with a working SHOUTcast system. Happy broadcasting!&lt;br /&gt;
&lt;br /&gt;
If things are still not running then go back over the section(s) relating to the tool(s) you are having issues with and make sure that you have followed things otherwise please see the next section ([[#Further Information|section 4.0]]) on what you can do to get help in trying to resolve the issues you are experiencing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
&lt;br /&gt;
If you have followed the setup steps detailed in [[#Getting_Installed|section 3]] and are still having issues with getting the tools running or working together to achieve a certain result then first make sure you have the currently supported version of the tool(s) in case it is a bug in the tool(s) which has already been fixed. You can check this via the links referenced in [[#Download_the_Correct_Version|3.1]] and especially the forum link of the most current versions available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If installing the latest version does not help or if you already are using the latest version of the tool(s) or if the feature is not available then please goto the SHOUTcast support forums: http://forums.winamp.com/forumdisplay.php?f=140&lt;br /&gt;
&lt;br /&gt;
Make sure if you are reporting issues to provide as much information as possible for the SHOUTcast users who use the tools including the following information:&lt;br /&gt;
&lt;br /&gt;
:*Your SHOUTcast setup including all versions of the tools being used&lt;br /&gt;
:*The issue you are experiencing&lt;br /&gt;
:*The steps needed to reproduce the issue&lt;br /&gt;
:*Anything else useful especially if you have been tinkering with options before the issue appeared&lt;br /&gt;
&lt;br /&gt;
Remember when you post an issue that providing as much information in a clear and concise manner will make it easier for anyone who can help to be able to understand the issue you have. This is important as not everyone visiting the forum are native English speakers.&lt;br /&gt;
&lt;br /&gt;
Finally you must remain civil to other users (however annoying or frustrating the issue is that you are experiencing) as most users will not want to make a reply to someone who does not appear to be civil - if you think about it from the other view of what you would think when looking at such a post then this should make sense to keep things civil.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Related Documentation===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
All documentation can be found online - http://wiki.winamp.com/wiki/SHOUTcast_Broadcaster which will contain the documentation for the currently released versions of the tools.&lt;br /&gt;
&lt;br /&gt;
Additionally, in the install location there will be a 'docs' folder (as long as it has been chosen to be installed [Windows] or extracted [non-Windows] which contains text only versions of the main documentation relating to the SHOUTcast tool(s) installed as well as any related documentation to the other tools which may be of use in getting a SHOUTcast system configured and running&lt;br /&gt;
e.g. the docs\dsp_sc folder contains information on the Source DSP plug-in so you can use it to setup the plug-in as a source or so you can know what to tell a DJ so they can connect to your SHOUTcast system.&lt;br /&gt;
&lt;br /&gt;
Please remember that with the SHOUTcast tools being designed to work on both the Windows and non-Windows operating systems, there is information included in the documentation which relates to either of these platforms. So when reading through the documentation, only follow the information which relates to the operating system you are using&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Configuration Builder===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Included in the SHOUTcast DNAS Server and Transcoder installers / archives (depending on the operating system you are using) include a Configuration Builder which create a paired configuration file for the Server and the Transcoder. This can be found in the folder 'config_builder'.&lt;br /&gt;
&lt;br /&gt;
This is a very useful tool especially when making a new setup or if you find you are not happy with manually editing configuration files. Do remember that this will help to make configuration files which will work as long as the details you enter are correct and are correctly passed to the Server and Transcoder instances when run.&lt;br /&gt;
&lt;br /&gt;
Due to security issues when running web pages locally on the machine, you may find it is easier to use the externally hosted version on of the configuration builder which can be found at &amp;lt;nowiki&amp;gt;http://bogproghome.hopto.org/config_builder/config_builder.html&amp;lt;/nowiki&amp;gt; (this will use the latest version of the configuration builder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Glossary==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Client''' - This is a program run which will connect to the Server e.g. Winamp.&lt;br /&gt;
&lt;br /&gt;
'''DNAS''' - This is an abbreviation of Distributed Network Audio Server and refers to the way SHOUTcast systems are intended in providing a Stream to multiple Clients.&lt;br /&gt;
&lt;br /&gt;
'''Server''' - This is the program which is run on a machine to provide to Clients the Stream.&lt;br /&gt;
&lt;br /&gt;
'''Source''' - This is a program or an input device e.g. the line-in connection on the Server which is providing the data for the Stream.&lt;br /&gt;
'''&lt;br /&gt;
Stream''' - This is the data which is provided from the Server to the connected Client and is best thought of like the flow of water in a stream in how it goes from the Server (up stream) to the Client (down stream).&lt;br /&gt;
&lt;br /&gt;
'''Transcoder''' - This is the software which can take taken different media files and convert them to a different format which is then compatible what the Stream wanted.&lt;br /&gt;
&lt;br /&gt;
'''YP''' - This is an abbreviation of YellowPages and refers to the SHOUTcast Radio Directory listing which makes it easier for Clients to search for and then find your Stream.&lt;br /&gt;
&lt;br /&gt;
'''dsp_sc''' - This is the name the SHOUTcast Source DSP plug-in is otherwise known as.&lt;br /&gt;
&lt;br /&gt;
'''sc_trans''' - This is the name the SHOUTcast Transcoder is otherwise known as.&lt;br /&gt;
&lt;br /&gt;
'''sc_serv''' or '''sc_serv2''' - This is the name the SHOUTcast DNAS Server is otherwise known as.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_Getting_Started_Guide</id>
		<title>SHOUTcast Getting Started Guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_Getting_Started_Guide"/>
				<updated>2022-10-06T10:47:47Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* MP3 Streaming License */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
The aim of this page is to help guide you through the process of getting a SHOUTcast 2 system installed and broadcasting so people can connect to it through the SHOUTcast Radio Directory and hear the great content you have and want to provide to the world.&lt;br /&gt;
&lt;br /&gt;
It is assumed throughout the documentation that you have a basic knowledge of how to use the command-line console for the platform you decide to install the tools on i.e. how to run and control a program via the command-line console including being able to pass to it commands and the sending of signals as is appropriate to the platform being used. Windows users see [[#Windows_Users|section 1.2]].&lt;br /&gt;
&lt;br /&gt;
Additionally it is assumed you know how to setup your network connection and router to allow your server instance to be visible when broadcasting i.e. being able to open up and forward any required ports to allow your server instance to be visible to other machines on the internet as well as so the SHOUTcast Radio Directory can see you.&lt;br /&gt;
&lt;br /&gt;
This guide will refer you to other places in the documentation provided with the tools by showing references to the relevant file and section in the documentation files e.g. [[Source_DSP_Plug-in#Encoder_Tab|dsp_sc.txt - section 3.2.3]]. These referenced sections generally provide a lot more detail on the option or feature such as what would need to be set in the Transcoder configuration to allow for it to work with the DNAS Server being setup and so on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===What is SHOUTcast?===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If you are new to SHOUTcast then this is probably something you may have already asked or you are trying to find out.&lt;br /&gt;
&lt;br /&gt;
At its most basic, the SHOUTcast system is based around a ''''client + server'''' configuration which allows you to run a server (either directly or via a hosted service) which can then provide a stream or streams of the 'source' connected to the server to any clients which are connected to the server.&lt;br /&gt;
&lt;br /&gt;
The clients connect via a direct connection i.e. '''server &amp;lt;-&amp;gt;&amp;gt; client''' where the main flow of data (the stream data) will go from the server to the client.&lt;br /&gt;
&lt;br /&gt;
So a simple SHOUTcast setup would consist of the following:&lt;br /&gt;
&lt;br /&gt;
    Winamp + DSP  ?  DNAS [sc_serv]  ?   Winamp&lt;br /&gt;
      (Source)          (Server)        (Client)&lt;br /&gt;
&lt;br /&gt;
This is not the only way to setup a SHOUTcast system and more examples can be seen in the [[SHOUTcast_System_Overview|shoutcast_system_overview.txt]] which goes into more detail about the way SHOUTcast works as well as other ways of setting up a SHOUTcast system (see [[SHOUTcast_System_Overview#Example_SHOUTcast_System_Setups|section 2.0]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows Users===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The SHOUTcast DNAS Server and Transcoder are both built to be run from the command-line console (or as a native service if using this mode) which may appear to be daunting when most interaction done with the operating system is done via a graphical interface (GUI).&lt;br /&gt;
&lt;br /&gt;
If you are not acquainted with using the command-line console then you will need to find a guide which shows you the basics of using the command-line console along with getting you familiar with using it before trying to get any of the SHOUTcast tools running. If you search for 'how to use the command prompt' then you should find a guide which you can follow to help get you knowledgeable enough with using the command-line console.&lt;br /&gt;
&lt;br /&gt;
This may appear to be a step backwards if you previously used the v1 DNAS Server with its very basic GUI wrapper which otherwise was acting in the same manner as the command-line console just without the look of the operating system. However the v1 DNAS Server was at its core a command-line tool just like the v2 DNAS Server is now.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows Vista / 7 Specifics===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Due to the UAC feature (http://en.wikipedia.org/wiki/User_Account_Control) of these OSes you will need to remember the effect that this will have on editing and saving of files.&lt;br /&gt;
&lt;br /&gt;
By default the Windows versions of the installer will choose the native 'Program Files' folder '''(*)''' but unless you have disabled UAC or do not have full access to the folder then you will find attempts to save and edit any configuration files will not work.&lt;br /&gt;
&lt;br /&gt;
If this is an issue then you should either choose a different folder of all of the files or change where the tools are trying to save files and also to save any changes in your configuration files with a text editor which is running with administrator permissions.&lt;br /&gt;
&lt;br /&gt;
This is an unfortunate inconvenience though for making it easier to known where all of the configuration examples and documentation can be found is better. Finally there is no reason not to choose a different folder when installing the tools if you experience this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''(*)''' This will be slightly different depending on if you are using the 32-bit or 64-bit version of the OS as well as the language of the OS. As well the installer will pick the native 'Program Files' folder so installing the 32-bit version on the 64-bit OS will use 'Program Files (x86)' whereas installing the 64-bit version on the same OS will use 'Program Files'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Required?==&lt;br /&gt;
&lt;br /&gt;
To make your SHOUTcast system you will need the following software tools and hardware:&lt;br /&gt;
&lt;br /&gt;
:*A computer running on a supported operating system ([[#Supported_Operating_Systems|see section 2.1]])&lt;br /&gt;
:*SHOUTcast DNAS Server&lt;br /&gt;
:*An input source (Transcoder or Winamp plus Source DSP plug-in)&lt;br /&gt;
:*Media or DJ's or a Capture device i.e. the content you want to provide to people&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Operating Systems===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
There are versions of the DNAS Server and Transcoder available on the following operating systems:&lt;br /&gt;
&lt;br /&gt;
:*Windows 32-bit&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Windows 2000, XP, Vista, Windows 7, 8, 10&lt;br /&gt;
:*Windows 64-bit&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;64-bit versions of Windows XP, Vista, Windows 7, 8, 10&lt;br /&gt;
:*Linux 32-bit&lt;br /&gt;
:*Linux 64-bit&lt;br /&gt;
:*BSD 8.x &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; v2.4.7 only, not higher&lt;br /&gt;
:*Mac OS X (Intel)&amp;amp;nbsp;&amp;amp;nbsp; Should work on 10.4.4 and up though is only tested against 10.5.5 (DNAS v2.4.7 only, not higher)&lt;br /&gt;
&lt;br /&gt;
Remember to download the version of the tools which fits the operating system of the machine you will be installing the tools onto e.g. you could install the 32-bit Windows version on Windows 7 64-bit but could not install the 64-bit Windows version on Windows XP 32-bit.&lt;br /&gt;
&lt;br /&gt;
If using machines with different operating systems for different tasks then there should not be any problems with them working together e.g. Windows for the source and Linux for the server. This is due to the tools using the same communication style irrespective of the platform which they being run upon. If you do find an incompatibility then report it.&lt;br /&gt;
&lt;br /&gt;
==Getting Installed==&lt;br /&gt;
&lt;br /&gt;
When following the steps listed remember to only follow the parts which are applicable to the operating system and the tool or tools which you are attempting to install. If you do want to install multiple tools then it is better to work through the guide for one tool and then to do the same for the other one otherwise it may become confusing especially if you are new to command-line console tools and manual editting of configuration files.&lt;br /&gt;
&lt;br /&gt;
If you are not happy with manual editting of configuration files then there is also a configuration builder included as part of the Server and Transcoder distribution - see [[#Configuration_Builder|section 4.2]]. The aim of the configuration builder is to aid in the creation of matching configuration files for both tools which should work. It is still recommended that you do read the accompanying documentation so you can understand what it is that you are doing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Download the Correct Version===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
To begin with you will need to download the correct version of the tools you are going to use for the operating system you are setting up your SHOUTcast system on. See [[#Supported_Operating_Systems|see section 2.1]] for clarification of the supported operating systems for the tools.&lt;br /&gt;
&lt;br /&gt;
Current versions of the SHOUTcast tools can be obtained from:&lt;br /&gt;
&lt;br /&gt;
:*http://www.shoutcast.com/pricing&lt;br /&gt;
:*http://forums.winamp.com/showthread.php?t=324877 '''(*)'''&lt;br /&gt;
&lt;br /&gt;
Remember you will need to download a Server (sc_serv) and a source for the server which can be the Transcoder (sc_trans) or if using Windows then you can also use the Source DSP plug-in (dsp_sc) for Winamp (which may work on non-Windows systems using WINE but is not guaranteed and no support is offered with such a setup).&lt;br /&gt;
&lt;br /&gt;
Additionally there are a number of third party programs which can act as a source for a server instance. These are not covered as part of this guide and if you decide you want to use one of these programs then you will need to consult their help for getting it to work with the server instance.&lt;br /&gt;
&lt;br /&gt;
'''(*)''' This is a summary page and contains links to the latest versions of the tools such as when a new release has just been released or is being tested before it is  provided via the main SHOUTcast site download page.&lt;br /&gt;
&lt;br /&gt;
===Choose an Install Location===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Choose an install location for the tool you want to install (be it the Server, Transcoder or the source plug-in for Winamp) as is applicable for the SHOUTcast setup you are making on the machine.&lt;br /&gt;
&lt;br /&gt;
On Windows this choice is handled via the installer which selects a sensible new location or it re-uses the previous install location if doing an upgrade of an install which was previously made with a v2 tool installer. This can be changed if wanted during install.&lt;br /&gt;
&lt;br /&gt;
On Windows this choice is handled via the installer which selects a sensible new location or it re-uses the previous install location if doing an upgrade of an install which was previously made with a v2 tool installer. This can be changed if wanted during install and will be needed if you are running on a Windows system with UAC enabled ([[#Windows_Vista_.2F_7_Specifics|section 1.3]]).&lt;br /&gt;
&lt;br /&gt;
On non-Windows operating systems you can choose any location for the extracted location as long as you have the correct permission and access to the folder chosen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
On Windows you now need to run the installer, using the folder you have decided upon for the install location along with ensuring the option to install the documentation has been checked. Doing this will install the documentation and example configuration files which are included in the installer and referenced in later stages of this guide.&lt;br /&gt;
&lt;br /&gt;
Note: If using Windows Vista / 7 then make sure to install into a location which allows you to save and edit the configuration files and to save any log files into. More information can be found on what is required in [[#Windows_Vista_.2F_7_Specifics|see section 1.3]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On non-Windows you now need to extract the files for the tool(s) you have downloaded and ensure that you extract all contents of the archive into the install location decided on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Setting Up The Tools===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following sections are grouped together for what needs to be done in configuring and getting ready to start one or more of the officially provided tools. If you are not using one or more of them then you can skip the section as appropriate. Remember that you will need to have a valid source for use with the DNAS in order to have a listenable stream.&lt;br /&gt;
&lt;br /&gt;
 Ensuring the Server is properly configured is the most important thing as unless it&lt;br /&gt;
 is and running then none of the tools will be able to connect to it successfully.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Server===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====Server Configuration Setup====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Getting the Server started you first need to open up the '''sc_serv_simple.conf''' example file in the root of the install location. Work through the file's contents and then fill in or change any of the values required for how you want to use the server.&lt;br /&gt;
&lt;br /&gt;
The provided example will create a simple server configuration and contains the basic settings needed to allow for the server to work so it will appear in the SHOUTcast lists.&lt;br /&gt;
&lt;br /&gt;
The only thing missing from the example is an authhash which is required for a stream to be listed in the SHOUTcast Radio Directory when using the SHOUTcast 2 system. This needs to be obtained once the Server is running and a source has correctly connected to it. See [[#Obtaining_An_Authhash|section 3.5.4]] for how to do this one all other stages have been completed.&lt;br /&gt;
&lt;br /&gt;
Additionally there are example configuration files for the following scenarios:&lt;br /&gt;
&lt;br /&gt;
::'''sc_serv_basic''' - shows how to get a more multi-stream setup working&lt;br /&gt;
::'''sc_serv_public''' - shows how to make a public server from sc_serv_basic&lt;br /&gt;
::'''sc_serv_relay''' - shows how to relay another source&lt;br /&gt;
&lt;br /&gt;
There is more information about these example configurations in sc_serv2.txt - [[SHOUTcast_DNAS_Server_2#Example_Configurations|section 10]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Starting the Server====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
For simplicity we will only run the Server in the command-line console though when your Server setup is completed and everything is known to be working correctly then running as a service (Windows) or as a daemon (non-Windows) can be done to automate loading of the Server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To start the Server instance you now need to enter the correct command string for the operating system you are using in the command-line console like the following which assumes using the base example configuration file in the same directory as the Server program file:&lt;br /&gt;
&lt;br /&gt;
::For Windows     -  '''sc_serv.exe sc_serv_simple.conf'''&lt;br /&gt;
::For non-Windows  -  '''./sc_serv sc_serv_simple.conf'''&lt;br /&gt;
&lt;br /&gt;
If you use one of the other example configuration files or a different one then you can just change '''sc_serv_simple.conf''' to the name or full path to the configuration file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For more information on running the Server see [[SHOUTcast_DNAS_Server_2|sc_serv2.txt]] and the relevant section for the operating system you are using:&lt;br /&gt;
&lt;br /&gt;
::Windows - [[SHOUTcast_DNAS_Server_2#Run_as_a_Non-Service_in_the_Console|3.2.3]] (or [[SHOUTcast_DNAS_Server_2#Windows|3.2]] for more advanced options)&lt;br /&gt;
::Linux / Mac OS X / BSD - [[SHOUTcast_DNAS_Server_2#Run_as_a_Non-Daemon|3.3.3]] (or [[SHOUTcast_DNAS_Server_2#Linux_.2F_Mac_OS_X_.2F_BSD|3.3]] for more advanced options)&lt;br /&gt;
&lt;br /&gt;
====Errors Running the Server====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Skip this if you experience no error reports when trying to run the Server.&lt;br /&gt;
&lt;br /&gt;
If an issue is reported in the console output from the Server then you first need to look at the actual issue being reported which will be prefixed with an 'E' at the start of the message in the console output.&lt;br /&gt;
&lt;br /&gt;
The error message shown should make it clear as to what is wrong e.g. passing an invalid or missing configuration file passed would cause an error along with closing the server instance.&lt;br /&gt;
&lt;br /&gt;
If the error message still does not make any sense then either double-check [[SHOUTcast_DNAS_Server_2|sc_serv2.txt]] or goto the SHOUTcast support forums http://forums.winamp.com/forumdisplay.php?f=140 and post the question along with a copy of the log including the error message.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Obtaining An Authhash====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
With the Server now running, you will need to obtain an authhash for any stream(s) you want to be listed in the Shoutcast Radio Directory. This is done via the [https://radiomanager.shoutcast.com/ RadioManager]. See [[SHOUTcast_Authhash_Management|Shoutcast Authhash Management]] for further details.&lt;br /&gt;
&lt;br /&gt;
===Transcoder===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Note: The Transcoder is no longer maintained or supported.'''&lt;br /&gt;
&lt;br /&gt;
'''This documentation remains here solely for legacy purposes.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====MP3 Streaming License====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note: All mp3 patents have now expired so an encoding licence is no longer required.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Skip this if you are not setting up the Transcoder for MP3 streaming.&lt;br /&gt;
&lt;br /&gt;
If you want to provide an MP3 stream and are going to use the Transcoder then you will need to obtain a license key in-order to unlock the support to do this in the tool. Details on how to obtain this can be found in [[SHOUTcast_DNAS_Transcoder_2#Registering_for_MP3_Stream_Encoding|sc_trans.txt - section 2.5]].&lt;br /&gt;
&lt;br /&gt;
 AAC encoding does not need you to purchase a license as one has&lt;br /&gt;
 already been paid for you as detailed in [[SHOUTcast_DNAS_Transcoder_2#Why_Does_AAC_Encoding_Not_Require_a_License_Key.3F|sc_trans.txt - section 2.5.1]].&lt;br /&gt;
&lt;br /&gt;
Once the key has been obtained you need to add the key and your name into the 'unlockkeyname' and 'unlockkeycode' values in you configuration file exactly as they have been received. So if your key is '123456' and you have used 'Bob' as the registered name, you would add the following to your Transcoder configuration file:&lt;br /&gt;
&lt;br /&gt;
    unlockkeyname=Bob&lt;br /&gt;
    unlockkeycode=123456&lt;br /&gt;
&lt;br /&gt;
====Transcoder Configuration Setup====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Getting the Transcoder started you first need to open up the sc_trans_simple.conf example file in the root of the install location. Work through the file's contents and then fill in or change any of the values required for how you want to use the server.&lt;br /&gt;
&lt;br /&gt;
If you are wanting to use MP3 encoding then make sure you have followed '[[#MP3_Streaming_License|section 3.6.1]]' and entered the required 'unlockkeyname' and 'unlockkeycode' values in you configuration file exactly as they have been received. You will be informed when later running the Transcoder if there is an issue with the MP3 license details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additionally there are example configuration files for the following scenarios:&lt;br /&gt;
&lt;br /&gt;
::'''sc_trans_basic''' - shows how to get a basic setup without relying on the Server&lt;br /&gt;
::'''sc_trans_capture''' - shows how to use a capture device&lt;br /&gt;
::'''sc_trans_dj''' - shows how to setup a DJ connection&lt;br /&gt;
::'''sc_trans_playlist''' - shows how to use scheduled playlists&lt;br /&gt;
&lt;br /&gt;
There is more information about these example configurations in [[SHOUTcast_DNAS_Transcoder_2#Example_Configurations|sc_trans.txt - section 11]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Starting the Transcoder====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
For simplicity we will only run the Transcoder in the command-line console though when your Transcoder setup is completed and everything is known to be working correctly then running as a service (Windows) or as a daemon (non-Windows) can be done to automate loading of the Transcoder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To start the Transcoder instance you now need to enter the correct command string for the operating system you are using into the command-line console like the following which assumes using the base example configuration file in the same directory as the Transcoder program file:&lt;br /&gt;
&lt;br /&gt;
::For Windows     -  '''sc_trans.exe sc_trans_simple.conf'''&lt;br /&gt;
::For non-Window  -  '''./sc_trans sc_trans_simple.conf'''&lt;br /&gt;
&lt;br /&gt;
If you use one of the other example configuration files or a different one then you can just change '''sc_trans_simple.conf''' to the name or full path to the configuration file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For more information on running the Transcoder see [[SHOUTcast_DNAS_Transcoder_2|sc_trans.txt]] and the relevant section for the operating system you are using:&lt;br /&gt;
&lt;br /&gt;
::Windows - [[SHOUTcast_DNAS_Transcoder_2#Run_as_a_Non-Service_in_the_Console|2.2.3]] (or [[SHOUTcast_DNAS_Transcoder_2#Windows|2.2]] for more advanced options)&lt;br /&gt;
::Linux / Mac OS X / BSD - [[SHOUTcast_DNAS_Transcoder_2#Run_as_a_Non-Daemon|2.3.3]] (or [[SHOUTcast_DNAS_Transcoder_2#Linux_.2F_Mac_OS_X_.2F_BSD|2.3]] for more advanced options)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Errors Running the Transcoder====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Skip this if you experience no error reports when trying to run the Transcoder.&lt;br /&gt;
&lt;br /&gt;
If an issue is reported in the console output from the Server then you first need to look at the actual issue being reported which will be prefixed with an 'E' at the start of the message in the console output.&lt;br /&gt;
&lt;br /&gt;
The error message shown should make it clear as to what is wrong e.g. passing an invalid or missing configuration file passed would cause an error along with closing the server instance.&lt;br /&gt;
&lt;br /&gt;
If the error message still does not make any sense then either double-check [[SHOUTcast_DNAS_Transcoder_2|sc_trans.txt]] or goto the SHOUTcast support forums http://forums.winamp.com/forumdisplay.php?f=140 and post the question along with a copy of the log including the error message.&lt;br /&gt;
&lt;br /&gt;
===Source DSP===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Install Source DSP====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Skip this if you are not setting up the Source DSP plug-in for MP3 streaming.&lt;br /&gt;
&lt;br /&gt;
If you want to provide an MP3 stream and are going to use Winamp and the Source DSP then you just need to make sure to install the Source DSP plug-in and select the MP3 encoder on the 'Output -&amp;gt; Encoder' tab (as detailed in [[Source_DSP_Plug-in#Encoder_Tab|dsp_sc.txt - section 3.2.3]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Configuring the Source DSP====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
For getting Winamp and the Source DSP plug-in setup look through the [[Source_DSP_Plug-in_Configuration_Examples|dsp_sc_config.txt]] file and enter in the relevant values as described in it once you have setup:&lt;br /&gt;
&lt;br /&gt;
::the Server (from [[#Server_Configuration_Setup|section 3.5.1]]) if you are going to use the plug-in as the only source&lt;br /&gt;
:and / or&lt;br /&gt;
::the Transcoder (from [[#Transcoder_Configuration_Setup|section 3.6.2]]) if it is to act as a DJ source&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Starting the Source DSP====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Using the Source DSP plug-in requires the plug-in to be set as the current DSP plug-in which is done by going to 'Winamp Preferences -&amp;gt; Plug-ins -&amp;gt; DSP/Effect' and selecting 'Nullsoft SHOUTcast Source DSP &amp;lt;version&amp;gt;' (*) from the plug-in's list.&lt;br /&gt;
&lt;br /&gt;
When this entry in the list is selected then the plug-in's configuration window will be opened and from there the plug-in will be in a state where a connection can be started via the 'Connect' button on the 'Output' tab.&lt;br /&gt;
&lt;br /&gt;
(*) The string &amp;lt;version&amp;gt; would be the actual version of the plug-in which is installed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Completion===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You should now be up and running with a working SHOUTcast system. Happy broadcasting!&lt;br /&gt;
&lt;br /&gt;
If things are still not running then go back over the section(s) relating to the tool(s) you are having issues with and make sure that you have followed things otherwise please see the next section ([[#Further Information|section 4.0]]) on what you can do to get help in trying to resolve the issues you are experiencing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
&lt;br /&gt;
If you have followed the setup steps detailed in [[#Getting_Installed|section 3]] and are still having issues with getting the tools running or working together to achieve a certain result then first make sure you have the currently supported version of the tool(s) in case it is a bug in the tool(s) which has already been fixed. You can check this via the links referenced in [[#Download_the_Correct_Version|3.1]] and especially the forum link of the most current versions available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If installing the latest version does not help or if you already are using the latest version of the tool(s) or if the feature is not available then please goto the SHOUTcast support forums: http://forums.winamp.com/forumdisplay.php?f=140&lt;br /&gt;
&lt;br /&gt;
Make sure if you are reporting issues to provide as much information as possible for the SHOUTcast users who use the tools including the following information:&lt;br /&gt;
&lt;br /&gt;
:*Your SHOUTcast setup including all versions of the tools being used&lt;br /&gt;
:*The issue you are experiencing&lt;br /&gt;
:*The steps needed to reproduce the issue&lt;br /&gt;
:*Anything else useful especially if you have been tinkering with options before the issue appeared&lt;br /&gt;
&lt;br /&gt;
Remember when you post an issue that providing as much information in a clear and concise manner will make it easier for anyone who can help to be able to understand the issue you have. This is important as not everyone visiting the forum are native English speakers.&lt;br /&gt;
&lt;br /&gt;
Finally you must remain civil to other users (however annoying or frustrating the issue is that you are experiencing) as most users will not want to make a reply to someone who does not appear to be civil - if you think about it from the other view of what you would think when looking at such a post then this should make sense to keep things civil.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Related Documentation===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
All documentation can be found online - http://wiki.winamp.com/wiki/SHOUTcast_Broadcaster which will contain the documentation for the currently released versions of the tools.&lt;br /&gt;
&lt;br /&gt;
Additionally, in the install location there will be a 'docs' folder (as long as it has been chosen to be installed [Windows] or extracted [non-Windows] which contains text only versions of the main documentation relating to the SHOUTcast tool(s) installed as well as any related documentation to the other tools which may be of use in getting a SHOUTcast system configured and running&lt;br /&gt;
e.g. the docs\dsp_sc folder contains information on the Source DSP plug-in so you can use it to setup the plug-in as a source or so you can know what to tell a DJ so they can connect to your SHOUTcast system.&lt;br /&gt;
&lt;br /&gt;
Please remember that with the SHOUTcast tools being designed to work on both the Windows and non-Windows operating systems, there is information included in the documentation which relates to either of these platforms. So when reading through the documentation, only follow the information which relates to the operating system you are using&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Configuration Builder===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Included in the SHOUTcast DNAS Server and Transcoder installers / archives (depending on the operating system you are using) include a Configuration Builder which create a paired configuration file for the Server and the Transcoder. This can be found in the folder 'config_builder'.&lt;br /&gt;
&lt;br /&gt;
This is a very useful tool especially when making a new setup or if you find you are not happy with manually editing configuration files. Do remember that this will help to make configuration files which will work as long as the details you enter are correct and are correctly passed to the Server and Transcoder instances when run.&lt;br /&gt;
&lt;br /&gt;
Due to security issues when running web pages locally on the machine, you may find it is easier to use the externally hosted version on of the configuration builder which can be found at &amp;lt;nowiki&amp;gt;http://bogproghome.hopto.org/config_builder/config_builder.html&amp;lt;/nowiki&amp;gt; (this will use the latest version of the configuration builder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Glossary==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Client''' - This is a program run which will connect to the Server e.g. Winamp.&lt;br /&gt;
&lt;br /&gt;
'''DNAS''' - This is an abbreviation of Distributed Network Audio Server and refers to the way SHOUTcast systems are intended in providing a Stream to multiple Clients.&lt;br /&gt;
&lt;br /&gt;
'''Server''' - This is the program which is run on a machine to provide to Clients the Stream.&lt;br /&gt;
&lt;br /&gt;
'''Source''' - This is a program or an input device e.g. the line-in connection on the Server which is providing the data for the Stream.&lt;br /&gt;
'''&lt;br /&gt;
Stream''' - This is the data which is provided from the Server to the connected Client and is best thought of like the flow of water in a stream in how it goes from the Server (up stream) to the Client (down stream).&lt;br /&gt;
&lt;br /&gt;
'''Transcoder''' - This is the software which can take taken different media files and convert them to a different format which is then compatible what the Stream wanted.&lt;br /&gt;
&lt;br /&gt;
'''YP''' - This is an abbreviation of YellowPages and refers to the SHOUTcast Radio Directory listing which makes it easier for Clients to search for and then find your Stream.&lt;br /&gt;
&lt;br /&gt;
'''dsp_sc''' - This is the name the SHOUTcast Source DSP plug-in is otherwise known as.&lt;br /&gt;
&lt;br /&gt;
'''sc_trans''' - This is the name the SHOUTcast Transcoder is otherwise known as.&lt;br /&gt;
&lt;br /&gt;
'''sc_serv''' or '''sc_serv2''' - This is the name the SHOUTcast DNAS Server is otherwise known as.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_Getting_Started_Guide</id>
		<title>SHOUTcast Getting Started Guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_Getting_Started_Guide"/>
				<updated>2022-10-06T10:47:22Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Transcoder */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
The aim of this page is to help guide you through the process of getting a SHOUTcast 2 system installed and broadcasting so people can connect to it through the SHOUTcast Radio Directory and hear the great content you have and want to provide to the world.&lt;br /&gt;
&lt;br /&gt;
It is assumed throughout the documentation that you have a basic knowledge of how to use the command-line console for the platform you decide to install the tools on i.e. how to run and control a program via the command-line console including being able to pass to it commands and the sending of signals as is appropriate to the platform being used. Windows users see [[#Windows_Users|section 1.2]].&lt;br /&gt;
&lt;br /&gt;
Additionally it is assumed you know how to setup your network connection and router to allow your server instance to be visible when broadcasting i.e. being able to open up and forward any required ports to allow your server instance to be visible to other machines on the internet as well as so the SHOUTcast Radio Directory can see you.&lt;br /&gt;
&lt;br /&gt;
This guide will refer you to other places in the documentation provided with the tools by showing references to the relevant file and section in the documentation files e.g. [[Source_DSP_Plug-in#Encoder_Tab|dsp_sc.txt - section 3.2.3]]. These referenced sections generally provide a lot more detail on the option or feature such as what would need to be set in the Transcoder configuration to allow for it to work with the DNAS Server being setup and so on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===What is SHOUTcast?===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If you are new to SHOUTcast then this is probably something you may have already asked or you are trying to find out.&lt;br /&gt;
&lt;br /&gt;
At its most basic, the SHOUTcast system is based around a ''''client + server'''' configuration which allows you to run a server (either directly or via a hosted service) which can then provide a stream or streams of the 'source' connected to the server to any clients which are connected to the server.&lt;br /&gt;
&lt;br /&gt;
The clients connect via a direct connection i.e. '''server &amp;lt;-&amp;gt;&amp;gt; client''' where the main flow of data (the stream data) will go from the server to the client.&lt;br /&gt;
&lt;br /&gt;
So a simple SHOUTcast setup would consist of the following:&lt;br /&gt;
&lt;br /&gt;
    Winamp + DSP  ?  DNAS [sc_serv]  ?   Winamp&lt;br /&gt;
      (Source)          (Server)        (Client)&lt;br /&gt;
&lt;br /&gt;
This is not the only way to setup a SHOUTcast system and more examples can be seen in the [[SHOUTcast_System_Overview|shoutcast_system_overview.txt]] which goes into more detail about the way SHOUTcast works as well as other ways of setting up a SHOUTcast system (see [[SHOUTcast_System_Overview#Example_SHOUTcast_System_Setups|section 2.0]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows Users===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The SHOUTcast DNAS Server and Transcoder are both built to be run from the command-line console (or as a native service if using this mode) which may appear to be daunting when most interaction done with the operating system is done via a graphical interface (GUI).&lt;br /&gt;
&lt;br /&gt;
If you are not acquainted with using the command-line console then you will need to find a guide which shows you the basics of using the command-line console along with getting you familiar with using it before trying to get any of the SHOUTcast tools running. If you search for 'how to use the command prompt' then you should find a guide which you can follow to help get you knowledgeable enough with using the command-line console.&lt;br /&gt;
&lt;br /&gt;
This may appear to be a step backwards if you previously used the v1 DNAS Server with its very basic GUI wrapper which otherwise was acting in the same manner as the command-line console just without the look of the operating system. However the v1 DNAS Server was at its core a command-line tool just like the v2 DNAS Server is now.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows Vista / 7 Specifics===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Due to the UAC feature (http://en.wikipedia.org/wiki/User_Account_Control) of these OSes you will need to remember the effect that this will have on editing and saving of files.&lt;br /&gt;
&lt;br /&gt;
By default the Windows versions of the installer will choose the native 'Program Files' folder '''(*)''' but unless you have disabled UAC or do not have full access to the folder then you will find attempts to save and edit any configuration files will not work.&lt;br /&gt;
&lt;br /&gt;
If this is an issue then you should either choose a different folder of all of the files or change where the tools are trying to save files and also to save any changes in your configuration files with a text editor which is running with administrator permissions.&lt;br /&gt;
&lt;br /&gt;
This is an unfortunate inconvenience though for making it easier to known where all of the configuration examples and documentation can be found is better. Finally there is no reason not to choose a different folder when installing the tools if you experience this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''(*)''' This will be slightly different depending on if you are using the 32-bit or 64-bit version of the OS as well as the language of the OS. As well the installer will pick the native 'Program Files' folder so installing the 32-bit version on the 64-bit OS will use 'Program Files (x86)' whereas installing the 64-bit version on the same OS will use 'Program Files'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Required?==&lt;br /&gt;
&lt;br /&gt;
To make your SHOUTcast system you will need the following software tools and hardware:&lt;br /&gt;
&lt;br /&gt;
:*A computer running on a supported operating system ([[#Supported_Operating_Systems|see section 2.1]])&lt;br /&gt;
:*SHOUTcast DNAS Server&lt;br /&gt;
:*An input source (Transcoder or Winamp plus Source DSP plug-in)&lt;br /&gt;
:*Media or DJ's or a Capture device i.e. the content you want to provide to people&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Operating Systems===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
There are versions of the DNAS Server and Transcoder available on the following operating systems:&lt;br /&gt;
&lt;br /&gt;
:*Windows 32-bit&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Windows 2000, XP, Vista, Windows 7, 8, 10&lt;br /&gt;
:*Windows 64-bit&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;64-bit versions of Windows XP, Vista, Windows 7, 8, 10&lt;br /&gt;
:*Linux 32-bit&lt;br /&gt;
:*Linux 64-bit&lt;br /&gt;
:*BSD 8.x &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; v2.4.7 only, not higher&lt;br /&gt;
:*Mac OS X (Intel)&amp;amp;nbsp;&amp;amp;nbsp; Should work on 10.4.4 and up though is only tested against 10.5.5 (DNAS v2.4.7 only, not higher)&lt;br /&gt;
&lt;br /&gt;
Remember to download the version of the tools which fits the operating system of the machine you will be installing the tools onto e.g. you could install the 32-bit Windows version on Windows 7 64-bit but could not install the 64-bit Windows version on Windows XP 32-bit.&lt;br /&gt;
&lt;br /&gt;
If using machines with different operating systems for different tasks then there should not be any problems with them working together e.g. Windows for the source and Linux for the server. This is due to the tools using the same communication style irrespective of the platform which they being run upon. If you do find an incompatibility then report it.&lt;br /&gt;
&lt;br /&gt;
==Getting Installed==&lt;br /&gt;
&lt;br /&gt;
When following the steps listed remember to only follow the parts which are applicable to the operating system and the tool or tools which you are attempting to install. If you do want to install multiple tools then it is better to work through the guide for one tool and then to do the same for the other one otherwise it may become confusing especially if you are new to command-line console tools and manual editting of configuration files.&lt;br /&gt;
&lt;br /&gt;
If you are not happy with manual editting of configuration files then there is also a configuration builder included as part of the Server and Transcoder distribution - see [[#Configuration_Builder|section 4.2]]. The aim of the configuration builder is to aid in the creation of matching configuration files for both tools which should work. It is still recommended that you do read the accompanying documentation so you can understand what it is that you are doing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Download the Correct Version===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
To begin with you will need to download the correct version of the tools you are going to use for the operating system you are setting up your SHOUTcast system on. See [[#Supported_Operating_Systems|see section 2.1]] for clarification of the supported operating systems for the tools.&lt;br /&gt;
&lt;br /&gt;
Current versions of the SHOUTcast tools can be obtained from:&lt;br /&gt;
&lt;br /&gt;
:*http://www.shoutcast.com/pricing&lt;br /&gt;
:*http://forums.winamp.com/showthread.php?t=324877 '''(*)'''&lt;br /&gt;
&lt;br /&gt;
Remember you will need to download a Server (sc_serv) and a source for the server which can be the Transcoder (sc_trans) or if using Windows then you can also use the Source DSP plug-in (dsp_sc) for Winamp (which may work on non-Windows systems using WINE but is not guaranteed and no support is offered with such a setup).&lt;br /&gt;
&lt;br /&gt;
Additionally there are a number of third party programs which can act as a source for a server instance. These are not covered as part of this guide and if you decide you want to use one of these programs then you will need to consult their help for getting it to work with the server instance.&lt;br /&gt;
&lt;br /&gt;
'''(*)''' This is a summary page and contains links to the latest versions of the tools such as when a new release has just been released or is being tested before it is  provided via the main SHOUTcast site download page.&lt;br /&gt;
&lt;br /&gt;
===Choose an Install Location===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Choose an install location for the tool you want to install (be it the Server, Transcoder or the source plug-in for Winamp) as is applicable for the SHOUTcast setup you are making on the machine.&lt;br /&gt;
&lt;br /&gt;
On Windows this choice is handled via the installer which selects a sensible new location or it re-uses the previous install location if doing an upgrade of an install which was previously made with a v2 tool installer. This can be changed if wanted during install.&lt;br /&gt;
&lt;br /&gt;
On Windows this choice is handled via the installer which selects a sensible new location or it re-uses the previous install location if doing an upgrade of an install which was previously made with a v2 tool installer. This can be changed if wanted during install and will be needed if you are running on a Windows system with UAC enabled ([[#Windows_Vista_.2F_7_Specifics|section 1.3]]).&lt;br /&gt;
&lt;br /&gt;
On non-Windows operating systems you can choose any location for the extracted location as long as you have the correct permission and access to the folder chosen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
On Windows you now need to run the installer, using the folder you have decided upon for the install location along with ensuring the option to install the documentation has been checked. Doing this will install the documentation and example configuration files which are included in the installer and referenced in later stages of this guide.&lt;br /&gt;
&lt;br /&gt;
Note: If using Windows Vista / 7 then make sure to install into a location which allows you to save and edit the configuration files and to save any log files into. More information can be found on what is required in [[#Windows_Vista_.2F_7_Specifics|see section 1.3]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On non-Windows you now need to extract the files for the tool(s) you have downloaded and ensure that you extract all contents of the archive into the install location decided on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Setting Up The Tools===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following sections are grouped together for what needs to be done in configuring and getting ready to start one or more of the officially provided tools. If you are not using one or more of them then you can skip the section as appropriate. Remember that you will need to have a valid source for use with the DNAS in order to have a listenable stream.&lt;br /&gt;
&lt;br /&gt;
 Ensuring the Server is properly configured is the most important thing as unless it&lt;br /&gt;
 is and running then none of the tools will be able to connect to it successfully.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Server===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====Server Configuration Setup====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Getting the Server started you first need to open up the '''sc_serv_simple.conf''' example file in the root of the install location. Work through the file's contents and then fill in or change any of the values required for how you want to use the server.&lt;br /&gt;
&lt;br /&gt;
The provided example will create a simple server configuration and contains the basic settings needed to allow for the server to work so it will appear in the SHOUTcast lists.&lt;br /&gt;
&lt;br /&gt;
The only thing missing from the example is an authhash which is required for a stream to be listed in the SHOUTcast Radio Directory when using the SHOUTcast 2 system. This needs to be obtained once the Server is running and a source has correctly connected to it. See [[#Obtaining_An_Authhash|section 3.5.4]] for how to do this one all other stages have been completed.&lt;br /&gt;
&lt;br /&gt;
Additionally there are example configuration files for the following scenarios:&lt;br /&gt;
&lt;br /&gt;
::'''sc_serv_basic''' - shows how to get a more multi-stream setup working&lt;br /&gt;
::'''sc_serv_public''' - shows how to make a public server from sc_serv_basic&lt;br /&gt;
::'''sc_serv_relay''' - shows how to relay another source&lt;br /&gt;
&lt;br /&gt;
There is more information about these example configurations in sc_serv2.txt - [[SHOUTcast_DNAS_Server_2#Example_Configurations|section 10]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Starting the Server====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
For simplicity we will only run the Server in the command-line console though when your Server setup is completed and everything is known to be working correctly then running as a service (Windows) or as a daemon (non-Windows) can be done to automate loading of the Server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To start the Server instance you now need to enter the correct command string for the operating system you are using in the command-line console like the following which assumes using the base example configuration file in the same directory as the Server program file:&lt;br /&gt;
&lt;br /&gt;
::For Windows     -  '''sc_serv.exe sc_serv_simple.conf'''&lt;br /&gt;
::For non-Windows  -  '''./sc_serv sc_serv_simple.conf'''&lt;br /&gt;
&lt;br /&gt;
If you use one of the other example configuration files or a different one then you can just change '''sc_serv_simple.conf''' to the name or full path to the configuration file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For more information on running the Server see [[SHOUTcast_DNAS_Server_2|sc_serv2.txt]] and the relevant section for the operating system you are using:&lt;br /&gt;
&lt;br /&gt;
::Windows - [[SHOUTcast_DNAS_Server_2#Run_as_a_Non-Service_in_the_Console|3.2.3]] (or [[SHOUTcast_DNAS_Server_2#Windows|3.2]] for more advanced options)&lt;br /&gt;
::Linux / Mac OS X / BSD - [[SHOUTcast_DNAS_Server_2#Run_as_a_Non-Daemon|3.3.3]] (or [[SHOUTcast_DNAS_Server_2#Linux_.2F_Mac_OS_X_.2F_BSD|3.3]] for more advanced options)&lt;br /&gt;
&lt;br /&gt;
====Errors Running the Server====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Skip this if you experience no error reports when trying to run the Server.&lt;br /&gt;
&lt;br /&gt;
If an issue is reported in the console output from the Server then you first need to look at the actual issue being reported which will be prefixed with an 'E' at the start of the message in the console output.&lt;br /&gt;
&lt;br /&gt;
The error message shown should make it clear as to what is wrong e.g. passing an invalid or missing configuration file passed would cause an error along with closing the server instance.&lt;br /&gt;
&lt;br /&gt;
If the error message still does not make any sense then either double-check [[SHOUTcast_DNAS_Server_2|sc_serv2.txt]] or goto the SHOUTcast support forums http://forums.winamp.com/forumdisplay.php?f=140 and post the question along with a copy of the log including the error message.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Obtaining An Authhash====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
With the Server now running, you will need to obtain an authhash for any stream(s) you want to be listed in the Shoutcast Radio Directory. This is done via the [https://radiomanager.shoutcast.com/ RadioManager]. See [[SHOUTcast_Authhash_Management|Shoutcast Authhash Management]] for further details.&lt;br /&gt;
&lt;br /&gt;
===Transcoder===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Note: The Transcoder is no longer maintained or supported.'''&lt;br /&gt;
&lt;br /&gt;
'''This documentation remains here solely for legacy purposes.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====MP3 Streaming License====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note: All mp3 patents have expired so an encoding licence is no longer required.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Skip this if you are not setting up the Transcoder for MP3 streaming.&lt;br /&gt;
&lt;br /&gt;
If you want to provide an MP3 stream and are going to use the Transcoder then you will need to obtain a license key in-order to unlock the support to do this in the tool. Details on how to obtain this can be found in [[SHOUTcast_DNAS_Transcoder_2#Registering_for_MP3_Stream_Encoding|sc_trans.txt - section 2.5]].&lt;br /&gt;
&lt;br /&gt;
 AAC encoding does not need you to purchase a license as one has&lt;br /&gt;
 already been paid for you as detailed in [[SHOUTcast_DNAS_Transcoder_2#Why_Does_AAC_Encoding_Not_Require_a_License_Key.3F|sc_trans.txt - section 2.5.1]].&lt;br /&gt;
&lt;br /&gt;
Once the key has been obtained you need to add the key and your name into the 'unlockkeyname' and 'unlockkeycode' values in you configuration file exactly as they have been received. So if your key is '123456' and you have used 'Bob' as the registered name, you would add the following to your Transcoder configuration file:&lt;br /&gt;
&lt;br /&gt;
    unlockkeyname=Bob&lt;br /&gt;
    unlockkeycode=123456&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Transcoder Configuration Setup====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Getting the Transcoder started you first need to open up the sc_trans_simple.conf example file in the root of the install location. Work through the file's contents and then fill in or change any of the values required for how you want to use the server.&lt;br /&gt;
&lt;br /&gt;
If you are wanting to use MP3 encoding then make sure you have followed '[[#MP3_Streaming_License|section 3.6.1]]' and entered the required 'unlockkeyname' and 'unlockkeycode' values in you configuration file exactly as they have been received. You will be informed when later running the Transcoder if there is an issue with the MP3 license details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additionally there are example configuration files for the following scenarios:&lt;br /&gt;
&lt;br /&gt;
::'''sc_trans_basic''' - shows how to get a basic setup without relying on the Server&lt;br /&gt;
::'''sc_trans_capture''' - shows how to use a capture device&lt;br /&gt;
::'''sc_trans_dj''' - shows how to setup a DJ connection&lt;br /&gt;
::'''sc_trans_playlist''' - shows how to use scheduled playlists&lt;br /&gt;
&lt;br /&gt;
There is more information about these example configurations in [[SHOUTcast_DNAS_Transcoder_2#Example_Configurations|sc_trans.txt - section 11]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Starting the Transcoder====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
For simplicity we will only run the Transcoder in the command-line console though when your Transcoder setup is completed and everything is known to be working correctly then running as a service (Windows) or as a daemon (non-Windows) can be done to automate loading of the Transcoder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To start the Transcoder instance you now need to enter the correct command string for the operating system you are using into the command-line console like the following which assumes using the base example configuration file in the same directory as the Transcoder program file:&lt;br /&gt;
&lt;br /&gt;
::For Windows     -  '''sc_trans.exe sc_trans_simple.conf'''&lt;br /&gt;
::For non-Window  -  '''./sc_trans sc_trans_simple.conf'''&lt;br /&gt;
&lt;br /&gt;
If you use one of the other example configuration files or a different one then you can just change '''sc_trans_simple.conf''' to the name or full path to the configuration file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For more information on running the Transcoder see [[SHOUTcast_DNAS_Transcoder_2|sc_trans.txt]] and the relevant section for the operating system you are using:&lt;br /&gt;
&lt;br /&gt;
::Windows - [[SHOUTcast_DNAS_Transcoder_2#Run_as_a_Non-Service_in_the_Console|2.2.3]] (or [[SHOUTcast_DNAS_Transcoder_2#Windows|2.2]] for more advanced options)&lt;br /&gt;
::Linux / Mac OS X / BSD - [[SHOUTcast_DNAS_Transcoder_2#Run_as_a_Non-Daemon|2.3.3]] (or [[SHOUTcast_DNAS_Transcoder_2#Linux_.2F_Mac_OS_X_.2F_BSD|2.3]] for more advanced options)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Errors Running the Transcoder====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Skip this if you experience no error reports when trying to run the Transcoder.&lt;br /&gt;
&lt;br /&gt;
If an issue is reported in the console output from the Server then you first need to look at the actual issue being reported which will be prefixed with an 'E' at the start of the message in the console output.&lt;br /&gt;
&lt;br /&gt;
The error message shown should make it clear as to what is wrong e.g. passing an invalid or missing configuration file passed would cause an error along with closing the server instance.&lt;br /&gt;
&lt;br /&gt;
If the error message still does not make any sense then either double-check [[SHOUTcast_DNAS_Transcoder_2|sc_trans.txt]] or goto the SHOUTcast support forums http://forums.winamp.com/forumdisplay.php?f=140 and post the question along with a copy of the log including the error message.&lt;br /&gt;
&lt;br /&gt;
===Source DSP===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Install Source DSP====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Skip this if you are not setting up the Source DSP plug-in for MP3 streaming.&lt;br /&gt;
&lt;br /&gt;
If you want to provide an MP3 stream and are going to use Winamp and the Source DSP then you just need to make sure to install the Source DSP plug-in and select the MP3 encoder on the 'Output -&amp;gt; Encoder' tab (as detailed in [[Source_DSP_Plug-in#Encoder_Tab|dsp_sc.txt - section 3.2.3]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Configuring the Source DSP====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
For getting Winamp and the Source DSP plug-in setup look through the [[Source_DSP_Plug-in_Configuration_Examples|dsp_sc_config.txt]] file and enter in the relevant values as described in it once you have setup:&lt;br /&gt;
&lt;br /&gt;
::the Server (from [[#Server_Configuration_Setup|section 3.5.1]]) if you are going to use the plug-in as the only source&lt;br /&gt;
:and / or&lt;br /&gt;
::the Transcoder (from [[#Transcoder_Configuration_Setup|section 3.6.2]]) if it is to act as a DJ source&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Starting the Source DSP====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Using the Source DSP plug-in requires the plug-in to be set as the current DSP plug-in which is done by going to 'Winamp Preferences -&amp;gt; Plug-ins -&amp;gt; DSP/Effect' and selecting 'Nullsoft SHOUTcast Source DSP &amp;lt;version&amp;gt;' (*) from the plug-in's list.&lt;br /&gt;
&lt;br /&gt;
When this entry in the list is selected then the plug-in's configuration window will be opened and from there the plug-in will be in a state where a connection can be started via the 'Connect' button on the 'Output' tab.&lt;br /&gt;
&lt;br /&gt;
(*) The string &amp;lt;version&amp;gt; would be the actual version of the plug-in which is installed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Completion===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You should now be up and running with a working SHOUTcast system. Happy broadcasting!&lt;br /&gt;
&lt;br /&gt;
If things are still not running then go back over the section(s) relating to the tool(s) you are having issues with and make sure that you have followed things otherwise please see the next section ([[#Further Information|section 4.0]]) on what you can do to get help in trying to resolve the issues you are experiencing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
&lt;br /&gt;
If you have followed the setup steps detailed in [[#Getting_Installed|section 3]] and are still having issues with getting the tools running or working together to achieve a certain result then first make sure you have the currently supported version of the tool(s) in case it is a bug in the tool(s) which has already been fixed. You can check this via the links referenced in [[#Download_the_Correct_Version|3.1]] and especially the forum link of the most current versions available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If installing the latest version does not help or if you already are using the latest version of the tool(s) or if the feature is not available then please goto the SHOUTcast support forums: http://forums.winamp.com/forumdisplay.php?f=140&lt;br /&gt;
&lt;br /&gt;
Make sure if you are reporting issues to provide as much information as possible for the SHOUTcast users who use the tools including the following information:&lt;br /&gt;
&lt;br /&gt;
:*Your SHOUTcast setup including all versions of the tools being used&lt;br /&gt;
:*The issue you are experiencing&lt;br /&gt;
:*The steps needed to reproduce the issue&lt;br /&gt;
:*Anything else useful especially if you have been tinkering with options before the issue appeared&lt;br /&gt;
&lt;br /&gt;
Remember when you post an issue that providing as much information in a clear and concise manner will make it easier for anyone who can help to be able to understand the issue you have. This is important as not everyone visiting the forum are native English speakers.&lt;br /&gt;
&lt;br /&gt;
Finally you must remain civil to other users (however annoying or frustrating the issue is that you are experiencing) as most users will not want to make a reply to someone who does not appear to be civil - if you think about it from the other view of what you would think when looking at such a post then this should make sense to keep things civil.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Related Documentation===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
All documentation can be found online - http://wiki.winamp.com/wiki/SHOUTcast_Broadcaster which will contain the documentation for the currently released versions of the tools.&lt;br /&gt;
&lt;br /&gt;
Additionally, in the install location there will be a 'docs' folder (as long as it has been chosen to be installed [Windows] or extracted [non-Windows] which contains text only versions of the main documentation relating to the SHOUTcast tool(s) installed as well as any related documentation to the other tools which may be of use in getting a SHOUTcast system configured and running&lt;br /&gt;
e.g. the docs\dsp_sc folder contains information on the Source DSP plug-in so you can use it to setup the plug-in as a source or so you can know what to tell a DJ so they can connect to your SHOUTcast system.&lt;br /&gt;
&lt;br /&gt;
Please remember that with the SHOUTcast tools being designed to work on both the Windows and non-Windows operating systems, there is information included in the documentation which relates to either of these platforms. So when reading through the documentation, only follow the information which relates to the operating system you are using&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Configuration Builder===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Included in the SHOUTcast DNAS Server and Transcoder installers / archives (depending on the operating system you are using) include a Configuration Builder which create a paired configuration file for the Server and the Transcoder. This can be found in the folder 'config_builder'.&lt;br /&gt;
&lt;br /&gt;
This is a very useful tool especially when making a new setup or if you find you are not happy with manually editing configuration files. Do remember that this will help to make configuration files which will work as long as the details you enter are correct and are correctly passed to the Server and Transcoder instances when run.&lt;br /&gt;
&lt;br /&gt;
Due to security issues when running web pages locally on the machine, you may find it is easier to use the externally hosted version on of the configuration builder which can be found at &amp;lt;nowiki&amp;gt;http://bogproghome.hopto.org/config_builder/config_builder.html&amp;lt;/nowiki&amp;gt; (this will use the latest version of the configuration builder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Glossary==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Client''' - This is a program run which will connect to the Server e.g. Winamp.&lt;br /&gt;
&lt;br /&gt;
'''DNAS''' - This is an abbreviation of Distributed Network Audio Server and refers to the way SHOUTcast systems are intended in providing a Stream to multiple Clients.&lt;br /&gt;
&lt;br /&gt;
'''Server''' - This is the program which is run on a machine to provide to Clients the Stream.&lt;br /&gt;
&lt;br /&gt;
'''Source''' - This is a program or an input device e.g. the line-in connection on the Server which is providing the data for the Stream.&lt;br /&gt;
'''&lt;br /&gt;
Stream''' - This is the data which is provided from the Server to the connected Client and is best thought of like the flow of water in a stream in how it goes from the Server (up stream) to the Client (down stream).&lt;br /&gt;
&lt;br /&gt;
'''Transcoder''' - This is the software which can take taken different media files and convert them to a different format which is then compatible what the Stream wanted.&lt;br /&gt;
&lt;br /&gt;
'''YP''' - This is an abbreviation of YellowPages and refers to the SHOUTcast Radio Directory listing which makes it easier for Clients to search for and then find your Stream.&lt;br /&gt;
&lt;br /&gt;
'''dsp_sc''' - This is the name the SHOUTcast Source DSP plug-in is otherwise known as.&lt;br /&gt;
&lt;br /&gt;
'''sc_trans''' - This is the name the SHOUTcast Transcoder is otherwise known as.&lt;br /&gt;
&lt;br /&gt;
'''sc_serv''' or '''sc_serv2''' - This is the name the SHOUTcast DNAS Server is otherwise known as.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_Getting_Started_Guide</id>
		<title>SHOUTcast Getting Started Guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_Getting_Started_Guide"/>
				<updated>2022-10-06T10:45:31Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Obtaining An Authhash */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
The aim of this page is to help guide you through the process of getting a SHOUTcast 2 system installed and broadcasting so people can connect to it through the SHOUTcast Radio Directory and hear the great content you have and want to provide to the world.&lt;br /&gt;
&lt;br /&gt;
It is assumed throughout the documentation that you have a basic knowledge of how to use the command-line console for the platform you decide to install the tools on i.e. how to run and control a program via the command-line console including being able to pass to it commands and the sending of signals as is appropriate to the platform being used. Windows users see [[#Windows_Users|section 1.2]].&lt;br /&gt;
&lt;br /&gt;
Additionally it is assumed you know how to setup your network connection and router to allow your server instance to be visible when broadcasting i.e. being able to open up and forward any required ports to allow your server instance to be visible to other machines on the internet as well as so the SHOUTcast Radio Directory can see you.&lt;br /&gt;
&lt;br /&gt;
This guide will refer you to other places in the documentation provided with the tools by showing references to the relevant file and section in the documentation files e.g. [[Source_DSP_Plug-in#Encoder_Tab|dsp_sc.txt - section 3.2.3]]. These referenced sections generally provide a lot more detail on the option or feature such as what would need to be set in the Transcoder configuration to allow for it to work with the DNAS Server being setup and so on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===What is SHOUTcast?===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If you are new to SHOUTcast then this is probably something you may have already asked or you are trying to find out.&lt;br /&gt;
&lt;br /&gt;
At its most basic, the SHOUTcast system is based around a ''''client + server'''' configuration which allows you to run a server (either directly or via a hosted service) which can then provide a stream or streams of the 'source' connected to the server to any clients which are connected to the server.&lt;br /&gt;
&lt;br /&gt;
The clients connect via a direct connection i.e. '''server &amp;lt;-&amp;gt;&amp;gt; client''' where the main flow of data (the stream data) will go from the server to the client.&lt;br /&gt;
&lt;br /&gt;
So a simple SHOUTcast setup would consist of the following:&lt;br /&gt;
&lt;br /&gt;
    Winamp + DSP  ?  DNAS [sc_serv]  ?   Winamp&lt;br /&gt;
      (Source)          (Server)        (Client)&lt;br /&gt;
&lt;br /&gt;
This is not the only way to setup a SHOUTcast system and more examples can be seen in the [[SHOUTcast_System_Overview|shoutcast_system_overview.txt]] which goes into more detail about the way SHOUTcast works as well as other ways of setting up a SHOUTcast system (see [[SHOUTcast_System_Overview#Example_SHOUTcast_System_Setups|section 2.0]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows Users===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The SHOUTcast DNAS Server and Transcoder are both built to be run from the command-line console (or as a native service if using this mode) which may appear to be daunting when most interaction done with the operating system is done via a graphical interface (GUI).&lt;br /&gt;
&lt;br /&gt;
If you are not acquainted with using the command-line console then you will need to find a guide which shows you the basics of using the command-line console along with getting you familiar with using it before trying to get any of the SHOUTcast tools running. If you search for 'how to use the command prompt' then you should find a guide which you can follow to help get you knowledgeable enough with using the command-line console.&lt;br /&gt;
&lt;br /&gt;
This may appear to be a step backwards if you previously used the v1 DNAS Server with its very basic GUI wrapper which otherwise was acting in the same manner as the command-line console just without the look of the operating system. However the v1 DNAS Server was at its core a command-line tool just like the v2 DNAS Server is now.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows Vista / 7 Specifics===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Due to the UAC feature (http://en.wikipedia.org/wiki/User_Account_Control) of these OSes you will need to remember the effect that this will have on editing and saving of files.&lt;br /&gt;
&lt;br /&gt;
By default the Windows versions of the installer will choose the native 'Program Files' folder '''(*)''' but unless you have disabled UAC or do not have full access to the folder then you will find attempts to save and edit any configuration files will not work.&lt;br /&gt;
&lt;br /&gt;
If this is an issue then you should either choose a different folder of all of the files or change where the tools are trying to save files and also to save any changes in your configuration files with a text editor which is running with administrator permissions.&lt;br /&gt;
&lt;br /&gt;
This is an unfortunate inconvenience though for making it easier to known where all of the configuration examples and documentation can be found is better. Finally there is no reason not to choose a different folder when installing the tools if you experience this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''(*)''' This will be slightly different depending on if you are using the 32-bit or 64-bit version of the OS as well as the language of the OS. As well the installer will pick the native 'Program Files' folder so installing the 32-bit version on the 64-bit OS will use 'Program Files (x86)' whereas installing the 64-bit version on the same OS will use 'Program Files'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Required?==&lt;br /&gt;
&lt;br /&gt;
To make your SHOUTcast system you will need the following software tools and hardware:&lt;br /&gt;
&lt;br /&gt;
:*A computer running on a supported operating system ([[#Supported_Operating_Systems|see section 2.1]])&lt;br /&gt;
:*SHOUTcast DNAS Server&lt;br /&gt;
:*An input source (Transcoder or Winamp plus Source DSP plug-in)&lt;br /&gt;
:*Media or DJ's or a Capture device i.e. the content you want to provide to people&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Operating Systems===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
There are versions of the DNAS Server and Transcoder available on the following operating systems:&lt;br /&gt;
&lt;br /&gt;
:*Windows 32-bit&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Windows 2000, XP, Vista, Windows 7, 8, 10&lt;br /&gt;
:*Windows 64-bit&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;64-bit versions of Windows XP, Vista, Windows 7, 8, 10&lt;br /&gt;
:*Linux 32-bit&lt;br /&gt;
:*Linux 64-bit&lt;br /&gt;
:*BSD 8.x &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; v2.4.7 only, not higher&lt;br /&gt;
:*Mac OS X (Intel)&amp;amp;nbsp;&amp;amp;nbsp; Should work on 10.4.4 and up though is only tested against 10.5.5 (DNAS v2.4.7 only, not higher)&lt;br /&gt;
&lt;br /&gt;
Remember to download the version of the tools which fits the operating system of the machine you will be installing the tools onto e.g. you could install the 32-bit Windows version on Windows 7 64-bit but could not install the 64-bit Windows version on Windows XP 32-bit.&lt;br /&gt;
&lt;br /&gt;
If using machines with different operating systems for different tasks then there should not be any problems with them working together e.g. Windows for the source and Linux for the server. This is due to the tools using the same communication style irrespective of the platform which they being run upon. If you do find an incompatibility then report it.&lt;br /&gt;
&lt;br /&gt;
==Getting Installed==&lt;br /&gt;
&lt;br /&gt;
When following the steps listed remember to only follow the parts which are applicable to the operating system and the tool or tools which you are attempting to install. If you do want to install multiple tools then it is better to work through the guide for one tool and then to do the same for the other one otherwise it may become confusing especially if you are new to command-line console tools and manual editting of configuration files.&lt;br /&gt;
&lt;br /&gt;
If you are not happy with manual editting of configuration files then there is also a configuration builder included as part of the Server and Transcoder distribution - see [[#Configuration_Builder|section 4.2]]. The aim of the configuration builder is to aid in the creation of matching configuration files for both tools which should work. It is still recommended that you do read the accompanying documentation so you can understand what it is that you are doing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Download the Correct Version===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
To begin with you will need to download the correct version of the tools you are going to use for the operating system you are setting up your SHOUTcast system on. See [[#Supported_Operating_Systems|see section 2.1]] for clarification of the supported operating systems for the tools.&lt;br /&gt;
&lt;br /&gt;
Current versions of the SHOUTcast tools can be obtained from:&lt;br /&gt;
&lt;br /&gt;
:*http://www.shoutcast.com/pricing&lt;br /&gt;
:*http://forums.winamp.com/showthread.php?t=324877 '''(*)'''&lt;br /&gt;
&lt;br /&gt;
Remember you will need to download a Server (sc_serv) and a source for the server which can be the Transcoder (sc_trans) or if using Windows then you can also use the Source DSP plug-in (dsp_sc) for Winamp (which may work on non-Windows systems using WINE but is not guaranteed and no support is offered with such a setup).&lt;br /&gt;
&lt;br /&gt;
Additionally there are a number of third party programs which can act as a source for a server instance. These are not covered as part of this guide and if you decide you want to use one of these programs then you will need to consult their help for getting it to work with the server instance.&lt;br /&gt;
&lt;br /&gt;
'''(*)''' This is a summary page and contains links to the latest versions of the tools such as when a new release has just been released or is being tested before it is  provided via the main SHOUTcast site download page.&lt;br /&gt;
&lt;br /&gt;
===Choose an Install Location===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Choose an install location for the tool you want to install (be it the Server, Transcoder or the source plug-in for Winamp) as is applicable for the SHOUTcast setup you are making on the machine.&lt;br /&gt;
&lt;br /&gt;
On Windows this choice is handled via the installer which selects a sensible new location or it re-uses the previous install location if doing an upgrade of an install which was previously made with a v2 tool installer. This can be changed if wanted during install.&lt;br /&gt;
&lt;br /&gt;
On Windows this choice is handled via the installer which selects a sensible new location or it re-uses the previous install location if doing an upgrade of an install which was previously made with a v2 tool installer. This can be changed if wanted during install and will be needed if you are running on a Windows system with UAC enabled ([[#Windows_Vista_.2F_7_Specifics|section 1.3]]).&lt;br /&gt;
&lt;br /&gt;
On non-Windows operating systems you can choose any location for the extracted location as long as you have the correct permission and access to the folder chosen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
On Windows you now need to run the installer, using the folder you have decided upon for the install location along with ensuring the option to install the documentation has been checked. Doing this will install the documentation and example configuration files which are included in the installer and referenced in later stages of this guide.&lt;br /&gt;
&lt;br /&gt;
Note: If using Windows Vista / 7 then make sure to install into a location which allows you to save and edit the configuration files and to save any log files into. More information can be found on what is required in [[#Windows_Vista_.2F_7_Specifics|see section 1.3]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On non-Windows you now need to extract the files for the tool(s) you have downloaded and ensure that you extract all contents of the archive into the install location decided on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Setting Up The Tools===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following sections are grouped together for what needs to be done in configuring and getting ready to start one or more of the officially provided tools. If you are not using one or more of them then you can skip the section as appropriate. Remember that you will need to have a valid source for use with the DNAS in order to have a listenable stream.&lt;br /&gt;
&lt;br /&gt;
 Ensuring the Server is properly configured is the most important thing as unless it&lt;br /&gt;
 is and running then none of the tools will be able to connect to it successfully.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Server===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====Server Configuration Setup====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Getting the Server started you first need to open up the '''sc_serv_simple.conf''' example file in the root of the install location. Work through the file's contents and then fill in or change any of the values required for how you want to use the server.&lt;br /&gt;
&lt;br /&gt;
The provided example will create a simple server configuration and contains the basic settings needed to allow for the server to work so it will appear in the SHOUTcast lists.&lt;br /&gt;
&lt;br /&gt;
The only thing missing from the example is an authhash which is required for a stream to be listed in the SHOUTcast Radio Directory when using the SHOUTcast 2 system. This needs to be obtained once the Server is running and a source has correctly connected to it. See [[#Obtaining_An_Authhash|section 3.5.4]] for how to do this one all other stages have been completed.&lt;br /&gt;
&lt;br /&gt;
Additionally there are example configuration files for the following scenarios:&lt;br /&gt;
&lt;br /&gt;
::'''sc_serv_basic''' - shows how to get a more multi-stream setup working&lt;br /&gt;
::'''sc_serv_public''' - shows how to make a public server from sc_serv_basic&lt;br /&gt;
::'''sc_serv_relay''' - shows how to relay another source&lt;br /&gt;
&lt;br /&gt;
There is more information about these example configurations in sc_serv2.txt - [[SHOUTcast_DNAS_Server_2#Example_Configurations|section 10]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Starting the Server====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
For simplicity we will only run the Server in the command-line console though when your Server setup is completed and everything is known to be working correctly then running as a service (Windows) or as a daemon (non-Windows) can be done to automate loading of the Server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To start the Server instance you now need to enter the correct command string for the operating system you are using in the command-line console like the following which assumes using the base example configuration file in the same directory as the Server program file:&lt;br /&gt;
&lt;br /&gt;
::For Windows     -  '''sc_serv.exe sc_serv_simple.conf'''&lt;br /&gt;
::For non-Windows  -  '''./sc_serv sc_serv_simple.conf'''&lt;br /&gt;
&lt;br /&gt;
If you use one of the other example configuration files or a different one then you can just change '''sc_serv_simple.conf''' to the name or full path to the configuration file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For more information on running the Server see [[SHOUTcast_DNAS_Server_2|sc_serv2.txt]] and the relevant section for the operating system you are using:&lt;br /&gt;
&lt;br /&gt;
::Windows - [[SHOUTcast_DNAS_Server_2#Run_as_a_Non-Service_in_the_Console|3.2.3]] (or [[SHOUTcast_DNAS_Server_2#Windows|3.2]] for more advanced options)&lt;br /&gt;
::Linux / Mac OS X / BSD - [[SHOUTcast_DNAS_Server_2#Run_as_a_Non-Daemon|3.3.3]] (or [[SHOUTcast_DNAS_Server_2#Linux_.2F_Mac_OS_X_.2F_BSD|3.3]] for more advanced options)&lt;br /&gt;
&lt;br /&gt;
====Errors Running the Server====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Skip this if you experience no error reports when trying to run the Server.&lt;br /&gt;
&lt;br /&gt;
If an issue is reported in the console output from the Server then you first need to look at the actual issue being reported which will be prefixed with an 'E' at the start of the message in the console output.&lt;br /&gt;
&lt;br /&gt;
The error message shown should make it clear as to what is wrong e.g. passing an invalid or missing configuration file passed would cause an error along with closing the server instance.&lt;br /&gt;
&lt;br /&gt;
If the error message still does not make any sense then either double-check [[SHOUTcast_DNAS_Server_2|sc_serv2.txt]] or goto the SHOUTcast support forums http://forums.winamp.com/forumdisplay.php?f=140 and post the question along with a copy of the log including the error message.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Obtaining An Authhash====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
With the Server now running, you will need to obtain an authhash for any stream(s) you want to be listed in the Shoutcast Radio Directory. This is done via the [https://radiomanager.shoutcast.com/ RadioManager]. See [[SHOUTcast_Authhash_Management|Shoutcast Authhash Management]] for further details.&lt;br /&gt;
&lt;br /&gt;
===Transcoder===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====MP3 Streaming License====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Skip this if you are not setting up the Transcoder for MP3 streaming.&lt;br /&gt;
&lt;br /&gt;
If you want to provide an MP3 stream and are going to use the Transcoder then you will need to obtain a license key in-order to unlock the support to do this in the tool. Details on how to obtain this can be found in [[SHOUTcast_DNAS_Transcoder_2#Registering_for_MP3_Stream_Encoding|sc_trans.txt - section 2.5]].&lt;br /&gt;
&lt;br /&gt;
 AAC encoding does not need you to purchase a license as one has&lt;br /&gt;
 already been paid for you as detailed in [[SHOUTcast_DNAS_Transcoder_2#Why_Does_AAC_Encoding_Not_Require_a_License_Key.3F|sc_trans.txt - section 2.5.1]].&lt;br /&gt;
&lt;br /&gt;
Once the key has been obtained you need to add the key and your name into the 'unlockkeyname' and 'unlockkeycode' values in you configuration file exactly as they have been received. So if your key is '123456' and you have used 'Bob' as the registered name, you would add the following to your Transcoder configuration file:&lt;br /&gt;
&lt;br /&gt;
    unlockkeyname=Bob&lt;br /&gt;
    unlockkeycode=123456&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Transcoder Configuration Setup====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Getting the Transcoder started you first need to open up the sc_trans_simple.conf example file in the root of the install location. Work through the file's contents and then fill in or change any of the values required for how you want to use the server.&lt;br /&gt;
&lt;br /&gt;
If you are wanting to use MP3 encoding then make sure you have followed '[[#MP3_Streaming_License|section 3.6.1]]' and entered the required 'unlockkeyname' and 'unlockkeycode' values in you configuration file exactly as they have been received. You will be informed when later running the Transcoder if there is an issue with the MP3 license details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additionally there are example configuration files for the following scenarios:&lt;br /&gt;
&lt;br /&gt;
::'''sc_trans_basic''' - shows how to get a basic setup without relying on the Server&lt;br /&gt;
::'''sc_trans_capture''' - shows how to use a capture device&lt;br /&gt;
::'''sc_trans_dj''' - shows how to setup a DJ connection&lt;br /&gt;
::'''sc_trans_playlist''' - shows how to use scheduled playlists&lt;br /&gt;
&lt;br /&gt;
There is more information about these example configurations in [[SHOUTcast_DNAS_Transcoder_2#Example_Configurations|sc_trans.txt - section 11]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Starting the Transcoder====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
For simplicity we will only run the Transcoder in the command-line console though when your Transcoder setup is completed and everything is known to be working correctly then running as a service (Windows) or as a daemon (non-Windows) can be done to automate loading of the Transcoder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To start the Transcoder instance you now need to enter the correct command string for the operating system you are using into the command-line console like the following which assumes using the base example configuration file in the same directory as the Transcoder program file:&lt;br /&gt;
&lt;br /&gt;
::For Windows     -  '''sc_trans.exe sc_trans_simple.conf'''&lt;br /&gt;
::For non-Window  -  '''./sc_trans sc_trans_simple.conf'''&lt;br /&gt;
&lt;br /&gt;
If you use one of the other example configuration files or a different one then you can just change '''sc_trans_simple.conf''' to the name or full path to the configuration file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For more information on running the Transcoder see [[SHOUTcast_DNAS_Transcoder_2|sc_trans.txt]] and the relevant section for the operating system you are using:&lt;br /&gt;
&lt;br /&gt;
::Windows - [[SHOUTcast_DNAS_Transcoder_2#Run_as_a_Non-Service_in_the_Console|2.2.3]] (or [[SHOUTcast_DNAS_Transcoder_2#Windows|2.2]] for more advanced options)&lt;br /&gt;
::Linux / Mac OS X / BSD - [[SHOUTcast_DNAS_Transcoder_2#Run_as_a_Non-Daemon|2.3.3]] (or [[SHOUTcast_DNAS_Transcoder_2#Linux_.2F_Mac_OS_X_.2F_BSD|2.3]] for more advanced options)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Errors Running the Transcoder====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Skip this if you experience no error reports when trying to run the Transcoder.&lt;br /&gt;
&lt;br /&gt;
If an issue is reported in the console output from the Server then you first need to look at the actual issue being reported which will be prefixed with an 'E' at the start of the message in the console output.&lt;br /&gt;
&lt;br /&gt;
The error message shown should make it clear as to what is wrong e.g. passing an invalid or missing configuration file passed would cause an error along with closing the server instance.&lt;br /&gt;
&lt;br /&gt;
If the error message still does not make any sense then either double-check [[SHOUTcast_DNAS_Transcoder_2|sc_trans.txt]] or goto the SHOUTcast support forums http://forums.winamp.com/forumdisplay.php?f=140 and post the question along with a copy of the log including the error message.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Source DSP===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Install Source DSP====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Skip this if you are not setting up the Source DSP plug-in for MP3 streaming.&lt;br /&gt;
&lt;br /&gt;
If you want to provide an MP3 stream and are going to use Winamp and the Source DSP then you just need to make sure to install the Source DSP plug-in and select the MP3 encoder on the 'Output -&amp;gt; Encoder' tab (as detailed in [[Source_DSP_Plug-in#Encoder_Tab|dsp_sc.txt - section 3.2.3]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Configuring the Source DSP====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
For getting Winamp and the Source DSP plug-in setup look through the [[Source_DSP_Plug-in_Configuration_Examples|dsp_sc_config.txt]] file and enter in the relevant values as described in it once you have setup:&lt;br /&gt;
&lt;br /&gt;
::the Server (from [[#Server_Configuration_Setup|section 3.5.1]]) if you are going to use the plug-in as the only source&lt;br /&gt;
:and / or&lt;br /&gt;
::the Transcoder (from [[#Transcoder_Configuration_Setup|section 3.6.2]]) if it is to act as a DJ source&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Starting the Source DSP====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Using the Source DSP plug-in requires the plug-in to be set as the current DSP plug-in which is done by going to 'Winamp Preferences -&amp;gt; Plug-ins -&amp;gt; DSP/Effect' and selecting 'Nullsoft SHOUTcast Source DSP &amp;lt;version&amp;gt;' (*) from the plug-in's list.&lt;br /&gt;
&lt;br /&gt;
When this entry in the list is selected then the plug-in's configuration window will be opened and from there the plug-in will be in a state where a connection can be started via the 'Connect' button on the 'Output' tab.&lt;br /&gt;
&lt;br /&gt;
(*) The string &amp;lt;version&amp;gt; would be the actual version of the plug-in which is installed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Completion===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You should now be up and running with a working SHOUTcast system. Happy broadcasting!&lt;br /&gt;
&lt;br /&gt;
If things are still not running then go back over the section(s) relating to the tool(s) you are having issues with and make sure that you have followed things otherwise please see the next section ([[#Further Information|section 4.0]]) on what you can do to get help in trying to resolve the issues you are experiencing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
&lt;br /&gt;
If you have followed the setup steps detailed in [[#Getting_Installed|section 3]] and are still having issues with getting the tools running or working together to achieve a certain result then first make sure you have the currently supported version of the tool(s) in case it is a bug in the tool(s) which has already been fixed. You can check this via the links referenced in [[#Download_the_Correct_Version|3.1]] and especially the forum link of the most current versions available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If installing the latest version does not help or if you already are using the latest version of the tool(s) or if the feature is not available then please goto the SHOUTcast support forums: http://forums.winamp.com/forumdisplay.php?f=140&lt;br /&gt;
&lt;br /&gt;
Make sure if you are reporting issues to provide as much information as possible for the SHOUTcast users who use the tools including the following information:&lt;br /&gt;
&lt;br /&gt;
:*Your SHOUTcast setup including all versions of the tools being used&lt;br /&gt;
:*The issue you are experiencing&lt;br /&gt;
:*The steps needed to reproduce the issue&lt;br /&gt;
:*Anything else useful especially if you have been tinkering with options before the issue appeared&lt;br /&gt;
&lt;br /&gt;
Remember when you post an issue that providing as much information in a clear and concise manner will make it easier for anyone who can help to be able to understand the issue you have. This is important as not everyone visiting the forum are native English speakers.&lt;br /&gt;
&lt;br /&gt;
Finally you must remain civil to other users (however annoying or frustrating the issue is that you are experiencing) as most users will not want to make a reply to someone who does not appear to be civil - if you think about it from the other view of what you would think when looking at such a post then this should make sense to keep things civil.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Related Documentation===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
All documentation can be found online - http://wiki.winamp.com/wiki/SHOUTcast_Broadcaster which will contain the documentation for the currently released versions of the tools.&lt;br /&gt;
&lt;br /&gt;
Additionally, in the install location there will be a 'docs' folder (as long as it has been chosen to be installed [Windows] or extracted [non-Windows] which contains text only versions of the main documentation relating to the SHOUTcast tool(s) installed as well as any related documentation to the other tools which may be of use in getting a SHOUTcast system configured and running&lt;br /&gt;
e.g. the docs\dsp_sc folder contains information on the Source DSP plug-in so you can use it to setup the plug-in as a source or so you can know what to tell a DJ so they can connect to your SHOUTcast system.&lt;br /&gt;
&lt;br /&gt;
Please remember that with the SHOUTcast tools being designed to work on both the Windows and non-Windows operating systems, there is information included in the documentation which relates to either of these platforms. So when reading through the documentation, only follow the information which relates to the operating system you are using&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Configuration Builder===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Included in the SHOUTcast DNAS Server and Transcoder installers / archives (depending on the operating system you are using) include a Configuration Builder which create a paired configuration file for the Server and the Transcoder. This can be found in the folder 'config_builder'.&lt;br /&gt;
&lt;br /&gt;
This is a very useful tool especially when making a new setup or if you find you are not happy with manually editing configuration files. Do remember that this will help to make configuration files which will work as long as the details you enter are correct and are correctly passed to the Server and Transcoder instances when run.&lt;br /&gt;
&lt;br /&gt;
Due to security issues when running web pages locally on the machine, you may find it is easier to use the externally hosted version on of the configuration builder which can be found at &amp;lt;nowiki&amp;gt;http://bogproghome.hopto.org/config_builder/config_builder.html&amp;lt;/nowiki&amp;gt; (this will use the latest version of the configuration builder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Glossary==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Client''' - This is a program run which will connect to the Server e.g. Winamp.&lt;br /&gt;
&lt;br /&gt;
'''DNAS''' - This is an abbreviation of Distributed Network Audio Server and refers to the way SHOUTcast systems are intended in providing a Stream to multiple Clients.&lt;br /&gt;
&lt;br /&gt;
'''Server''' - This is the program which is run on a machine to provide to Clients the Stream.&lt;br /&gt;
&lt;br /&gt;
'''Source''' - This is a program or an input device e.g. the line-in connection on the Server which is providing the data for the Stream.&lt;br /&gt;
'''&lt;br /&gt;
Stream''' - This is the data which is provided from the Server to the connected Client and is best thought of like the flow of water in a stream in how it goes from the Server (up stream) to the Client (down stream).&lt;br /&gt;
&lt;br /&gt;
'''Transcoder''' - This is the software which can take taken different media files and convert them to a different format which is then compatible what the Stream wanted.&lt;br /&gt;
&lt;br /&gt;
'''YP''' - This is an abbreviation of YellowPages and refers to the SHOUTcast Radio Directory listing which makes it easier for Clients to search for and then find your Stream.&lt;br /&gt;
&lt;br /&gt;
'''dsp_sc''' - This is the name the SHOUTcast Source DSP plug-in is otherwise known as.&lt;br /&gt;
&lt;br /&gt;
'''sc_trans''' - This is the name the SHOUTcast Transcoder is otherwise known as.&lt;br /&gt;
&lt;br /&gt;
'''sc_serv''' or '''sc_serv2''' - This is the name the SHOUTcast DNAS Server is otherwise known as.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_Getting_Started_Guide</id>
		<title>SHOUTcast Getting Started Guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_Getting_Started_Guide"/>
				<updated>2022-10-06T10:41:52Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Obtaining An Authhash */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
The aim of this page is to help guide you through the process of getting a SHOUTcast 2 system installed and broadcasting so people can connect to it through the SHOUTcast Radio Directory and hear the great content you have and want to provide to the world.&lt;br /&gt;
&lt;br /&gt;
It is assumed throughout the documentation that you have a basic knowledge of how to use the command-line console for the platform you decide to install the tools on i.e. how to run and control a program via the command-line console including being able to pass to it commands and the sending of signals as is appropriate to the platform being used. Windows users see [[#Windows_Users|section 1.2]].&lt;br /&gt;
&lt;br /&gt;
Additionally it is assumed you know how to setup your network connection and router to allow your server instance to be visible when broadcasting i.e. being able to open up and forward any required ports to allow your server instance to be visible to other machines on the internet as well as so the SHOUTcast Radio Directory can see you.&lt;br /&gt;
&lt;br /&gt;
This guide will refer you to other places in the documentation provided with the tools by showing references to the relevant file and section in the documentation files e.g. [[Source_DSP_Plug-in#Encoder_Tab|dsp_sc.txt - section 3.2.3]]. These referenced sections generally provide a lot more detail on the option or feature such as what would need to be set in the Transcoder configuration to allow for it to work with the DNAS Server being setup and so on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===What is SHOUTcast?===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If you are new to SHOUTcast then this is probably something you may have already asked or you are trying to find out.&lt;br /&gt;
&lt;br /&gt;
At its most basic, the SHOUTcast system is based around a ''''client + server'''' configuration which allows you to run a server (either directly or via a hosted service) which can then provide a stream or streams of the 'source' connected to the server to any clients which are connected to the server.&lt;br /&gt;
&lt;br /&gt;
The clients connect via a direct connection i.e. '''server &amp;lt;-&amp;gt;&amp;gt; client''' where the main flow of data (the stream data) will go from the server to the client.&lt;br /&gt;
&lt;br /&gt;
So a simple SHOUTcast setup would consist of the following:&lt;br /&gt;
&lt;br /&gt;
    Winamp + DSP  ?  DNAS [sc_serv]  ?   Winamp&lt;br /&gt;
      (Source)          (Server)        (Client)&lt;br /&gt;
&lt;br /&gt;
This is not the only way to setup a SHOUTcast system and more examples can be seen in the [[SHOUTcast_System_Overview|shoutcast_system_overview.txt]] which goes into more detail about the way SHOUTcast works as well as other ways of setting up a SHOUTcast system (see [[SHOUTcast_System_Overview#Example_SHOUTcast_System_Setups|section 2.0]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows Users===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The SHOUTcast DNAS Server and Transcoder are both built to be run from the command-line console (or as a native service if using this mode) which may appear to be daunting when most interaction done with the operating system is done via a graphical interface (GUI).&lt;br /&gt;
&lt;br /&gt;
If you are not acquainted with using the command-line console then you will need to find a guide which shows you the basics of using the command-line console along with getting you familiar with using it before trying to get any of the SHOUTcast tools running. If you search for 'how to use the command prompt' then you should find a guide which you can follow to help get you knowledgeable enough with using the command-line console.&lt;br /&gt;
&lt;br /&gt;
This may appear to be a step backwards if you previously used the v1 DNAS Server with its very basic GUI wrapper which otherwise was acting in the same manner as the command-line console just without the look of the operating system. However the v1 DNAS Server was at its core a command-line tool just like the v2 DNAS Server is now.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows Vista / 7 Specifics===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Due to the UAC feature (http://en.wikipedia.org/wiki/User_Account_Control) of these OSes you will need to remember the effect that this will have on editing and saving of files.&lt;br /&gt;
&lt;br /&gt;
By default the Windows versions of the installer will choose the native 'Program Files' folder '''(*)''' but unless you have disabled UAC or do not have full access to the folder then you will find attempts to save and edit any configuration files will not work.&lt;br /&gt;
&lt;br /&gt;
If this is an issue then you should either choose a different folder of all of the files or change where the tools are trying to save files and also to save any changes in your configuration files with a text editor which is running with administrator permissions.&lt;br /&gt;
&lt;br /&gt;
This is an unfortunate inconvenience though for making it easier to known where all of the configuration examples and documentation can be found is better. Finally there is no reason not to choose a different folder when installing the tools if you experience this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''(*)''' This will be slightly different depending on if you are using the 32-bit or 64-bit version of the OS as well as the language of the OS. As well the installer will pick the native 'Program Files' folder so installing the 32-bit version on the 64-bit OS will use 'Program Files (x86)' whereas installing the 64-bit version on the same OS will use 'Program Files'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Required?==&lt;br /&gt;
&lt;br /&gt;
To make your SHOUTcast system you will need the following software tools and hardware:&lt;br /&gt;
&lt;br /&gt;
:*A computer running on a supported operating system ([[#Supported_Operating_Systems|see section 2.1]])&lt;br /&gt;
:*SHOUTcast DNAS Server&lt;br /&gt;
:*An input source (Transcoder or Winamp plus Source DSP plug-in)&lt;br /&gt;
:*Media or DJ's or a Capture device i.e. the content you want to provide to people&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Operating Systems===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
There are versions of the DNAS Server and Transcoder available on the following operating systems:&lt;br /&gt;
&lt;br /&gt;
:*Windows 32-bit&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Windows 2000, XP, Vista, Windows 7, 8, 10&lt;br /&gt;
:*Windows 64-bit&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;64-bit versions of Windows XP, Vista, Windows 7, 8, 10&lt;br /&gt;
:*Linux 32-bit&lt;br /&gt;
:*Linux 64-bit&lt;br /&gt;
:*BSD 8.x &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; v2.4.7 only, not higher&lt;br /&gt;
:*Mac OS X (Intel)&amp;amp;nbsp;&amp;amp;nbsp; Should work on 10.4.4 and up though is only tested against 10.5.5 (DNAS v2.4.7 only, not higher)&lt;br /&gt;
&lt;br /&gt;
Remember to download the version of the tools which fits the operating system of the machine you will be installing the tools onto e.g. you could install the 32-bit Windows version on Windows 7 64-bit but could not install the 64-bit Windows version on Windows XP 32-bit.&lt;br /&gt;
&lt;br /&gt;
If using machines with different operating systems for different tasks then there should not be any problems with them working together e.g. Windows for the source and Linux for the server. This is due to the tools using the same communication style irrespective of the platform which they being run upon. If you do find an incompatibility then report it.&lt;br /&gt;
&lt;br /&gt;
==Getting Installed==&lt;br /&gt;
&lt;br /&gt;
When following the steps listed remember to only follow the parts which are applicable to the operating system and the tool or tools which you are attempting to install. If you do want to install multiple tools then it is better to work through the guide for one tool and then to do the same for the other one otherwise it may become confusing especially if you are new to command-line console tools and manual editting of configuration files.&lt;br /&gt;
&lt;br /&gt;
If you are not happy with manual editting of configuration files then there is also a configuration builder included as part of the Server and Transcoder distribution - see [[#Configuration_Builder|section 4.2]]. The aim of the configuration builder is to aid in the creation of matching configuration files for both tools which should work. It is still recommended that you do read the accompanying documentation so you can understand what it is that you are doing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Download the Correct Version===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
To begin with you will need to download the correct version of the tools you are going to use for the operating system you are setting up your SHOUTcast system on. See [[#Supported_Operating_Systems|see section 2.1]] for clarification of the supported operating systems for the tools.&lt;br /&gt;
&lt;br /&gt;
Current versions of the SHOUTcast tools can be obtained from:&lt;br /&gt;
&lt;br /&gt;
:*http://www.shoutcast.com/pricing&lt;br /&gt;
:*http://forums.winamp.com/showthread.php?t=324877 '''(*)'''&lt;br /&gt;
&lt;br /&gt;
Remember you will need to download a Server (sc_serv) and a source for the server which can be the Transcoder (sc_trans) or if using Windows then you can also use the Source DSP plug-in (dsp_sc) for Winamp (which may work on non-Windows systems using WINE but is not guaranteed and no support is offered with such a setup).&lt;br /&gt;
&lt;br /&gt;
Additionally there are a number of third party programs which can act as a source for a server instance. These are not covered as part of this guide and if you decide you want to use one of these programs then you will need to consult their help for getting it to work with the server instance.&lt;br /&gt;
&lt;br /&gt;
'''(*)''' This is a summary page and contains links to the latest versions of the tools such as when a new release has just been released or is being tested before it is  provided via the main SHOUTcast site download page.&lt;br /&gt;
&lt;br /&gt;
===Choose an Install Location===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Choose an install location for the tool you want to install (be it the Server, Transcoder or the source plug-in for Winamp) as is applicable for the SHOUTcast setup you are making on the machine.&lt;br /&gt;
&lt;br /&gt;
On Windows this choice is handled via the installer which selects a sensible new location or it re-uses the previous install location if doing an upgrade of an install which was previously made with a v2 tool installer. This can be changed if wanted during install.&lt;br /&gt;
&lt;br /&gt;
On Windows this choice is handled via the installer which selects a sensible new location or it re-uses the previous install location if doing an upgrade of an install which was previously made with a v2 tool installer. This can be changed if wanted during install and will be needed if you are running on a Windows system with UAC enabled ([[#Windows_Vista_.2F_7_Specifics|section 1.3]]).&lt;br /&gt;
&lt;br /&gt;
On non-Windows operating systems you can choose any location for the extracted location as long as you have the correct permission and access to the folder chosen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
On Windows you now need to run the installer, using the folder you have decided upon for the install location along with ensuring the option to install the documentation has been checked. Doing this will install the documentation and example configuration files which are included in the installer and referenced in later stages of this guide.&lt;br /&gt;
&lt;br /&gt;
Note: If using Windows Vista / 7 then make sure to install into a location which allows you to save and edit the configuration files and to save any log files into. More information can be found on what is required in [[#Windows_Vista_.2F_7_Specifics|see section 1.3]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On non-Windows you now need to extract the files for the tool(s) you have downloaded and ensure that you extract all contents of the archive into the install location decided on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Setting Up The Tools===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following sections are grouped together for what needs to be done in configuring and getting ready to start one or more of the officially provided tools. If you are not using one or more of them then you can skip the section as appropriate. Remember that you will need to have a valid source for use with the DNAS in order to have a listenable stream.&lt;br /&gt;
&lt;br /&gt;
 Ensuring the Server is properly configured is the most important thing as unless it&lt;br /&gt;
 is and running then none of the tools will be able to connect to it successfully.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Server===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====Server Configuration Setup====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Getting the Server started you first need to open up the '''sc_serv_simple.conf''' example file in the root of the install location. Work through the file's contents and then fill in or change any of the values required for how you want to use the server.&lt;br /&gt;
&lt;br /&gt;
The provided example will create a simple server configuration and contains the basic settings needed to allow for the server to work so it will appear in the SHOUTcast lists.&lt;br /&gt;
&lt;br /&gt;
The only thing missing from the example is an authhash which is required for a stream to be listed in the SHOUTcast Radio Directory when using the SHOUTcast 2 system. This needs to be obtained once the Server is running and a source has correctly connected to it. See [[#Obtaining_An_Authhash|section 3.5.4]] for how to do this one all other stages have been completed.&lt;br /&gt;
&lt;br /&gt;
Additionally there are example configuration files for the following scenarios:&lt;br /&gt;
&lt;br /&gt;
::'''sc_serv_basic''' - shows how to get a more multi-stream setup working&lt;br /&gt;
::'''sc_serv_public''' - shows how to make a public server from sc_serv_basic&lt;br /&gt;
::'''sc_serv_relay''' - shows how to relay another source&lt;br /&gt;
&lt;br /&gt;
There is more information about these example configurations in sc_serv2.txt - [[SHOUTcast_DNAS_Server_2#Example_Configurations|section 10]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Starting the Server====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
For simplicity we will only run the Server in the command-line console though when your Server setup is completed and everything is known to be working correctly then running as a service (Windows) or as a daemon (non-Windows) can be done to automate loading of the Server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To start the Server instance you now need to enter the correct command string for the operating system you are using in the command-line console like the following which assumes using the base example configuration file in the same directory as the Server program file:&lt;br /&gt;
&lt;br /&gt;
::For Windows     -  '''sc_serv.exe sc_serv_simple.conf'''&lt;br /&gt;
::For non-Windows  -  '''./sc_serv sc_serv_simple.conf'''&lt;br /&gt;
&lt;br /&gt;
If you use one of the other example configuration files or a different one then you can just change '''sc_serv_simple.conf''' to the name or full path to the configuration file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For more information on running the Server see [[SHOUTcast_DNAS_Server_2|sc_serv2.txt]] and the relevant section for the operating system you are using:&lt;br /&gt;
&lt;br /&gt;
::Windows - [[SHOUTcast_DNAS_Server_2#Run_as_a_Non-Service_in_the_Console|3.2.3]] (or [[SHOUTcast_DNAS_Server_2#Windows|3.2]] for more advanced options)&lt;br /&gt;
::Linux / Mac OS X / BSD - [[SHOUTcast_DNAS_Server_2#Run_as_a_Non-Daemon|3.3.3]] (or [[SHOUTcast_DNAS_Server_2#Linux_.2F_Mac_OS_X_.2F_BSD|3.3]] for more advanced options)&lt;br /&gt;
&lt;br /&gt;
====Errors Running the Server====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Skip this if you experience no error reports when trying to run the Server.&lt;br /&gt;
&lt;br /&gt;
If an issue is reported in the console output from the Server then you first need to look at the actual issue being reported which will be prefixed with an 'E' at the start of the message in the console output.&lt;br /&gt;
&lt;br /&gt;
The error message shown should make it clear as to what is wrong e.g. passing an invalid or missing configuration file passed would cause an error along with closing the server instance.&lt;br /&gt;
&lt;br /&gt;
If the error message still does not make any sense then either double-check [[SHOUTcast_DNAS_Server_2|sc_serv2.txt]] or goto the SHOUTcast support forums http://forums.winamp.com/forumdisplay.php?f=140 and post the question along with a copy of the log including the error message.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Obtaining An Authhash====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
With the Server now running, you will need to obtain an authhash for any stream(s) you want to be listed in the Shoutcast Radio Directory. This is done via the [https://radiomanager.shoutcast.com/|RadioManager]. See [[SHOUTcast_Authhash_Management|Shoutcast Authhash Management]] for further details.&lt;br /&gt;
&lt;br /&gt;
===Transcoder===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====MP3 Streaming License====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Skip this if you are not setting up the Transcoder for MP3 streaming.&lt;br /&gt;
&lt;br /&gt;
If you want to provide an MP3 stream and are going to use the Transcoder then you will need to obtain a license key in-order to unlock the support to do this in the tool. Details on how to obtain this can be found in [[SHOUTcast_DNAS_Transcoder_2#Registering_for_MP3_Stream_Encoding|sc_trans.txt - section 2.5]].&lt;br /&gt;
&lt;br /&gt;
 AAC encoding does not need you to purchase a license as one has&lt;br /&gt;
 already been paid for you as detailed in [[SHOUTcast_DNAS_Transcoder_2#Why_Does_AAC_Encoding_Not_Require_a_License_Key.3F|sc_trans.txt - section 2.5.1]].&lt;br /&gt;
&lt;br /&gt;
Once the key has been obtained you need to add the key and your name into the 'unlockkeyname' and 'unlockkeycode' values in you configuration file exactly as they have been received. So if your key is '123456' and you have used 'Bob' as the registered name, you would add the following to your Transcoder configuration file:&lt;br /&gt;
&lt;br /&gt;
    unlockkeyname=Bob&lt;br /&gt;
    unlockkeycode=123456&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Transcoder Configuration Setup====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Getting the Transcoder started you first need to open up the sc_trans_simple.conf example file in the root of the install location. Work through the file's contents and then fill in or change any of the values required for how you want to use the server.&lt;br /&gt;
&lt;br /&gt;
If you are wanting to use MP3 encoding then make sure you have followed '[[#MP3_Streaming_License|section 3.6.1]]' and entered the required 'unlockkeyname' and 'unlockkeycode' values in you configuration file exactly as they have been received. You will be informed when later running the Transcoder if there is an issue with the MP3 license details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additionally there are example configuration files for the following scenarios:&lt;br /&gt;
&lt;br /&gt;
::'''sc_trans_basic''' - shows how to get a basic setup without relying on the Server&lt;br /&gt;
::'''sc_trans_capture''' - shows how to use a capture device&lt;br /&gt;
::'''sc_trans_dj''' - shows how to setup a DJ connection&lt;br /&gt;
::'''sc_trans_playlist''' - shows how to use scheduled playlists&lt;br /&gt;
&lt;br /&gt;
There is more information about these example configurations in [[SHOUTcast_DNAS_Transcoder_2#Example_Configurations|sc_trans.txt - section 11]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Starting the Transcoder====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
For simplicity we will only run the Transcoder in the command-line console though when your Transcoder setup is completed and everything is known to be working correctly then running as a service (Windows) or as a daemon (non-Windows) can be done to automate loading of the Transcoder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To start the Transcoder instance you now need to enter the correct command string for the operating system you are using into the command-line console like the following which assumes using the base example configuration file in the same directory as the Transcoder program file:&lt;br /&gt;
&lt;br /&gt;
::For Windows     -  '''sc_trans.exe sc_trans_simple.conf'''&lt;br /&gt;
::For non-Window  -  '''./sc_trans sc_trans_simple.conf'''&lt;br /&gt;
&lt;br /&gt;
If you use one of the other example configuration files or a different one then you can just change '''sc_trans_simple.conf''' to the name or full path to the configuration file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For more information on running the Transcoder see [[SHOUTcast_DNAS_Transcoder_2|sc_trans.txt]] and the relevant section for the operating system you are using:&lt;br /&gt;
&lt;br /&gt;
::Windows - [[SHOUTcast_DNAS_Transcoder_2#Run_as_a_Non-Service_in_the_Console|2.2.3]] (or [[SHOUTcast_DNAS_Transcoder_2#Windows|2.2]] for more advanced options)&lt;br /&gt;
::Linux / Mac OS X / BSD - [[SHOUTcast_DNAS_Transcoder_2#Run_as_a_Non-Daemon|2.3.3]] (or [[SHOUTcast_DNAS_Transcoder_2#Linux_.2F_Mac_OS_X_.2F_BSD|2.3]] for more advanced options)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Errors Running the Transcoder====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Skip this if you experience no error reports when trying to run the Transcoder.&lt;br /&gt;
&lt;br /&gt;
If an issue is reported in the console output from the Server then you first need to look at the actual issue being reported which will be prefixed with an 'E' at the start of the message in the console output.&lt;br /&gt;
&lt;br /&gt;
The error message shown should make it clear as to what is wrong e.g. passing an invalid or missing configuration file passed would cause an error along with closing the server instance.&lt;br /&gt;
&lt;br /&gt;
If the error message still does not make any sense then either double-check [[SHOUTcast_DNAS_Transcoder_2|sc_trans.txt]] or goto the SHOUTcast support forums http://forums.winamp.com/forumdisplay.php?f=140 and post the question along with a copy of the log including the error message.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Source DSP===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Install Source DSP====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Skip this if you are not setting up the Source DSP plug-in for MP3 streaming.&lt;br /&gt;
&lt;br /&gt;
If you want to provide an MP3 stream and are going to use Winamp and the Source DSP then you just need to make sure to install the Source DSP plug-in and select the MP3 encoder on the 'Output -&amp;gt; Encoder' tab (as detailed in [[Source_DSP_Plug-in#Encoder_Tab|dsp_sc.txt - section 3.2.3]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Configuring the Source DSP====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
For getting Winamp and the Source DSP plug-in setup look through the [[Source_DSP_Plug-in_Configuration_Examples|dsp_sc_config.txt]] file and enter in the relevant values as described in it once you have setup:&lt;br /&gt;
&lt;br /&gt;
::the Server (from [[#Server_Configuration_Setup|section 3.5.1]]) if you are going to use the plug-in as the only source&lt;br /&gt;
:and / or&lt;br /&gt;
::the Transcoder (from [[#Transcoder_Configuration_Setup|section 3.6.2]]) if it is to act as a DJ source&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Starting the Source DSP====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Using the Source DSP plug-in requires the plug-in to be set as the current DSP plug-in which is done by going to 'Winamp Preferences -&amp;gt; Plug-ins -&amp;gt; DSP/Effect' and selecting 'Nullsoft SHOUTcast Source DSP &amp;lt;version&amp;gt;' (*) from the plug-in's list.&lt;br /&gt;
&lt;br /&gt;
When this entry in the list is selected then the plug-in's configuration window will be opened and from there the plug-in will be in a state where a connection can be started via the 'Connect' button on the 'Output' tab.&lt;br /&gt;
&lt;br /&gt;
(*) The string &amp;lt;version&amp;gt; would be the actual version of the plug-in which is installed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Completion===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You should now be up and running with a working SHOUTcast system. Happy broadcasting!&lt;br /&gt;
&lt;br /&gt;
If things are still not running then go back over the section(s) relating to the tool(s) you are having issues with and make sure that you have followed things otherwise please see the next section ([[#Further Information|section 4.0]]) on what you can do to get help in trying to resolve the issues you are experiencing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
&lt;br /&gt;
If you have followed the setup steps detailed in [[#Getting_Installed|section 3]] and are still having issues with getting the tools running or working together to achieve a certain result then first make sure you have the currently supported version of the tool(s) in case it is a bug in the tool(s) which has already been fixed. You can check this via the links referenced in [[#Download_the_Correct_Version|3.1]] and especially the forum link of the most current versions available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If installing the latest version does not help or if you already are using the latest version of the tool(s) or if the feature is not available then please goto the SHOUTcast support forums: http://forums.winamp.com/forumdisplay.php?f=140&lt;br /&gt;
&lt;br /&gt;
Make sure if you are reporting issues to provide as much information as possible for the SHOUTcast users who use the tools including the following information:&lt;br /&gt;
&lt;br /&gt;
:*Your SHOUTcast setup including all versions of the tools being used&lt;br /&gt;
:*The issue you are experiencing&lt;br /&gt;
:*The steps needed to reproduce the issue&lt;br /&gt;
:*Anything else useful especially if you have been tinkering with options before the issue appeared&lt;br /&gt;
&lt;br /&gt;
Remember when you post an issue that providing as much information in a clear and concise manner will make it easier for anyone who can help to be able to understand the issue you have. This is important as not everyone visiting the forum are native English speakers.&lt;br /&gt;
&lt;br /&gt;
Finally you must remain civil to other users (however annoying or frustrating the issue is that you are experiencing) as most users will not want to make a reply to someone who does not appear to be civil - if you think about it from the other view of what you would think when looking at such a post then this should make sense to keep things civil.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Related Documentation===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
All documentation can be found online - http://wiki.winamp.com/wiki/SHOUTcast_Broadcaster which will contain the documentation for the currently released versions of the tools.&lt;br /&gt;
&lt;br /&gt;
Additionally, in the install location there will be a 'docs' folder (as long as it has been chosen to be installed [Windows] or extracted [non-Windows] which contains text only versions of the main documentation relating to the SHOUTcast tool(s) installed as well as any related documentation to the other tools which may be of use in getting a SHOUTcast system configured and running&lt;br /&gt;
e.g. the docs\dsp_sc folder contains information on the Source DSP plug-in so you can use it to setup the plug-in as a source or so you can know what to tell a DJ so they can connect to your SHOUTcast system.&lt;br /&gt;
&lt;br /&gt;
Please remember that with the SHOUTcast tools being designed to work on both the Windows and non-Windows operating systems, there is information included in the documentation which relates to either of these platforms. So when reading through the documentation, only follow the information which relates to the operating system you are using&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Configuration Builder===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Included in the SHOUTcast DNAS Server and Transcoder installers / archives (depending on the operating system you are using) include a Configuration Builder which create a paired configuration file for the Server and the Transcoder. This can be found in the folder 'config_builder'.&lt;br /&gt;
&lt;br /&gt;
This is a very useful tool especially when making a new setup or if you find you are not happy with manually editing configuration files. Do remember that this will help to make configuration files which will work as long as the details you enter are correct and are correctly passed to the Server and Transcoder instances when run.&lt;br /&gt;
&lt;br /&gt;
Due to security issues when running web pages locally on the machine, you may find it is easier to use the externally hosted version on of the configuration builder which can be found at &amp;lt;nowiki&amp;gt;http://bogproghome.hopto.org/config_builder/config_builder.html&amp;lt;/nowiki&amp;gt; (this will use the latest version of the configuration builder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Glossary==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Client''' - This is a program run which will connect to the Server e.g. Winamp.&lt;br /&gt;
&lt;br /&gt;
'''DNAS''' - This is an abbreviation of Distributed Network Audio Server and refers to the way SHOUTcast systems are intended in providing a Stream to multiple Clients.&lt;br /&gt;
&lt;br /&gt;
'''Server''' - This is the program which is run on a machine to provide to Clients the Stream.&lt;br /&gt;
&lt;br /&gt;
'''Source''' - This is a program or an input device e.g. the line-in connection on the Server which is providing the data for the Stream.&lt;br /&gt;
'''&lt;br /&gt;
Stream''' - This is the data which is provided from the Server to the connected Client and is best thought of like the flow of water in a stream in how it goes from the Server (up stream) to the Client (down stream).&lt;br /&gt;
&lt;br /&gt;
'''Transcoder''' - This is the software which can take taken different media files and convert them to a different format which is then compatible what the Stream wanted.&lt;br /&gt;
&lt;br /&gt;
'''YP''' - This is an abbreviation of YellowPages and refers to the SHOUTcast Radio Directory listing which makes it easier for Clients to search for and then find your Stream.&lt;br /&gt;
&lt;br /&gt;
'''dsp_sc''' - This is the name the SHOUTcast Source DSP plug-in is otherwise known as.&lt;br /&gt;
&lt;br /&gt;
'''sc_trans''' - This is the name the SHOUTcast Transcoder is otherwise known as.&lt;br /&gt;
&lt;br /&gt;
'''sc_serv''' or '''sc_serv2''' - This is the name the SHOUTcast DNAS Server is otherwise known as.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_Getting_Started_Guide</id>
		<title>SHOUTcast Getting Started Guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_Getting_Started_Guide"/>
				<updated>2022-10-06T10:40:10Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Obtaining An Authhash */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
The aim of this page is to help guide you through the process of getting a SHOUTcast 2 system installed and broadcasting so people can connect to it through the SHOUTcast Radio Directory and hear the great content you have and want to provide to the world.&lt;br /&gt;
&lt;br /&gt;
It is assumed throughout the documentation that you have a basic knowledge of how to use the command-line console for the platform you decide to install the tools on i.e. how to run and control a program via the command-line console including being able to pass to it commands and the sending of signals as is appropriate to the platform being used. Windows users see [[#Windows_Users|section 1.2]].&lt;br /&gt;
&lt;br /&gt;
Additionally it is assumed you know how to setup your network connection and router to allow your server instance to be visible when broadcasting i.e. being able to open up and forward any required ports to allow your server instance to be visible to other machines on the internet as well as so the SHOUTcast Radio Directory can see you.&lt;br /&gt;
&lt;br /&gt;
This guide will refer you to other places in the documentation provided with the tools by showing references to the relevant file and section in the documentation files e.g. [[Source_DSP_Plug-in#Encoder_Tab|dsp_sc.txt - section 3.2.3]]. These referenced sections generally provide a lot more detail on the option or feature such as what would need to be set in the Transcoder configuration to allow for it to work with the DNAS Server being setup and so on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===What is SHOUTcast?===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If you are new to SHOUTcast then this is probably something you may have already asked or you are trying to find out.&lt;br /&gt;
&lt;br /&gt;
At its most basic, the SHOUTcast system is based around a ''''client + server'''' configuration which allows you to run a server (either directly or via a hosted service) which can then provide a stream or streams of the 'source' connected to the server to any clients which are connected to the server.&lt;br /&gt;
&lt;br /&gt;
The clients connect via a direct connection i.e. '''server &amp;lt;-&amp;gt;&amp;gt; client''' where the main flow of data (the stream data) will go from the server to the client.&lt;br /&gt;
&lt;br /&gt;
So a simple SHOUTcast setup would consist of the following:&lt;br /&gt;
&lt;br /&gt;
    Winamp + DSP  ?  DNAS [sc_serv]  ?   Winamp&lt;br /&gt;
      (Source)          (Server)        (Client)&lt;br /&gt;
&lt;br /&gt;
This is not the only way to setup a SHOUTcast system and more examples can be seen in the [[SHOUTcast_System_Overview|shoutcast_system_overview.txt]] which goes into more detail about the way SHOUTcast works as well as other ways of setting up a SHOUTcast system (see [[SHOUTcast_System_Overview#Example_SHOUTcast_System_Setups|section 2.0]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows Users===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The SHOUTcast DNAS Server and Transcoder are both built to be run from the command-line console (or as a native service if using this mode) which may appear to be daunting when most interaction done with the operating system is done via a graphical interface (GUI).&lt;br /&gt;
&lt;br /&gt;
If you are not acquainted with using the command-line console then you will need to find a guide which shows you the basics of using the command-line console along with getting you familiar with using it before trying to get any of the SHOUTcast tools running. If you search for 'how to use the command prompt' then you should find a guide which you can follow to help get you knowledgeable enough with using the command-line console.&lt;br /&gt;
&lt;br /&gt;
This may appear to be a step backwards if you previously used the v1 DNAS Server with its very basic GUI wrapper which otherwise was acting in the same manner as the command-line console just without the look of the operating system. However the v1 DNAS Server was at its core a command-line tool just like the v2 DNAS Server is now.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows Vista / 7 Specifics===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Due to the UAC feature (http://en.wikipedia.org/wiki/User_Account_Control) of these OSes you will need to remember the effect that this will have on editing and saving of files.&lt;br /&gt;
&lt;br /&gt;
By default the Windows versions of the installer will choose the native 'Program Files' folder '''(*)''' but unless you have disabled UAC or do not have full access to the folder then you will find attempts to save and edit any configuration files will not work.&lt;br /&gt;
&lt;br /&gt;
If this is an issue then you should either choose a different folder of all of the files or change where the tools are trying to save files and also to save any changes in your configuration files with a text editor which is running with administrator permissions.&lt;br /&gt;
&lt;br /&gt;
This is an unfortunate inconvenience though for making it easier to known where all of the configuration examples and documentation can be found is better. Finally there is no reason not to choose a different folder when installing the tools if you experience this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''(*)''' This will be slightly different depending on if you are using the 32-bit or 64-bit version of the OS as well as the language of the OS. As well the installer will pick the native 'Program Files' folder so installing the 32-bit version on the 64-bit OS will use 'Program Files (x86)' whereas installing the 64-bit version on the same OS will use 'Program Files'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Required?==&lt;br /&gt;
&lt;br /&gt;
To make your SHOUTcast system you will need the following software tools and hardware:&lt;br /&gt;
&lt;br /&gt;
:*A computer running on a supported operating system ([[#Supported_Operating_Systems|see section 2.1]])&lt;br /&gt;
:*SHOUTcast DNAS Server&lt;br /&gt;
:*An input source (Transcoder or Winamp plus Source DSP plug-in)&lt;br /&gt;
:*Media or DJ's or a Capture device i.e. the content you want to provide to people&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Operating Systems===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
There are versions of the DNAS Server and Transcoder available on the following operating systems:&lt;br /&gt;
&lt;br /&gt;
:*Windows 32-bit&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Windows 2000, XP, Vista, Windows 7, 8, 10&lt;br /&gt;
:*Windows 64-bit&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;64-bit versions of Windows XP, Vista, Windows 7, 8, 10&lt;br /&gt;
:*Linux 32-bit&lt;br /&gt;
:*Linux 64-bit&lt;br /&gt;
:*BSD 8.x &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; v2.4.7 only, not higher&lt;br /&gt;
:*Mac OS X (Intel)&amp;amp;nbsp;&amp;amp;nbsp; Should work on 10.4.4 and up though is only tested against 10.5.5 (DNAS v2.4.7 only, not higher)&lt;br /&gt;
&lt;br /&gt;
Remember to download the version of the tools which fits the operating system of the machine you will be installing the tools onto e.g. you could install the 32-bit Windows version on Windows 7 64-bit but could not install the 64-bit Windows version on Windows XP 32-bit.&lt;br /&gt;
&lt;br /&gt;
If using machines with different operating systems for different tasks then there should not be any problems with them working together e.g. Windows for the source and Linux for the server. This is due to the tools using the same communication style irrespective of the platform which they being run upon. If you do find an incompatibility then report it.&lt;br /&gt;
&lt;br /&gt;
==Getting Installed==&lt;br /&gt;
&lt;br /&gt;
When following the steps listed remember to only follow the parts which are applicable to the operating system and the tool or tools which you are attempting to install. If you do want to install multiple tools then it is better to work through the guide for one tool and then to do the same for the other one otherwise it may become confusing especially if you are new to command-line console tools and manual editting of configuration files.&lt;br /&gt;
&lt;br /&gt;
If you are not happy with manual editting of configuration files then there is also a configuration builder included as part of the Server and Transcoder distribution - see [[#Configuration_Builder|section 4.2]]. The aim of the configuration builder is to aid in the creation of matching configuration files for both tools which should work. It is still recommended that you do read the accompanying documentation so you can understand what it is that you are doing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Download the Correct Version===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
To begin with you will need to download the correct version of the tools you are going to use for the operating system you are setting up your SHOUTcast system on. See [[#Supported_Operating_Systems|see section 2.1]] for clarification of the supported operating systems for the tools.&lt;br /&gt;
&lt;br /&gt;
Current versions of the SHOUTcast tools can be obtained from:&lt;br /&gt;
&lt;br /&gt;
:*http://www.shoutcast.com/pricing&lt;br /&gt;
:*http://forums.winamp.com/showthread.php?t=324877 '''(*)'''&lt;br /&gt;
&lt;br /&gt;
Remember you will need to download a Server (sc_serv) and a source for the server which can be the Transcoder (sc_trans) or if using Windows then you can also use the Source DSP plug-in (dsp_sc) for Winamp (which may work on non-Windows systems using WINE but is not guaranteed and no support is offered with such a setup).&lt;br /&gt;
&lt;br /&gt;
Additionally there are a number of third party programs which can act as a source for a server instance. These are not covered as part of this guide and if you decide you want to use one of these programs then you will need to consult their help for getting it to work with the server instance.&lt;br /&gt;
&lt;br /&gt;
'''(*)''' This is a summary page and contains links to the latest versions of the tools such as when a new release has just been released or is being tested before it is  provided via the main SHOUTcast site download page.&lt;br /&gt;
&lt;br /&gt;
===Choose an Install Location===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Choose an install location for the tool you want to install (be it the Server, Transcoder or the source plug-in for Winamp) as is applicable for the SHOUTcast setup you are making on the machine.&lt;br /&gt;
&lt;br /&gt;
On Windows this choice is handled via the installer which selects a sensible new location or it re-uses the previous install location if doing an upgrade of an install which was previously made with a v2 tool installer. This can be changed if wanted during install.&lt;br /&gt;
&lt;br /&gt;
On Windows this choice is handled via the installer which selects a sensible new location or it re-uses the previous install location if doing an upgrade of an install which was previously made with a v2 tool installer. This can be changed if wanted during install and will be needed if you are running on a Windows system with UAC enabled ([[#Windows_Vista_.2F_7_Specifics|section 1.3]]).&lt;br /&gt;
&lt;br /&gt;
On non-Windows operating systems you can choose any location for the extracted location as long as you have the correct permission and access to the folder chosen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
On Windows you now need to run the installer, using the folder you have decided upon for the install location along with ensuring the option to install the documentation has been checked. Doing this will install the documentation and example configuration files which are included in the installer and referenced in later stages of this guide.&lt;br /&gt;
&lt;br /&gt;
Note: If using Windows Vista / 7 then make sure to install into a location which allows you to save and edit the configuration files and to save any log files into. More information can be found on what is required in [[#Windows_Vista_.2F_7_Specifics|see section 1.3]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On non-Windows you now need to extract the files for the tool(s) you have downloaded and ensure that you extract all contents of the archive into the install location decided on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Setting Up The Tools===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following sections are grouped together for what needs to be done in configuring and getting ready to start one or more of the officially provided tools. If you are not using one or more of them then you can skip the section as appropriate. Remember that you will need to have a valid source for use with the DNAS in order to have a listenable stream.&lt;br /&gt;
&lt;br /&gt;
 Ensuring the Server is properly configured is the most important thing as unless it&lt;br /&gt;
 is and running then none of the tools will be able to connect to it successfully.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Server===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====Server Configuration Setup====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Getting the Server started you first need to open up the '''sc_serv_simple.conf''' example file in the root of the install location. Work through the file's contents and then fill in or change any of the values required for how you want to use the server.&lt;br /&gt;
&lt;br /&gt;
The provided example will create a simple server configuration and contains the basic settings needed to allow for the server to work so it will appear in the SHOUTcast lists.&lt;br /&gt;
&lt;br /&gt;
The only thing missing from the example is an authhash which is required for a stream to be listed in the SHOUTcast Radio Directory when using the SHOUTcast 2 system. This needs to be obtained once the Server is running and a source has correctly connected to it. See [[#Obtaining_An_Authhash|section 3.5.4]] for how to do this one all other stages have been completed.&lt;br /&gt;
&lt;br /&gt;
Additionally there are example configuration files for the following scenarios:&lt;br /&gt;
&lt;br /&gt;
::'''sc_serv_basic''' - shows how to get a more multi-stream setup working&lt;br /&gt;
::'''sc_serv_public''' - shows how to make a public server from sc_serv_basic&lt;br /&gt;
::'''sc_serv_relay''' - shows how to relay another source&lt;br /&gt;
&lt;br /&gt;
There is more information about these example configurations in sc_serv2.txt - [[SHOUTcast_DNAS_Server_2#Example_Configurations|section 10]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Starting the Server====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
For simplicity we will only run the Server in the command-line console though when your Server setup is completed and everything is known to be working correctly then running as a service (Windows) or as a daemon (non-Windows) can be done to automate loading of the Server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To start the Server instance you now need to enter the correct command string for the operating system you are using in the command-line console like the following which assumes using the base example configuration file in the same directory as the Server program file:&lt;br /&gt;
&lt;br /&gt;
::For Windows     -  '''sc_serv.exe sc_serv_simple.conf'''&lt;br /&gt;
::For non-Windows  -  '''./sc_serv sc_serv_simple.conf'''&lt;br /&gt;
&lt;br /&gt;
If you use one of the other example configuration files or a different one then you can just change '''sc_serv_simple.conf''' to the name or full path to the configuration file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For more information on running the Server see [[SHOUTcast_DNAS_Server_2|sc_serv2.txt]] and the relevant section for the operating system you are using:&lt;br /&gt;
&lt;br /&gt;
::Windows - [[SHOUTcast_DNAS_Server_2#Run_as_a_Non-Service_in_the_Console|3.2.3]] (or [[SHOUTcast_DNAS_Server_2#Windows|3.2]] for more advanced options)&lt;br /&gt;
::Linux / Mac OS X / BSD - [[SHOUTcast_DNAS_Server_2#Run_as_a_Non-Daemon|3.3.3]] (or [[SHOUTcast_DNAS_Server_2#Linux_.2F_Mac_OS_X_.2F_BSD|3.3]] for more advanced options)&lt;br /&gt;
&lt;br /&gt;
====Errors Running the Server====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Skip this if you experience no error reports when trying to run the Server.&lt;br /&gt;
&lt;br /&gt;
If an issue is reported in the console output from the Server then you first need to look at the actual issue being reported which will be prefixed with an 'E' at the start of the message in the console output.&lt;br /&gt;
&lt;br /&gt;
The error message shown should make it clear as to what is wrong e.g. passing an invalid or missing configuration file passed would cause an error along with closing the server instance.&lt;br /&gt;
&lt;br /&gt;
If the error message still does not make any sense then either double-check [[SHOUTcast_DNAS_Server_2|sc_serv2.txt]] or goto the SHOUTcast support forums http://forums.winamp.com/forumdisplay.php?f=140 and post the question along with a copy of the log including the error message.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Obtaining An Authhash====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
With the Server now running, you will need to obtain an authhash for any stream(s) you want to be listed in the Shoutcast Radio Directory. This is done via the [[https://radiomanager.shoutcast.com/|Shoutcast RadioManager]]. See [[SHOUTcast_Authhash_Management|Shoutcast Authhash Management]] for further details.&lt;br /&gt;
&lt;br /&gt;
===Transcoder===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====MP3 Streaming License====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Skip this if you are not setting up the Transcoder for MP3 streaming.&lt;br /&gt;
&lt;br /&gt;
If you want to provide an MP3 stream and are going to use the Transcoder then you will need to obtain a license key in-order to unlock the support to do this in the tool. Details on how to obtain this can be found in [[SHOUTcast_DNAS_Transcoder_2#Registering_for_MP3_Stream_Encoding|sc_trans.txt - section 2.5]].&lt;br /&gt;
&lt;br /&gt;
 AAC encoding does not need you to purchase a license as one has&lt;br /&gt;
 already been paid for you as detailed in [[SHOUTcast_DNAS_Transcoder_2#Why_Does_AAC_Encoding_Not_Require_a_License_Key.3F|sc_trans.txt - section 2.5.1]].&lt;br /&gt;
&lt;br /&gt;
Once the key has been obtained you need to add the key and your name into the 'unlockkeyname' and 'unlockkeycode' values in you configuration file exactly as they have been received. So if your key is '123456' and you have used 'Bob' as the registered name, you would add the following to your Transcoder configuration file:&lt;br /&gt;
&lt;br /&gt;
    unlockkeyname=Bob&lt;br /&gt;
    unlockkeycode=123456&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Transcoder Configuration Setup====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Getting the Transcoder started you first need to open up the sc_trans_simple.conf example file in the root of the install location. Work through the file's contents and then fill in or change any of the values required for how you want to use the server.&lt;br /&gt;
&lt;br /&gt;
If you are wanting to use MP3 encoding then make sure you have followed '[[#MP3_Streaming_License|section 3.6.1]]' and entered the required 'unlockkeyname' and 'unlockkeycode' values in you configuration file exactly as they have been received. You will be informed when later running the Transcoder if there is an issue with the MP3 license details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additionally there are example configuration files for the following scenarios:&lt;br /&gt;
&lt;br /&gt;
::'''sc_trans_basic''' - shows how to get a basic setup without relying on the Server&lt;br /&gt;
::'''sc_trans_capture''' - shows how to use a capture device&lt;br /&gt;
::'''sc_trans_dj''' - shows how to setup a DJ connection&lt;br /&gt;
::'''sc_trans_playlist''' - shows how to use scheduled playlists&lt;br /&gt;
&lt;br /&gt;
There is more information about these example configurations in [[SHOUTcast_DNAS_Transcoder_2#Example_Configurations|sc_trans.txt - section 11]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Starting the Transcoder====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
For simplicity we will only run the Transcoder in the command-line console though when your Transcoder setup is completed and everything is known to be working correctly then running as a service (Windows) or as a daemon (non-Windows) can be done to automate loading of the Transcoder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To start the Transcoder instance you now need to enter the correct command string for the operating system you are using into the command-line console like the following which assumes using the base example configuration file in the same directory as the Transcoder program file:&lt;br /&gt;
&lt;br /&gt;
::For Windows     -  '''sc_trans.exe sc_trans_simple.conf'''&lt;br /&gt;
::For non-Window  -  '''./sc_trans sc_trans_simple.conf'''&lt;br /&gt;
&lt;br /&gt;
If you use one of the other example configuration files or a different one then you can just change '''sc_trans_simple.conf''' to the name or full path to the configuration file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For more information on running the Transcoder see [[SHOUTcast_DNAS_Transcoder_2|sc_trans.txt]] and the relevant section for the operating system you are using:&lt;br /&gt;
&lt;br /&gt;
::Windows - [[SHOUTcast_DNAS_Transcoder_2#Run_as_a_Non-Service_in_the_Console|2.2.3]] (or [[SHOUTcast_DNAS_Transcoder_2#Windows|2.2]] for more advanced options)&lt;br /&gt;
::Linux / Mac OS X / BSD - [[SHOUTcast_DNAS_Transcoder_2#Run_as_a_Non-Daemon|2.3.3]] (or [[SHOUTcast_DNAS_Transcoder_2#Linux_.2F_Mac_OS_X_.2F_BSD|2.3]] for more advanced options)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Errors Running the Transcoder====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Skip this if you experience no error reports when trying to run the Transcoder.&lt;br /&gt;
&lt;br /&gt;
If an issue is reported in the console output from the Server then you first need to look at the actual issue being reported which will be prefixed with an 'E' at the start of the message in the console output.&lt;br /&gt;
&lt;br /&gt;
The error message shown should make it clear as to what is wrong e.g. passing an invalid or missing configuration file passed would cause an error along with closing the server instance.&lt;br /&gt;
&lt;br /&gt;
If the error message still does not make any sense then either double-check [[SHOUTcast_DNAS_Transcoder_2|sc_trans.txt]] or goto the SHOUTcast support forums http://forums.winamp.com/forumdisplay.php?f=140 and post the question along with a copy of the log including the error message.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Source DSP===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Install Source DSP====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Skip this if you are not setting up the Source DSP plug-in for MP3 streaming.&lt;br /&gt;
&lt;br /&gt;
If you want to provide an MP3 stream and are going to use Winamp and the Source DSP then you just need to make sure to install the Source DSP plug-in and select the MP3 encoder on the 'Output -&amp;gt; Encoder' tab (as detailed in [[Source_DSP_Plug-in#Encoder_Tab|dsp_sc.txt - section 3.2.3]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Configuring the Source DSP====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
For getting Winamp and the Source DSP plug-in setup look through the [[Source_DSP_Plug-in_Configuration_Examples|dsp_sc_config.txt]] file and enter in the relevant values as described in it once you have setup:&lt;br /&gt;
&lt;br /&gt;
::the Server (from [[#Server_Configuration_Setup|section 3.5.1]]) if you are going to use the plug-in as the only source&lt;br /&gt;
:and / or&lt;br /&gt;
::the Transcoder (from [[#Transcoder_Configuration_Setup|section 3.6.2]]) if it is to act as a DJ source&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Starting the Source DSP====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Using the Source DSP plug-in requires the plug-in to be set as the current DSP plug-in which is done by going to 'Winamp Preferences -&amp;gt; Plug-ins -&amp;gt; DSP/Effect' and selecting 'Nullsoft SHOUTcast Source DSP &amp;lt;version&amp;gt;' (*) from the plug-in's list.&lt;br /&gt;
&lt;br /&gt;
When this entry in the list is selected then the plug-in's configuration window will be opened and from there the plug-in will be in a state where a connection can be started via the 'Connect' button on the 'Output' tab.&lt;br /&gt;
&lt;br /&gt;
(*) The string &amp;lt;version&amp;gt; would be the actual version of the plug-in which is installed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Completion===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You should now be up and running with a working SHOUTcast system. Happy broadcasting!&lt;br /&gt;
&lt;br /&gt;
If things are still not running then go back over the section(s) relating to the tool(s) you are having issues with and make sure that you have followed things otherwise please see the next section ([[#Further Information|section 4.0]]) on what you can do to get help in trying to resolve the issues you are experiencing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
&lt;br /&gt;
If you have followed the setup steps detailed in [[#Getting_Installed|section 3]] and are still having issues with getting the tools running or working together to achieve a certain result then first make sure you have the currently supported version of the tool(s) in case it is a bug in the tool(s) which has already been fixed. You can check this via the links referenced in [[#Download_the_Correct_Version|3.1]] and especially the forum link of the most current versions available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If installing the latest version does not help or if you already are using the latest version of the tool(s) or if the feature is not available then please goto the SHOUTcast support forums: http://forums.winamp.com/forumdisplay.php?f=140&lt;br /&gt;
&lt;br /&gt;
Make sure if you are reporting issues to provide as much information as possible for the SHOUTcast users who use the tools including the following information:&lt;br /&gt;
&lt;br /&gt;
:*Your SHOUTcast setup including all versions of the tools being used&lt;br /&gt;
:*The issue you are experiencing&lt;br /&gt;
:*The steps needed to reproduce the issue&lt;br /&gt;
:*Anything else useful especially if you have been tinkering with options before the issue appeared&lt;br /&gt;
&lt;br /&gt;
Remember when you post an issue that providing as much information in a clear and concise manner will make it easier for anyone who can help to be able to understand the issue you have. This is important as not everyone visiting the forum are native English speakers.&lt;br /&gt;
&lt;br /&gt;
Finally you must remain civil to other users (however annoying or frustrating the issue is that you are experiencing) as most users will not want to make a reply to someone who does not appear to be civil - if you think about it from the other view of what you would think when looking at such a post then this should make sense to keep things civil.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Related Documentation===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
All documentation can be found online - http://wiki.winamp.com/wiki/SHOUTcast_Broadcaster which will contain the documentation for the currently released versions of the tools.&lt;br /&gt;
&lt;br /&gt;
Additionally, in the install location there will be a 'docs' folder (as long as it has been chosen to be installed [Windows] or extracted [non-Windows] which contains text only versions of the main documentation relating to the SHOUTcast tool(s) installed as well as any related documentation to the other tools which may be of use in getting a SHOUTcast system configured and running&lt;br /&gt;
e.g. the docs\dsp_sc folder contains information on the Source DSP plug-in so you can use it to setup the plug-in as a source or so you can know what to tell a DJ so they can connect to your SHOUTcast system.&lt;br /&gt;
&lt;br /&gt;
Please remember that with the SHOUTcast tools being designed to work on both the Windows and non-Windows operating systems, there is information included in the documentation which relates to either of these platforms. So when reading through the documentation, only follow the information which relates to the operating system you are using&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Configuration Builder===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Included in the SHOUTcast DNAS Server and Transcoder installers / archives (depending on the operating system you are using) include a Configuration Builder which create a paired configuration file for the Server and the Transcoder. This can be found in the folder 'config_builder'.&lt;br /&gt;
&lt;br /&gt;
This is a very useful tool especially when making a new setup or if you find you are not happy with manually editing configuration files. Do remember that this will help to make configuration files which will work as long as the details you enter are correct and are correctly passed to the Server and Transcoder instances when run.&lt;br /&gt;
&lt;br /&gt;
Due to security issues when running web pages locally on the machine, you may find it is easier to use the externally hosted version on of the configuration builder which can be found at &amp;lt;nowiki&amp;gt;http://bogproghome.hopto.org/config_builder/config_builder.html&amp;lt;/nowiki&amp;gt; (this will use the latest version of the configuration builder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Glossary==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Client''' - This is a program run which will connect to the Server e.g. Winamp.&lt;br /&gt;
&lt;br /&gt;
'''DNAS''' - This is an abbreviation of Distributed Network Audio Server and refers to the way SHOUTcast systems are intended in providing a Stream to multiple Clients.&lt;br /&gt;
&lt;br /&gt;
'''Server''' - This is the program which is run on a machine to provide to Clients the Stream.&lt;br /&gt;
&lt;br /&gt;
'''Source''' - This is a program or an input device e.g. the line-in connection on the Server which is providing the data for the Stream.&lt;br /&gt;
'''&lt;br /&gt;
Stream''' - This is the data which is provided from the Server to the connected Client and is best thought of like the flow of water in a stream in how it goes from the Server (up stream) to the Client (down stream).&lt;br /&gt;
&lt;br /&gt;
'''Transcoder''' - This is the software which can take taken different media files and convert them to a different format which is then compatible what the Stream wanted.&lt;br /&gt;
&lt;br /&gt;
'''YP''' - This is an abbreviation of YellowPages and refers to the SHOUTcast Radio Directory listing which makes it easier for Clients to search for and then find your Stream.&lt;br /&gt;
&lt;br /&gt;
'''dsp_sc''' - This is the name the SHOUTcast Source DSP plug-in is otherwise known as.&lt;br /&gt;
&lt;br /&gt;
'''sc_trans''' - This is the name the SHOUTcast Transcoder is otherwise known as.&lt;br /&gt;
&lt;br /&gt;
'''sc_serv''' or '''sc_serv2''' - This is the name the SHOUTcast DNAS Server is otherwise known as.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_Getting_Started_Guide</id>
		<title>SHOUTcast Getting Started Guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_Getting_Started_Guide"/>
				<updated>2022-10-06T10:39:20Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Obtaining An Authhash */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
The aim of this page is to help guide you through the process of getting a SHOUTcast 2 system installed and broadcasting so people can connect to it through the SHOUTcast Radio Directory and hear the great content you have and want to provide to the world.&lt;br /&gt;
&lt;br /&gt;
It is assumed throughout the documentation that you have a basic knowledge of how to use the command-line console for the platform you decide to install the tools on i.e. how to run and control a program via the command-line console including being able to pass to it commands and the sending of signals as is appropriate to the platform being used. Windows users see [[#Windows_Users|section 1.2]].&lt;br /&gt;
&lt;br /&gt;
Additionally it is assumed you know how to setup your network connection and router to allow your server instance to be visible when broadcasting i.e. being able to open up and forward any required ports to allow your server instance to be visible to other machines on the internet as well as so the SHOUTcast Radio Directory can see you.&lt;br /&gt;
&lt;br /&gt;
This guide will refer you to other places in the documentation provided with the tools by showing references to the relevant file and section in the documentation files e.g. [[Source_DSP_Plug-in#Encoder_Tab|dsp_sc.txt - section 3.2.3]]. These referenced sections generally provide a lot more detail on the option or feature such as what would need to be set in the Transcoder configuration to allow for it to work with the DNAS Server being setup and so on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===What is SHOUTcast?===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If you are new to SHOUTcast then this is probably something you may have already asked or you are trying to find out.&lt;br /&gt;
&lt;br /&gt;
At its most basic, the SHOUTcast system is based around a ''''client + server'''' configuration which allows you to run a server (either directly or via a hosted service) which can then provide a stream or streams of the 'source' connected to the server to any clients which are connected to the server.&lt;br /&gt;
&lt;br /&gt;
The clients connect via a direct connection i.e. '''server &amp;lt;-&amp;gt;&amp;gt; client''' where the main flow of data (the stream data) will go from the server to the client.&lt;br /&gt;
&lt;br /&gt;
So a simple SHOUTcast setup would consist of the following:&lt;br /&gt;
&lt;br /&gt;
    Winamp + DSP  ?  DNAS [sc_serv]  ?   Winamp&lt;br /&gt;
      (Source)          (Server)        (Client)&lt;br /&gt;
&lt;br /&gt;
This is not the only way to setup a SHOUTcast system and more examples can be seen in the [[SHOUTcast_System_Overview|shoutcast_system_overview.txt]] which goes into more detail about the way SHOUTcast works as well as other ways of setting up a SHOUTcast system (see [[SHOUTcast_System_Overview#Example_SHOUTcast_System_Setups|section 2.0]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows Users===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The SHOUTcast DNAS Server and Transcoder are both built to be run from the command-line console (or as a native service if using this mode) which may appear to be daunting when most interaction done with the operating system is done via a graphical interface (GUI).&lt;br /&gt;
&lt;br /&gt;
If you are not acquainted with using the command-line console then you will need to find a guide which shows you the basics of using the command-line console along with getting you familiar with using it before trying to get any of the SHOUTcast tools running. If you search for 'how to use the command prompt' then you should find a guide which you can follow to help get you knowledgeable enough with using the command-line console.&lt;br /&gt;
&lt;br /&gt;
This may appear to be a step backwards if you previously used the v1 DNAS Server with its very basic GUI wrapper which otherwise was acting in the same manner as the command-line console just without the look of the operating system. However the v1 DNAS Server was at its core a command-line tool just like the v2 DNAS Server is now.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows Vista / 7 Specifics===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Due to the UAC feature (http://en.wikipedia.org/wiki/User_Account_Control) of these OSes you will need to remember the effect that this will have on editing and saving of files.&lt;br /&gt;
&lt;br /&gt;
By default the Windows versions of the installer will choose the native 'Program Files' folder '''(*)''' but unless you have disabled UAC or do not have full access to the folder then you will find attempts to save and edit any configuration files will not work.&lt;br /&gt;
&lt;br /&gt;
If this is an issue then you should either choose a different folder of all of the files or change where the tools are trying to save files and also to save any changes in your configuration files with a text editor which is running with administrator permissions.&lt;br /&gt;
&lt;br /&gt;
This is an unfortunate inconvenience though for making it easier to known where all of the configuration examples and documentation can be found is better. Finally there is no reason not to choose a different folder when installing the tools if you experience this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''(*)''' This will be slightly different depending on if you are using the 32-bit or 64-bit version of the OS as well as the language of the OS. As well the installer will pick the native 'Program Files' folder so installing the 32-bit version on the 64-bit OS will use 'Program Files (x86)' whereas installing the 64-bit version on the same OS will use 'Program Files'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==What is Required?==&lt;br /&gt;
&lt;br /&gt;
To make your SHOUTcast system you will need the following software tools and hardware:&lt;br /&gt;
&lt;br /&gt;
:*A computer running on a supported operating system ([[#Supported_Operating_Systems|see section 2.1]])&lt;br /&gt;
:*SHOUTcast DNAS Server&lt;br /&gt;
:*An input source (Transcoder or Winamp plus Source DSP plug-in)&lt;br /&gt;
:*Media or DJ's or a Capture device i.e. the content you want to provide to people&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Operating Systems===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
There are versions of the DNAS Server and Transcoder available on the following operating systems:&lt;br /&gt;
&lt;br /&gt;
:*Windows 32-bit&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;Windows 2000, XP, Vista, Windows 7, 8, 10&lt;br /&gt;
:*Windows 64-bit&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;64-bit versions of Windows XP, Vista, Windows 7, 8, 10&lt;br /&gt;
:*Linux 32-bit&lt;br /&gt;
:*Linux 64-bit&lt;br /&gt;
:*BSD 8.x &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; v2.4.7 only, not higher&lt;br /&gt;
:*Mac OS X (Intel)&amp;amp;nbsp;&amp;amp;nbsp; Should work on 10.4.4 and up though is only tested against 10.5.5 (DNAS v2.4.7 only, not higher)&lt;br /&gt;
&lt;br /&gt;
Remember to download the version of the tools which fits the operating system of the machine you will be installing the tools onto e.g. you could install the 32-bit Windows version on Windows 7 64-bit but could not install the 64-bit Windows version on Windows XP 32-bit.&lt;br /&gt;
&lt;br /&gt;
If using machines with different operating systems for different tasks then there should not be any problems with them working together e.g. Windows for the source and Linux for the server. This is due to the tools using the same communication style irrespective of the platform which they being run upon. If you do find an incompatibility then report it.&lt;br /&gt;
&lt;br /&gt;
==Getting Installed==&lt;br /&gt;
&lt;br /&gt;
When following the steps listed remember to only follow the parts which are applicable to the operating system and the tool or tools which you are attempting to install. If you do want to install multiple tools then it is better to work through the guide for one tool and then to do the same for the other one otherwise it may become confusing especially if you are new to command-line console tools and manual editting of configuration files.&lt;br /&gt;
&lt;br /&gt;
If you are not happy with manual editting of configuration files then there is also a configuration builder included as part of the Server and Transcoder distribution - see [[#Configuration_Builder|section 4.2]]. The aim of the configuration builder is to aid in the creation of matching configuration files for both tools which should work. It is still recommended that you do read the accompanying documentation so you can understand what it is that you are doing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Download the Correct Version===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
To begin with you will need to download the correct version of the tools you are going to use for the operating system you are setting up your SHOUTcast system on. See [[#Supported_Operating_Systems|see section 2.1]] for clarification of the supported operating systems for the tools.&lt;br /&gt;
&lt;br /&gt;
Current versions of the SHOUTcast tools can be obtained from:&lt;br /&gt;
&lt;br /&gt;
:*http://www.shoutcast.com/pricing&lt;br /&gt;
:*http://forums.winamp.com/showthread.php?t=324877 '''(*)'''&lt;br /&gt;
&lt;br /&gt;
Remember you will need to download a Server (sc_serv) and a source for the server which can be the Transcoder (sc_trans) or if using Windows then you can also use the Source DSP plug-in (dsp_sc) for Winamp (which may work on non-Windows systems using WINE but is not guaranteed and no support is offered with such a setup).&lt;br /&gt;
&lt;br /&gt;
Additionally there are a number of third party programs which can act as a source for a server instance. These are not covered as part of this guide and if you decide you want to use one of these programs then you will need to consult their help for getting it to work with the server instance.&lt;br /&gt;
&lt;br /&gt;
'''(*)''' This is a summary page and contains links to the latest versions of the tools such as when a new release has just been released or is being tested before it is  provided via the main SHOUTcast site download page.&lt;br /&gt;
&lt;br /&gt;
===Choose an Install Location===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Choose an install location for the tool you want to install (be it the Server, Transcoder or the source plug-in for Winamp) as is applicable for the SHOUTcast setup you are making on the machine.&lt;br /&gt;
&lt;br /&gt;
On Windows this choice is handled via the installer which selects a sensible new location or it re-uses the previous install location if doing an upgrade of an install which was previously made with a v2 tool installer. This can be changed if wanted during install.&lt;br /&gt;
&lt;br /&gt;
On Windows this choice is handled via the installer which selects a sensible new location or it re-uses the previous install location if doing an upgrade of an install which was previously made with a v2 tool installer. This can be changed if wanted during install and will be needed if you are running on a Windows system with UAC enabled ([[#Windows_Vista_.2F_7_Specifics|section 1.3]]).&lt;br /&gt;
&lt;br /&gt;
On non-Windows operating systems you can choose any location for the extracted location as long as you have the correct permission and access to the folder chosen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
On Windows you now need to run the installer, using the folder you have decided upon for the install location along with ensuring the option to install the documentation has been checked. Doing this will install the documentation and example configuration files which are included in the installer and referenced in later stages of this guide.&lt;br /&gt;
&lt;br /&gt;
Note: If using Windows Vista / 7 then make sure to install into a location which allows you to save and edit the configuration files and to save any log files into. More information can be found on what is required in [[#Windows_Vista_.2F_7_Specifics|see section 1.3]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On non-Windows you now need to extract the files for the tool(s) you have downloaded and ensure that you extract all contents of the archive into the install location decided on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Setting Up The Tools===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following sections are grouped together for what needs to be done in configuring and getting ready to start one or more of the officially provided tools. If you are not using one or more of them then you can skip the section as appropriate. Remember that you will need to have a valid source for use with the DNAS in order to have a listenable stream.&lt;br /&gt;
&lt;br /&gt;
 Ensuring the Server is properly configured is the most important thing as unless it&lt;br /&gt;
 is and running then none of the tools will be able to connect to it successfully.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Server===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====Server Configuration Setup====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Getting the Server started you first need to open up the '''sc_serv_simple.conf''' example file in the root of the install location. Work through the file's contents and then fill in or change any of the values required for how you want to use the server.&lt;br /&gt;
&lt;br /&gt;
The provided example will create a simple server configuration and contains the basic settings needed to allow for the server to work so it will appear in the SHOUTcast lists.&lt;br /&gt;
&lt;br /&gt;
The only thing missing from the example is an authhash which is required for a stream to be listed in the SHOUTcast Radio Directory when using the SHOUTcast 2 system. This needs to be obtained once the Server is running and a source has correctly connected to it. See [[#Obtaining_An_Authhash|section 3.5.4]] for how to do this one all other stages have been completed.&lt;br /&gt;
&lt;br /&gt;
Additionally there are example configuration files for the following scenarios:&lt;br /&gt;
&lt;br /&gt;
::'''sc_serv_basic''' - shows how to get a more multi-stream setup working&lt;br /&gt;
::'''sc_serv_public''' - shows how to make a public server from sc_serv_basic&lt;br /&gt;
::'''sc_serv_relay''' - shows how to relay another source&lt;br /&gt;
&lt;br /&gt;
There is more information about these example configurations in sc_serv2.txt - [[SHOUTcast_DNAS_Server_2#Example_Configurations|section 10]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Starting the Server====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
For simplicity we will only run the Server in the command-line console though when your Server setup is completed and everything is known to be working correctly then running as a service (Windows) or as a daemon (non-Windows) can be done to automate loading of the Server.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To start the Server instance you now need to enter the correct command string for the operating system you are using in the command-line console like the following which assumes using the base example configuration file in the same directory as the Server program file:&lt;br /&gt;
&lt;br /&gt;
::For Windows     -  '''sc_serv.exe sc_serv_simple.conf'''&lt;br /&gt;
::For non-Windows  -  '''./sc_serv sc_serv_simple.conf'''&lt;br /&gt;
&lt;br /&gt;
If you use one of the other example configuration files or a different one then you can just change '''sc_serv_simple.conf''' to the name or full path to the configuration file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For more information on running the Server see [[SHOUTcast_DNAS_Server_2|sc_serv2.txt]] and the relevant section for the operating system you are using:&lt;br /&gt;
&lt;br /&gt;
::Windows - [[SHOUTcast_DNAS_Server_2#Run_as_a_Non-Service_in_the_Console|3.2.3]] (or [[SHOUTcast_DNAS_Server_2#Windows|3.2]] for more advanced options)&lt;br /&gt;
::Linux / Mac OS X / BSD - [[SHOUTcast_DNAS_Server_2#Run_as_a_Non-Daemon|3.3.3]] (or [[SHOUTcast_DNAS_Server_2#Linux_.2F_Mac_OS_X_.2F_BSD|3.3]] for more advanced options)&lt;br /&gt;
&lt;br /&gt;
====Errors Running the Server====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Skip this if you experience no error reports when trying to run the Server.&lt;br /&gt;
&lt;br /&gt;
If an issue is reported in the console output from the Server then you first need to look at the actual issue being reported which will be prefixed with an 'E' at the start of the message in the console output.&lt;br /&gt;
&lt;br /&gt;
The error message shown should make it clear as to what is wrong e.g. passing an invalid or missing configuration file passed would cause an error along with closing the server instance.&lt;br /&gt;
&lt;br /&gt;
If the error message still does not make any sense then either double-check [[SHOUTcast_DNAS_Server_2|sc_serv2.txt]] or goto the SHOUTcast support forums http://forums.winamp.com/forumdisplay.php?f=140 and post the question along with a copy of the log including the error message.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Obtaining An Authhash====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
With the Server now running, you will need to obtain an authhash for any stream(s) you want to be listed in the Shoutcast Radio Directory. This is done via the [https://radiomanager.shoutcast.com/|Shoutcast RadioManager]. See [[SHOUTcast_Authhash_Management|Shoutcast Authhash Management]] for further details.&lt;br /&gt;
&lt;br /&gt;
===Transcoder===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====MP3 Streaming License====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Skip this if you are not setting up the Transcoder for MP3 streaming.&lt;br /&gt;
&lt;br /&gt;
If you want to provide an MP3 stream and are going to use the Transcoder then you will need to obtain a license key in-order to unlock the support to do this in the tool. Details on how to obtain this can be found in [[SHOUTcast_DNAS_Transcoder_2#Registering_for_MP3_Stream_Encoding|sc_trans.txt - section 2.5]].&lt;br /&gt;
&lt;br /&gt;
 AAC encoding does not need you to purchase a license as one has&lt;br /&gt;
 already been paid for you as detailed in [[SHOUTcast_DNAS_Transcoder_2#Why_Does_AAC_Encoding_Not_Require_a_License_Key.3F|sc_trans.txt - section 2.5.1]].&lt;br /&gt;
&lt;br /&gt;
Once the key has been obtained you need to add the key and your name into the 'unlockkeyname' and 'unlockkeycode' values in you configuration file exactly as they have been received. So if your key is '123456' and you have used 'Bob' as the registered name, you would add the following to your Transcoder configuration file:&lt;br /&gt;
&lt;br /&gt;
    unlockkeyname=Bob&lt;br /&gt;
    unlockkeycode=123456&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Transcoder Configuration Setup====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Getting the Transcoder started you first need to open up the sc_trans_simple.conf example file in the root of the install location. Work through the file's contents and then fill in or change any of the values required for how you want to use the server.&lt;br /&gt;
&lt;br /&gt;
If you are wanting to use MP3 encoding then make sure you have followed '[[#MP3_Streaming_License|section 3.6.1]]' and entered the required 'unlockkeyname' and 'unlockkeycode' values in you configuration file exactly as they have been received. You will be informed when later running the Transcoder if there is an issue with the MP3 license details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additionally there are example configuration files for the following scenarios:&lt;br /&gt;
&lt;br /&gt;
::'''sc_trans_basic''' - shows how to get a basic setup without relying on the Server&lt;br /&gt;
::'''sc_trans_capture''' - shows how to use a capture device&lt;br /&gt;
::'''sc_trans_dj''' - shows how to setup a DJ connection&lt;br /&gt;
::'''sc_trans_playlist''' - shows how to use scheduled playlists&lt;br /&gt;
&lt;br /&gt;
There is more information about these example configurations in [[SHOUTcast_DNAS_Transcoder_2#Example_Configurations|sc_trans.txt - section 11]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Starting the Transcoder====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
For simplicity we will only run the Transcoder in the command-line console though when your Transcoder setup is completed and everything is known to be working correctly then running as a service (Windows) or as a daemon (non-Windows) can be done to automate loading of the Transcoder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To start the Transcoder instance you now need to enter the correct command string for the operating system you are using into the command-line console like the following which assumes using the base example configuration file in the same directory as the Transcoder program file:&lt;br /&gt;
&lt;br /&gt;
::For Windows     -  '''sc_trans.exe sc_trans_simple.conf'''&lt;br /&gt;
::For non-Window  -  '''./sc_trans sc_trans_simple.conf'''&lt;br /&gt;
&lt;br /&gt;
If you use one of the other example configuration files or a different one then you can just change '''sc_trans_simple.conf''' to the name or full path to the configuration file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For more information on running the Transcoder see [[SHOUTcast_DNAS_Transcoder_2|sc_trans.txt]] and the relevant section for the operating system you are using:&lt;br /&gt;
&lt;br /&gt;
::Windows - [[SHOUTcast_DNAS_Transcoder_2#Run_as_a_Non-Service_in_the_Console|2.2.3]] (or [[SHOUTcast_DNAS_Transcoder_2#Windows|2.2]] for more advanced options)&lt;br /&gt;
::Linux / Mac OS X / BSD - [[SHOUTcast_DNAS_Transcoder_2#Run_as_a_Non-Daemon|2.3.3]] (or [[SHOUTcast_DNAS_Transcoder_2#Linux_.2F_Mac_OS_X_.2F_BSD|2.3]] for more advanced options)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Errors Running the Transcoder====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Skip this if you experience no error reports when trying to run the Transcoder.&lt;br /&gt;
&lt;br /&gt;
If an issue is reported in the console output from the Server then you first need to look at the actual issue being reported which will be prefixed with an 'E' at the start of the message in the console output.&lt;br /&gt;
&lt;br /&gt;
The error message shown should make it clear as to what is wrong e.g. passing an invalid or missing configuration file passed would cause an error along with closing the server instance.&lt;br /&gt;
&lt;br /&gt;
If the error message still does not make any sense then either double-check [[SHOUTcast_DNAS_Transcoder_2|sc_trans.txt]] or goto the SHOUTcast support forums http://forums.winamp.com/forumdisplay.php?f=140 and post the question along with a copy of the log including the error message.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Source DSP===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Install Source DSP====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Skip this if you are not setting up the Source DSP plug-in for MP3 streaming.&lt;br /&gt;
&lt;br /&gt;
If you want to provide an MP3 stream and are going to use Winamp and the Source DSP then you just need to make sure to install the Source DSP plug-in and select the MP3 encoder on the 'Output -&amp;gt; Encoder' tab (as detailed in [[Source_DSP_Plug-in#Encoder_Tab|dsp_sc.txt - section 3.2.3]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Configuring the Source DSP====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
For getting Winamp and the Source DSP plug-in setup look through the [[Source_DSP_Plug-in_Configuration_Examples|dsp_sc_config.txt]] file and enter in the relevant values as described in it once you have setup:&lt;br /&gt;
&lt;br /&gt;
::the Server (from [[#Server_Configuration_Setup|section 3.5.1]]) if you are going to use the plug-in as the only source&lt;br /&gt;
:and / or&lt;br /&gt;
::the Transcoder (from [[#Transcoder_Configuration_Setup|section 3.6.2]]) if it is to act as a DJ source&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Starting the Source DSP====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Using the Source DSP plug-in requires the plug-in to be set as the current DSP plug-in which is done by going to 'Winamp Preferences -&amp;gt; Plug-ins -&amp;gt; DSP/Effect' and selecting 'Nullsoft SHOUTcast Source DSP &amp;lt;version&amp;gt;' (*) from the plug-in's list.&lt;br /&gt;
&lt;br /&gt;
When this entry in the list is selected then the plug-in's configuration window will be opened and from there the plug-in will be in a state where a connection can be started via the 'Connect' button on the 'Output' tab.&lt;br /&gt;
&lt;br /&gt;
(*) The string &amp;lt;version&amp;gt; would be the actual version of the plug-in which is installed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Completion===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You should now be up and running with a working SHOUTcast system. Happy broadcasting!&lt;br /&gt;
&lt;br /&gt;
If things are still not running then go back over the section(s) relating to the tool(s) you are having issues with and make sure that you have followed things otherwise please see the next section ([[#Further Information|section 4.0]]) on what you can do to get help in trying to resolve the issues you are experiencing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
&lt;br /&gt;
If you have followed the setup steps detailed in [[#Getting_Installed|section 3]] and are still having issues with getting the tools running or working together to achieve a certain result then first make sure you have the currently supported version of the tool(s) in case it is a bug in the tool(s) which has already been fixed. You can check this via the links referenced in [[#Download_the_Correct_Version|3.1]] and especially the forum link of the most current versions available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If installing the latest version does not help or if you already are using the latest version of the tool(s) or if the feature is not available then please goto the SHOUTcast support forums: http://forums.winamp.com/forumdisplay.php?f=140&lt;br /&gt;
&lt;br /&gt;
Make sure if you are reporting issues to provide as much information as possible for the SHOUTcast users who use the tools including the following information:&lt;br /&gt;
&lt;br /&gt;
:*Your SHOUTcast setup including all versions of the tools being used&lt;br /&gt;
:*The issue you are experiencing&lt;br /&gt;
:*The steps needed to reproduce the issue&lt;br /&gt;
:*Anything else useful especially if you have been tinkering with options before the issue appeared&lt;br /&gt;
&lt;br /&gt;
Remember when you post an issue that providing as much information in a clear and concise manner will make it easier for anyone who can help to be able to understand the issue you have. This is important as not everyone visiting the forum are native English speakers.&lt;br /&gt;
&lt;br /&gt;
Finally you must remain civil to other users (however annoying or frustrating the issue is that you are experiencing) as most users will not want to make a reply to someone who does not appear to be civil - if you think about it from the other view of what you would think when looking at such a post then this should make sense to keep things civil.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Related Documentation===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
All documentation can be found online - http://wiki.winamp.com/wiki/SHOUTcast_Broadcaster which will contain the documentation for the currently released versions of the tools.&lt;br /&gt;
&lt;br /&gt;
Additionally, in the install location there will be a 'docs' folder (as long as it has been chosen to be installed [Windows] or extracted [non-Windows] which contains text only versions of the main documentation relating to the SHOUTcast tool(s) installed as well as any related documentation to the other tools which may be of use in getting a SHOUTcast system configured and running&lt;br /&gt;
e.g. the docs\dsp_sc folder contains information on the Source DSP plug-in so you can use it to setup the plug-in as a source or so you can know what to tell a DJ so they can connect to your SHOUTcast system.&lt;br /&gt;
&lt;br /&gt;
Please remember that with the SHOUTcast tools being designed to work on both the Windows and non-Windows operating systems, there is information included in the documentation which relates to either of these platforms. So when reading through the documentation, only follow the information which relates to the operating system you are using&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Configuration Builder===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Included in the SHOUTcast DNAS Server and Transcoder installers / archives (depending on the operating system you are using) include a Configuration Builder which create a paired configuration file for the Server and the Transcoder. This can be found in the folder 'config_builder'.&lt;br /&gt;
&lt;br /&gt;
This is a very useful tool especially when making a new setup or if you find you are not happy with manually editing configuration files. Do remember that this will help to make configuration files which will work as long as the details you enter are correct and are correctly passed to the Server and Transcoder instances when run.&lt;br /&gt;
&lt;br /&gt;
Due to security issues when running web pages locally on the machine, you may find it is easier to use the externally hosted version on of the configuration builder which can be found at &amp;lt;nowiki&amp;gt;http://bogproghome.hopto.org/config_builder/config_builder.html&amp;lt;/nowiki&amp;gt; (this will use the latest version of the configuration builder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Glossary==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Client''' - This is a program run which will connect to the Server e.g. Winamp.&lt;br /&gt;
&lt;br /&gt;
'''DNAS''' - This is an abbreviation of Distributed Network Audio Server and refers to the way SHOUTcast systems are intended in providing a Stream to multiple Clients.&lt;br /&gt;
&lt;br /&gt;
'''Server''' - This is the program which is run on a machine to provide to Clients the Stream.&lt;br /&gt;
&lt;br /&gt;
'''Source''' - This is a program or an input device e.g. the line-in connection on the Server which is providing the data for the Stream.&lt;br /&gt;
'''&lt;br /&gt;
Stream''' - This is the data which is provided from the Server to the connected Client and is best thought of like the flow of water in a stream in how it goes from the Server (up stream) to the Client (down stream).&lt;br /&gt;
&lt;br /&gt;
'''Transcoder''' - This is the software which can take taken different media files and convert them to a different format which is then compatible what the Stream wanted.&lt;br /&gt;
&lt;br /&gt;
'''YP''' - This is an abbreviation of YellowPages and refers to the SHOUTcast Radio Directory listing which makes it easier for Clients to search for and then find your Stream.&lt;br /&gt;
&lt;br /&gt;
'''dsp_sc''' - This is the name the SHOUTcast Source DSP plug-in is otherwise known as.&lt;br /&gt;
&lt;br /&gt;
'''sc_trans''' - This is the name the SHOUTcast Transcoder is otherwise known as.&lt;br /&gt;
&lt;br /&gt;
'''sc_serv''' or '''sc_serv2''' - This is the name the SHOUTcast DNAS Server is otherwise known as.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Transcoder_2</id>
		<title>SHOUTcast DNAS Transcoder 2</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Transcoder_2"/>
				<updated>2022-10-06T10:36:09Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Registering for MP3 Stream Encoding */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''The Shoutcast Transcoder (sc_trans) is no longer maintained or supported.'''&lt;br /&gt;
&lt;br /&gt;
'''This documentation remains here for legacy purposes only.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document shows you the different configuration options supported by sc_trans along with basic and more advanced example configurations enabling you to get started with using sc_trans and the various features it can offer.&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
&lt;br /&gt;
To get started using sc_trans you need to have some media to play or to have a stream you want to relay via sc_trans. With a 'source' you can use then you will need to setup your configuration file for the transcoder so it can process the input source and provide an output which can be used by the DNAS server (see [[SHOUTcast_DNAS_Server_2|sc_serv2.txt]] in the sc_serv distribution for more details especially those for stream configurations as non-matching details will prevent sc_trans from being able to connect to it).&lt;br /&gt;
&lt;br /&gt;
The following sections will show how to get sc_trans up and running along with details on the configuration options it provides for handling different sources and outputs it can support.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Running The Transcoder===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The transcoder is able to be run either as a console application or it can be run as service (Windows) or daemon (Linux / Mac OS X / BSD). Detailed below is how to get the transcoder running on the different operating systems supported by it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The Windows version of sc_trans is designed to run on fully updated and patched versions of Windows 2000, XP, Vista and Windows 7.&lt;br /&gt;
&lt;br /&gt;
Please note that the Windows versions of sc_trans are built with a dependency against the Microsoft Visual C++ 2008 SP1 Redistributable Package. If sc_trans is unable to start due to a dependency issue then you will need to install the correct version of the package so it can run which depends on the version of sc_trans you are attempting to run:&lt;br /&gt;
&lt;br /&gt;
32-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&lt;br /&gt;
&lt;br /&gt;
64-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ba9257ca-337f-4b40-8c14-157cfdffee4e&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Install as a Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_trans.exe install &amp;lt;servicename&amp;gt; &amp;lt;username&amp;gt; &amp;lt;password&amp;gt; &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service&lt;br /&gt;
 Typically enter this as 'sc_serv' though you can use a different name but you will need&lt;br /&gt;
 to remember it as it is required to be the same when using the 'uninstall' mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;username&amp;gt; - User under which to run the service as or '0' for the local system&lt;br /&gt;
&lt;br /&gt;
&amp;lt;password&amp;gt; - Password for user or '0' for the local system or with no password&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file&lt;br /&gt;
 If no file / an invalid file is specified then sc_trans will abort loading.&lt;br /&gt;
&lt;br /&gt;
When run as a service there is not a good sense of a current working directory so requires all paths in the configuration and playlist files to be fully qualified otherwise lookups will fail when sc_serv is run.&lt;br /&gt;
&lt;br /&gt;
To run sc_serv with a configuration file in the same folder as the server as the current system user account you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_trans.exe install sc_trans 0 0 sc_trans.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Uninstall the Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_trans.exe uninstall &amp;lt;servicename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service as used when the service was registered&lt;br /&gt;
&lt;br /&gt;
To uninstall sc_serv assuming it was installed as detailed in the install section above then you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_trans.exe uninstall sc_trans&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Service in the Console====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_trans.exe &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_trans will abort loading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Linux / Mac OS X / BSD===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Remember to enable the required access on the sc_trans file by doing 'chmod a+x sc_trans' after extracting it from the distribution file otherwise the OS is likely to not run it and show the error message './sc_trans: Permission denied'.&lt;br /&gt;
&lt;br /&gt;
====Run as a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_trans daemon &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (required in all cases)&lt;br /&gt;
 If no file / an invalid file is specified then sc_trans will abort loading.&lt;br /&gt;
&lt;br /&gt;
'''e.g.'''&lt;br /&gt;
    ./sc_trans daemon ./sc_trans.conf&lt;br /&gt;
&lt;br /&gt;
When run this should output the following:&lt;br /&gt;
&lt;br /&gt;
'sc_trans going daemon with PID [XXXX]' where XXXX is the &amp;lt;pid&amp;gt; of the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====End a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
kill -SIGTERM &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -15 &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -s TERM &amp;lt;pid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pid&amp;gt; - The PID of the daemon instance (reported when the daemon started or can be found with 'ps ax | grep sc_serv' as long as sc_serv was the file run otherwise you can just use 'ps ax' if the filename isn't known). Additionally the PID of sc_trans is listed in the log file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_trans &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_trans will abort loading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Additional Signals===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
When run on Linux / Mac OS X / BSD then some additional signals are supported to allow for additional control over the running daemon instance of sc_trans.&lt;br /&gt;
&lt;br /&gt;
The following signals can be used with the 'kill' command (in the manner of your choosing for using the kill command) along with the &amp;lt;pid&amp;gt; of the daemon instance to do one of the following actions:&lt;br /&gt;
&lt;br /&gt;
 SIGKILL   -  Stops sc_trans (also SIGTERM, SIGINT and SIGQUIT will work)&lt;br /&gt;
 SIGHUP    -  Rotates logfile&lt;br /&gt;
 SIGWINCH  -  Skips to next song in playlist&lt;br /&gt;
 SIGUSR1   -  Reload playlist&lt;br /&gt;
 SIGUSR2   -  Toggle playlist shuffle&lt;br /&gt;
&lt;br /&gt;
The result of SIGHUP is that the current log file contents will be moved into &amp;lt;logfile&amp;gt;_1 '''e.g.''' sc_trans_1.log, &amp;lt;logfile&amp;gt;_1 will be moved into &amp;lt;logfile&amp;gt;_2 '''e.g.''' sc_trans_2.log and so on for all log files which can be found which match the current log file's name. This is useful if timed to have it create day specific log files.&lt;br /&gt;
&lt;br /&gt;
 These signals are not supported by the Windows version of sc_trans which will only&lt;br /&gt;
 respond to the Ctrl + C / Ctrl + Break / console close commands the OS provides.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Registering for MP3 Stream Encoding===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Note: This section is deprecated.'''&lt;br /&gt;
&lt;br /&gt;
'''All mp3 encoding patents have expired and a licence is therefore no longer required.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order for compliance with all broadcasting laws there is a legal requirement for the need to purchase an MP3 license key in-order to be able to encode your stream in MP3 (see [[#MP3_Encoding|section 3.10]] for the related configuration entries). The license key should cost $5.&lt;br /&gt;
&lt;br /&gt;
To obtain the license key you need to go to the following page which will takes you to a secure page for purchasing the MP3 encoding license key:&lt;br /&gt;
    [dead link removed]&lt;br /&gt;
&lt;br /&gt;
Once the license key has been obtained (this should be a quick process only taking a few minutes when done) then you just need to add the 'name' and 'key' you have obtained into the 'unlockkeyname' and 'unlockkeycode' values in your configuration file (see [[#MP3_Encoding|section 3.10]]) and to change the 'encoder' type for the stream(s) you require from 'aacp' to 'mp3' to use it (see [[#Encoder_Options|section 3.4]]).&lt;br /&gt;
&lt;br /&gt;
So if your key is '123456' and you have used 'Bob Cratchit' as the registered name during the billing process, you would add the following to your configuration file:&lt;br /&gt;
    unlockkeyname=Bob Cratchit&lt;br /&gt;
    unlockkeycode=123456&lt;br /&gt;
&lt;br /&gt;
If the details do not exactly match then the Transcoder will show a message and will not allow the encoding of MP3 streams until the configuration issue has been resolved. The common cause for failure is not entering the '''unlockkeyname''' exactly as specified for the billing name of the method used during the purchase.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Why Does AAC Encoding Not Require a License Key?====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Encoding to an AAC stream does also require a license like the MP3 encoding though this has already been paid for you so there is no need for you to do so yourself when using sc_trans. This setup may seem strange but it is just how things happen with the different nature of licensing encoding of the AAC and MP3 formats.&lt;br /&gt;
&lt;br /&gt;
===Supported File Formats===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
As sc_trans does transcoding of audio from one format to another for then being fed to a server or another sc_trans instance as a relay, the following file extensions are handled as valid input file sources:&lt;br /&gt;
&lt;br /&gt;
 MP3 + MPEG (treated as mp3)&lt;br /&gt;
 WAV (uncompressed)&lt;br /&gt;
 OGG&lt;br /&gt;
 FLAC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration File==&lt;br /&gt;
&lt;br /&gt;
Here you can find a complete list of all of the configuration options which are provided by sc_trans which ranges from logging to networking configuration to control over how the media is encoded before transmission to the server.&lt;br /&gt;
&lt;br /&gt;
The entries stored in the configuration file are processed case insensitively.&lt;br /&gt;
&lt;br /&gt;
Configuration entries labelled as ''&amp;lt;MULTI&amp;gt;'' can be used to set up specific encoder types or for specifying multiple playlists for use with the calendar system. These are specified by adding _# to the end of the option's name as shown below where # begins with one. If you are only working with a single instance then you do not need to add the _# part as&lt;br /&gt;
any instances of a configuration option will assume it is for _1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;MULTI&amp;gt;'' system is not hierarchical and all values beyond the default must be specified for all connections. So for example, if you wanted to connect to two servers on the same port you must do:&lt;br /&gt;
&lt;br /&gt;
    encoder_1=aacp&lt;br /&gt;
    encoder_2=mp3&lt;br /&gt;
    bitrate_1=32000&lt;br /&gt;
    bitrate_2=32000&lt;br /&gt;
&lt;br /&gt;
Note that you CANNOT do it like this as it leads to not all values being set:&lt;br /&gt;
&lt;br /&gt;
    encoder_1=aacp&lt;br /&gt;
    encoder_2=mp3&lt;br /&gt;
    bitrate=32000&lt;br /&gt;
&lt;br /&gt;
The configuration files also allow for notes or options to be disabled by the use of a comma (;) at the start of a line which can be seen in all of the configuration examples.&lt;br /&gt;
&lt;br /&gt;
Known options in the configuration files are recognised irrespective of the case they are entered in the configuration file so djport and dJpOrT will be handled the same way.&lt;br /&gt;
&lt;br /&gt;
Any items found in the configuration file which are not known (as detailed in following sections) or is not processed as a comment will be reported in the following manner:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;date + time&amp;gt; W msg:[CONFIG] Invalid item on line XX&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;date + time&amp;gt; is the date and time the event happens at and XX is the line in the configuration file where the error has been found to occur at.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Administration===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''adminport''' : Specify the port used to access the administrative control page    ''[Default = 0]''&lt;br /&gt;
 If no valid port is specified (i.e. zero) then this feature is disabled.&lt;br /&gt;
&lt;br /&gt;
'''adminuser''' : Specify the username used to access the administrative control page    ''[Default = admin]''&lt;br /&gt;
&lt;br /&gt;
'''adminpassword''' : Specify the password to access the administrative control page    ''[Default = goaway]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Calendar Events===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''calendarfile''' : Specify the path to the xml based calendar file    ''[Default = calendar.xml]''&lt;br /&gt;
&lt;br /&gt;
'''calendarrewrite''' : Re-write the 'calendar file' on exit    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
Note: See [[SHOUTcast_Calendar_Event_XML_File_Specification|calendarxml.txt]] for more information on the event format and what it allows you to do with playlist, DJ and relay access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===DJ Support===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''djport''' : Specify the port to listen on for DJ access using the SHOUTcast 1 protocol    ''[Default = 0 (no listening)]''&lt;br /&gt;
 This will actually open 'djport + 1' as the listening port.&lt;br /&gt;
&lt;br /&gt;
'''djport2''' : Specify the port to listen on for DJ access using the SHOUTcast 2 protocol    ''[Default = 0 (no listening)]''&lt;br /&gt;
&lt;br /&gt;
Note: It is possible to use 'djport' and 'djport2' at the same time though you need to ensure that there is no overlap of the ports used in what is specified.&lt;br /&gt;
&lt;br /&gt;
This is because 'djport2' will open the port specified unlike 'djport' which opens 'djport + 1' (as is the way with SHOUTcast 1 connections). Keep this in mind as you would not be able to do the following as it causes a duplication of the port being opened (901 in this case) :&lt;br /&gt;
 djport=900    ; i.e. will open port 901&lt;br /&gt;
 djport2=901&lt;br /&gt;
Whereas this would work as we are opening two different ports (901 + 902):&lt;br /&gt;
 djport=900&lt;br /&gt;
 djport2=902&lt;br /&gt;
&lt;br /&gt;
'''djcipher''' : Specify the key used to obfuscate the initial handshaking with the SHOUTcast 2 protocol    ''[Default = foobar]''&lt;br /&gt;
 This is a YP2 feature and it matches the 'uvoxcipherkey' value in&lt;br /&gt;
 the sc_serv configuration file (see [[SHOUTcast_DNAS_Server_2#YP_Server_Behaviour|sc_serv2.txt - section 4.14]]).&lt;br /&gt;
&lt;br /&gt;
Only change this if you really need to do so as not all SHOUTcast 2 clients will allow you to edit this value from the default value. If using the Source DSP plug-in then see [[Source_DSP_Plug-in#SHOUTcast_2_Cipher_Key|dsp_sc.txt - section 5.0]] for details on how to change the plug-in to use a differnet value.&lt;br /&gt;
&lt;br /&gt;
'''autodumpsourcetime''' : Specify the maximum idle time for the DJ in seconds before being disconnected    ''[Default = 30]''&lt;br /&gt;
&lt;br /&gt;
'''djbroadcasts''' : Specify the directory in which DJ broadcasts will be recorded into    ''[Default = recorded\ or recorded/ - relative to sc_trans[.exe] ]''&lt;br /&gt;
&lt;br /&gt;
'''djcapture''' : Enable to allow the recording of the DJ broadcast    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''djfilepattern''' : Specify how the DJ archive filenames will be created in the form of &amp;lt;djname&amp;gt;&amp;lt;date time pattern&amp;gt;suffix    ''[Default = _%Y_%m_%d_%H_%M_%S. (year_month_day_hour_minute_second)]''&lt;br /&gt;
 The date and time information are formatted using strftime().&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each DJ):&lt;br /&gt;
&lt;br /&gt;
'''djlogin''' : Specify the username required for the DJ to get access    [Default = dj]&lt;br /&gt;
 When connecting as a SHOUTcast 1 source the password has to be specified as &amp;lt;djlogin&amp;gt;:&amp;lt;djpassword&amp;gt;  '''e.g.'''  dj:noise&lt;br /&gt;
&lt;br /&gt;
'''djpassword''' : Specify the password required for the DJ to get access    ''[Default = noise]''&lt;br /&gt;
&lt;br /&gt;
'''djpriority''' : Specify the priority for the DJ when multiple DJ's are connected    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Encoder Options===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each encoder):&lt;br /&gt;
&lt;br /&gt;
'''encoder''' : Specify the encoder to use, either (mp3 or aacp)    ''[Default = aacp]''&lt;br /&gt;
&lt;br /&gt;
'''bitrate''' : Specify the encoding bitrate in bits per second    ''[Default = 96000]''&lt;br /&gt;
&lt;br /&gt;
'''samplerate''' : Specify the encoding sample rate to use    ''[Default = 44100]''&lt;br /&gt;
&lt;br /&gt;
'''channels''' : Specify the number of channels to encode    ''[Default = 2]''&lt;br /&gt;
&lt;br /&gt;
'''mp3quality''' : Specify the MP3 encoder quality to use when encoding    ''[Default = 0]''&lt;br /&gt;
Available options are :&lt;br /&gt;
 0 - fast (preferred)&lt;br /&gt;
 1 - high quality (changes sample rate and does additional filtering)&lt;br /&gt;
&lt;br /&gt;
'''mp3mode''' : Specify the MP3 encoder mode (CBR / VBR) to use when encoding    ''[Default = 0]''&lt;br /&gt;
Available options are :&lt;br /&gt;
 0 - CBR&lt;br /&gt;
 1 - VBR High Quality&lt;br /&gt;
 2 - &lt;br /&gt;
 3 - VBR Medium Quality &lt;br /&gt;
 4 - &lt;br /&gt;
 5 - VBR Low Quality]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Flash Security===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''flashpolicyfile''' : Specify the name of file which contains the flash crossdomain policies    ''[Default = crossdomain.xml]''&lt;br /&gt;
&lt;br /&gt;
'''flashpolicyserverport''' : Specify the port used for the flash policy server    ''[Default = 0]''&lt;br /&gt;
 Specify '843' if you want to turn this on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Live Capture===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''capture''' : Enable to allow the use of live capture as an input    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''capturedevice''' : Specify the OS dependent device used for capture    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''captureinput''' : Specify the OS dependent input used for capture    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''capturesamplerate''' : Specify the sample rate used for capture    ''[Default = 44100]''&lt;br /&gt;
&lt;br /&gt;
'''capturechannels''' : Specify the number of channels to capture    ''[Default = 2]''&lt;br /&gt;
&lt;br /&gt;
Note: When run under Windows on an operating system newer than XP there is a possibility for the device name obtained from Windows to be longer than 32 characters. This is a problem as the api's used only support device names upto 31 characters in length so sc_trans will attempt to clip the device name specified with 'capturedevice' to 31 characters to try to get a match with the devices the OS is reporting.&lt;br /&gt;
&lt;br /&gt;
If you are having issues with the live capture then add 'capturedebug=1' to allow you to see the device names reported back to sc_trans by the OS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Logging Options===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''log''' : Enable logging of the transmission output    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''screenlog''' :  Enable logging of output to the console    ''[Default = 1]''&lt;br /&gt;
 If log=0 or when running this as a daemon / service then this option is ignored as it is not applicable.&lt;br /&gt;
&lt;br /&gt;
'''logfile''' : Specify a different logfile to save the transmission logs into    ''[Default = %temp%\sc_trans.log or /tmp/sc_trans.log]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the logs into then you need to ensure that the&lt;br /&gt;
 folder already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Metadata Control===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''streamtitle''' : Specify the general name for the radio station or stream    ''[Default - Misc]''&lt;br /&gt;
&lt;br /&gt;
'''streamurl''' : Specify the url of the radio station or stream    ''[Default = &amp;lt;nowiki&amp;gt;http://www.shoutcast.com&amp;lt;/nowiki&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''genre''' : Specify the genre for the radio station or stream    ''[Default - N/A]''&lt;br /&gt;
&lt;br /&gt;
'''aim''' : Specify the AIM contact ID to show for the radio station or stream    ''[Default - N/A]''&lt;br /&gt;
&lt;br /&gt;
'''irc''' : Specify the IRC contact ID to show for the radio station or stream    ''[Default - N/A]''&lt;br /&gt;
&lt;br /&gt;
'''icq''' : Specify the ICQ contact ID to show for the radio station or stream    ''[Default - N/A]''&lt;br /&gt;
&lt;br /&gt;
'''public''' : Enable to register the radio station or stream with the YP (shoutcast.com)    ''[Default = 0]''&lt;br /&gt;
 If connected to sc_serv then this is used by the 'publicserver' value&lt;br /&gt;
 unless it is being overriden (see [[SHOUTcast_DNAS_Server_2#YP_Server_Behaviour|sc_serv2.txt - section 4.14]]).&lt;br /&gt;
&lt;br /&gt;
'''usemetadata''' : Enable to use use the in file metadata i.e. stored in file tags    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''metadatapattern''' : Specify the pattern used for extracting metadata from the filename    ''[Default = *\%N.* or */%N.*]''&lt;br /&gt;
 See [[#Filename_Metadata_Extraction|section 6.0]] for more details about this)&lt;br /&gt;
&lt;br /&gt;
'''displaymetadatapattern''' : Specify a pattern to use to form the metadata output string for SHOUTcast 1 metadata    ''[Default = %R[ - ]%N]''&lt;br /&gt;
&lt;br /&gt;
'''nextlookahead''' : Specifies the number of tracks ahead of the current track playing to be reported in the stream's metadata to the server    ''[Default = 3]''&lt;br /&gt;
 This is the maximum limit attempted to be reported and will vary based on the source in use&lt;br /&gt;
 e.g. if there enough entries in the current playlist being played. Setting to zero will disable this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''configrewrite''' :  Re-write the 'config file' on exit    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''timemultiplier''' : Used to shift reported time in certain uses    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''inheritconfig''': Specify the path of the sc_serv2 configuration file for the instance you want to use the transcoder with    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
The aim of this option is to make it easier to get an instance of sc_trans to run with sc_serv by ensuring that any passwords, etc match up. By using this, option any of the configuration options already set in the sc_trans config file (see below) will be replaced by those found in the sc_serv configuration file.&lt;br /&gt;
&lt;br /&gt;
The configuration options read from the sc_serv2 configuration file including what they are mapped from in the sc_serv2 value to the sc_trans value are:&lt;br /&gt;
&lt;br /&gt;
* '''portbase -&amp;gt; serverport'''&lt;br /&gt;
* '''password -&amp;gt; password''' - Master source password overriden by streampassword&lt;br /&gt;
* '''streampassword -&amp;gt; password'''&lt;br /&gt;
* '''uvoxcipherkey -&amp;gt; djcipher'''&lt;br /&gt;
* '''srcip -&amp;gt; serverip'''  -  Will use the ip set unless is empty or srcip=any&lt;br /&gt;
* '''yp2 -&amp;gt; outprotocol''' - Sets outprotocol=1 if with yp2=0 otherwise it sets outprotocol=3 as a v2 DNAS is assumed to be used and if found to be v1 configuration then outprotocol=1&lt;br /&gt;
&lt;br /&gt;
Additionally this mode will attempt to read configurations from a v1 DNAS file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''include''' : Specify an additional include file containing settings to be processed from the current point in the main configuration file    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
Note: You can do multiple calls of this allowing for a basic configuration file with then 'specific' encoder configurations set in individual conf files though you need to ensure not to include a reference to the same file in itself.&lt;br /&gt;
&lt;br /&gt;
'''serverbackupfile''' : Set the server side file for broken connection playback    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''serverintrofile''' : Set the server side file that is played when a user connects    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
Note: With both of these options, they will override any files specified in the sc_serv's configuration file and also requires 'outprotocol=3' for it to be supported (see [[#Network_Options|section 3.11]] for the options 'outprotocol' supports).&lt;br /&gt;
&lt;br /&gt;
Additionally when connecting to sc_serv via sc_trans, the server intro and backup files as specified in sc_servs configuration file (see [[SHOUTcast_DNAS_Server_2#Introduction_and_Backup_Files|sc_serv2.txt - section 4.5]]) will not be played so you need to specify them in the sc_trans configuration if required for the stream (this is a quirk of how sc_serv currently works).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MP3 Encoding===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''unlockkeyname''' : Specify the name to use to unlock mp3 encoding (case sensitive)&lt;br /&gt;
&lt;br /&gt;
'''unlockkeycode''' : Specify the code associated with name to unlock mp3 encoding&lt;br /&gt;
&lt;br /&gt;
 Due to licensing requirements for MP3 encoding see [[#Registering_for_MP3_Stream_Encoding|section 2.5]]&lt;br /&gt;
 for how to obtain the key required for unlocking MP3 encoding in sc_trans.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Network Options===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each connection):&lt;br /&gt;
&lt;br /&gt;
'''endpointname''' : Specify the name of the endpoint    ''[Default - &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: This is used to identify the encoder such as when using the AJAX api interfaces and if not specified then sc_trans creates a default name as 'endpointX' where 'X' is the encoder index starting at one. See [[SHOUTcast_Transcoder_AJAX_api_Specification|sc_trans_ajax_api.txt]] for more information on the use of this.&lt;br /&gt;
&lt;br /&gt;
'''outprotocol''' : Specify the server protocol to use    ''[Default = 1]''&lt;br /&gt;
This can be:&lt;br /&gt;
 1 = SHOUTcast 1 (Legacy)&lt;br /&gt;
 2 = Ultravox (Ultravox 2.0)&lt;br /&gt;
 3 = SHOUTcast 2 (Ultravox 2.1)&lt;br /&gt;
&lt;br /&gt;
'''serverip''' : Specify the IP address of server to connect to    ''[Default - &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: If 'srcip' has been set to a value other than 'any' in the sc_serv configuration then you need to set it for you sc_trans configuration otherwise sc_serv will not see the sc_trans connection attempts (see [[SHOUTcast_DNAS_Server_2#Client_Behaviour|sc_serv2.txt - section 4.2]]).&lt;br /&gt;
                 &lt;br /&gt;
Additionally, you will need to make sure that any IP added is valid and can be fully resolved otherwise the connection to the sc_serv instance is very likely to fail.&lt;br /&gt;
&lt;br /&gt;
'''serverport''' : Specify the server port used to connect to    ''[Default = 8000]''&lt;br /&gt;
 This should relate to the 'portbase' value set in sc_serv's configuration (see [[SHOUTcast_DNAS_Server_2#Networking|sc_serv2.txt - section 4.8]]).&lt;br /&gt;
&lt;br /&gt;
'''password''' : Specify the password used to connect to a DNAS server   ''[Default = foobar]''&lt;br /&gt;
 This matches the 'password' value in the sc_serv configuration file (see [[SHOUTcast_DNAS_Server_2#Networking|sc_serv2.txt - section 4.8]]) or 'streampassword' (see [[SHOUTcast_DNAS_Server_2#Stream_Configuration|sc_serv2.txt - section 4.12]] - this only applies for v2 DNAS servers).&lt;br /&gt;
&lt;br /&gt;
'''streamid''' : Specify the stream identifier for the SHOUTcast 2 connection    ''[Default = 1]''&lt;br /&gt;
 This relates to the 'streamid' value in the sc_serv configuration (see [[SHOUTcast_DNAS_Server_2#Networking|sc_serv2.txt - section 4.8]]).&lt;br /&gt;
&lt;br /&gt;
'''uvoxuserid''' : Specify the user ID for accessing SHOUTcast 2 (Ultravox 2.1)    ''[Default - &amp;lt;no value&amp;gt;]''&lt;br /&gt;
 This is currently not used and is provided for future usage.&lt;br /&gt;
&lt;br /&gt;
Note: If ''''requirestreamconfigs'''' is enabled in the sc_serv configuration (see [[SHOUTcast_DNAS_Server_2#Stream_Configuration|sc_serv2.txt - section 4.12]]) then you need to ensure that the 'streamid' value used in your sc_trans configuration exists in the sc_serv configuration along with any endpoint, password and other values appropriate to the 'streamid' matched with the equivalent sc_serv configuration values.&lt;br /&gt;
&lt;br /&gt;
'''uvoxradiometadata''' : Enable to send the older AOL Radio style metadata to the server    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''uvoxnewmetadata''' : Enable to send SHOUTcast 2 style metadata to the server    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''uvoxmetadatafudgefactor''' : Specify the delaying factor for Ultravox metadata in seconds    ''[Default = 0.0]''&lt;br /&gt;
&lt;br /&gt;
'''shoutcastmetadatafudgefactor''' : Specify the delaying factor for SHOUTcast metadata in seconds    ''[Default = 0.0]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Playlist Control===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''playlistfile''' : Specify the name of playlist file to use    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''shuffle''' : Enable to allow shuffling of the specified playlist    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''xfade''' : Specify the number of seconds to do  for a crossfade    ''[Default = 1]''&lt;br /&gt;
 Specify xfade=0 to disable crossfade&lt;br /&gt;
&lt;br /&gt;
'''xfadethreshold''' : Specify the minimum duration in seconds a file must be to allow crossfading in and out on it    ''[Default = 10]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Priority playlists are those used to override the playing playlist once the current song has stopped playing. This can be useful if a sudden playlist / announcement is required.&lt;br /&gt;
&lt;br /&gt;
'''playlists''' : Specify the folder used for priority playlists    ''[Default = priority\ or priority/ - relative to sc_trans[.exe]]''&lt;br /&gt;
&lt;br /&gt;
'''archive''' : Specify the folder used for archiving playlists    ''[Default = priority\archived\ or priority/archived/ - relative to sc_trans[.exe]]''&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each additional playlist):&lt;br /&gt;
&lt;br /&gt;
'''playlistfilename''' - Used to build named collections of playlists    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''playlistfilepath''' - Used to build named collections of playlists    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
Note: These playlists are used as part of the &amp;lt;playlist&amp;gt; events in calendar.xml where the name set with 'playlistfilename_X' is used in the loading done. See [[SHOUTcast_Calendar_Event_XML_File_Specification#Playlist_Events|calendarxml.txt and section 3.2]] for more information on these events.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Replay Gain Control===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''applyreplaygain''' : Enable to honour the replay gain values stored in the file    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''defaultreplaygain''' : If no replay gain is in the file then apply this adjustment    ''[Default = 0.0]''&lt;br /&gt;
&lt;br /&gt;
'''djreplaygain''' : Specify the replay gain to be applied to DJ streams    ''[Default = 0.0]''&lt;br /&gt;
&lt;br /&gt;
'''capturereplaygain''' : Specify the replay gain to apply to the live capture input    ''[Default = 0.0]''&lt;br /&gt;
&lt;br /&gt;
'''calculatereplaygain''' : Enable to calculate the replay gain on the handled files    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''replaygaintmpdir''' : Specify the temporary directory for replay gain calculator to work in    ''[Default = (Windows = %TEMP FOLDER%  Linux = /tmp/)]''&lt;br /&gt;
&lt;br /&gt;
'''replaygainrunahead''' : Specify the number of tracks head start to give the replay gain calculator    ''[Default = 2]''&lt;br /&gt;
&lt;br /&gt;
'''replaygaindontwrite''' : Specify if the replay gain values calculated should NOT be written to the file    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''enhancereplaygain''' : Specify if the file has replay gain and it is being used, an additional amount of gain to add    ''[Default = 6.0]''&lt;br /&gt;
 Winamp ships with a default value to add -6dB to file which do not have replay gain.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===VU Image===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''vuimagedirectory''' : Specify the folder in which to look for vu images to use    ''[Default = &amp;quot;&amp;quot;]''&lt;br /&gt;
 The image files are named vuimage_XX.&amp;lt;vuimagesuffix&amp;gt; where 'XX' is from 0 to 100&lt;br /&gt;
 and the path specified will need to be properly terminated to work correctly.&lt;br /&gt;
&lt;br /&gt;
'''vuimagesuffix''' : Specify the suffix for vu images to be used from the image directory    ''[Default = png]''&lt;br /&gt;
&lt;br /&gt;
'''vuimagemimetype''' : Specify the mime type for vu images to be used    ''[Default = image/png]''&lt;br /&gt;
&lt;br /&gt;
Note: This controls the images available when using the 'vumeterleft' or 'vumeterright' webcommands (see [[#Supported_Weblet_Commands|section 4.1]]). Additionally sc_trans only allows for one active use of each webcommand from the current sc_trans instance with the most current attempt made being the active instance which will be updated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Debugging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In all cases, the default value is for no debug logging for the options listed below.&lt;br /&gt;
&lt;br /&gt;
'''shuffledebug''' : Enable to activate debug logging of playlist shuffling    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''shoutcastdebug''' : Enable to activate debug logging for SHOUTcast transmission    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''uvoxdebug''' : Enable to activate debug logging for SHOUTcast 2 (Ultravox 2.1) transmissions    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''gaindebug''' : Enable to activate debug logging for replay gain on playback    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''playlistdebug''' : Enable to activate debug logging for playlists    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''mp3encdebug''' : Enable to activate debug logging for MP3 encoding    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''mp3decdebug''' : Enable to activate debug logging for MP3 decoder    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''resamplerdebug''' : Enable to activate debug logging for the resampler    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''rgcalcdebug''' : Enable to activate debug logging for the replay gain calculator    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''apidebug''' : Enable to activate debug logging for the AJAX api    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''calendardebug''' : Enable to activate debug logging for the calendar events    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''capturedebug''' : Enable to activate debug logging for live capture    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''djdebug''' : Enable to activate debug logging for DJ management    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''flashpolicyserverdebug''' : Enable to activate debug logging for the flash policy server    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''fileconverterdebug''' : Enable to activate debug logging for the server side file converter    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''sourcerelaydebug''' : Enable to active debug logging for relayed sources    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''sourceandendpointmanagerdebug''' : Enable to activate debug logging for endpoint management    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Administration Weblet Commands==&lt;br /&gt;
&lt;br /&gt;
The transcoder supports web based control of the features it provides allowing for the remote control of sc_trans much like the DNAS (sc_serv2) supports. To enable the use of the administration interface you need to specify a port and related password and username as detailed in the Administration section ([[#Administration|see 3.1]]).&lt;br /&gt;
&lt;br /&gt;
Once enabled then options detailed in the following sections will become available though the main interface and controlling aspects are available via the 'api' command with more information provided on how to use it in [[SHOUTcast_Transcoder_AJAX_api_Specification|sc_trans_ajax_api.txt]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Weblet Commands===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following are the supported commands for the administration weblet the transcoder supports and are used in the following manner:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://&amp;lt;server_ip&amp;gt;:adminport/&amp;lt;command&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''quit''' : Will make sc_trans quit (equivalent of SIGKILL on non-Windows).&lt;br /&gt;
&lt;br /&gt;
'''rotatelogs''' : Will rotate the logs (equivalent of SIGHUP).&lt;br /&gt;
The result of this is that the current log file contents will be moved into &amp;lt;logfile&amp;gt;_1 '''e.g.''' sc_trans_1.log, &amp;lt;logfile&amp;gt;_1 will be moved into &amp;lt;logfile&amp;gt;_2 '''e.g.''' sc_trans_2.log and so on for all log files which can be found which match the current log file's name. This is useful if timed to have it create day specific log files.&lt;br /&gt;
&lt;br /&gt;
'''nextsong''' : Will advance to the next song (equivalent of SIGWINCH).&lt;br /&gt;
&lt;br /&gt;
'''loadplaylist''' : This will re-load the current playlist (equivalent of SIGUSR1).&lt;br /&gt;
&lt;br /&gt;
'''toggleshuffle''' : Use to toggle the current playlist shuffle state (equivalent of SIGUSR2).&lt;br /&gt;
&lt;br /&gt;
'''kickdj?duration=hh:mm:ss''' : You can specify an amount of time for how long to kick the current DJ for. If a duration is not set i.e. just using 'kickdj', then this will defaults to 15 minutes (00:15:00). If a duration is specified then all three fields of 'hh:mm:ss' must be specified even if their value is zero (ie 01:30:30).&lt;br /&gt;
&lt;br /&gt;
'''restart''' : Restart the current sc_trans instance.&lt;br /&gt;
&lt;br /&gt;
'''vumeterleft''' or '''vumeterright''' : This will initiate a server side image push that represents the vu levels as long as there are images are available to sc_trans to use for this (see [[#VU_Image|section 3.14]]).&lt;br /&gt;
&lt;br /&gt;
'''vu.bin''' : This will return a continuous stream of type 'misc/sc-vu' as long as sc_trans is transcoding. The format of the stream is:&lt;br /&gt;
 0xa5 leftVal rightVal 0xa5 leftVal ..... etc&lt;br /&gt;
&lt;br /&gt;
If the audio signal is mono there is no right val and you get:&lt;br /&gt;
 0xa5 leftVal 0xa5 leftVal .... etc&lt;br /&gt;
&lt;br /&gt;
'''writeconfig''' : This will write out the currently stored configuration and event details to the respective configuration and calendar.xml file. You will need to ensure that you have specified valid files in the configuration options for these files otherwise they won't be saved correctly and any changes may be lost.&lt;br /&gt;
&lt;br /&gt;
'''crossdomain.xml''' : This will return the current copy of crossdomain.xml as set with 'flashPolicyFile' ([[#Flash_Security|see section 3.5]]).&lt;br /&gt;
&lt;br /&gt;
'''timeshift?t=#''' : [EXPERIMENTAL] This applies a time shift to the audio though the default is to have no shift (i.e. t=0). This should not be used unless you know what it does (added for specific Aol use).&lt;br /&gt;
&lt;br /&gt;
'''api''' : This is the point from where you can make use of the AJAX api which sc_trans offers and is used as a POST method. For more information on the parameters and options supported see [[SHOUTcast_Transcoder_AJAX_api_Specification|sc_trans_ajax_api.txt]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Metadata Support==&lt;br /&gt;
&lt;br /&gt;
As detailed in [[#Metadata_Control|section 3.8]] there are a number of ways to allow for the use of metadata from the files being played though there are certain limits to this support for different file formats currently supported by sc_trans as detailed in the following sections.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MP3 Files===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
There is support for ID3v1 and ID3v2 tags. With ID3v2 there is support of version 3 and 4 of the specification though there are the following limitations:&lt;br /&gt;
# Unsynch data is not supported&lt;br /&gt;
# Compressed frames are not supported&lt;br /&gt;
# Encrypted frames are not supported&lt;br /&gt;
# Appended v4 frames are not supported&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===FLAC and OGG Files===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
There is support of the native metadata (Vorbis comment tags). Metadata read from these files are mapped to expected values which SHOUTcast expects to get. For more information see [[SHOUTcast_XML_Metadata_Specification|sc2_xml_metadata.txt]] for details on the various field mappings applied.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Filename Metadata Extraction==&lt;br /&gt;
&lt;br /&gt;
The transcoder along with being able to make use of the metadata from files is also able to attempt to extract metadata from the filepath of the files by use of a template.&lt;br /&gt;
&lt;br /&gt;
Guessing of the metadata from the filename will happen if 'usemetadata=0' is set in your configuration file (default behaviour is to use the file tag) or if no tag is detected in the file. For the best experience it is always best to ensure any files you use have tags and the required metadata in them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Filename Metadata Extraction Pattern===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The 'metadataPattern' setting is used to specify the pattern used to extract metadata from a filename if there is no detected metadata or 'usemetadata=0'.&lt;br /&gt;
&lt;br /&gt;
The default pattern used is *\%N.* (Windows) and */%N.* (all other OSes). The following are the formatting options which are supported in the pattern:&lt;br /&gt;
 %N = Song name&lt;br /&gt;
 %G = Genre&lt;br /&gt;
 %A = Album&lt;br /&gt;
 %R = Artist&lt;br /&gt;
 %Y = Four digit year&lt;br /&gt;
 %# = Sequence of digits&lt;br /&gt;
 %% = % character&lt;br /&gt;
 [] = Brackets optional elements (no nesting)&lt;br /&gt;
 *  = String&lt;br /&gt;
 Other characters are matched exactly as found.&lt;br /&gt;
&lt;br /&gt;
The pattern matching is done working from the right to the left.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Filename Metadata Extraction Examples===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following examples show the metadata pattern matching working.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Example #1====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 metadataPattern = */%R/%Y%A/Audio/[%#_]%N.*&lt;br /&gt;
 filepath = /home/songs/Mask and Wig/1969 Irreverance Of Things Past/Audio/03_The Royal Blues.mp3&lt;br /&gt;
&lt;br /&gt;
Extracted metadata result:&lt;br /&gt;
 ALBUM = Irreverance Of Things Past&lt;br /&gt;
 ARTIST = Mask and Wig&lt;br /&gt;
 SONG = The Royal Blues&lt;br /&gt;
 YEAR = 1969&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Example #2====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 metadatapattern = */%A/[%R_]%N&lt;br /&gt;
 filepath = /home/album/song&lt;br /&gt;
&lt;br /&gt;
Extracted metadata result:&lt;br /&gt;
 ALBUM = album&lt;br /&gt;
 SONG = song&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====6.2.3   Example #3====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 metadatapattern = */%A/%R_%N&lt;br /&gt;
 filepath = /home/album/artist_song&lt;br /&gt;
&lt;br /&gt;
Extracted metadata result:&lt;br /&gt;
 ALBUM = album&lt;br /&gt;
 ARTIST = artist&lt;br /&gt;
 SONG = song&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===File Metadata Construction For SHOUTcast 1===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You can specify how metadata elements are concatenated together to from the SHOUTcast 1 metadata string by specifying the 'displaymetadatapattern' option.&lt;br /&gt;
&lt;br /&gt;
In a standard Winamp client install then it will expect the data in the equivalent format of '%R[ - ]%A[ - ]%N' and uses that format to parse the data. If you deviate from this or if the user has changed settings in their Winamp client then the results may not display properly with what is expected to be shown.&lt;br /&gt;
&lt;br /&gt;
The following token substitutions are made with 'displaymetadatapattern':&lt;br /&gt;
&lt;br /&gt;
 %N = Song name&lt;br /&gt;
 %A = Album name&lt;br /&gt;
 %R = Artist&lt;br /&gt;
 %G = Song genre&lt;br /&gt;
 %Y = song year&lt;br /&gt;
 %t = Station name (a.k.a. stream title a.k.a. icy-name)&lt;br /&gt;
 %u = Station url (a.k.a. icy-url)&lt;br /&gt;
 %g = Station genre (a.k.a. icy-genre)&lt;br /&gt;
&lt;br /&gt;
Characters in brackets are only displayed if the token substitution to the left of them did not result in the insertion of an empty string.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Playlists Support==&lt;br /&gt;
&lt;br /&gt;
The transcoder supports a playlist file to specify the file(s) to use when it is working and is a file with the .lst extension with one file per line. The file may be encoded in UTF-8 to allow for the support of non-english filenames, etc.&lt;br /&gt;
&lt;br /&gt;
Lines in the playlist beginning with a # will be ignored which allows you to disable a specific file or script in the playlist or comments on what is done.&lt;br /&gt;
&lt;br /&gt;
The playlist file will be processed until the end of the file is reached or until the parser comes across a line containing ###!EOF is detected.&lt;br /&gt;
&lt;br /&gt;
With versions of sc_trans prior to those from the end of 2010 there was a need to have a line break after the last entry in the playlist for them to be correctly recognised. This is no longer a requirement of the playlist format.&lt;br /&gt;
&lt;br /&gt;
Wildcards are supported in the processing of the folder contents though this will not do a recursion of any sub-folders within the specified folder '''e.g.'''  c:\music\*.mp3&lt;br /&gt;
&lt;br /&gt;
This will only find mp3 files in the 'music' folder and will not look in any sub-folders which may be inside the 'music' folder. For sub-folders to be included then you will need to explicitly specify the sub-folder for it to be recognised by the playlist loader.&lt;br /&gt;
&lt;br /&gt;
Additionally these entries can be intermixed with regular explicit entries '''e.g.'''&lt;br /&gt;
 c:\music\foo.mp3&lt;br /&gt;
 c:\music\otherstuff\*.mp3&lt;br /&gt;
 c:\music\bar.mp3&lt;br /&gt;
&lt;br /&gt;
Any entries which relate to file formats not supported (determined by the file extension) will be ignored from the playlist stored e.g. test.aac would not be used if read.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Playlist Formats===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The transcoder supports the following playlist file formats though is limited to use only the filepaths from the playlist formats which also provide additional title / metadata information in them:&lt;br /&gt;
&lt;br /&gt;
 Plain text file - this is the equivalent of a commentless M3U / M3U8 file&lt;br /&gt;
 PLS&lt;br /&gt;
 M3U&lt;br /&gt;
 M3U8 (UTF-8 encoded version of the M3U format)&lt;br /&gt;
&lt;br /&gt;
If a loaded playlist contains any entries with wildcards in them then the playlist loader will only attempt to find the matching files in the base folder specified and will not recurse into any sub-folders found. This is different to how Winamp for example (and any other programs) handles the loading of such entries where it would then recurse through any sub-folders found. This behaviour may change at a future time but is not guaranteed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Remote Applications===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
An additional feature of the transcoders playlist support is the ability to run remote applications in place of a fixed playlist line. This is done by starting a line with #! '''e.g.'''&lt;br /&gt;
 /music/foo.mp3&lt;br /&gt;
 #!/bin/perl /home/user/songfromDB.pl&lt;br /&gt;
 /music/bar.mp3&lt;br /&gt;
&lt;br /&gt;
The script run in this case should return the entry in the playlist to run at this point. The script is also passed an integer parameter indicating how many tracks ahead must also be returned by the script.&lt;br /&gt;
&lt;br /&gt;
By returning these extra tracks as well as the first one expected then this information will be used by YP2 to refine searching and also to establish a &amp;quot;coming soon&amp;quot; track which will be shown to clients or on the SHOUTcast site.&lt;br /&gt;
&lt;br /&gt;
So with this style of playlist handling, it is possible to have an external app running which will provide all of the files for sc_trans to process which could be of use if you have a specific requirement for when and how files are played.&lt;br /&gt;
&lt;br /&gt;
Additionally you can pair remote application actions together in such a manner:&lt;br /&gt;
 #!php call track script&lt;br /&gt;
 #!php call commercial script&lt;br /&gt;
&lt;br /&gt;
where this will alternate between the first and second scripts returning the file to be processed through sc_trans.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Additional Information===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Every entry in the playlist is run through a wildcard expander specific to the operating system the transcoder is being run on. Under *nix systems then glob() is used and for Windows systems FindFirstFile() is used to handle the wildcard.&lt;br /&gt;
&lt;br /&gt;
There are a number of scenarios to be considered for remote application entries in a playlist as detailed in the following list:&lt;br /&gt;
&lt;br /&gt;
# The standard out from the command is used as the name of the file to open.&lt;br /&gt;
# If the standard out is empty then the entry will be skipped.&lt;br /&gt;
# If the command returns an error code (non zero) then the entire playlist of which the entry is a member off will be considered to be finished.&lt;br /&gt;
# The data written to standard out should be encoded in the UTF-8 format and if returning multiple entries needs to be separated by a newline character.&lt;br /&gt;
# If only a single track name is returned by the remote application then the following values in the playlist will be used for &amp;quot;coming soon&amp;quot; calculations.&lt;br /&gt;
# If you return the requested number of additional tracks (passed in when it is run) then these will be used for &amp;quot;coming soon&amp;quot; calculations.&lt;br /&gt;
# If there are [ or ] in the filepath then for them to appear instead of being used as a filter, you will need to escape them normally as \[ and \] else it is often likely that the files will fail to load. This is more of an issue on non-Windows versions due to how the shell and expansion works.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==DJing Information==&lt;br /&gt;
&lt;br /&gt;
The DJ port (configuration option 'djport' or 'djport2') mimics the behaviour of sc_serv by allowing someone running another copy of sc_trans (or the Winamp DSP plug-in) to connect to your sc_trans and then to broadcast through it which effectively turns your sc_trans into a relay.&lt;br /&gt;
&lt;br /&gt;
The 'djport' or 'djport2' value (see [[#DJ_Support|section 3.3]] for more details setting this up) is the IP port you choose to have your sc_trans to listen on for an inbound DJ connection (by default this feature is not enabled).&lt;br /&gt;
&lt;br /&gt;
A simple example of this feature is if you have a friend who wants to do a show on your station. At the appropriate time they would start their own instance of sc_trans which will then connect to your instance as if it was a server. When the connection happens then your sc_trans instance will stop the current playlist playback and will crossfade into your friends show. Then when the show is over and the friend disconnects then your instance of sc_trans will crossfade back into the playlist from the point when the friend had connected.&lt;br /&gt;
&lt;br /&gt;
The DJ broadcast will also be copied to disk for later playback assuming that 'djcapture' has not been changed from the default settings though you can turn this feature off if required. See [[#DJ_Support|section 3.3]] for more available options.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Setting Up DJs In The New Scheme===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
DJ accounts are set up by using the 'djlogin', 'djpassword' and 'djpriority' options as shown in &amp;lt;MULTI&amp;gt; options under [[#DJ_Support|section 3.3]].&lt;br /&gt;
&lt;br /&gt;
If we have two DJs who we want to allow access into our system then we would have the following in our main configuration file (obviously in real use change the names and passwords to what you need):&lt;br /&gt;
&lt;br /&gt;
 djlogin_1=peter&lt;br /&gt;
 djpassword_1=foobar&lt;br /&gt;
 djpriority_1=4&lt;br /&gt;
 &lt;br /&gt;
 djlogin_2=paul&lt;br /&gt;
 djpassword_2=goaway &lt;br /&gt;
 djpriority_2=2&lt;br /&gt;
&lt;br /&gt;
The priority value is used if the scheduling allows for two different DJs to connect into the instance of sc_trans at the same time. If this did happen then the DJ with the higher priority will take precedence on the access made.&lt;br /&gt;
&lt;br /&gt;
Now that we have setup the DJs in our main configuration, we will need to setup access for them via the calendar.xml file scheduler ([[SHOUTcast_Calendar_Event_XML_File_Specification|see calendarxml.txt]]). In this example Peter is allowed access to sc_trans at any time whereas Paul is only allowed a connection to sc_trans on Tuesdays at 2am for an hour. Finally the shows Peter makes will not be saved whilst Paul's ones will be archived.&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;&lt;br /&gt;
    &amp;lt;eventlist&amp;gt;&lt;br /&gt;
      &amp;lt;event type=&amp;quot;dj&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;dj archive=&amp;quot;0&amp;quot;&amp;gt;peter&amp;lt;/dj&amp;gt;&lt;br /&gt;
        &amp;lt;calendar/&amp;gt;&lt;br /&gt;
      &amp;lt;/event&amp;gt;&lt;br /&gt;
      &amp;lt;event type=&amp;quot;dj&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;dj archive=&amp;quot;1&amp;quot;&amp;gt;paul&amp;lt;/dj&amp;gt;&lt;br /&gt;
        &amp;lt;calendar starttime=&amp;quot;02:00:00&amp;quot; duration=&amp;quot;01:00:00&amp;quot; repeat=&amp;quot;4&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/event&amp;gt;&lt;br /&gt;
    &amp;lt;/eventlist&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now everything is setup, all that is needed is to run sc_trans and for Peter and Paul to setup their setups (either via another sc_trans or Winamp + Source DSP for example) with the required login details and then they will be able to connect as set in the schedule.&lt;br /&gt;
&lt;br /&gt;
Note: When connecting as a SHOUTcast 1 source, the DJ must specify the login password in the form of &amp;lt;djlogin&amp;gt;:&amp;lt;djpassword&amp;gt;  '''e.g.'''  paul:goaway   If not done correctly then the DJ will not be able to connect. [[#DJ_Support|Section 3.3]] provides more information on the configuration values required.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Virtual Memory Footprint (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
Due to how sc_trans works it will create a large number of threads which may become an issue due to the default virtual memory stack allocation per thread potentially being large (typically 10MB per thread). For most people this should not be an issue as the memory is not really allocated unless it is used. If however if you have a resource constrained system or if you plan on running many copies of sc_trans then you could potentially run out of virtual memory.&lt;br /&gt;
&lt;br /&gt;
The default thread allocation can be reduced by issuing a &amp;quot;ulimit&amp;quot; command before running sc_trans and in the example reduces it to 512KB per-thread '''e.g.'''   ulimit -s 512&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Locale Error (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
If you receive the following error then you have a locale related issues:&lt;br /&gt;
&lt;br /&gt;
    terminate called after throwing an instance of 'std::runtime_error'&lt;br /&gt;
    what():  locale::facet::_S_create_c_locale name not valid&lt;br /&gt;
    Abort trap&lt;br /&gt;
&lt;br /&gt;
If this happens then you need to set the 'POSIX' locale in your terminal's environment values. If this does not happen then everything is fine or you are using a newer version of sc_trans from the end of 2010 which should no longer exhibit this issue.&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
    export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
BSD:&lt;br /&gt;
    setenv LC_ALL POSIX&lt;br /&gt;
&lt;br /&gt;
Mac OS X:&lt;br /&gt;
    export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
You can test to see if this has worked by checking the shell command &amp;quot;locale&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
    LANG=&lt;br /&gt;
    LC_COLLATE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_CTYPE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_MESSAGES=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_MONETARY=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_NUMERIC=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_TIME=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_ALL=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Configurations==&lt;br /&gt;
&lt;br /&gt;
Include as part of the sc_serv installation are a number of example configurations to get things started with using some of the features of the transcoder. The provided examples are:&lt;br /&gt;
&lt;br /&gt;
 sc_trans_basic.conf&lt;br /&gt;
 sc_trans_capture.conf&lt;br /&gt;
 sc_trans_dj.conf&lt;br /&gt;
 sc_trans_playlist.conf&lt;br /&gt;
 sc_trans_simple.conf&lt;br /&gt;
&lt;br /&gt;
All of the configuration examples are documented and will relate back to details in this file as appropriate. You will need to change some details in these example files or to obtain any applicable license keys for the setup you are making (see [[#Registering_for_MP3_Stream_Encoding|section 2.5]]).&lt;br /&gt;
&lt;br /&gt;
In all cases the examples are designed to work from the same install folder as sc_trans. &lt;br /&gt;
&lt;br /&gt;
Remember these examples are a way to get you up and running faster though you are still likely to have to adjust things depending upon the systems you are using and how you want to manage your sources and server connections which are covered in previous sections.&lt;br /&gt;
&lt;br /&gt;
Additionally if you are not happy with editing the files or find it still too confusing then you can use the configuration builder which (if installed) can be found in the 'config_builder'. Open 'config_builder.html' in your browser and then use this graphical tool to setup a configuration file for the transcoder (and additionally the server).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_basic===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This is the base configuration from which the other configuration examples are based and this will get a sc_trans instance running and making a connection to a local instance of sc_serv (see [[SHOUTcast_DNAS_Server_2#sc_serv_basic|sc_serv2.txt - section 9.1]] about the sc_serv_basic configuration file).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_capture===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_trans_basic configuration to get a sc_trans instance running as a capture device '''e.g.''' from a microphone. This shows the use of the 'include' option ([[#Miscellaneous|see section 3.9]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_dj===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_trans_basic configuration to get a sc_trans instance running with the ability to accept DJ connections using both a SHOUTcast 2 source and a legacy SHOUTcast 1 source in addition to how calendar.xml files are used to control DJ access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_playlist===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_trans_basic configuration to get a sc_trans instance running with the ability to schedule a jingle to play around 20 minutes and 40 minutes past the hour as well as to schedule a different playlists to be played in the evening and also on the weekend. This example shows of some of the features of the event system and how it is possible to automate playlist changes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_debug===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file can be included in any other configuration files to allow you to get debug logging output when trying to investigate any issues you may be experiencing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_simple===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Use this if you just need to get a very basic transcoder running or are impatient&lt;br /&gt;
 or are struggling to get it running despite the previous example configurations.&lt;br /&gt;
&lt;br /&gt;
This configuration file is designed to be used just as is and is the simplest form of the configuration file you can have which will allow you to get a running transcoder to work with an instance of the server on the same machine.&lt;br /&gt;
&lt;br /&gt;
This works by assuming default settings of the transcoder and that the server has been properly configured to work as this configuration uses the 'inheritconfig' option to get some of the passwords and other configuration details directly needed for the transcoder to work with the server instance by using sc_serv_simple.conf (see [[SHOUTcast_DNAS_Server_2#sc_serv_simple|sc_serv2.txt - section 9.5]]) or change this to reference a known server configuration you want to use this with.&lt;br /&gt;
&lt;br /&gt;
All you need to do when using this configuration file is to:&lt;br /&gt;
&lt;br /&gt;
* Edit the playlist file to be used (as referenced in the playlistfile entry)&lt;br /&gt;
* Setup the required encoder options including entering the MP3 unlock code by filling in 'unlockkeyname' and 'unlockkeycode' entries if using MP3 decoding ([[#Registering_for_MP3_Stream_Encoding|section 2.5]] has details on why this is required and how to obtain the unlock key and code)&lt;br /&gt;
* Change the stream information details as appropriate&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Transcoder_2</id>
		<title>SHOUTcast DNAS Transcoder 2</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Transcoder_2"/>
				<updated>2022-10-06T10:33:02Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''The Shoutcast Transcoder (sc_trans) is no longer maintained or supported.'''&lt;br /&gt;
&lt;br /&gt;
'''This documentation remains here for legacy purposes only.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document shows you the different configuration options supported by sc_trans along with basic and more advanced example configurations enabling you to get started with using sc_trans and the various features it can offer.&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
&lt;br /&gt;
To get started using sc_trans you need to have some media to play or to have a stream you want to relay via sc_trans. With a 'source' you can use then you will need to setup your configuration file for the transcoder so it can process the input source and provide an output which can be used by the DNAS server (see [[SHOUTcast_DNAS_Server_2|sc_serv2.txt]] in the sc_serv distribution for more details especially those for stream configurations as non-matching details will prevent sc_trans from being able to connect to it).&lt;br /&gt;
&lt;br /&gt;
The following sections will show how to get sc_trans up and running along with details on the configuration options it provides for handling different sources and outputs it can support.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Running The Transcoder===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The transcoder is able to be run either as a console application or it can be run as service (Windows) or daemon (Linux / Mac OS X / BSD). Detailed below is how to get the transcoder running on the different operating systems supported by it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The Windows version of sc_trans is designed to run on fully updated and patched versions of Windows 2000, XP, Vista and Windows 7.&lt;br /&gt;
&lt;br /&gt;
Please note that the Windows versions of sc_trans are built with a dependency against the Microsoft Visual C++ 2008 SP1 Redistributable Package. If sc_trans is unable to start due to a dependency issue then you will need to install the correct version of the package so it can run which depends on the version of sc_trans you are attempting to run:&lt;br /&gt;
&lt;br /&gt;
32-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&lt;br /&gt;
&lt;br /&gt;
64-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ba9257ca-337f-4b40-8c14-157cfdffee4e&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Install as a Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_trans.exe install &amp;lt;servicename&amp;gt; &amp;lt;username&amp;gt; &amp;lt;password&amp;gt; &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service&lt;br /&gt;
 Typically enter this as 'sc_serv' though you can use a different name but you will need&lt;br /&gt;
 to remember it as it is required to be the same when using the 'uninstall' mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;username&amp;gt; - User under which to run the service as or '0' for the local system&lt;br /&gt;
&lt;br /&gt;
&amp;lt;password&amp;gt; - Password for user or '0' for the local system or with no password&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file&lt;br /&gt;
 If no file / an invalid file is specified then sc_trans will abort loading.&lt;br /&gt;
&lt;br /&gt;
When run as a service there is not a good sense of a current working directory so requires all paths in the configuration and playlist files to be fully qualified otherwise lookups will fail when sc_serv is run.&lt;br /&gt;
&lt;br /&gt;
To run sc_serv with a configuration file in the same folder as the server as the current system user account you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_trans.exe install sc_trans 0 0 sc_trans.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Uninstall the Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_trans.exe uninstall &amp;lt;servicename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service as used when the service was registered&lt;br /&gt;
&lt;br /&gt;
To uninstall sc_serv assuming it was installed as detailed in the install section above then you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_trans.exe uninstall sc_trans&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Service in the Console====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_trans.exe &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_trans will abort loading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Linux / Mac OS X / BSD===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Remember to enable the required access on the sc_trans file by doing 'chmod a+x sc_trans' after extracting it from the distribution file otherwise the OS is likely to not run it and show the error message './sc_trans: Permission denied'.&lt;br /&gt;
&lt;br /&gt;
====Run as a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_trans daemon &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (required in all cases)&lt;br /&gt;
 If no file / an invalid file is specified then sc_trans will abort loading.&lt;br /&gt;
&lt;br /&gt;
'''e.g.'''&lt;br /&gt;
    ./sc_trans daemon ./sc_trans.conf&lt;br /&gt;
&lt;br /&gt;
When run this should output the following:&lt;br /&gt;
&lt;br /&gt;
'sc_trans going daemon with PID [XXXX]' where XXXX is the &amp;lt;pid&amp;gt; of the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====End a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
kill -SIGTERM &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -15 &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -s TERM &amp;lt;pid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pid&amp;gt; - The PID of the daemon instance (reported when the daemon started or can be found with 'ps ax | grep sc_serv' as long as sc_serv was the file run otherwise you can just use 'ps ax' if the filename isn't known). Additionally the PID of sc_trans is listed in the log file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_trans &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_trans will abort loading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Additional Signals===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
When run on Linux / Mac OS X / BSD then some additional signals are supported to allow for additional control over the running daemon instance of sc_trans.&lt;br /&gt;
&lt;br /&gt;
The following signals can be used with the 'kill' command (in the manner of your choosing for using the kill command) along with the &amp;lt;pid&amp;gt; of the daemon instance to do one of the following actions:&lt;br /&gt;
&lt;br /&gt;
 SIGKILL   -  Stops sc_trans (also SIGTERM, SIGINT and SIGQUIT will work)&lt;br /&gt;
 SIGHUP    -  Rotates logfile&lt;br /&gt;
 SIGWINCH  -  Skips to next song in playlist&lt;br /&gt;
 SIGUSR1   -  Reload playlist&lt;br /&gt;
 SIGUSR2   -  Toggle playlist shuffle&lt;br /&gt;
&lt;br /&gt;
The result of SIGHUP is that the current log file contents will be moved into &amp;lt;logfile&amp;gt;_1 '''e.g.''' sc_trans_1.log, &amp;lt;logfile&amp;gt;_1 will be moved into &amp;lt;logfile&amp;gt;_2 '''e.g.''' sc_trans_2.log and so on for all log files which can be found which match the current log file's name. This is useful if timed to have it create day specific log files.&lt;br /&gt;
&lt;br /&gt;
 These signals are not supported by the Windows version of sc_trans which will only&lt;br /&gt;
 respond to the Ctrl + C / Ctrl + Break / console close commands the OS provides.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Registering for MP3 Stream Encoding===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In order for compliance with all broadcasting laws there is a legal requirement for the need to purchase an MP3 license key in-order to be able to encode your stream in MP3 (see [[#MP3_Encoding|section 3.10]] for the related configuration entries). The license key should cost $5.&lt;br /&gt;
&lt;br /&gt;
To obtain the license key you need to go to the following page which will takes you to a secure page for purchasing the MP3 encoding license key:&lt;br /&gt;
    http://shop.winamp.com/servlet/PromoServlet/promoID.48873700&lt;br /&gt;
&lt;br /&gt;
Once the license key has been obtained (this should be a quick process only taking a few minutes when done) then you just need to add the 'name' and 'key' you have obtained into the 'unlockkeyname' and 'unlockkeycode' values in your configuration file (see [[#MP3_Encoding|section 3.10]]) and to change the 'encoder' type for the stream(s) you require from 'aacp' to 'mp3' to use it (see [[#Encoder_Options|section 3.4]]).&lt;br /&gt;
&lt;br /&gt;
So if your key is '123456' and you have used 'Bob Cratchit' as the registered name during the billing process, you would add the following to your configuration file:&lt;br /&gt;
    unlockkeyname=Bob Cratchit&lt;br /&gt;
    unlockkeycode=123456&lt;br /&gt;
&lt;br /&gt;
If the details do not exactly match then the Transcoder will show a message and will not allow the encoding of MP3 streams until the configuration issue has been resolved. The common cause for failure is not entering the '''unlockkeyname''' exactly as specified for the billing name of the method used during the purchase.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Why Does AAC Encoding Not Require a License Key?====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Encoding to an AAC stream does also require a license like the MP3 encoding though this has already been paid for you so there is no need for you to do so yourself when using sc_trans. This setup may seem strange but it is just how things happen with the different nature of licensing encoding of the AAC and MP3 formats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported File Formats===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
As sc_trans does transcoding of audio from one format to another for then being fed to a server or another sc_trans instance as a relay, the following file extensions are handled as valid input file sources:&lt;br /&gt;
&lt;br /&gt;
 MP3 + MPEG (treated as mp3)&lt;br /&gt;
 WAV (uncompressed)&lt;br /&gt;
 OGG&lt;br /&gt;
 FLAC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration File==&lt;br /&gt;
&lt;br /&gt;
Here you can find a complete list of all of the configuration options which are provided by sc_trans which ranges from logging to networking configuration to control over how the media is encoded before transmission to the server.&lt;br /&gt;
&lt;br /&gt;
The entries stored in the configuration file are processed case insensitively.&lt;br /&gt;
&lt;br /&gt;
Configuration entries labelled as ''&amp;lt;MULTI&amp;gt;'' can be used to set up specific encoder types or for specifying multiple playlists for use with the calendar system. These are specified by adding _# to the end of the option's name as shown below where # begins with one. If you are only working with a single instance then you do not need to add the _# part as&lt;br /&gt;
any instances of a configuration option will assume it is for _1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;MULTI&amp;gt;'' system is not hierarchical and all values beyond the default must be specified for all connections. So for example, if you wanted to connect to two servers on the same port you must do:&lt;br /&gt;
&lt;br /&gt;
    encoder_1=aacp&lt;br /&gt;
    encoder_2=mp3&lt;br /&gt;
    bitrate_1=32000&lt;br /&gt;
    bitrate_2=32000&lt;br /&gt;
&lt;br /&gt;
Note that you CANNOT do it like this as it leads to not all values being set:&lt;br /&gt;
&lt;br /&gt;
    encoder_1=aacp&lt;br /&gt;
    encoder_2=mp3&lt;br /&gt;
    bitrate=32000&lt;br /&gt;
&lt;br /&gt;
The configuration files also allow for notes or options to be disabled by the use of a comma (;) at the start of a line which can be seen in all of the configuration examples.&lt;br /&gt;
&lt;br /&gt;
Known options in the configuration files are recognised irrespective of the case they are entered in the configuration file so djport and dJpOrT will be handled the same way.&lt;br /&gt;
&lt;br /&gt;
Any items found in the configuration file which are not known (as detailed in following sections) or is not processed as a comment will be reported in the following manner:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;date + time&amp;gt; W msg:[CONFIG] Invalid item on line XX&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;date + time&amp;gt; is the date and time the event happens at and XX is the line in the configuration file where the error has been found to occur at.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Administration===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''adminport''' : Specify the port used to access the administrative control page    ''[Default = 0]''&lt;br /&gt;
 If no valid port is specified (i.e. zero) then this feature is disabled.&lt;br /&gt;
&lt;br /&gt;
'''adminuser''' : Specify the username used to access the administrative control page    ''[Default = admin]''&lt;br /&gt;
&lt;br /&gt;
'''adminpassword''' : Specify the password to access the administrative control page    ''[Default = goaway]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Calendar Events===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''calendarfile''' : Specify the path to the xml based calendar file    ''[Default = calendar.xml]''&lt;br /&gt;
&lt;br /&gt;
'''calendarrewrite''' : Re-write the 'calendar file' on exit    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
Note: See [[SHOUTcast_Calendar_Event_XML_File_Specification|calendarxml.txt]] for more information on the event format and what it allows you to do with playlist, DJ and relay access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===DJ Support===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''djport''' : Specify the port to listen on for DJ access using the SHOUTcast 1 protocol    ''[Default = 0 (no listening)]''&lt;br /&gt;
 This will actually open 'djport + 1' as the listening port.&lt;br /&gt;
&lt;br /&gt;
'''djport2''' : Specify the port to listen on for DJ access using the SHOUTcast 2 protocol    ''[Default = 0 (no listening)]''&lt;br /&gt;
&lt;br /&gt;
Note: It is possible to use 'djport' and 'djport2' at the same time though you need to ensure that there is no overlap of the ports used in what is specified.&lt;br /&gt;
&lt;br /&gt;
This is because 'djport2' will open the port specified unlike 'djport' which opens 'djport + 1' (as is the way with SHOUTcast 1 connections). Keep this in mind as you would not be able to do the following as it causes a duplication of the port being opened (901 in this case) :&lt;br /&gt;
 djport=900    ; i.e. will open port 901&lt;br /&gt;
 djport2=901&lt;br /&gt;
Whereas this would work as we are opening two different ports (901 + 902):&lt;br /&gt;
 djport=900&lt;br /&gt;
 djport2=902&lt;br /&gt;
&lt;br /&gt;
'''djcipher''' : Specify the key used to obfuscate the initial handshaking with the SHOUTcast 2 protocol    ''[Default = foobar]''&lt;br /&gt;
 This is a YP2 feature and it matches the 'uvoxcipherkey' value in&lt;br /&gt;
 the sc_serv configuration file (see [[SHOUTcast_DNAS_Server_2#YP_Server_Behaviour|sc_serv2.txt - section 4.14]]).&lt;br /&gt;
&lt;br /&gt;
Only change this if you really need to do so as not all SHOUTcast 2 clients will allow you to edit this value from the default value. If using the Source DSP plug-in then see [[Source_DSP_Plug-in#SHOUTcast_2_Cipher_Key|dsp_sc.txt - section 5.0]] for details on how to change the plug-in to use a differnet value.&lt;br /&gt;
&lt;br /&gt;
'''autodumpsourcetime''' : Specify the maximum idle time for the DJ in seconds before being disconnected    ''[Default = 30]''&lt;br /&gt;
&lt;br /&gt;
'''djbroadcasts''' : Specify the directory in which DJ broadcasts will be recorded into    ''[Default = recorded\ or recorded/ - relative to sc_trans[.exe] ]''&lt;br /&gt;
&lt;br /&gt;
'''djcapture''' : Enable to allow the recording of the DJ broadcast    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''djfilepattern''' : Specify how the DJ archive filenames will be created in the form of &amp;lt;djname&amp;gt;&amp;lt;date time pattern&amp;gt;suffix    ''[Default = _%Y_%m_%d_%H_%M_%S. (year_month_day_hour_minute_second)]''&lt;br /&gt;
 The date and time information are formatted using strftime().&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each DJ):&lt;br /&gt;
&lt;br /&gt;
'''djlogin''' : Specify the username required for the DJ to get access    [Default = dj]&lt;br /&gt;
 When connecting as a SHOUTcast 1 source the password has to be specified as &amp;lt;djlogin&amp;gt;:&amp;lt;djpassword&amp;gt;  '''e.g.'''  dj:noise&lt;br /&gt;
&lt;br /&gt;
'''djpassword''' : Specify the password required for the DJ to get access    ''[Default = noise]''&lt;br /&gt;
&lt;br /&gt;
'''djpriority''' : Specify the priority for the DJ when multiple DJ's are connected    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Encoder Options===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each encoder):&lt;br /&gt;
&lt;br /&gt;
'''encoder''' : Specify the encoder to use, either (mp3 or aacp)    ''[Default = aacp]''&lt;br /&gt;
&lt;br /&gt;
'''bitrate''' : Specify the encoding bitrate in bits per second    ''[Default = 96000]''&lt;br /&gt;
&lt;br /&gt;
'''samplerate''' : Specify the encoding sample rate to use    ''[Default = 44100]''&lt;br /&gt;
&lt;br /&gt;
'''channels''' : Specify the number of channels to encode    ''[Default = 2]''&lt;br /&gt;
&lt;br /&gt;
'''mp3quality''' : Specify the MP3 encoder quality to use when encoding    ''[Default = 0]''&lt;br /&gt;
Available options are :&lt;br /&gt;
 0 - fast (preferred)&lt;br /&gt;
 1 - high quality (changes sample rate and does additional filtering)&lt;br /&gt;
&lt;br /&gt;
'''mp3mode''' : Specify the MP3 encoder mode (CBR / VBR) to use when encoding    ''[Default = 0]''&lt;br /&gt;
Available options are :&lt;br /&gt;
 0 - CBR&lt;br /&gt;
 1 - VBR High Quality&lt;br /&gt;
 2 - &lt;br /&gt;
 3 - VBR Medium Quality &lt;br /&gt;
 4 - &lt;br /&gt;
 5 - VBR Low Quality]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Flash Security===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''flashpolicyfile''' : Specify the name of file which contains the flash crossdomain policies    ''[Default = crossdomain.xml]''&lt;br /&gt;
&lt;br /&gt;
'''flashpolicyserverport''' : Specify the port used for the flash policy server    ''[Default = 0]''&lt;br /&gt;
 Specify '843' if you want to turn this on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Live Capture===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''capture''' : Enable to allow the use of live capture as an input    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''capturedevice''' : Specify the OS dependent device used for capture    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''captureinput''' : Specify the OS dependent input used for capture    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''capturesamplerate''' : Specify the sample rate used for capture    ''[Default = 44100]''&lt;br /&gt;
&lt;br /&gt;
'''capturechannels''' : Specify the number of channels to capture    ''[Default = 2]''&lt;br /&gt;
&lt;br /&gt;
Note: When run under Windows on an operating system newer than XP there is a possibility for the device name obtained from Windows to be longer than 32 characters. This is a problem as the api's used only support device names upto 31 characters in length so sc_trans will attempt to clip the device name specified with 'capturedevice' to 31 characters to try to get a match with the devices the OS is reporting.&lt;br /&gt;
&lt;br /&gt;
If you are having issues with the live capture then add 'capturedebug=1' to allow you to see the device names reported back to sc_trans by the OS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Logging Options===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''log''' : Enable logging of the transmission output    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''screenlog''' :  Enable logging of output to the console    ''[Default = 1]''&lt;br /&gt;
 If log=0 or when running this as a daemon / service then this option is ignored as it is not applicable.&lt;br /&gt;
&lt;br /&gt;
'''logfile''' : Specify a different logfile to save the transmission logs into    ''[Default = %temp%\sc_trans.log or /tmp/sc_trans.log]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the logs into then you need to ensure that the&lt;br /&gt;
 folder already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Metadata Control===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''streamtitle''' : Specify the general name for the radio station or stream    ''[Default - Misc]''&lt;br /&gt;
&lt;br /&gt;
'''streamurl''' : Specify the url of the radio station or stream    ''[Default = &amp;lt;nowiki&amp;gt;http://www.shoutcast.com&amp;lt;/nowiki&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''genre''' : Specify the genre for the radio station or stream    ''[Default - N/A]''&lt;br /&gt;
&lt;br /&gt;
'''aim''' : Specify the AIM contact ID to show for the radio station or stream    ''[Default - N/A]''&lt;br /&gt;
&lt;br /&gt;
'''irc''' : Specify the IRC contact ID to show for the radio station or stream    ''[Default - N/A]''&lt;br /&gt;
&lt;br /&gt;
'''icq''' : Specify the ICQ contact ID to show for the radio station or stream    ''[Default - N/A]''&lt;br /&gt;
&lt;br /&gt;
'''public''' : Enable to register the radio station or stream with the YP (shoutcast.com)    ''[Default = 0]''&lt;br /&gt;
 If connected to sc_serv then this is used by the 'publicserver' value&lt;br /&gt;
 unless it is being overriden (see [[SHOUTcast_DNAS_Server_2#YP_Server_Behaviour|sc_serv2.txt - section 4.14]]).&lt;br /&gt;
&lt;br /&gt;
'''usemetadata''' : Enable to use use the in file metadata i.e. stored in file tags    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''metadatapattern''' : Specify the pattern used for extracting metadata from the filename    ''[Default = *\%N.* or */%N.*]''&lt;br /&gt;
 See [[#Filename_Metadata_Extraction|section 6.0]] for more details about this)&lt;br /&gt;
&lt;br /&gt;
'''displaymetadatapattern''' : Specify a pattern to use to form the metadata output string for SHOUTcast 1 metadata    ''[Default = %R[ - ]%N]''&lt;br /&gt;
&lt;br /&gt;
'''nextlookahead''' : Specifies the number of tracks ahead of the current track playing to be reported in the stream's metadata to the server    ''[Default = 3]''&lt;br /&gt;
 This is the maximum limit attempted to be reported and will vary based on the source in use&lt;br /&gt;
 e.g. if there enough entries in the current playlist being played. Setting to zero will disable this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''configrewrite''' :  Re-write the 'config file' on exit    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''timemultiplier''' : Used to shift reported time in certain uses    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''inheritconfig''': Specify the path of the sc_serv2 configuration file for the instance you want to use the transcoder with    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
The aim of this option is to make it easier to get an instance of sc_trans to run with sc_serv by ensuring that any passwords, etc match up. By using this, option any of the configuration options already set in the sc_trans config file (see below) will be replaced by those found in the sc_serv configuration file.&lt;br /&gt;
&lt;br /&gt;
The configuration options read from the sc_serv2 configuration file including what they are mapped from in the sc_serv2 value to the sc_trans value are:&lt;br /&gt;
&lt;br /&gt;
* '''portbase -&amp;gt; serverport'''&lt;br /&gt;
* '''password -&amp;gt; password''' - Master source password overriden by streampassword&lt;br /&gt;
* '''streampassword -&amp;gt; password'''&lt;br /&gt;
* '''uvoxcipherkey -&amp;gt; djcipher'''&lt;br /&gt;
* '''srcip -&amp;gt; serverip'''  -  Will use the ip set unless is empty or srcip=any&lt;br /&gt;
* '''yp2 -&amp;gt; outprotocol''' - Sets outprotocol=1 if with yp2=0 otherwise it sets outprotocol=3 as a v2 DNAS is assumed to be used and if found to be v1 configuration then outprotocol=1&lt;br /&gt;
&lt;br /&gt;
Additionally this mode will attempt to read configurations from a v1 DNAS file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''include''' : Specify an additional include file containing settings to be processed from the current point in the main configuration file    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
Note: You can do multiple calls of this allowing for a basic configuration file with then 'specific' encoder configurations set in individual conf files though you need to ensure not to include a reference to the same file in itself.&lt;br /&gt;
&lt;br /&gt;
'''serverbackupfile''' : Set the server side file for broken connection playback    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''serverintrofile''' : Set the server side file that is played when a user connects    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
Note: With both of these options, they will override any files specified in the sc_serv's configuration file and also requires 'outprotocol=3' for it to be supported (see [[#Network_Options|section 3.11]] for the options 'outprotocol' supports).&lt;br /&gt;
&lt;br /&gt;
Additionally when connecting to sc_serv via sc_trans, the server intro and backup files as specified in sc_servs configuration file (see [[SHOUTcast_DNAS_Server_2#Introduction_and_Backup_Files|sc_serv2.txt - section 4.5]]) will not be played so you need to specify them in the sc_trans configuration if required for the stream (this is a quirk of how sc_serv currently works).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MP3 Encoding===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''unlockkeyname''' : Specify the name to use to unlock mp3 encoding (case sensitive)&lt;br /&gt;
&lt;br /&gt;
'''unlockkeycode''' : Specify the code associated with name to unlock mp3 encoding&lt;br /&gt;
&lt;br /&gt;
 Due to licensing requirements for MP3 encoding see [[#Registering_for_MP3_Stream_Encoding|section 2.5]]&lt;br /&gt;
 for how to obtain the key required for unlocking MP3 encoding in sc_trans.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Network Options===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each connection):&lt;br /&gt;
&lt;br /&gt;
'''endpointname''' : Specify the name of the endpoint    ''[Default - &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: This is used to identify the encoder such as when using the AJAX api interfaces and if not specified then sc_trans creates a default name as 'endpointX' where 'X' is the encoder index starting at one. See [[SHOUTcast_Transcoder_AJAX_api_Specification|sc_trans_ajax_api.txt]] for more information on the use of this.&lt;br /&gt;
&lt;br /&gt;
'''outprotocol''' : Specify the server protocol to use    ''[Default = 1]''&lt;br /&gt;
This can be:&lt;br /&gt;
 1 = SHOUTcast 1 (Legacy)&lt;br /&gt;
 2 = Ultravox (Ultravox 2.0)&lt;br /&gt;
 3 = SHOUTcast 2 (Ultravox 2.1)&lt;br /&gt;
&lt;br /&gt;
'''serverip''' : Specify the IP address of server to connect to    ''[Default - &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: If 'srcip' has been set to a value other than 'any' in the sc_serv configuration then you need to set it for you sc_trans configuration otherwise sc_serv will not see the sc_trans connection attempts (see [[SHOUTcast_DNAS_Server_2#Client_Behaviour|sc_serv2.txt - section 4.2]]).&lt;br /&gt;
                 &lt;br /&gt;
Additionally, you will need to make sure that any IP added is valid and can be fully resolved otherwise the connection to the sc_serv instance is very likely to fail.&lt;br /&gt;
&lt;br /&gt;
'''serverport''' : Specify the server port used to connect to    ''[Default = 8000]''&lt;br /&gt;
 This should relate to the 'portbase' value set in sc_serv's configuration (see [[SHOUTcast_DNAS_Server_2#Networking|sc_serv2.txt - section 4.8]]).&lt;br /&gt;
&lt;br /&gt;
'''password''' : Specify the password used to connect to a DNAS server   ''[Default = foobar]''&lt;br /&gt;
 This matches the 'password' value in the sc_serv configuration file (see [[SHOUTcast_DNAS_Server_2#Networking|sc_serv2.txt - section 4.8]]) or 'streampassword' (see [[SHOUTcast_DNAS_Server_2#Stream_Configuration|sc_serv2.txt - section 4.12]] - this only applies for v2 DNAS servers).&lt;br /&gt;
&lt;br /&gt;
'''streamid''' : Specify the stream identifier for the SHOUTcast 2 connection    ''[Default = 1]''&lt;br /&gt;
 This relates to the 'streamid' value in the sc_serv configuration (see [[SHOUTcast_DNAS_Server_2#Networking|sc_serv2.txt - section 4.8]]).&lt;br /&gt;
&lt;br /&gt;
'''uvoxuserid''' : Specify the user ID for accessing SHOUTcast 2 (Ultravox 2.1)    ''[Default - &amp;lt;no value&amp;gt;]''&lt;br /&gt;
 This is currently not used and is provided for future usage.&lt;br /&gt;
&lt;br /&gt;
Note: If ''''requirestreamconfigs'''' is enabled in the sc_serv configuration (see [[SHOUTcast_DNAS_Server_2#Stream_Configuration|sc_serv2.txt - section 4.12]]) then you need to ensure that the 'streamid' value used in your sc_trans configuration exists in the sc_serv configuration along with any endpoint, password and other values appropriate to the 'streamid' matched with the equivalent sc_serv configuration values.&lt;br /&gt;
&lt;br /&gt;
'''uvoxradiometadata''' : Enable to send the older AOL Radio style metadata to the server    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''uvoxnewmetadata''' : Enable to send SHOUTcast 2 style metadata to the server    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''uvoxmetadatafudgefactor''' : Specify the delaying factor for Ultravox metadata in seconds    ''[Default = 0.0]''&lt;br /&gt;
&lt;br /&gt;
'''shoutcastmetadatafudgefactor''' : Specify the delaying factor for SHOUTcast metadata in seconds    ''[Default = 0.0]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Playlist Control===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''playlistfile''' : Specify the name of playlist file to use    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''shuffle''' : Enable to allow shuffling of the specified playlist    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''xfade''' : Specify the number of seconds to do  for a crossfade    ''[Default = 1]''&lt;br /&gt;
 Specify xfade=0 to disable crossfade&lt;br /&gt;
&lt;br /&gt;
'''xfadethreshold''' : Specify the minimum duration in seconds a file must be to allow crossfading in and out on it    ''[Default = 10]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Priority playlists are those used to override the playing playlist once the current song has stopped playing. This can be useful if a sudden playlist / announcement is required.&lt;br /&gt;
&lt;br /&gt;
'''playlists''' : Specify the folder used for priority playlists    ''[Default = priority\ or priority/ - relative to sc_trans[.exe]]''&lt;br /&gt;
&lt;br /&gt;
'''archive''' : Specify the folder used for archiving playlists    ''[Default = priority\archived\ or priority/archived/ - relative to sc_trans[.exe]]''&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each additional playlist):&lt;br /&gt;
&lt;br /&gt;
'''playlistfilename''' - Used to build named collections of playlists    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''playlistfilepath''' - Used to build named collections of playlists    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
Note: These playlists are used as part of the &amp;lt;playlist&amp;gt; events in calendar.xml where the name set with 'playlistfilename_X' is used in the loading done. See [[SHOUTcast_Calendar_Event_XML_File_Specification#Playlist_Events|calendarxml.txt and section 3.2]] for more information on these events.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Replay Gain Control===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''applyreplaygain''' : Enable to honour the replay gain values stored in the file    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''defaultreplaygain''' : If no replay gain is in the file then apply this adjustment    ''[Default = 0.0]''&lt;br /&gt;
&lt;br /&gt;
'''djreplaygain''' : Specify the replay gain to be applied to DJ streams    ''[Default = 0.0]''&lt;br /&gt;
&lt;br /&gt;
'''capturereplaygain''' : Specify the replay gain to apply to the live capture input    ''[Default = 0.0]''&lt;br /&gt;
&lt;br /&gt;
'''calculatereplaygain''' : Enable to calculate the replay gain on the handled files    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''replaygaintmpdir''' : Specify the temporary directory for replay gain calculator to work in    ''[Default = (Windows = %TEMP FOLDER%  Linux = /tmp/)]''&lt;br /&gt;
&lt;br /&gt;
'''replaygainrunahead''' : Specify the number of tracks head start to give the replay gain calculator    ''[Default = 2]''&lt;br /&gt;
&lt;br /&gt;
'''replaygaindontwrite''' : Specify if the replay gain values calculated should NOT be written to the file    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''enhancereplaygain''' : Specify if the file has replay gain and it is being used, an additional amount of gain to add    ''[Default = 6.0]''&lt;br /&gt;
 Winamp ships with a default value to add -6dB to file which do not have replay gain.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===VU Image===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''vuimagedirectory''' : Specify the folder in which to look for vu images to use    ''[Default = &amp;quot;&amp;quot;]''&lt;br /&gt;
 The image files are named vuimage_XX.&amp;lt;vuimagesuffix&amp;gt; where 'XX' is from 0 to 100&lt;br /&gt;
 and the path specified will need to be properly terminated to work correctly.&lt;br /&gt;
&lt;br /&gt;
'''vuimagesuffix''' : Specify the suffix for vu images to be used from the image directory    ''[Default = png]''&lt;br /&gt;
&lt;br /&gt;
'''vuimagemimetype''' : Specify the mime type for vu images to be used    ''[Default = image/png]''&lt;br /&gt;
&lt;br /&gt;
Note: This controls the images available when using the 'vumeterleft' or 'vumeterright' webcommands (see [[#Supported_Weblet_Commands|section 4.1]]). Additionally sc_trans only allows for one active use of each webcommand from the current sc_trans instance with the most current attempt made being the active instance which will be updated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Debugging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In all cases, the default value is for no debug logging for the options listed below.&lt;br /&gt;
&lt;br /&gt;
'''shuffledebug''' : Enable to activate debug logging of playlist shuffling    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''shoutcastdebug''' : Enable to activate debug logging for SHOUTcast transmission    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''uvoxdebug''' : Enable to activate debug logging for SHOUTcast 2 (Ultravox 2.1) transmissions    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''gaindebug''' : Enable to activate debug logging for replay gain on playback    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''playlistdebug''' : Enable to activate debug logging for playlists    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''mp3encdebug''' : Enable to activate debug logging for MP3 encoding    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''mp3decdebug''' : Enable to activate debug logging for MP3 decoder    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''resamplerdebug''' : Enable to activate debug logging for the resampler    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''rgcalcdebug''' : Enable to activate debug logging for the replay gain calculator    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''apidebug''' : Enable to activate debug logging for the AJAX api    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''calendardebug''' : Enable to activate debug logging for the calendar events    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''capturedebug''' : Enable to activate debug logging for live capture    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''djdebug''' : Enable to activate debug logging for DJ management    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''flashpolicyserverdebug''' : Enable to activate debug logging for the flash policy server    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''fileconverterdebug''' : Enable to activate debug logging for the server side file converter    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''sourcerelaydebug''' : Enable to active debug logging for relayed sources    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''sourceandendpointmanagerdebug''' : Enable to activate debug logging for endpoint management    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Administration Weblet Commands==&lt;br /&gt;
&lt;br /&gt;
The transcoder supports web based control of the features it provides allowing for the remote control of sc_trans much like the DNAS (sc_serv2) supports. To enable the use of the administration interface you need to specify a port and related password and username as detailed in the Administration section ([[#Administration|see 3.1]]).&lt;br /&gt;
&lt;br /&gt;
Once enabled then options detailed in the following sections will become available though the main interface and controlling aspects are available via the 'api' command with more information provided on how to use it in [[SHOUTcast_Transcoder_AJAX_api_Specification|sc_trans_ajax_api.txt]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Weblet Commands===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following are the supported commands for the administration weblet the transcoder supports and are used in the following manner:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://&amp;lt;server_ip&amp;gt;:adminport/&amp;lt;command&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''quit''' : Will make sc_trans quit (equivalent of SIGKILL on non-Windows).&lt;br /&gt;
&lt;br /&gt;
'''rotatelogs''' : Will rotate the logs (equivalent of SIGHUP).&lt;br /&gt;
The result of this is that the current log file contents will be moved into &amp;lt;logfile&amp;gt;_1 '''e.g.''' sc_trans_1.log, &amp;lt;logfile&amp;gt;_1 will be moved into &amp;lt;logfile&amp;gt;_2 '''e.g.''' sc_trans_2.log and so on for all log files which can be found which match the current log file's name. This is useful if timed to have it create day specific log files.&lt;br /&gt;
&lt;br /&gt;
'''nextsong''' : Will advance to the next song (equivalent of SIGWINCH).&lt;br /&gt;
&lt;br /&gt;
'''loadplaylist''' : This will re-load the current playlist (equivalent of SIGUSR1).&lt;br /&gt;
&lt;br /&gt;
'''toggleshuffle''' : Use to toggle the current playlist shuffle state (equivalent of SIGUSR2).&lt;br /&gt;
&lt;br /&gt;
'''kickdj?duration=hh:mm:ss''' : You can specify an amount of time for how long to kick the current DJ for. If a duration is not set i.e. just using 'kickdj', then this will defaults to 15 minutes (00:15:00). If a duration is specified then all three fields of 'hh:mm:ss' must be specified even if their value is zero (ie 01:30:30).&lt;br /&gt;
&lt;br /&gt;
'''restart''' : Restart the current sc_trans instance.&lt;br /&gt;
&lt;br /&gt;
'''vumeterleft''' or '''vumeterright''' : This will initiate a server side image push that represents the vu levels as long as there are images are available to sc_trans to use for this (see [[#VU_Image|section 3.14]]).&lt;br /&gt;
&lt;br /&gt;
'''vu.bin''' : This will return a continuous stream of type 'misc/sc-vu' as long as sc_trans is transcoding. The format of the stream is:&lt;br /&gt;
 0xa5 leftVal rightVal 0xa5 leftVal ..... etc&lt;br /&gt;
&lt;br /&gt;
If the audio signal is mono there is no right val and you get:&lt;br /&gt;
 0xa5 leftVal 0xa5 leftVal .... etc&lt;br /&gt;
&lt;br /&gt;
'''writeconfig''' : This will write out the currently stored configuration and event details to the respective configuration and calendar.xml file. You will need to ensure that you have specified valid files in the configuration options for these files otherwise they won't be saved correctly and any changes may be lost.&lt;br /&gt;
&lt;br /&gt;
'''crossdomain.xml''' : This will return the current copy of crossdomain.xml as set with 'flashPolicyFile' ([[#Flash_Security|see section 3.5]]).&lt;br /&gt;
&lt;br /&gt;
'''timeshift?t=#''' : [EXPERIMENTAL] This applies a time shift to the audio though the default is to have no shift (i.e. t=0). This should not be used unless you know what it does (added for specific Aol use).&lt;br /&gt;
&lt;br /&gt;
'''api''' : This is the point from where you can make use of the AJAX api which sc_trans offers and is used as a POST method. For more information on the parameters and options supported see [[SHOUTcast_Transcoder_AJAX_api_Specification|sc_trans_ajax_api.txt]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Metadata Support==&lt;br /&gt;
&lt;br /&gt;
As detailed in [[#Metadata_Control|section 3.8]] there are a number of ways to allow for the use of metadata from the files being played though there are certain limits to this support for different file formats currently supported by sc_trans as detailed in the following sections.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MP3 Files===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
There is support for ID3v1 and ID3v2 tags. With ID3v2 there is support of version 3 and 4 of the specification though there are the following limitations:&lt;br /&gt;
# Unsynch data is not supported&lt;br /&gt;
# Compressed frames are not supported&lt;br /&gt;
# Encrypted frames are not supported&lt;br /&gt;
# Appended v4 frames are not supported&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===FLAC and OGG Files===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
There is support of the native metadata (Vorbis comment tags). Metadata read from these files are mapped to expected values which SHOUTcast expects to get. For more information see [[SHOUTcast_XML_Metadata_Specification|sc2_xml_metadata.txt]] for details on the various field mappings applied.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Filename Metadata Extraction==&lt;br /&gt;
&lt;br /&gt;
The transcoder along with being able to make use of the metadata from files is also able to attempt to extract metadata from the filepath of the files by use of a template.&lt;br /&gt;
&lt;br /&gt;
Guessing of the metadata from the filename will happen if 'usemetadata=0' is set in your configuration file (default behaviour is to use the file tag) or if no tag is detected in the file. For the best experience it is always best to ensure any files you use have tags and the required metadata in them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Filename Metadata Extraction Pattern===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The 'metadataPattern' setting is used to specify the pattern used to extract metadata from a filename if there is no detected metadata or 'usemetadata=0'.&lt;br /&gt;
&lt;br /&gt;
The default pattern used is *\%N.* (Windows) and */%N.* (all other OSes). The following are the formatting options which are supported in the pattern:&lt;br /&gt;
 %N = Song name&lt;br /&gt;
 %G = Genre&lt;br /&gt;
 %A = Album&lt;br /&gt;
 %R = Artist&lt;br /&gt;
 %Y = Four digit year&lt;br /&gt;
 %# = Sequence of digits&lt;br /&gt;
 %% = % character&lt;br /&gt;
 [] = Brackets optional elements (no nesting)&lt;br /&gt;
 *  = String&lt;br /&gt;
 Other characters are matched exactly as found.&lt;br /&gt;
&lt;br /&gt;
The pattern matching is done working from the right to the left.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Filename Metadata Extraction Examples===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following examples show the metadata pattern matching working.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Example #1====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 metadataPattern = */%R/%Y%A/Audio/[%#_]%N.*&lt;br /&gt;
 filepath = /home/songs/Mask and Wig/1969 Irreverance Of Things Past/Audio/03_The Royal Blues.mp3&lt;br /&gt;
&lt;br /&gt;
Extracted metadata result:&lt;br /&gt;
 ALBUM = Irreverance Of Things Past&lt;br /&gt;
 ARTIST = Mask and Wig&lt;br /&gt;
 SONG = The Royal Blues&lt;br /&gt;
 YEAR = 1969&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Example #2====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 metadatapattern = */%A/[%R_]%N&lt;br /&gt;
 filepath = /home/album/song&lt;br /&gt;
&lt;br /&gt;
Extracted metadata result:&lt;br /&gt;
 ALBUM = album&lt;br /&gt;
 SONG = song&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====6.2.3   Example #3====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 metadatapattern = */%A/%R_%N&lt;br /&gt;
 filepath = /home/album/artist_song&lt;br /&gt;
&lt;br /&gt;
Extracted metadata result:&lt;br /&gt;
 ALBUM = album&lt;br /&gt;
 ARTIST = artist&lt;br /&gt;
 SONG = song&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===File Metadata Construction For SHOUTcast 1===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You can specify how metadata elements are concatenated together to from the SHOUTcast 1 metadata string by specifying the 'displaymetadatapattern' option.&lt;br /&gt;
&lt;br /&gt;
In a standard Winamp client install then it will expect the data in the equivalent format of '%R[ - ]%A[ - ]%N' and uses that format to parse the data. If you deviate from this or if the user has changed settings in their Winamp client then the results may not display properly with what is expected to be shown.&lt;br /&gt;
&lt;br /&gt;
The following token substitutions are made with 'displaymetadatapattern':&lt;br /&gt;
&lt;br /&gt;
 %N = Song name&lt;br /&gt;
 %A = Album name&lt;br /&gt;
 %R = Artist&lt;br /&gt;
 %G = Song genre&lt;br /&gt;
 %Y = song year&lt;br /&gt;
 %t = Station name (a.k.a. stream title a.k.a. icy-name)&lt;br /&gt;
 %u = Station url (a.k.a. icy-url)&lt;br /&gt;
 %g = Station genre (a.k.a. icy-genre)&lt;br /&gt;
&lt;br /&gt;
Characters in brackets are only displayed if the token substitution to the left of them did not result in the insertion of an empty string.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Playlists Support==&lt;br /&gt;
&lt;br /&gt;
The transcoder supports a playlist file to specify the file(s) to use when it is working and is a file with the .lst extension with one file per line. The file may be encoded in UTF-8 to allow for the support of non-english filenames, etc.&lt;br /&gt;
&lt;br /&gt;
Lines in the playlist beginning with a # will be ignored which allows you to disable a specific file or script in the playlist or comments on what is done.&lt;br /&gt;
&lt;br /&gt;
The playlist file will be processed until the end of the file is reached or until the parser comes across a line containing ###!EOF is detected.&lt;br /&gt;
&lt;br /&gt;
With versions of sc_trans prior to those from the end of 2010 there was a need to have a line break after the last entry in the playlist for them to be correctly recognised. This is no longer a requirement of the playlist format.&lt;br /&gt;
&lt;br /&gt;
Wildcards are supported in the processing of the folder contents though this will not do a recursion of any sub-folders within the specified folder '''e.g.'''  c:\music\*.mp3&lt;br /&gt;
&lt;br /&gt;
This will only find mp3 files in the 'music' folder and will not look in any sub-folders which may be inside the 'music' folder. For sub-folders to be included then you will need to explicitly specify the sub-folder for it to be recognised by the playlist loader.&lt;br /&gt;
&lt;br /&gt;
Additionally these entries can be intermixed with regular explicit entries '''e.g.'''&lt;br /&gt;
 c:\music\foo.mp3&lt;br /&gt;
 c:\music\otherstuff\*.mp3&lt;br /&gt;
 c:\music\bar.mp3&lt;br /&gt;
&lt;br /&gt;
Any entries which relate to file formats not supported (determined by the file extension) will be ignored from the playlist stored e.g. test.aac would not be used if read.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Playlist Formats===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The transcoder supports the following playlist file formats though is limited to use only the filepaths from the playlist formats which also provide additional title / metadata information in them:&lt;br /&gt;
&lt;br /&gt;
 Plain text file - this is the equivalent of a commentless M3U / M3U8 file&lt;br /&gt;
 PLS&lt;br /&gt;
 M3U&lt;br /&gt;
 M3U8 (UTF-8 encoded version of the M3U format)&lt;br /&gt;
&lt;br /&gt;
If a loaded playlist contains any entries with wildcards in them then the playlist loader will only attempt to find the matching files in the base folder specified and will not recurse into any sub-folders found. This is different to how Winamp for example (and any other programs) handles the loading of such entries where it would then recurse through any sub-folders found. This behaviour may change at a future time but is not guaranteed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Remote Applications===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
An additional feature of the transcoders playlist support is the ability to run remote applications in place of a fixed playlist line. This is done by starting a line with #! '''e.g.'''&lt;br /&gt;
 /music/foo.mp3&lt;br /&gt;
 #!/bin/perl /home/user/songfromDB.pl&lt;br /&gt;
 /music/bar.mp3&lt;br /&gt;
&lt;br /&gt;
The script run in this case should return the entry in the playlist to run at this point. The script is also passed an integer parameter indicating how many tracks ahead must also be returned by the script.&lt;br /&gt;
&lt;br /&gt;
By returning these extra tracks as well as the first one expected then this information will be used by YP2 to refine searching and also to establish a &amp;quot;coming soon&amp;quot; track which will be shown to clients or on the SHOUTcast site.&lt;br /&gt;
&lt;br /&gt;
So with this style of playlist handling, it is possible to have an external app running which will provide all of the files for sc_trans to process which could be of use if you have a specific requirement for when and how files are played.&lt;br /&gt;
&lt;br /&gt;
Additionally you can pair remote application actions together in such a manner:&lt;br /&gt;
 #!php call track script&lt;br /&gt;
 #!php call commercial script&lt;br /&gt;
&lt;br /&gt;
where this will alternate between the first and second scripts returning the file to be processed through sc_trans.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Additional Information===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Every entry in the playlist is run through a wildcard expander specific to the operating system the transcoder is being run on. Under *nix systems then glob() is used and for Windows systems FindFirstFile() is used to handle the wildcard.&lt;br /&gt;
&lt;br /&gt;
There are a number of scenarios to be considered for remote application entries in a playlist as detailed in the following list:&lt;br /&gt;
&lt;br /&gt;
# The standard out from the command is used as the name of the file to open.&lt;br /&gt;
# If the standard out is empty then the entry will be skipped.&lt;br /&gt;
# If the command returns an error code (non zero) then the entire playlist of which the entry is a member off will be considered to be finished.&lt;br /&gt;
# The data written to standard out should be encoded in the UTF-8 format and if returning multiple entries needs to be separated by a newline character.&lt;br /&gt;
# If only a single track name is returned by the remote application then the following values in the playlist will be used for &amp;quot;coming soon&amp;quot; calculations.&lt;br /&gt;
# If you return the requested number of additional tracks (passed in when it is run) then these will be used for &amp;quot;coming soon&amp;quot; calculations.&lt;br /&gt;
# If there are [ or ] in the filepath then for them to appear instead of being used as a filter, you will need to escape them normally as \[ and \] else it is often likely that the files will fail to load. This is more of an issue on non-Windows versions due to how the shell and expansion works.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==DJing Information==&lt;br /&gt;
&lt;br /&gt;
The DJ port (configuration option 'djport' or 'djport2') mimics the behaviour of sc_serv by allowing someone running another copy of sc_trans (or the Winamp DSP plug-in) to connect to your sc_trans and then to broadcast through it which effectively turns your sc_trans into a relay.&lt;br /&gt;
&lt;br /&gt;
The 'djport' or 'djport2' value (see [[#DJ_Support|section 3.3]] for more details setting this up) is the IP port you choose to have your sc_trans to listen on for an inbound DJ connection (by default this feature is not enabled).&lt;br /&gt;
&lt;br /&gt;
A simple example of this feature is if you have a friend who wants to do a show on your station. At the appropriate time they would start their own instance of sc_trans which will then connect to your instance as if it was a server. When the connection happens then your sc_trans instance will stop the current playlist playback and will crossfade into your friends show. Then when the show is over and the friend disconnects then your instance of sc_trans will crossfade back into the playlist from the point when the friend had connected.&lt;br /&gt;
&lt;br /&gt;
The DJ broadcast will also be copied to disk for later playback assuming that 'djcapture' has not been changed from the default settings though you can turn this feature off if required. See [[#DJ_Support|section 3.3]] for more available options.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Setting Up DJs In The New Scheme===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
DJ accounts are set up by using the 'djlogin', 'djpassword' and 'djpriority' options as shown in &amp;lt;MULTI&amp;gt; options under [[#DJ_Support|section 3.3]].&lt;br /&gt;
&lt;br /&gt;
If we have two DJs who we want to allow access into our system then we would have the following in our main configuration file (obviously in real use change the names and passwords to what you need):&lt;br /&gt;
&lt;br /&gt;
 djlogin_1=peter&lt;br /&gt;
 djpassword_1=foobar&lt;br /&gt;
 djpriority_1=4&lt;br /&gt;
 &lt;br /&gt;
 djlogin_2=paul&lt;br /&gt;
 djpassword_2=goaway &lt;br /&gt;
 djpriority_2=2&lt;br /&gt;
&lt;br /&gt;
The priority value is used if the scheduling allows for two different DJs to connect into the instance of sc_trans at the same time. If this did happen then the DJ with the higher priority will take precedence on the access made.&lt;br /&gt;
&lt;br /&gt;
Now that we have setup the DJs in our main configuration, we will need to setup access for them via the calendar.xml file scheduler ([[SHOUTcast_Calendar_Event_XML_File_Specification|see calendarxml.txt]]). In this example Peter is allowed access to sc_trans at any time whereas Paul is only allowed a connection to sc_trans on Tuesdays at 2am for an hour. Finally the shows Peter makes will not be saved whilst Paul's ones will be archived.&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;&lt;br /&gt;
    &amp;lt;eventlist&amp;gt;&lt;br /&gt;
      &amp;lt;event type=&amp;quot;dj&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;dj archive=&amp;quot;0&amp;quot;&amp;gt;peter&amp;lt;/dj&amp;gt;&lt;br /&gt;
        &amp;lt;calendar/&amp;gt;&lt;br /&gt;
      &amp;lt;/event&amp;gt;&lt;br /&gt;
      &amp;lt;event type=&amp;quot;dj&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;dj archive=&amp;quot;1&amp;quot;&amp;gt;paul&amp;lt;/dj&amp;gt;&lt;br /&gt;
        &amp;lt;calendar starttime=&amp;quot;02:00:00&amp;quot; duration=&amp;quot;01:00:00&amp;quot; repeat=&amp;quot;4&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/event&amp;gt;&lt;br /&gt;
    &amp;lt;/eventlist&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now everything is setup, all that is needed is to run sc_trans and for Peter and Paul to setup their setups (either via another sc_trans or Winamp + Source DSP for example) with the required login details and then they will be able to connect as set in the schedule.&lt;br /&gt;
&lt;br /&gt;
Note: When connecting as a SHOUTcast 1 source, the DJ must specify the login password in the form of &amp;lt;djlogin&amp;gt;:&amp;lt;djpassword&amp;gt;  '''e.g.'''  paul:goaway   If not done correctly then the DJ will not be able to connect. [[#DJ_Support|Section 3.3]] provides more information on the configuration values required.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Virtual Memory Footprint (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
Due to how sc_trans works it will create a large number of threads which may become an issue due to the default virtual memory stack allocation per thread potentially being large (typically 10MB per thread). For most people this should not be an issue as the memory is not really allocated unless it is used. If however if you have a resource constrained system or if you plan on running many copies of sc_trans then you could potentially run out of virtual memory.&lt;br /&gt;
&lt;br /&gt;
The default thread allocation can be reduced by issuing a &amp;quot;ulimit&amp;quot; command before running sc_trans and in the example reduces it to 512KB per-thread '''e.g.'''   ulimit -s 512&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Locale Error (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
If you receive the following error then you have a locale related issues:&lt;br /&gt;
&lt;br /&gt;
    terminate called after throwing an instance of 'std::runtime_error'&lt;br /&gt;
    what():  locale::facet::_S_create_c_locale name not valid&lt;br /&gt;
    Abort trap&lt;br /&gt;
&lt;br /&gt;
If this happens then you need to set the 'POSIX' locale in your terminal's environment values. If this does not happen then everything is fine or you are using a newer version of sc_trans from the end of 2010 which should no longer exhibit this issue.&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
    export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
BSD:&lt;br /&gt;
    setenv LC_ALL POSIX&lt;br /&gt;
&lt;br /&gt;
Mac OS X:&lt;br /&gt;
    export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
You can test to see if this has worked by checking the shell command &amp;quot;locale&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
    LANG=&lt;br /&gt;
    LC_COLLATE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_CTYPE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_MESSAGES=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_MONETARY=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_NUMERIC=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_TIME=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_ALL=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Configurations==&lt;br /&gt;
&lt;br /&gt;
Include as part of the sc_serv installation are a number of example configurations to get things started with using some of the features of the transcoder. The provided examples are:&lt;br /&gt;
&lt;br /&gt;
 sc_trans_basic.conf&lt;br /&gt;
 sc_trans_capture.conf&lt;br /&gt;
 sc_trans_dj.conf&lt;br /&gt;
 sc_trans_playlist.conf&lt;br /&gt;
 sc_trans_simple.conf&lt;br /&gt;
&lt;br /&gt;
All of the configuration examples are documented and will relate back to details in this file as appropriate. You will need to change some details in these example files or to obtain any applicable license keys for the setup you are making (see [[#Registering_for_MP3_Stream_Encoding|section 2.5]]).&lt;br /&gt;
&lt;br /&gt;
In all cases the examples are designed to work from the same install folder as sc_trans. &lt;br /&gt;
&lt;br /&gt;
Remember these examples are a way to get you up and running faster though you are still likely to have to adjust things depending upon the systems you are using and how you want to manage your sources and server connections which are covered in previous sections.&lt;br /&gt;
&lt;br /&gt;
Additionally if you are not happy with editing the files or find it still too confusing then you can use the configuration builder which (if installed) can be found in the 'config_builder'. Open 'config_builder.html' in your browser and then use this graphical tool to setup a configuration file for the transcoder (and additionally the server).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_basic===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This is the base configuration from which the other configuration examples are based and this will get a sc_trans instance running and making a connection to a local instance of sc_serv (see [[SHOUTcast_DNAS_Server_2#sc_serv_basic|sc_serv2.txt - section 9.1]] about the sc_serv_basic configuration file).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_capture===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_trans_basic configuration to get a sc_trans instance running as a capture device '''e.g.''' from a microphone. This shows the use of the 'include' option ([[#Miscellaneous|see section 3.9]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_dj===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_trans_basic configuration to get a sc_trans instance running with the ability to accept DJ connections using both a SHOUTcast 2 source and a legacy SHOUTcast 1 source in addition to how calendar.xml files are used to control DJ access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_playlist===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_trans_basic configuration to get a sc_trans instance running with the ability to schedule a jingle to play around 20 minutes and 40 minutes past the hour as well as to schedule a different playlists to be played in the evening and also on the weekend. This example shows of some of the features of the event system and how it is possible to automate playlist changes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_debug===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file can be included in any other configuration files to allow you to get debug logging output when trying to investigate any issues you may be experiencing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_simple===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Use this if you just need to get a very basic transcoder running or are impatient&lt;br /&gt;
 or are struggling to get it running despite the previous example configurations.&lt;br /&gt;
&lt;br /&gt;
This configuration file is designed to be used just as is and is the simplest form of the configuration file you can have which will allow you to get a running transcoder to work with an instance of the server on the same machine.&lt;br /&gt;
&lt;br /&gt;
This works by assuming default settings of the transcoder and that the server has been properly configured to work as this configuration uses the 'inheritconfig' option to get some of the passwords and other configuration details directly needed for the transcoder to work with the server instance by using sc_serv_simple.conf (see [[SHOUTcast_DNAS_Server_2#sc_serv_simple|sc_serv2.txt - section 9.5]]) or change this to reference a known server configuration you want to use this with.&lt;br /&gt;
&lt;br /&gt;
All you need to do when using this configuration file is to:&lt;br /&gt;
&lt;br /&gt;
* Edit the playlist file to be used (as referenced in the playlistfile entry)&lt;br /&gt;
* Setup the required encoder options including entering the MP3 unlock code by filling in 'unlockkeyname' and 'unlockkeycode' entries if using MP3 decoding ([[#Registering_for_MP3_Stream_Encoding|section 2.5]] has details on why this is required and how to obtain the unlock key and code)&lt;br /&gt;
* Change the stream information details as appropriate&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Transcoder_2</id>
		<title>SHOUTcast DNAS Transcoder 2</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Transcoder_2"/>
				<updated>2022-10-06T10:32:50Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
'''The Shoutcast Transcoder (sc_trans) is no longer maintained or supported.'''&lt;br /&gt;
&lt;br /&gt;
'''This documentation remains here for legacy purposes only.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document shows you the different configuration options supported by sc_trans along with basic and more advanced example configurations enabling you to get started with using sc_trans and the various features it can offer.&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
&lt;br /&gt;
To get started using sc_trans you need to have some media to play or to have a stream you want to relay via sc_trans. With a 'source' you can use then you will need to setup your configuration file for the transcoder so it can process the input source and provide an output which can be used by the DNAS server (see [[SHOUTcast_DNAS_Server_2|sc_serv2.txt]] in the sc_serv distribution for more details especially those for stream configurations as non-matching details will prevent sc_trans from being able to connect to it).&lt;br /&gt;
&lt;br /&gt;
The following sections will show how to get sc_trans up and running along with details on the configuration options it provides for handling different sources and outputs it can support.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Running The Transcoder===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The transcoder is able to be run either as a console application or it can be run as service (Windows) or daemon (Linux / Mac OS X / BSD). Detailed below is how to get the transcoder running on the different operating systems supported by it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The Windows version of sc_trans is designed to run on fully updated and patched versions of Windows 2000, XP, Vista and Windows 7.&lt;br /&gt;
&lt;br /&gt;
Please note that the Windows versions of sc_trans are built with a dependency against the Microsoft Visual C++ 2008 SP1 Redistributable Package. If sc_trans is unable to start due to a dependency issue then you will need to install the correct version of the package so it can run which depends on the version of sc_trans you are attempting to run:&lt;br /&gt;
&lt;br /&gt;
32-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&lt;br /&gt;
&lt;br /&gt;
64-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ba9257ca-337f-4b40-8c14-157cfdffee4e&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Install as a Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_trans.exe install &amp;lt;servicename&amp;gt; &amp;lt;username&amp;gt; &amp;lt;password&amp;gt; &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service&lt;br /&gt;
 Typically enter this as 'sc_serv' though you can use a different name but you will need&lt;br /&gt;
 to remember it as it is required to be the same when using the 'uninstall' mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;username&amp;gt; - User under which to run the service as or '0' for the local system&lt;br /&gt;
&lt;br /&gt;
&amp;lt;password&amp;gt; - Password for user or '0' for the local system or with no password&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file&lt;br /&gt;
 If no file / an invalid file is specified then sc_trans will abort loading.&lt;br /&gt;
&lt;br /&gt;
When run as a service there is not a good sense of a current working directory so requires all paths in the configuration and playlist files to be fully qualified otherwise lookups will fail when sc_serv is run.&lt;br /&gt;
&lt;br /&gt;
To run sc_serv with a configuration file in the same folder as the server as the current system user account you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_trans.exe install sc_trans 0 0 sc_trans.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Uninstall the Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_trans.exe uninstall &amp;lt;servicename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service as used when the service was registered&lt;br /&gt;
&lt;br /&gt;
To uninstall sc_serv assuming it was installed as detailed in the install section above then you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_trans.exe uninstall sc_trans&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Service in the Console====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_trans.exe &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_trans will abort loading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Linux / Mac OS X / BSD===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Remember to enable the required access on the sc_trans file by doing 'chmod a+x sc_trans' after extracting it from the distribution file otherwise the OS is likely to not run it and show the error message './sc_trans: Permission denied'.&lt;br /&gt;
&lt;br /&gt;
====Run as a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_trans daemon &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (required in all cases)&lt;br /&gt;
 If no file / an invalid file is specified then sc_trans will abort loading.&lt;br /&gt;
&lt;br /&gt;
'''e.g.'''&lt;br /&gt;
    ./sc_trans daemon ./sc_trans.conf&lt;br /&gt;
&lt;br /&gt;
When run this should output the following:&lt;br /&gt;
&lt;br /&gt;
'sc_trans going daemon with PID [XXXX]' where XXXX is the &amp;lt;pid&amp;gt; of the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====End a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
kill -SIGTERM &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -15 &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -s TERM &amp;lt;pid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pid&amp;gt; - The PID of the daemon instance (reported when the daemon started or can be found with 'ps ax | grep sc_serv' as long as sc_serv was the file run otherwise you can just use 'ps ax' if the filename isn't known). Additionally the PID of sc_trans is listed in the log file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_trans &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_trans will abort loading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Additional Signals===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
When run on Linux / Mac OS X / BSD then some additional signals are supported to allow for additional control over the running daemon instance of sc_trans.&lt;br /&gt;
&lt;br /&gt;
The following signals can be used with the 'kill' command (in the manner of your choosing for using the kill command) along with the &amp;lt;pid&amp;gt; of the daemon instance to do one of the following actions:&lt;br /&gt;
&lt;br /&gt;
 SIGKILL   -  Stops sc_trans (also SIGTERM, SIGINT and SIGQUIT will work)&lt;br /&gt;
 SIGHUP    -  Rotates logfile&lt;br /&gt;
 SIGWINCH  -  Skips to next song in playlist&lt;br /&gt;
 SIGUSR1   -  Reload playlist&lt;br /&gt;
 SIGUSR2   -  Toggle playlist shuffle&lt;br /&gt;
&lt;br /&gt;
The result of SIGHUP is that the current log file contents will be moved into &amp;lt;logfile&amp;gt;_1 '''e.g.''' sc_trans_1.log, &amp;lt;logfile&amp;gt;_1 will be moved into &amp;lt;logfile&amp;gt;_2 '''e.g.''' sc_trans_2.log and so on for all log files which can be found which match the current log file's name. This is useful if timed to have it create day specific log files.&lt;br /&gt;
&lt;br /&gt;
 These signals are not supported by the Windows version of sc_trans which will only&lt;br /&gt;
 respond to the Ctrl + C / Ctrl + Break / console close commands the OS provides.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Registering for MP3 Stream Encoding===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In order for compliance with all broadcasting laws there is a legal requirement for the need to purchase an MP3 license key in-order to be able to encode your stream in MP3 (see [[#MP3_Encoding|section 3.10]] for the related configuration entries). The license key should cost $5.&lt;br /&gt;
&lt;br /&gt;
To obtain the license key you need to go to the following page which will takes you to a secure page for purchasing the MP3 encoding license key:&lt;br /&gt;
    http://shop.winamp.com/servlet/PromoServlet/promoID.48873700&lt;br /&gt;
&lt;br /&gt;
Once the license key has been obtained (this should be a quick process only taking a few minutes when done) then you just need to add the 'name' and 'key' you have obtained into the 'unlockkeyname' and 'unlockkeycode' values in your configuration file (see [[#MP3_Encoding|section 3.10]]) and to change the 'encoder' type for the stream(s) you require from 'aacp' to 'mp3' to use it (see [[#Encoder_Options|section 3.4]]).&lt;br /&gt;
&lt;br /&gt;
So if your key is '123456' and you have used 'Bob Cratchit' as the registered name during the billing process, you would add the following to your configuration file:&lt;br /&gt;
    unlockkeyname=Bob Cratchit&lt;br /&gt;
    unlockkeycode=123456&lt;br /&gt;
&lt;br /&gt;
If the details do not exactly match then the Transcoder will show a message and will not allow the encoding of MP3 streams until the configuration issue has been resolved. The common cause for failure is not entering the '''unlockkeyname''' exactly as specified for the billing name of the method used during the purchase.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Why Does AAC Encoding Not Require a License Key?====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Encoding to an AAC stream does also require a license like the MP3 encoding though this has already been paid for you so there is no need for you to do so yourself when using sc_trans. This setup may seem strange but it is just how things happen with the different nature of licensing encoding of the AAC and MP3 formats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported File Formats===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
As sc_trans does transcoding of audio from one format to another for then being fed to a server or another sc_trans instance as a relay, the following file extensions are handled as valid input file sources:&lt;br /&gt;
&lt;br /&gt;
 MP3 + MPEG (treated as mp3)&lt;br /&gt;
 WAV (uncompressed)&lt;br /&gt;
 OGG&lt;br /&gt;
 FLAC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration File==&lt;br /&gt;
&lt;br /&gt;
Here you can find a complete list of all of the configuration options which are provided by sc_trans which ranges from logging to networking configuration to control over how the media is encoded before transmission to the server.&lt;br /&gt;
&lt;br /&gt;
The entries stored in the configuration file are processed case insensitively.&lt;br /&gt;
&lt;br /&gt;
Configuration entries labelled as ''&amp;lt;MULTI&amp;gt;'' can be used to set up specific encoder types or for specifying multiple playlists for use with the calendar system. These are specified by adding _# to the end of the option's name as shown below where # begins with one. If you are only working with a single instance then you do not need to add the _# part as&lt;br /&gt;
any instances of a configuration option will assume it is for _1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;MULTI&amp;gt;'' system is not hierarchical and all values beyond the default must be specified for all connections. So for example, if you wanted to connect to two servers on the same port you must do:&lt;br /&gt;
&lt;br /&gt;
    encoder_1=aacp&lt;br /&gt;
    encoder_2=mp3&lt;br /&gt;
    bitrate_1=32000&lt;br /&gt;
    bitrate_2=32000&lt;br /&gt;
&lt;br /&gt;
Note that you CANNOT do it like this as it leads to not all values being set:&lt;br /&gt;
&lt;br /&gt;
    encoder_1=aacp&lt;br /&gt;
    encoder_2=mp3&lt;br /&gt;
    bitrate=32000&lt;br /&gt;
&lt;br /&gt;
The configuration files also allow for notes or options to be disabled by the use of a comma (;) at the start of a line which can be seen in all of the configuration examples.&lt;br /&gt;
&lt;br /&gt;
Known options in the configuration files are recognised irrespective of the case they are entered in the configuration file so djport and dJpOrT will be handled the same way.&lt;br /&gt;
&lt;br /&gt;
Any items found in the configuration file which are not known (as detailed in following sections) or is not processed as a comment will be reported in the following manner:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;date + time&amp;gt; W msg:[CONFIG] Invalid item on line XX&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;date + time&amp;gt; is the date and time the event happens at and XX is the line in the configuration file where the error has been found to occur at.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Administration===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''adminport''' : Specify the port used to access the administrative control page    ''[Default = 0]''&lt;br /&gt;
 If no valid port is specified (i.e. zero) then this feature is disabled.&lt;br /&gt;
&lt;br /&gt;
'''adminuser''' : Specify the username used to access the administrative control page    ''[Default = admin]''&lt;br /&gt;
&lt;br /&gt;
'''adminpassword''' : Specify the password to access the administrative control page    ''[Default = goaway]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Calendar Events===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''calendarfile''' : Specify the path to the xml based calendar file    ''[Default = calendar.xml]''&lt;br /&gt;
&lt;br /&gt;
'''calendarrewrite''' : Re-write the 'calendar file' on exit    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
Note: See [[SHOUTcast_Calendar_Event_XML_File_Specification|calendarxml.txt]] for more information on the event format and what it allows you to do with playlist, DJ and relay access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===DJ Support===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''djport''' : Specify the port to listen on for DJ access using the SHOUTcast 1 protocol    ''[Default = 0 (no listening)]''&lt;br /&gt;
 This will actually open 'djport + 1' as the listening port.&lt;br /&gt;
&lt;br /&gt;
'''djport2''' : Specify the port to listen on for DJ access using the SHOUTcast 2 protocol    ''[Default = 0 (no listening)]''&lt;br /&gt;
&lt;br /&gt;
Note: It is possible to use 'djport' and 'djport2' at the same time though you need to ensure that there is no overlap of the ports used in what is specified.&lt;br /&gt;
&lt;br /&gt;
This is because 'djport2' will open the port specified unlike 'djport' which opens 'djport + 1' (as is the way with SHOUTcast 1 connections). Keep this in mind as you would not be able to do the following as it causes a duplication of the port being opened (901 in this case) :&lt;br /&gt;
 djport=900    ; i.e. will open port 901&lt;br /&gt;
 djport2=901&lt;br /&gt;
Whereas this would work as we are opening two different ports (901 + 902):&lt;br /&gt;
 djport=900&lt;br /&gt;
 djport2=902&lt;br /&gt;
&lt;br /&gt;
'''djcipher''' : Specify the key used to obfuscate the initial handshaking with the SHOUTcast 2 protocol    ''[Default = foobar]''&lt;br /&gt;
 This is a YP2 feature and it matches the 'uvoxcipherkey' value in&lt;br /&gt;
 the sc_serv configuration file (see [[SHOUTcast_DNAS_Server_2#YP_Server_Behaviour|sc_serv2.txt - section 4.14]]).&lt;br /&gt;
&lt;br /&gt;
Only change this if you really need to do so as not all SHOUTcast 2 clients will allow you to edit this value from the default value. If using the Source DSP plug-in then see [[Source_DSP_Plug-in#SHOUTcast_2_Cipher_Key|dsp_sc.txt - section 5.0]] for details on how to change the plug-in to use a differnet value.&lt;br /&gt;
&lt;br /&gt;
'''autodumpsourcetime''' : Specify the maximum idle time for the DJ in seconds before being disconnected    ''[Default = 30]''&lt;br /&gt;
&lt;br /&gt;
'''djbroadcasts''' : Specify the directory in which DJ broadcasts will be recorded into    ''[Default = recorded\ or recorded/ - relative to sc_trans[.exe] ]''&lt;br /&gt;
&lt;br /&gt;
'''djcapture''' : Enable to allow the recording of the DJ broadcast    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''djfilepattern''' : Specify how the DJ archive filenames will be created in the form of &amp;lt;djname&amp;gt;&amp;lt;date time pattern&amp;gt;suffix    ''[Default = _%Y_%m_%d_%H_%M_%S. (year_month_day_hour_minute_second)]''&lt;br /&gt;
 The date and time information are formatted using strftime().&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each DJ):&lt;br /&gt;
&lt;br /&gt;
'''djlogin''' : Specify the username required for the DJ to get access    [Default = dj]&lt;br /&gt;
 When connecting as a SHOUTcast 1 source the password has to be specified as &amp;lt;djlogin&amp;gt;:&amp;lt;djpassword&amp;gt;  '''e.g.'''  dj:noise&lt;br /&gt;
&lt;br /&gt;
'''djpassword''' : Specify the password required for the DJ to get access    ''[Default = noise]''&lt;br /&gt;
&lt;br /&gt;
'''djpriority''' : Specify the priority for the DJ when multiple DJ's are connected    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Encoder Options===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each encoder):&lt;br /&gt;
&lt;br /&gt;
'''encoder''' : Specify the encoder to use, either (mp3 or aacp)    ''[Default = aacp]''&lt;br /&gt;
&lt;br /&gt;
'''bitrate''' : Specify the encoding bitrate in bits per second    ''[Default = 96000]''&lt;br /&gt;
&lt;br /&gt;
'''samplerate''' : Specify the encoding sample rate to use    ''[Default = 44100]''&lt;br /&gt;
&lt;br /&gt;
'''channels''' : Specify the number of channels to encode    ''[Default = 2]''&lt;br /&gt;
&lt;br /&gt;
'''mp3quality''' : Specify the MP3 encoder quality to use when encoding    ''[Default = 0]''&lt;br /&gt;
Available options are :&lt;br /&gt;
 0 - fast (preferred)&lt;br /&gt;
 1 - high quality (changes sample rate and does additional filtering)&lt;br /&gt;
&lt;br /&gt;
'''mp3mode''' : Specify the MP3 encoder mode (CBR / VBR) to use when encoding    ''[Default = 0]''&lt;br /&gt;
Available options are :&lt;br /&gt;
 0 - CBR&lt;br /&gt;
 1 - VBR High Quality&lt;br /&gt;
 2 - &lt;br /&gt;
 3 - VBR Medium Quality &lt;br /&gt;
 4 - &lt;br /&gt;
 5 - VBR Low Quality]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Flash Security===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''flashpolicyfile''' : Specify the name of file which contains the flash crossdomain policies    ''[Default = crossdomain.xml]''&lt;br /&gt;
&lt;br /&gt;
'''flashpolicyserverport''' : Specify the port used for the flash policy server    ''[Default = 0]''&lt;br /&gt;
 Specify '843' if you want to turn this on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Live Capture===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''capture''' : Enable to allow the use of live capture as an input    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''capturedevice''' : Specify the OS dependent device used for capture    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''captureinput''' : Specify the OS dependent input used for capture    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''capturesamplerate''' : Specify the sample rate used for capture    ''[Default = 44100]''&lt;br /&gt;
&lt;br /&gt;
'''capturechannels''' : Specify the number of channels to capture    ''[Default = 2]''&lt;br /&gt;
&lt;br /&gt;
Note: When run under Windows on an operating system newer than XP there is a possibility for the device name obtained from Windows to be longer than 32 characters. This is a problem as the api's used only support device names upto 31 characters in length so sc_trans will attempt to clip the device name specified with 'capturedevice' to 31 characters to try to get a match with the devices the OS is reporting.&lt;br /&gt;
&lt;br /&gt;
If you are having issues with the live capture then add 'capturedebug=1' to allow you to see the device names reported back to sc_trans by the OS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Logging Options===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''log''' : Enable logging of the transmission output    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''screenlog''' :  Enable logging of output to the console    ''[Default = 1]''&lt;br /&gt;
 If log=0 or when running this as a daemon / service then this option is ignored as it is not applicable.&lt;br /&gt;
&lt;br /&gt;
'''logfile''' : Specify a different logfile to save the transmission logs into    ''[Default = %temp%\sc_trans.log or /tmp/sc_trans.log]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the logs into then you need to ensure that the&lt;br /&gt;
 folder already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Metadata Control===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''streamtitle''' : Specify the general name for the radio station or stream    ''[Default - Misc]''&lt;br /&gt;
&lt;br /&gt;
'''streamurl''' : Specify the url of the radio station or stream    ''[Default = &amp;lt;nowiki&amp;gt;http://www.shoutcast.com&amp;lt;/nowiki&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''genre''' : Specify the genre for the radio station or stream    ''[Default - N/A]''&lt;br /&gt;
&lt;br /&gt;
'''aim''' : Specify the AIM contact ID to show for the radio station or stream    ''[Default - N/A]''&lt;br /&gt;
&lt;br /&gt;
'''irc''' : Specify the IRC contact ID to show for the radio station or stream    ''[Default - N/A]''&lt;br /&gt;
&lt;br /&gt;
'''icq''' : Specify the ICQ contact ID to show for the radio station or stream    ''[Default - N/A]''&lt;br /&gt;
&lt;br /&gt;
'''public''' : Enable to register the radio station or stream with the YP (shoutcast.com)    ''[Default = 0]''&lt;br /&gt;
 If connected to sc_serv then this is used by the 'publicserver' value&lt;br /&gt;
 unless it is being overriden (see [[SHOUTcast_DNAS_Server_2#YP_Server_Behaviour|sc_serv2.txt - section 4.14]]).&lt;br /&gt;
&lt;br /&gt;
'''usemetadata''' : Enable to use use the in file metadata i.e. stored in file tags    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''metadatapattern''' : Specify the pattern used for extracting metadata from the filename    ''[Default = *\%N.* or */%N.*]''&lt;br /&gt;
 See [[#Filename_Metadata_Extraction|section 6.0]] for more details about this)&lt;br /&gt;
&lt;br /&gt;
'''displaymetadatapattern''' : Specify a pattern to use to form the metadata output string for SHOUTcast 1 metadata    ''[Default = %R[ - ]%N]''&lt;br /&gt;
&lt;br /&gt;
'''nextlookahead''' : Specifies the number of tracks ahead of the current track playing to be reported in the stream's metadata to the server    ''[Default = 3]''&lt;br /&gt;
 This is the maximum limit attempted to be reported and will vary based on the source in use&lt;br /&gt;
 e.g. if there enough entries in the current playlist being played. Setting to zero will disable this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''configrewrite''' :  Re-write the 'config file' on exit    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''timemultiplier''' : Used to shift reported time in certain uses    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''inheritconfig''': Specify the path of the sc_serv2 configuration file for the instance you want to use the transcoder with    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
The aim of this option is to make it easier to get an instance of sc_trans to run with sc_serv by ensuring that any passwords, etc match up. By using this, option any of the configuration options already set in the sc_trans config file (see below) will be replaced by those found in the sc_serv configuration file.&lt;br /&gt;
&lt;br /&gt;
The configuration options read from the sc_serv2 configuration file including what they are mapped from in the sc_serv2 value to the sc_trans value are:&lt;br /&gt;
&lt;br /&gt;
* '''portbase -&amp;gt; serverport'''&lt;br /&gt;
* '''password -&amp;gt; password''' - Master source password overriden by streampassword&lt;br /&gt;
* '''streampassword -&amp;gt; password'''&lt;br /&gt;
* '''uvoxcipherkey -&amp;gt; djcipher'''&lt;br /&gt;
* '''srcip -&amp;gt; serverip'''  -  Will use the ip set unless is empty or srcip=any&lt;br /&gt;
* '''yp2 -&amp;gt; outprotocol''' - Sets outprotocol=1 if with yp2=0 otherwise it sets outprotocol=3 as a v2 DNAS is assumed to be used and if found to be v1 configuration then outprotocol=1&lt;br /&gt;
&lt;br /&gt;
Additionally this mode will attempt to read configurations from a v1 DNAS file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''include''' : Specify an additional include file containing settings to be processed from the current point in the main configuration file    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
Note: You can do multiple calls of this allowing for a basic configuration file with then 'specific' encoder configurations set in individual conf files though you need to ensure not to include a reference to the same file in itself.&lt;br /&gt;
&lt;br /&gt;
'''serverbackupfile''' : Set the server side file for broken connection playback    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''serverintrofile''' : Set the server side file that is played when a user connects    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
Note: With both of these options, they will override any files specified in the sc_serv's configuration file and also requires 'outprotocol=3' for it to be supported (see [[#Network_Options|section 3.11]] for the options 'outprotocol' supports).&lt;br /&gt;
&lt;br /&gt;
Additionally when connecting to sc_serv via sc_trans, the server intro and backup files as specified in sc_servs configuration file (see [[SHOUTcast_DNAS_Server_2#Introduction_and_Backup_Files|sc_serv2.txt - section 4.5]]) will not be played so you need to specify them in the sc_trans configuration if required for the stream (this is a quirk of how sc_serv currently works).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MP3 Encoding===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''unlockkeyname''' : Specify the name to use to unlock mp3 encoding (case sensitive)&lt;br /&gt;
&lt;br /&gt;
'''unlockkeycode''' : Specify the code associated with name to unlock mp3 encoding&lt;br /&gt;
&lt;br /&gt;
 Due to licensing requirements for MP3 encoding see [[#Registering_for_MP3_Stream_Encoding|section 2.5]]&lt;br /&gt;
 for how to obtain the key required for unlocking MP3 encoding in sc_trans.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Network Options===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each connection):&lt;br /&gt;
&lt;br /&gt;
'''endpointname''' : Specify the name of the endpoint    ''[Default - &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: This is used to identify the encoder such as when using the AJAX api interfaces and if not specified then sc_trans creates a default name as 'endpointX' where 'X' is the encoder index starting at one. See [[SHOUTcast_Transcoder_AJAX_api_Specification|sc_trans_ajax_api.txt]] for more information on the use of this.&lt;br /&gt;
&lt;br /&gt;
'''outprotocol''' : Specify the server protocol to use    ''[Default = 1]''&lt;br /&gt;
This can be:&lt;br /&gt;
 1 = SHOUTcast 1 (Legacy)&lt;br /&gt;
 2 = Ultravox (Ultravox 2.0)&lt;br /&gt;
 3 = SHOUTcast 2 (Ultravox 2.1)&lt;br /&gt;
&lt;br /&gt;
'''serverip''' : Specify the IP address of server to connect to    ''[Default - &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: If 'srcip' has been set to a value other than 'any' in the sc_serv configuration then you need to set it for you sc_trans configuration otherwise sc_serv will not see the sc_trans connection attempts (see [[SHOUTcast_DNAS_Server_2#Client_Behaviour|sc_serv2.txt - section 4.2]]).&lt;br /&gt;
                 &lt;br /&gt;
Additionally, you will need to make sure that any IP added is valid and can be fully resolved otherwise the connection to the sc_serv instance is very likely to fail.&lt;br /&gt;
&lt;br /&gt;
'''serverport''' : Specify the server port used to connect to    ''[Default = 8000]''&lt;br /&gt;
 This should relate to the 'portbase' value set in sc_serv's configuration (see [[SHOUTcast_DNAS_Server_2#Networking|sc_serv2.txt - section 4.8]]).&lt;br /&gt;
&lt;br /&gt;
'''password''' : Specify the password used to connect to a DNAS server   ''[Default = foobar]''&lt;br /&gt;
 This matches the 'password' value in the sc_serv configuration file (see [[SHOUTcast_DNAS_Server_2#Networking|sc_serv2.txt - section 4.8]]) or 'streampassword' (see [[SHOUTcast_DNAS_Server_2#Stream_Configuration|sc_serv2.txt - section 4.12]] - this only applies for v2 DNAS servers).&lt;br /&gt;
&lt;br /&gt;
'''streamid''' : Specify the stream identifier for the SHOUTcast 2 connection    ''[Default = 1]''&lt;br /&gt;
 This relates to the 'streamid' value in the sc_serv configuration (see [[SHOUTcast_DNAS_Server_2#Networking|sc_serv2.txt - section 4.8]]).&lt;br /&gt;
&lt;br /&gt;
'''uvoxuserid''' : Specify the user ID for accessing SHOUTcast 2 (Ultravox 2.1)    ''[Default - &amp;lt;no value&amp;gt;]''&lt;br /&gt;
 This is currently not used and is provided for future usage.&lt;br /&gt;
&lt;br /&gt;
Note: If ''''requirestreamconfigs'''' is enabled in the sc_serv configuration (see [[SHOUTcast_DNAS_Server_2#Stream_Configuration|sc_serv2.txt - section 4.12]]) then you need to ensure that the 'streamid' value used in your sc_trans configuration exists in the sc_serv configuration along with any endpoint, password and other values appropriate to the 'streamid' matched with the equivalent sc_serv configuration values.&lt;br /&gt;
&lt;br /&gt;
'''uvoxradiometadata''' : Enable to send the older AOL Radio style metadata to the server    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''uvoxnewmetadata''' : Enable to send SHOUTcast 2 style metadata to the server    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''uvoxmetadatafudgefactor''' : Specify the delaying factor for Ultravox metadata in seconds    ''[Default = 0.0]''&lt;br /&gt;
&lt;br /&gt;
'''shoutcastmetadatafudgefactor''' : Specify the delaying factor for SHOUTcast metadata in seconds    ''[Default = 0.0]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Playlist Control===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''playlistfile''' : Specify the name of playlist file to use    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''shuffle''' : Enable to allow shuffling of the specified playlist    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''xfade''' : Specify the number of seconds to do  for a crossfade    ''[Default = 1]''&lt;br /&gt;
 Specify xfade=0 to disable crossfade&lt;br /&gt;
&lt;br /&gt;
'''xfadethreshold''' : Specify the minimum duration in seconds a file must be to allow crossfading in and out on it    ''[Default = 10]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Priority playlists are those used to override the playing playlist once the current song has stopped playing. This can be useful if a sudden playlist / announcement is required.&lt;br /&gt;
&lt;br /&gt;
'''playlists''' : Specify the folder used for priority playlists    ''[Default = priority\ or priority/ - relative to sc_trans[.exe]]''&lt;br /&gt;
&lt;br /&gt;
'''archive''' : Specify the folder used for archiving playlists    ''[Default = priority\archived\ or priority/archived/ - relative to sc_trans[.exe]]''&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each additional playlist):&lt;br /&gt;
&lt;br /&gt;
'''playlistfilename''' - Used to build named collections of playlists    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''playlistfilepath''' - Used to build named collections of playlists    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
Note: These playlists are used as part of the &amp;lt;playlist&amp;gt; events in calendar.xml where the name set with 'playlistfilename_X' is used in the loading done. See [[SHOUTcast_Calendar_Event_XML_File_Specification#Playlist_Events|calendarxml.txt and section 3.2]] for more information on these events.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Replay Gain Control===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''applyreplaygain''' : Enable to honour the replay gain values stored in the file    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''defaultreplaygain''' : If no replay gain is in the file then apply this adjustment    ''[Default = 0.0]''&lt;br /&gt;
&lt;br /&gt;
'''djreplaygain''' : Specify the replay gain to be applied to DJ streams    ''[Default = 0.0]''&lt;br /&gt;
&lt;br /&gt;
'''capturereplaygain''' : Specify the replay gain to apply to the live capture input    ''[Default = 0.0]''&lt;br /&gt;
&lt;br /&gt;
'''calculatereplaygain''' : Enable to calculate the replay gain on the handled files    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''replaygaintmpdir''' : Specify the temporary directory for replay gain calculator to work in    ''[Default = (Windows = %TEMP FOLDER%  Linux = /tmp/)]''&lt;br /&gt;
&lt;br /&gt;
'''replaygainrunahead''' : Specify the number of tracks head start to give the replay gain calculator    ''[Default = 2]''&lt;br /&gt;
&lt;br /&gt;
'''replaygaindontwrite''' : Specify if the replay gain values calculated should NOT be written to the file    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''enhancereplaygain''' : Specify if the file has replay gain and it is being used, an additional amount of gain to add    ''[Default = 6.0]''&lt;br /&gt;
 Winamp ships with a default value to add -6dB to file which do not have replay gain.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===VU Image===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''vuimagedirectory''' : Specify the folder in which to look for vu images to use    ''[Default = &amp;quot;&amp;quot;]''&lt;br /&gt;
 The image files are named vuimage_XX.&amp;lt;vuimagesuffix&amp;gt; where 'XX' is from 0 to 100&lt;br /&gt;
 and the path specified will need to be properly terminated to work correctly.&lt;br /&gt;
&lt;br /&gt;
'''vuimagesuffix''' : Specify the suffix for vu images to be used from the image directory    ''[Default = png]''&lt;br /&gt;
&lt;br /&gt;
'''vuimagemimetype''' : Specify the mime type for vu images to be used    ''[Default = image/png]''&lt;br /&gt;
&lt;br /&gt;
Note: This controls the images available when using the 'vumeterleft' or 'vumeterright' webcommands (see [[#Supported_Weblet_Commands|section 4.1]]). Additionally sc_trans only allows for one active use of each webcommand from the current sc_trans instance with the most current attempt made being the active instance which will be updated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Debugging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In all cases, the default value is for no debug logging for the options listed below.&lt;br /&gt;
&lt;br /&gt;
'''shuffledebug''' : Enable to activate debug logging of playlist shuffling    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''shoutcastdebug''' : Enable to activate debug logging for SHOUTcast transmission    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''uvoxdebug''' : Enable to activate debug logging for SHOUTcast 2 (Ultravox 2.1) transmissions    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''gaindebug''' : Enable to activate debug logging for replay gain on playback    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''playlistdebug''' : Enable to activate debug logging for playlists    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''mp3encdebug''' : Enable to activate debug logging for MP3 encoding    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''mp3decdebug''' : Enable to activate debug logging for MP3 decoder    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''resamplerdebug''' : Enable to activate debug logging for the resampler    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''rgcalcdebug''' : Enable to activate debug logging for the replay gain calculator    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''apidebug''' : Enable to activate debug logging for the AJAX api    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''calendardebug''' : Enable to activate debug logging for the calendar events    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''capturedebug''' : Enable to activate debug logging for live capture    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''djdebug''' : Enable to activate debug logging for DJ management    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''flashpolicyserverdebug''' : Enable to activate debug logging for the flash policy server    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''fileconverterdebug''' : Enable to activate debug logging for the server side file converter    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''sourcerelaydebug''' : Enable to active debug logging for relayed sources    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''sourceandendpointmanagerdebug''' : Enable to activate debug logging for endpoint management    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Administration Weblet Commands==&lt;br /&gt;
&lt;br /&gt;
The transcoder supports web based control of the features it provides allowing for the remote control of sc_trans much like the DNAS (sc_serv2) supports. To enable the use of the administration interface you need to specify a port and related password and username as detailed in the Administration section ([[#Administration|see 3.1]]).&lt;br /&gt;
&lt;br /&gt;
Once enabled then options detailed in the following sections will become available though the main interface and controlling aspects are available via the 'api' command with more information provided on how to use it in [[SHOUTcast_Transcoder_AJAX_api_Specification|sc_trans_ajax_api.txt]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Weblet Commands===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following are the supported commands for the administration weblet the transcoder supports and are used in the following manner:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://&amp;lt;server_ip&amp;gt;:adminport/&amp;lt;command&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''quit''' : Will make sc_trans quit (equivalent of SIGKILL on non-Windows).&lt;br /&gt;
&lt;br /&gt;
'''rotatelogs''' : Will rotate the logs (equivalent of SIGHUP).&lt;br /&gt;
The result of this is that the current log file contents will be moved into &amp;lt;logfile&amp;gt;_1 '''e.g.''' sc_trans_1.log, &amp;lt;logfile&amp;gt;_1 will be moved into &amp;lt;logfile&amp;gt;_2 '''e.g.''' sc_trans_2.log and so on for all log files which can be found which match the current log file's name. This is useful if timed to have it create day specific log files.&lt;br /&gt;
&lt;br /&gt;
'''nextsong''' : Will advance to the next song (equivalent of SIGWINCH).&lt;br /&gt;
&lt;br /&gt;
'''loadplaylist''' : This will re-load the current playlist (equivalent of SIGUSR1).&lt;br /&gt;
&lt;br /&gt;
'''toggleshuffle''' : Use to toggle the current playlist shuffle state (equivalent of SIGUSR2).&lt;br /&gt;
&lt;br /&gt;
'''kickdj?duration=hh:mm:ss''' : You can specify an amount of time for how long to kick the current DJ for. If a duration is not set i.e. just using 'kickdj', then this will defaults to 15 minutes (00:15:00). If a duration is specified then all three fields of 'hh:mm:ss' must be specified even if their value is zero (ie 01:30:30).&lt;br /&gt;
&lt;br /&gt;
'''restart''' : Restart the current sc_trans instance.&lt;br /&gt;
&lt;br /&gt;
'''vumeterleft''' or '''vumeterright''' : This will initiate a server side image push that represents the vu levels as long as there are images are available to sc_trans to use for this (see [[#VU_Image|section 3.14]]).&lt;br /&gt;
&lt;br /&gt;
'''vu.bin''' : This will return a continuous stream of type 'misc/sc-vu' as long as sc_trans is transcoding. The format of the stream is:&lt;br /&gt;
 0xa5 leftVal rightVal 0xa5 leftVal ..... etc&lt;br /&gt;
&lt;br /&gt;
If the audio signal is mono there is no right val and you get:&lt;br /&gt;
 0xa5 leftVal 0xa5 leftVal .... etc&lt;br /&gt;
&lt;br /&gt;
'''writeconfig''' : This will write out the currently stored configuration and event details to the respective configuration and calendar.xml file. You will need to ensure that you have specified valid files in the configuration options for these files otherwise they won't be saved correctly and any changes may be lost.&lt;br /&gt;
&lt;br /&gt;
'''crossdomain.xml''' : This will return the current copy of crossdomain.xml as set with 'flashPolicyFile' ([[#Flash_Security|see section 3.5]]).&lt;br /&gt;
&lt;br /&gt;
'''timeshift?t=#''' : [EXPERIMENTAL] This applies a time shift to the audio though the default is to have no shift (i.e. t=0). This should not be used unless you know what it does (added for specific Aol use).&lt;br /&gt;
&lt;br /&gt;
'''api''' : This is the point from where you can make use of the AJAX api which sc_trans offers and is used as a POST method. For more information on the parameters and options supported see [[SHOUTcast_Transcoder_AJAX_api_Specification|sc_trans_ajax_api.txt]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Metadata Support==&lt;br /&gt;
&lt;br /&gt;
As detailed in [[#Metadata_Control|section 3.8]] there are a number of ways to allow for the use of metadata from the files being played though there are certain limits to this support for different file formats currently supported by sc_trans as detailed in the following sections.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MP3 Files===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
There is support for ID3v1 and ID3v2 tags. With ID3v2 there is support of version 3 and 4 of the specification though there are the following limitations:&lt;br /&gt;
# Unsynch data is not supported&lt;br /&gt;
# Compressed frames are not supported&lt;br /&gt;
# Encrypted frames are not supported&lt;br /&gt;
# Appended v4 frames are not supported&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===FLAC and OGG Files===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
There is support of the native metadata (Vorbis comment tags). Metadata read from these files are mapped to expected values which SHOUTcast expects to get. For more information see [[SHOUTcast_XML_Metadata_Specification|sc2_xml_metadata.txt]] for details on the various field mappings applied.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Filename Metadata Extraction==&lt;br /&gt;
&lt;br /&gt;
The transcoder along with being able to make use of the metadata from files is also able to attempt to extract metadata from the filepath of the files by use of a template.&lt;br /&gt;
&lt;br /&gt;
Guessing of the metadata from the filename will happen if 'usemetadata=0' is set in your configuration file (default behaviour is to use the file tag) or if no tag is detected in the file. For the best experience it is always best to ensure any files you use have tags and the required metadata in them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Filename Metadata Extraction Pattern===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The 'metadataPattern' setting is used to specify the pattern used to extract metadata from a filename if there is no detected metadata or 'usemetadata=0'.&lt;br /&gt;
&lt;br /&gt;
The default pattern used is *\%N.* (Windows) and */%N.* (all other OSes). The following are the formatting options which are supported in the pattern:&lt;br /&gt;
 %N = Song name&lt;br /&gt;
 %G = Genre&lt;br /&gt;
 %A = Album&lt;br /&gt;
 %R = Artist&lt;br /&gt;
 %Y = Four digit year&lt;br /&gt;
 %# = Sequence of digits&lt;br /&gt;
 %% = % character&lt;br /&gt;
 [] = Brackets optional elements (no nesting)&lt;br /&gt;
 *  = String&lt;br /&gt;
 Other characters are matched exactly as found.&lt;br /&gt;
&lt;br /&gt;
The pattern matching is done working from the right to the left.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Filename Metadata Extraction Examples===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following examples show the metadata pattern matching working.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Example #1====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 metadataPattern = */%R/%Y%A/Audio/[%#_]%N.*&lt;br /&gt;
 filepath = /home/songs/Mask and Wig/1969 Irreverance Of Things Past/Audio/03_The Royal Blues.mp3&lt;br /&gt;
&lt;br /&gt;
Extracted metadata result:&lt;br /&gt;
 ALBUM = Irreverance Of Things Past&lt;br /&gt;
 ARTIST = Mask and Wig&lt;br /&gt;
 SONG = The Royal Blues&lt;br /&gt;
 YEAR = 1969&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Example #2====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 metadatapattern = */%A/[%R_]%N&lt;br /&gt;
 filepath = /home/album/song&lt;br /&gt;
&lt;br /&gt;
Extracted metadata result:&lt;br /&gt;
 ALBUM = album&lt;br /&gt;
 SONG = song&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====6.2.3   Example #3====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 metadatapattern = */%A/%R_%N&lt;br /&gt;
 filepath = /home/album/artist_song&lt;br /&gt;
&lt;br /&gt;
Extracted metadata result:&lt;br /&gt;
 ALBUM = album&lt;br /&gt;
 ARTIST = artist&lt;br /&gt;
 SONG = song&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===File Metadata Construction For SHOUTcast 1===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You can specify how metadata elements are concatenated together to from the SHOUTcast 1 metadata string by specifying the 'displaymetadatapattern' option.&lt;br /&gt;
&lt;br /&gt;
In a standard Winamp client install then it will expect the data in the equivalent format of '%R[ - ]%A[ - ]%N' and uses that format to parse the data. If you deviate from this or if the user has changed settings in their Winamp client then the results may not display properly with what is expected to be shown.&lt;br /&gt;
&lt;br /&gt;
The following token substitutions are made with 'displaymetadatapattern':&lt;br /&gt;
&lt;br /&gt;
 %N = Song name&lt;br /&gt;
 %A = Album name&lt;br /&gt;
 %R = Artist&lt;br /&gt;
 %G = Song genre&lt;br /&gt;
 %Y = song year&lt;br /&gt;
 %t = Station name (a.k.a. stream title a.k.a. icy-name)&lt;br /&gt;
 %u = Station url (a.k.a. icy-url)&lt;br /&gt;
 %g = Station genre (a.k.a. icy-genre)&lt;br /&gt;
&lt;br /&gt;
Characters in brackets are only displayed if the token substitution to the left of them did not result in the insertion of an empty string.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Playlists Support==&lt;br /&gt;
&lt;br /&gt;
The transcoder supports a playlist file to specify the file(s) to use when it is working and is a file with the .lst extension with one file per line. The file may be encoded in UTF-8 to allow for the support of non-english filenames, etc.&lt;br /&gt;
&lt;br /&gt;
Lines in the playlist beginning with a # will be ignored which allows you to disable a specific file or script in the playlist or comments on what is done.&lt;br /&gt;
&lt;br /&gt;
The playlist file will be processed until the end of the file is reached or until the parser comes across a line containing ###!EOF is detected.&lt;br /&gt;
&lt;br /&gt;
With versions of sc_trans prior to those from the end of 2010 there was a need to have a line break after the last entry in the playlist for them to be correctly recognised. This is no longer a requirement of the playlist format.&lt;br /&gt;
&lt;br /&gt;
Wildcards are supported in the processing of the folder contents though this will not do a recursion of any sub-folders within the specified folder '''e.g.'''  c:\music\*.mp3&lt;br /&gt;
&lt;br /&gt;
This will only find mp3 files in the 'music' folder and will not look in any sub-folders which may be inside the 'music' folder. For sub-folders to be included then you will need to explicitly specify the sub-folder for it to be recognised by the playlist loader.&lt;br /&gt;
&lt;br /&gt;
Additionally these entries can be intermixed with regular explicit entries '''e.g.'''&lt;br /&gt;
 c:\music\foo.mp3&lt;br /&gt;
 c:\music\otherstuff\*.mp3&lt;br /&gt;
 c:\music\bar.mp3&lt;br /&gt;
&lt;br /&gt;
Any entries which relate to file formats not supported (determined by the file extension) will be ignored from the playlist stored e.g. test.aac would not be used if read.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Playlist Formats===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The transcoder supports the following playlist file formats though is limited to use only the filepaths from the playlist formats which also provide additional title / metadata information in them:&lt;br /&gt;
&lt;br /&gt;
 Plain text file - this is the equivalent of a commentless M3U / M3U8 file&lt;br /&gt;
 PLS&lt;br /&gt;
 M3U&lt;br /&gt;
 M3U8 (UTF-8 encoded version of the M3U format)&lt;br /&gt;
&lt;br /&gt;
If a loaded playlist contains any entries with wildcards in them then the playlist loader will only attempt to find the matching files in the base folder specified and will not recurse into any sub-folders found. This is different to how Winamp for example (and any other programs) handles the loading of such entries where it would then recurse through any sub-folders found. This behaviour may change at a future time but is not guaranteed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Remote Applications===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
An additional feature of the transcoders playlist support is the ability to run remote applications in place of a fixed playlist line. This is done by starting a line with #! '''e.g.'''&lt;br /&gt;
 /music/foo.mp3&lt;br /&gt;
 #!/bin/perl /home/user/songfromDB.pl&lt;br /&gt;
 /music/bar.mp3&lt;br /&gt;
&lt;br /&gt;
The script run in this case should return the entry in the playlist to run at this point. The script is also passed an integer parameter indicating how many tracks ahead must also be returned by the script.&lt;br /&gt;
&lt;br /&gt;
By returning these extra tracks as well as the first one expected then this information will be used by YP2 to refine searching and also to establish a &amp;quot;coming soon&amp;quot; track which will be shown to clients or on the SHOUTcast site.&lt;br /&gt;
&lt;br /&gt;
So with this style of playlist handling, it is possible to have an external app running which will provide all of the files for sc_trans to process which could be of use if you have a specific requirement for when and how files are played.&lt;br /&gt;
&lt;br /&gt;
Additionally you can pair remote application actions together in such a manner:&lt;br /&gt;
 #!php call track script&lt;br /&gt;
 #!php call commercial script&lt;br /&gt;
&lt;br /&gt;
where this will alternate between the first and second scripts returning the file to be processed through sc_trans.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Additional Information===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Every entry in the playlist is run through a wildcard expander specific to the operating system the transcoder is being run on. Under *nix systems then glob() is used and for Windows systems FindFirstFile() is used to handle the wildcard.&lt;br /&gt;
&lt;br /&gt;
There are a number of scenarios to be considered for remote application entries in a playlist as detailed in the following list:&lt;br /&gt;
&lt;br /&gt;
# The standard out from the command is used as the name of the file to open.&lt;br /&gt;
# If the standard out is empty then the entry will be skipped.&lt;br /&gt;
# If the command returns an error code (non zero) then the entire playlist of which the entry is a member off will be considered to be finished.&lt;br /&gt;
# The data written to standard out should be encoded in the UTF-8 format and if returning multiple entries needs to be separated by a newline character.&lt;br /&gt;
# If only a single track name is returned by the remote application then the following values in the playlist will be used for &amp;quot;coming soon&amp;quot; calculations.&lt;br /&gt;
# If you return the requested number of additional tracks (passed in when it is run) then these will be used for &amp;quot;coming soon&amp;quot; calculations.&lt;br /&gt;
# If there are [ or ] in the filepath then for them to appear instead of being used as a filter, you will need to escape them normally as \[ and \] else it is often likely that the files will fail to load. This is more of an issue on non-Windows versions due to how the shell and expansion works.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==DJing Information==&lt;br /&gt;
&lt;br /&gt;
The DJ port (configuration option 'djport' or 'djport2') mimics the behaviour of sc_serv by allowing someone running another copy of sc_trans (or the Winamp DSP plug-in) to connect to your sc_trans and then to broadcast through it which effectively turns your sc_trans into a relay.&lt;br /&gt;
&lt;br /&gt;
The 'djport' or 'djport2' value (see [[#DJ_Support|section 3.3]] for more details setting this up) is the IP port you choose to have your sc_trans to listen on for an inbound DJ connection (by default this feature is not enabled).&lt;br /&gt;
&lt;br /&gt;
A simple example of this feature is if you have a friend who wants to do a show on your station. At the appropriate time they would start their own instance of sc_trans which will then connect to your instance as if it was a server. When the connection happens then your sc_trans instance will stop the current playlist playback and will crossfade into your friends show. Then when the show is over and the friend disconnects then your instance of sc_trans will crossfade back into the playlist from the point when the friend had connected.&lt;br /&gt;
&lt;br /&gt;
The DJ broadcast will also be copied to disk for later playback assuming that 'djcapture' has not been changed from the default settings though you can turn this feature off if required. See [[#DJ_Support|section 3.3]] for more available options.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Setting Up DJs In The New Scheme===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
DJ accounts are set up by using the 'djlogin', 'djpassword' and 'djpriority' options as shown in &amp;lt;MULTI&amp;gt; options under [[#DJ_Support|section 3.3]].&lt;br /&gt;
&lt;br /&gt;
If we have two DJs who we want to allow access into our system then we would have the following in our main configuration file (obviously in real use change the names and passwords to what you need):&lt;br /&gt;
&lt;br /&gt;
 djlogin_1=peter&lt;br /&gt;
 djpassword_1=foobar&lt;br /&gt;
 djpriority_1=4&lt;br /&gt;
 &lt;br /&gt;
 djlogin_2=paul&lt;br /&gt;
 djpassword_2=goaway &lt;br /&gt;
 djpriority_2=2&lt;br /&gt;
&lt;br /&gt;
The priority value is used if the scheduling allows for two different DJs to connect into the instance of sc_trans at the same time. If this did happen then the DJ with the higher priority will take precedence on the access made.&lt;br /&gt;
&lt;br /&gt;
Now that we have setup the DJs in our main configuration, we will need to setup access for them via the calendar.xml file scheduler ([[SHOUTcast_Calendar_Event_XML_File_Specification|see calendarxml.txt]]). In this example Peter is allowed access to sc_trans at any time whereas Paul is only allowed a connection to sc_trans on Tuesdays at 2am for an hour. Finally the shows Peter makes will not be saved whilst Paul's ones will be archived.&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;&lt;br /&gt;
    &amp;lt;eventlist&amp;gt;&lt;br /&gt;
      &amp;lt;event type=&amp;quot;dj&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;dj archive=&amp;quot;0&amp;quot;&amp;gt;peter&amp;lt;/dj&amp;gt;&lt;br /&gt;
        &amp;lt;calendar/&amp;gt;&lt;br /&gt;
      &amp;lt;/event&amp;gt;&lt;br /&gt;
      &amp;lt;event type=&amp;quot;dj&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;dj archive=&amp;quot;1&amp;quot;&amp;gt;paul&amp;lt;/dj&amp;gt;&lt;br /&gt;
        &amp;lt;calendar starttime=&amp;quot;02:00:00&amp;quot; duration=&amp;quot;01:00:00&amp;quot; repeat=&amp;quot;4&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/event&amp;gt;&lt;br /&gt;
    &amp;lt;/eventlist&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now everything is setup, all that is needed is to run sc_trans and for Peter and Paul to setup their setups (either via another sc_trans or Winamp + Source DSP for example) with the required login details and then they will be able to connect as set in the schedule.&lt;br /&gt;
&lt;br /&gt;
Note: When connecting as a SHOUTcast 1 source, the DJ must specify the login password in the form of &amp;lt;djlogin&amp;gt;:&amp;lt;djpassword&amp;gt;  '''e.g.'''  paul:goaway   If not done correctly then the DJ will not be able to connect. [[#DJ_Support|Section 3.3]] provides more information on the configuration values required.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Virtual Memory Footprint (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
Due to how sc_trans works it will create a large number of threads which may become an issue due to the default virtual memory stack allocation per thread potentially being large (typically 10MB per thread). For most people this should not be an issue as the memory is not really allocated unless it is used. If however if you have a resource constrained system or if you plan on running many copies of sc_trans then you could potentially run out of virtual memory.&lt;br /&gt;
&lt;br /&gt;
The default thread allocation can be reduced by issuing a &amp;quot;ulimit&amp;quot; command before running sc_trans and in the example reduces it to 512KB per-thread '''e.g.'''   ulimit -s 512&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Locale Error (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
If you receive the following error then you have a locale related issues:&lt;br /&gt;
&lt;br /&gt;
    terminate called after throwing an instance of 'std::runtime_error'&lt;br /&gt;
    what():  locale::facet::_S_create_c_locale name not valid&lt;br /&gt;
    Abort trap&lt;br /&gt;
&lt;br /&gt;
If this happens then you need to set the 'POSIX' locale in your terminal's environment values. If this does not happen then everything is fine or you are using a newer version of sc_trans from the end of 2010 which should no longer exhibit this issue.&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
    export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
BSD:&lt;br /&gt;
    setenv LC_ALL POSIX&lt;br /&gt;
&lt;br /&gt;
Mac OS X:&lt;br /&gt;
    export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
You can test to see if this has worked by checking the shell command &amp;quot;locale&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
    LANG=&lt;br /&gt;
    LC_COLLATE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_CTYPE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_MESSAGES=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_MONETARY=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_NUMERIC=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_TIME=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_ALL=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Configurations==&lt;br /&gt;
&lt;br /&gt;
Include as part of the sc_serv installation are a number of example configurations to get things started with using some of the features of the transcoder. The provided examples are:&lt;br /&gt;
&lt;br /&gt;
 sc_trans_basic.conf&lt;br /&gt;
 sc_trans_capture.conf&lt;br /&gt;
 sc_trans_dj.conf&lt;br /&gt;
 sc_trans_playlist.conf&lt;br /&gt;
 sc_trans_simple.conf&lt;br /&gt;
&lt;br /&gt;
All of the configuration examples are documented and will relate back to details in this file as appropriate. You will need to change some details in these example files or to obtain any applicable license keys for the setup you are making (see [[#Registering_for_MP3_Stream_Encoding|section 2.5]]).&lt;br /&gt;
&lt;br /&gt;
In all cases the examples are designed to work from the same install folder as sc_trans. &lt;br /&gt;
&lt;br /&gt;
Remember these examples are a way to get you up and running faster though you are still likely to have to adjust things depending upon the systems you are using and how you want to manage your sources and server connections which are covered in previous sections.&lt;br /&gt;
&lt;br /&gt;
Additionally if you are not happy with editing the files or find it still too confusing then you can use the configuration builder which (if installed) can be found in the 'config_builder'. Open 'config_builder.html' in your browser and then use this graphical tool to setup a configuration file for the transcoder (and additionally the server).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_basic===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This is the base configuration from which the other configuration examples are based and this will get a sc_trans instance running and making a connection to a local instance of sc_serv (see [[SHOUTcast_DNAS_Server_2#sc_serv_basic|sc_serv2.txt - section 9.1]] about the sc_serv_basic configuration file).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_capture===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_trans_basic configuration to get a sc_trans instance running as a capture device '''e.g.''' from a microphone. This shows the use of the 'include' option ([[#Miscellaneous|see section 3.9]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_dj===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_trans_basic configuration to get a sc_trans instance running with the ability to accept DJ connections using both a SHOUTcast 2 source and a legacy SHOUTcast 1 source in addition to how calendar.xml files are used to control DJ access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_playlist===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_trans_basic configuration to get a sc_trans instance running with the ability to schedule a jingle to play around 20 minutes and 40 minutes past the hour as well as to schedule a different playlists to be played in the evening and also on the weekend. This example shows of some of the features of the event system and how it is possible to automate playlist changes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_debug===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file can be included in any other configuration files to allow you to get debug logging output when trying to investigate any issues you may be experiencing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_simple===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Use this if you just need to get a very basic transcoder running or are impatient&lt;br /&gt;
 or are struggling to get it running despite the previous example configurations.&lt;br /&gt;
&lt;br /&gt;
This configuration file is designed to be used just as is and is the simplest form of the configuration file you can have which will allow you to get a running transcoder to work with an instance of the server on the same machine.&lt;br /&gt;
&lt;br /&gt;
This works by assuming default settings of the transcoder and that the server has been properly configured to work as this configuration uses the 'inheritconfig' option to get some of the passwords and other configuration details directly needed for the transcoder to work with the server instance by using sc_serv_simple.conf (see [[SHOUTcast_DNAS_Server_2#sc_serv_simple|sc_serv2.txt - section 9.5]]) or change this to reference a known server configuration you want to use this with.&lt;br /&gt;
&lt;br /&gt;
All you need to do when using this configuration file is to:&lt;br /&gt;
&lt;br /&gt;
* Edit the playlist file to be used (as referenced in the playlistfile entry)&lt;br /&gt;
* Setup the required encoder options including entering the MP3 unlock code by filling in 'unlockkeyname' and 'unlockkeycode' entries if using MP3 decoding ([[#Registering_for_MP3_Stream_Encoding|section 2.5]] has details on why this is required and how to obtain the unlock key and code)&lt;br /&gt;
* Change the stream information details as appropriate&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Transcoder_2</id>
		<title>SHOUTcast DNAS Transcoder 2</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Transcoder_2"/>
				<updated>2022-10-06T10:32:30Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
'''The Shoutcast Transcoder (sc_trans) is no longer maintained or supported.'''&lt;br /&gt;
&lt;br /&gt;
'''This documentation remains here for legacy purposes only.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This document shows you the different configuration options supported by sc_trans along with basic and more advanced example configurations enabling you to get started with using sc_trans and the various features it can offer.&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
&lt;br /&gt;
To get started using sc_trans you need to have some media to play or to have a stream you want to relay via sc_trans. With a 'source' you can use then you will need to setup your configuration file for the transcoder so it can process the input source and provide an output which can be used by the DNAS server (see [[SHOUTcast_DNAS_Server_2|sc_serv2.txt]] in the sc_serv distribution for more details especially those for stream configurations as non-matching details will prevent sc_trans from being able to connect to it).&lt;br /&gt;
&lt;br /&gt;
The following sections will show how to get sc_trans up and running along with details on the configuration options it provides for handling different sources and outputs it can support.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Running The Transcoder===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The transcoder is able to be run either as a console application or it can be run as service (Windows) or daemon (Linux / Mac OS X / BSD). Detailed below is how to get the transcoder running on the different operating systems supported by it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The Windows version of sc_trans is designed to run on fully updated and patched versions of Windows 2000, XP, Vista and Windows 7.&lt;br /&gt;
&lt;br /&gt;
Please note that the Windows versions of sc_trans are built with a dependency against the Microsoft Visual C++ 2008 SP1 Redistributable Package. If sc_trans is unable to start due to a dependency issue then you will need to install the correct version of the package so it can run which depends on the version of sc_trans you are attempting to run:&lt;br /&gt;
&lt;br /&gt;
32-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&lt;br /&gt;
&lt;br /&gt;
64-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ba9257ca-337f-4b40-8c14-157cfdffee4e&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Install as a Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_trans.exe install &amp;lt;servicename&amp;gt; &amp;lt;username&amp;gt; &amp;lt;password&amp;gt; &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service&lt;br /&gt;
 Typically enter this as 'sc_serv' though you can use a different name but you will need&lt;br /&gt;
 to remember it as it is required to be the same when using the 'uninstall' mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;username&amp;gt; - User under which to run the service as or '0' for the local system&lt;br /&gt;
&lt;br /&gt;
&amp;lt;password&amp;gt; - Password for user or '0' for the local system or with no password&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file&lt;br /&gt;
 If no file / an invalid file is specified then sc_trans will abort loading.&lt;br /&gt;
&lt;br /&gt;
When run as a service there is not a good sense of a current working directory so requires all paths in the configuration and playlist files to be fully qualified otherwise lookups will fail when sc_serv is run.&lt;br /&gt;
&lt;br /&gt;
To run sc_serv with a configuration file in the same folder as the server as the current system user account you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_trans.exe install sc_trans 0 0 sc_trans.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Uninstall the Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_trans.exe uninstall &amp;lt;servicename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service as used when the service was registered&lt;br /&gt;
&lt;br /&gt;
To uninstall sc_serv assuming it was installed as detailed in the install section above then you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_trans.exe uninstall sc_trans&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Service in the Console====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_trans.exe &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_trans will abort loading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Linux / Mac OS X / BSD===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Remember to enable the required access on the sc_trans file by doing 'chmod a+x sc_trans' after extracting it from the distribution file otherwise the OS is likely to not run it and show the error message './sc_trans: Permission denied'.&lt;br /&gt;
&lt;br /&gt;
====Run as a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_trans daemon &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (required in all cases)&lt;br /&gt;
 If no file / an invalid file is specified then sc_trans will abort loading.&lt;br /&gt;
&lt;br /&gt;
'''e.g.'''&lt;br /&gt;
    ./sc_trans daemon ./sc_trans.conf&lt;br /&gt;
&lt;br /&gt;
When run this should output the following:&lt;br /&gt;
&lt;br /&gt;
'sc_trans going daemon with PID [XXXX]' where XXXX is the &amp;lt;pid&amp;gt; of the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====End a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
kill -SIGTERM &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -15 &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -s TERM &amp;lt;pid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pid&amp;gt; - The PID of the daemon instance (reported when the daemon started or can be found with 'ps ax | grep sc_serv' as long as sc_serv was the file run otherwise you can just use 'ps ax' if the filename isn't known). Additionally the PID of sc_trans is listed in the log file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_trans &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_trans will abort loading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Additional Signals===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
When run on Linux / Mac OS X / BSD then some additional signals are supported to allow for additional control over the running daemon instance of sc_trans.&lt;br /&gt;
&lt;br /&gt;
The following signals can be used with the 'kill' command (in the manner of your choosing for using the kill command) along with the &amp;lt;pid&amp;gt; of the daemon instance to do one of the following actions:&lt;br /&gt;
&lt;br /&gt;
 SIGKILL   -  Stops sc_trans (also SIGTERM, SIGINT and SIGQUIT will work)&lt;br /&gt;
 SIGHUP    -  Rotates logfile&lt;br /&gt;
 SIGWINCH  -  Skips to next song in playlist&lt;br /&gt;
 SIGUSR1   -  Reload playlist&lt;br /&gt;
 SIGUSR2   -  Toggle playlist shuffle&lt;br /&gt;
&lt;br /&gt;
The result of SIGHUP is that the current log file contents will be moved into &amp;lt;logfile&amp;gt;_1 '''e.g.''' sc_trans_1.log, &amp;lt;logfile&amp;gt;_1 will be moved into &amp;lt;logfile&amp;gt;_2 '''e.g.''' sc_trans_2.log and so on for all log files which can be found which match the current log file's name. This is useful if timed to have it create day specific log files.&lt;br /&gt;
&lt;br /&gt;
 These signals are not supported by the Windows version of sc_trans which will only&lt;br /&gt;
 respond to the Ctrl + C / Ctrl + Break / console close commands the OS provides.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Registering for MP3 Stream Encoding===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In order for compliance with all broadcasting laws there is a legal requirement for the need to purchase an MP3 license key in-order to be able to encode your stream in MP3 (see [[#MP3_Encoding|section 3.10]] for the related configuration entries). The license key should cost $5.&lt;br /&gt;
&lt;br /&gt;
To obtain the license key you need to go to the following page which will takes you to a secure page for purchasing the MP3 encoding license key:&lt;br /&gt;
    http://shop.winamp.com/servlet/PromoServlet/promoID.48873700&lt;br /&gt;
&lt;br /&gt;
Once the license key has been obtained (this should be a quick process only taking a few minutes when done) then you just need to add the 'name' and 'key' you have obtained into the 'unlockkeyname' and 'unlockkeycode' values in your configuration file (see [[#MP3_Encoding|section 3.10]]) and to change the 'encoder' type for the stream(s) you require from 'aacp' to 'mp3' to use it (see [[#Encoder_Options|section 3.4]]).&lt;br /&gt;
&lt;br /&gt;
So if your key is '123456' and you have used 'Bob Cratchit' as the registered name during the billing process, you would add the following to your configuration file:&lt;br /&gt;
    unlockkeyname=Bob Cratchit&lt;br /&gt;
    unlockkeycode=123456&lt;br /&gt;
&lt;br /&gt;
If the details do not exactly match then the Transcoder will show a message and will not allow the encoding of MP3 streams until the configuration issue has been resolved. The common cause for failure is not entering the '''unlockkeyname''' exactly as specified for the billing name of the method used during the purchase.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Why Does AAC Encoding Not Require a License Key?====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Encoding to an AAC stream does also require a license like the MP3 encoding though this has already been paid for you so there is no need for you to do so yourself when using sc_trans. This setup may seem strange but it is just how things happen with the different nature of licensing encoding of the AAC and MP3 formats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported File Formats===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
As sc_trans does transcoding of audio from one format to another for then being fed to a server or another sc_trans instance as a relay, the following file extensions are handled as valid input file sources:&lt;br /&gt;
&lt;br /&gt;
 MP3 + MPEG (treated as mp3)&lt;br /&gt;
 WAV (uncompressed)&lt;br /&gt;
 OGG&lt;br /&gt;
 FLAC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration File==&lt;br /&gt;
&lt;br /&gt;
Here you can find a complete list of all of the configuration options which are provided by sc_trans which ranges from logging to networking configuration to control over how the media is encoded before transmission to the server.&lt;br /&gt;
&lt;br /&gt;
The entries stored in the configuration file are processed case insensitively.&lt;br /&gt;
&lt;br /&gt;
Configuration entries labelled as ''&amp;lt;MULTI&amp;gt;'' can be used to set up specific encoder types or for specifying multiple playlists for use with the calendar system. These are specified by adding _# to the end of the option's name as shown below where # begins with one. If you are only working with a single instance then you do not need to add the _# part as&lt;br /&gt;
any instances of a configuration option will assume it is for _1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;MULTI&amp;gt;'' system is not hierarchical and all values beyond the default must be specified for all connections. So for example, if you wanted to connect to two servers on the same port you must do:&lt;br /&gt;
&lt;br /&gt;
    encoder_1=aacp&lt;br /&gt;
    encoder_2=mp3&lt;br /&gt;
    bitrate_1=32000&lt;br /&gt;
    bitrate_2=32000&lt;br /&gt;
&lt;br /&gt;
Note that you CANNOT do it like this as it leads to not all values being set:&lt;br /&gt;
&lt;br /&gt;
    encoder_1=aacp&lt;br /&gt;
    encoder_2=mp3&lt;br /&gt;
    bitrate=32000&lt;br /&gt;
&lt;br /&gt;
The configuration files also allow for notes or options to be disabled by the use of a comma (;) at the start of a line which can be seen in all of the configuration examples.&lt;br /&gt;
&lt;br /&gt;
Known options in the configuration files are recognised irrespective of the case they are entered in the configuration file so djport and dJpOrT will be handled the same way.&lt;br /&gt;
&lt;br /&gt;
Any items found in the configuration file which are not known (as detailed in following sections) or is not processed as a comment will be reported in the following manner:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;date + time&amp;gt; W msg:[CONFIG] Invalid item on line XX&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;date + time&amp;gt; is the date and time the event happens at and XX is the line in the configuration file where the error has been found to occur at.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Administration===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''adminport''' : Specify the port used to access the administrative control page    ''[Default = 0]''&lt;br /&gt;
 If no valid port is specified (i.e. zero) then this feature is disabled.&lt;br /&gt;
&lt;br /&gt;
'''adminuser''' : Specify the username used to access the administrative control page    ''[Default = admin]''&lt;br /&gt;
&lt;br /&gt;
'''adminpassword''' : Specify the password to access the administrative control page    ''[Default = goaway]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Calendar Events===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''calendarfile''' : Specify the path to the xml based calendar file    ''[Default = calendar.xml]''&lt;br /&gt;
&lt;br /&gt;
'''calendarrewrite''' : Re-write the 'calendar file' on exit    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
Note: See [[SHOUTcast_Calendar_Event_XML_File_Specification|calendarxml.txt]] for more information on the event format and what it allows you to do with playlist, DJ and relay access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===DJ Support===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''djport''' : Specify the port to listen on for DJ access using the SHOUTcast 1 protocol    ''[Default = 0 (no listening)]''&lt;br /&gt;
 This will actually open 'djport + 1' as the listening port.&lt;br /&gt;
&lt;br /&gt;
'''djport2''' : Specify the port to listen on for DJ access using the SHOUTcast 2 protocol    ''[Default = 0 (no listening)]''&lt;br /&gt;
&lt;br /&gt;
Note: It is possible to use 'djport' and 'djport2' at the same time though you need to ensure that there is no overlap of the ports used in what is specified.&lt;br /&gt;
&lt;br /&gt;
This is because 'djport2' will open the port specified unlike 'djport' which opens 'djport + 1' (as is the way with SHOUTcast 1 connections). Keep this in mind as you would not be able to do the following as it causes a duplication of the port being opened (901 in this case) :&lt;br /&gt;
 djport=900    ; i.e. will open port 901&lt;br /&gt;
 djport2=901&lt;br /&gt;
Whereas this would work as we are opening two different ports (901 + 902):&lt;br /&gt;
 djport=900&lt;br /&gt;
 djport2=902&lt;br /&gt;
&lt;br /&gt;
'''djcipher''' : Specify the key used to obfuscate the initial handshaking with the SHOUTcast 2 protocol    ''[Default = foobar]''&lt;br /&gt;
 This is a YP2 feature and it matches the 'uvoxcipherkey' value in&lt;br /&gt;
 the sc_serv configuration file (see [[SHOUTcast_DNAS_Server_2#YP_Server_Behaviour|sc_serv2.txt - section 4.14]]).&lt;br /&gt;
&lt;br /&gt;
Only change this if you really need to do so as not all SHOUTcast 2 clients will allow you to edit this value from the default value. If using the Source DSP plug-in then see [[Source_DSP_Plug-in#SHOUTcast_2_Cipher_Key|dsp_sc.txt - section 5.0]] for details on how to change the plug-in to use a differnet value.&lt;br /&gt;
&lt;br /&gt;
'''autodumpsourcetime''' : Specify the maximum idle time for the DJ in seconds before being disconnected    ''[Default = 30]''&lt;br /&gt;
&lt;br /&gt;
'''djbroadcasts''' : Specify the directory in which DJ broadcasts will be recorded into    ''[Default = recorded\ or recorded/ - relative to sc_trans[.exe] ]''&lt;br /&gt;
&lt;br /&gt;
'''djcapture''' : Enable to allow the recording of the DJ broadcast    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''djfilepattern''' : Specify how the DJ archive filenames will be created in the form of &amp;lt;djname&amp;gt;&amp;lt;date time pattern&amp;gt;suffix    ''[Default = _%Y_%m_%d_%H_%M_%S. (year_month_day_hour_minute_second)]''&lt;br /&gt;
 The date and time information are formatted using strftime().&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each DJ):&lt;br /&gt;
&lt;br /&gt;
'''djlogin''' : Specify the username required for the DJ to get access    [Default = dj]&lt;br /&gt;
 When connecting as a SHOUTcast 1 source the password has to be specified as &amp;lt;djlogin&amp;gt;:&amp;lt;djpassword&amp;gt;  '''e.g.'''  dj:noise&lt;br /&gt;
&lt;br /&gt;
'''djpassword''' : Specify the password required for the DJ to get access    ''[Default = noise]''&lt;br /&gt;
&lt;br /&gt;
'''djpriority''' : Specify the priority for the DJ when multiple DJ's are connected    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Encoder Options===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each encoder):&lt;br /&gt;
&lt;br /&gt;
'''encoder''' : Specify the encoder to use, either (mp3 or aacp)    ''[Default = aacp]''&lt;br /&gt;
&lt;br /&gt;
'''bitrate''' : Specify the encoding bitrate in bits per second    ''[Default = 96000]''&lt;br /&gt;
&lt;br /&gt;
'''samplerate''' : Specify the encoding sample rate to use    ''[Default = 44100]''&lt;br /&gt;
&lt;br /&gt;
'''channels''' : Specify the number of channels to encode    ''[Default = 2]''&lt;br /&gt;
&lt;br /&gt;
'''mp3quality''' : Specify the MP3 encoder quality to use when encoding    ''[Default = 0]''&lt;br /&gt;
Available options are :&lt;br /&gt;
 0 - fast (preferred)&lt;br /&gt;
 1 - high quality (changes sample rate and does additional filtering)&lt;br /&gt;
&lt;br /&gt;
'''mp3mode''' : Specify the MP3 encoder mode (CBR / VBR) to use when encoding    ''[Default = 0]''&lt;br /&gt;
Available options are :&lt;br /&gt;
 0 - CBR&lt;br /&gt;
 1 - VBR High Quality&lt;br /&gt;
 2 - &lt;br /&gt;
 3 - VBR Medium Quality &lt;br /&gt;
 4 - &lt;br /&gt;
 5 - VBR Low Quality]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Flash Security===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''flashpolicyfile''' : Specify the name of file which contains the flash crossdomain policies    ''[Default = crossdomain.xml]''&lt;br /&gt;
&lt;br /&gt;
'''flashpolicyserverport''' : Specify the port used for the flash policy server    ''[Default = 0]''&lt;br /&gt;
 Specify '843' if you want to turn this on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Live Capture===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''capture''' : Enable to allow the use of live capture as an input    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''capturedevice''' : Specify the OS dependent device used for capture    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''captureinput''' : Specify the OS dependent input used for capture    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''capturesamplerate''' : Specify the sample rate used for capture    ''[Default = 44100]''&lt;br /&gt;
&lt;br /&gt;
'''capturechannels''' : Specify the number of channels to capture    ''[Default = 2]''&lt;br /&gt;
&lt;br /&gt;
Note: When run under Windows on an operating system newer than XP there is a possibility for the device name obtained from Windows to be longer than 32 characters. This is a problem as the api's used only support device names upto 31 characters in length so sc_trans will attempt to clip the device name specified with 'capturedevice' to 31 characters to try to get a match with the devices the OS is reporting.&lt;br /&gt;
&lt;br /&gt;
If you are having issues with the live capture then add 'capturedebug=1' to allow you to see the device names reported back to sc_trans by the OS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Logging Options===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''log''' : Enable logging of the transmission output    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''screenlog''' :  Enable logging of output to the console    ''[Default = 1]''&lt;br /&gt;
 If log=0 or when running this as a daemon / service then this option is ignored as it is not applicable.&lt;br /&gt;
&lt;br /&gt;
'''logfile''' : Specify a different logfile to save the transmission logs into    ''[Default = %temp%\sc_trans.log or /tmp/sc_trans.log]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the logs into then you need to ensure that the&lt;br /&gt;
 folder already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Metadata Control===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''streamtitle''' : Specify the general name for the radio station or stream    ''[Default - Misc]''&lt;br /&gt;
&lt;br /&gt;
'''streamurl''' : Specify the url of the radio station or stream    ''[Default = &amp;lt;nowiki&amp;gt;http://www.shoutcast.com&amp;lt;/nowiki&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''genre''' : Specify the genre for the radio station or stream    ''[Default - N/A]''&lt;br /&gt;
&lt;br /&gt;
'''aim''' : Specify the AIM contact ID to show for the radio station or stream    ''[Default - N/A]''&lt;br /&gt;
&lt;br /&gt;
'''irc''' : Specify the IRC contact ID to show for the radio station or stream    ''[Default - N/A]''&lt;br /&gt;
&lt;br /&gt;
'''icq''' : Specify the ICQ contact ID to show for the radio station or stream    ''[Default - N/A]''&lt;br /&gt;
&lt;br /&gt;
'''public''' : Enable to register the radio station or stream with the YP (shoutcast.com)    ''[Default = 0]''&lt;br /&gt;
 If connected to sc_serv then this is used by the 'publicserver' value&lt;br /&gt;
 unless it is being overriden (see [[SHOUTcast_DNAS_Server_2#YP_Server_Behaviour|sc_serv2.txt - section 4.14]]).&lt;br /&gt;
&lt;br /&gt;
'''usemetadata''' : Enable to use use the in file metadata i.e. stored in file tags    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''metadatapattern''' : Specify the pattern used for extracting metadata from the filename    ''[Default = *\%N.* or */%N.*]''&lt;br /&gt;
 See [[#Filename_Metadata_Extraction|section 6.0]] for more details about this)&lt;br /&gt;
&lt;br /&gt;
'''displaymetadatapattern''' : Specify a pattern to use to form the metadata output string for SHOUTcast 1 metadata    ''[Default = %R[ - ]%N]''&lt;br /&gt;
&lt;br /&gt;
'''nextlookahead''' : Specifies the number of tracks ahead of the current track playing to be reported in the stream's metadata to the server    ''[Default = 3]''&lt;br /&gt;
 This is the maximum limit attempted to be reported and will vary based on the source in use&lt;br /&gt;
 e.g. if there enough entries in the current playlist being played. Setting to zero will disable this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''configrewrite''' :  Re-write the 'config file' on exit    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''timemultiplier''' : Used to shift reported time in certain uses    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''inheritconfig''': Specify the path of the sc_serv2 configuration file for the instance you want to use the transcoder with    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
The aim of this option is to make it easier to get an instance of sc_trans to run with sc_serv by ensuring that any passwords, etc match up. By using this, option any of the configuration options already set in the sc_trans config file (see below) will be replaced by those found in the sc_serv configuration file.&lt;br /&gt;
&lt;br /&gt;
The configuration options read from the sc_serv2 configuration file including what they are mapped from in the sc_serv2 value to the sc_trans value are:&lt;br /&gt;
&lt;br /&gt;
* '''portbase -&amp;gt; serverport'''&lt;br /&gt;
* '''password -&amp;gt; password''' - Master source password overriden by streampassword&lt;br /&gt;
* '''streampassword -&amp;gt; password'''&lt;br /&gt;
* '''uvoxcipherkey -&amp;gt; djcipher'''&lt;br /&gt;
* '''srcip -&amp;gt; serverip'''  -  Will use the ip set unless is empty or srcip=any&lt;br /&gt;
* '''yp2 -&amp;gt; outprotocol''' - Sets outprotocol=1 if with yp2=0 otherwise it sets outprotocol=3 as a v2 DNAS is assumed to be used and if found to be v1 configuration then outprotocol=1&lt;br /&gt;
&lt;br /&gt;
Additionally this mode will attempt to read configurations from a v1 DNAS file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''include''' : Specify an additional include file containing settings to be processed from the current point in the main configuration file    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
Note: You can do multiple calls of this allowing for a basic configuration file with then 'specific' encoder configurations set in individual conf files though you need to ensure not to include a reference to the same file in itself.&lt;br /&gt;
&lt;br /&gt;
'''serverbackupfile''' : Set the server side file for broken connection playback    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''serverintrofile''' : Set the server side file that is played when a user connects    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
Note: With both of these options, they will override any files specified in the sc_serv's configuration file and also requires 'outprotocol=3' for it to be supported (see [[#Network_Options|section 3.11]] for the options 'outprotocol' supports).&lt;br /&gt;
&lt;br /&gt;
Additionally when connecting to sc_serv via sc_trans, the server intro and backup files as specified in sc_servs configuration file (see [[SHOUTcast_DNAS_Server_2#Introduction_and_Backup_Files|sc_serv2.txt - section 4.5]]) will not be played so you need to specify them in the sc_trans configuration if required for the stream (this is a quirk of how sc_serv currently works).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MP3 Encoding===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''unlockkeyname''' : Specify the name to use to unlock mp3 encoding (case sensitive)&lt;br /&gt;
&lt;br /&gt;
'''unlockkeycode''' : Specify the code associated with name to unlock mp3 encoding&lt;br /&gt;
&lt;br /&gt;
 Due to licensing requirements for MP3 encoding see [[#Registering_for_MP3_Stream_Encoding|section 2.5]]&lt;br /&gt;
 for how to obtain the key required for unlocking MP3 encoding in sc_trans.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Network Options===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each connection):&lt;br /&gt;
&lt;br /&gt;
'''endpointname''' : Specify the name of the endpoint    ''[Default - &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: This is used to identify the encoder such as when using the AJAX api interfaces and if not specified then sc_trans creates a default name as 'endpointX' where 'X' is the encoder index starting at one. See [[SHOUTcast_Transcoder_AJAX_api_Specification|sc_trans_ajax_api.txt]] for more information on the use of this.&lt;br /&gt;
&lt;br /&gt;
'''outprotocol''' : Specify the server protocol to use    ''[Default = 1]''&lt;br /&gt;
This can be:&lt;br /&gt;
 1 = SHOUTcast 1 (Legacy)&lt;br /&gt;
 2 = Ultravox (Ultravox 2.0)&lt;br /&gt;
 3 = SHOUTcast 2 (Ultravox 2.1)&lt;br /&gt;
&lt;br /&gt;
'''serverip''' : Specify the IP address of server to connect to    ''[Default - &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: If 'srcip' has been set to a value other than 'any' in the sc_serv configuration then you need to set it for you sc_trans configuration otherwise sc_serv will not see the sc_trans connection attempts (see [[SHOUTcast_DNAS_Server_2#Client_Behaviour|sc_serv2.txt - section 4.2]]).&lt;br /&gt;
                 &lt;br /&gt;
Additionally, you will need to make sure that any IP added is valid and can be fully resolved otherwise the connection to the sc_serv instance is very likely to fail.&lt;br /&gt;
&lt;br /&gt;
'''serverport''' : Specify the server port used to connect to    ''[Default = 8000]''&lt;br /&gt;
 This should relate to the 'portbase' value set in sc_serv's configuration (see [[SHOUTcast_DNAS_Server_2#Networking|sc_serv2.txt - section 4.8]]).&lt;br /&gt;
&lt;br /&gt;
'''password''' : Specify the password used to connect to a DNAS server   ''[Default = foobar]''&lt;br /&gt;
 This matches the 'password' value in the sc_serv configuration file (see [[SHOUTcast_DNAS_Server_2#Networking|sc_serv2.txt - section 4.8]]) or 'streampassword' (see [[SHOUTcast_DNAS_Server_2#Stream_Configuration|sc_serv2.txt - section 4.12]] - this only applies for v2 DNAS servers).&lt;br /&gt;
&lt;br /&gt;
'''streamid''' : Specify the stream identifier for the SHOUTcast 2 connection    ''[Default = 1]''&lt;br /&gt;
 This relates to the 'streamid' value in the sc_serv configuration (see [[SHOUTcast_DNAS_Server_2#Networking|sc_serv2.txt - section 4.8]]).&lt;br /&gt;
&lt;br /&gt;
'''uvoxuserid''' : Specify the user ID for accessing SHOUTcast 2 (Ultravox 2.1)    ''[Default - &amp;lt;no value&amp;gt;]''&lt;br /&gt;
 This is currently not used and is provided for future usage.&lt;br /&gt;
&lt;br /&gt;
Note: If ''''requirestreamconfigs'''' is enabled in the sc_serv configuration (see [[SHOUTcast_DNAS_Server_2#Stream_Configuration|sc_serv2.txt - section 4.12]]) then you need to ensure that the 'streamid' value used in your sc_trans configuration exists in the sc_serv configuration along with any endpoint, password and other values appropriate to the 'streamid' matched with the equivalent sc_serv configuration values.&lt;br /&gt;
&lt;br /&gt;
'''uvoxradiometadata''' : Enable to send the older AOL Radio style metadata to the server    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''uvoxnewmetadata''' : Enable to send SHOUTcast 2 style metadata to the server    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''uvoxmetadatafudgefactor''' : Specify the delaying factor for Ultravox metadata in seconds    ''[Default = 0.0]''&lt;br /&gt;
&lt;br /&gt;
'''shoutcastmetadatafudgefactor''' : Specify the delaying factor for SHOUTcast metadata in seconds    ''[Default = 0.0]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Playlist Control===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''playlistfile''' : Specify the name of playlist file to use    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''shuffle''' : Enable to allow shuffling of the specified playlist    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''xfade''' : Specify the number of seconds to do  for a crossfade    ''[Default = 1]''&lt;br /&gt;
 Specify xfade=0 to disable crossfade&lt;br /&gt;
&lt;br /&gt;
'''xfadethreshold''' : Specify the minimum duration in seconds a file must be to allow crossfading in and out on it    ''[Default = 10]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Priority playlists are those used to override the playing playlist once the current song has stopped playing. This can be useful if a sudden playlist / announcement is required.&lt;br /&gt;
&lt;br /&gt;
'''playlists''' : Specify the folder used for priority playlists    ''[Default = priority\ or priority/ - relative to sc_trans[.exe]]''&lt;br /&gt;
&lt;br /&gt;
'''archive''' : Specify the folder used for archiving playlists    ''[Default = priority\archived\ or priority/archived/ - relative to sc_trans[.exe]]''&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each additional playlist):&lt;br /&gt;
&lt;br /&gt;
'''playlistfilename''' - Used to build named collections of playlists    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''playlistfilepath''' - Used to build named collections of playlists    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
Note: These playlists are used as part of the &amp;lt;playlist&amp;gt; events in calendar.xml where the name set with 'playlistfilename_X' is used in the loading done. See [[SHOUTcast_Calendar_Event_XML_File_Specification#Playlist_Events|calendarxml.txt and section 3.2]] for more information on these events.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Replay Gain Control===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''applyreplaygain''' : Enable to honour the replay gain values stored in the file    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''defaultreplaygain''' : If no replay gain is in the file then apply this adjustment    ''[Default = 0.0]''&lt;br /&gt;
&lt;br /&gt;
'''djreplaygain''' : Specify the replay gain to be applied to DJ streams    ''[Default = 0.0]''&lt;br /&gt;
&lt;br /&gt;
'''capturereplaygain''' : Specify the replay gain to apply to the live capture input    ''[Default = 0.0]''&lt;br /&gt;
&lt;br /&gt;
'''calculatereplaygain''' : Enable to calculate the replay gain on the handled files    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''replaygaintmpdir''' : Specify the temporary directory for replay gain calculator to work in    ''[Default = (Windows = %TEMP FOLDER%  Linux = /tmp/)]''&lt;br /&gt;
&lt;br /&gt;
'''replaygainrunahead''' : Specify the number of tracks head start to give the replay gain calculator    ''[Default = 2]''&lt;br /&gt;
&lt;br /&gt;
'''replaygaindontwrite''' : Specify if the replay gain values calculated should NOT be written to the file    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''enhancereplaygain''' : Specify if the file has replay gain and it is being used, an additional amount of gain to add    ''[Default = 6.0]''&lt;br /&gt;
 Winamp ships with a default value to add -6dB to file which do not have replay gain.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===VU Image===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''vuimagedirectory''' : Specify the folder in which to look for vu images to use    ''[Default = &amp;quot;&amp;quot;]''&lt;br /&gt;
 The image files are named vuimage_XX.&amp;lt;vuimagesuffix&amp;gt; where 'XX' is from 0 to 100&lt;br /&gt;
 and the path specified will need to be properly terminated to work correctly.&lt;br /&gt;
&lt;br /&gt;
'''vuimagesuffix''' : Specify the suffix for vu images to be used from the image directory    ''[Default = png]''&lt;br /&gt;
&lt;br /&gt;
'''vuimagemimetype''' : Specify the mime type for vu images to be used    ''[Default = image/png]''&lt;br /&gt;
&lt;br /&gt;
Note: This controls the images available when using the 'vumeterleft' or 'vumeterright' webcommands (see [[#Supported_Weblet_Commands|section 4.1]]). Additionally sc_trans only allows for one active use of each webcommand from the current sc_trans instance with the most current attempt made being the active instance which will be updated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Debugging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In all cases, the default value is for no debug logging for the options listed below.&lt;br /&gt;
&lt;br /&gt;
'''shuffledebug''' : Enable to activate debug logging of playlist shuffling    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''shoutcastdebug''' : Enable to activate debug logging for SHOUTcast transmission    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''uvoxdebug''' : Enable to activate debug logging for SHOUTcast 2 (Ultravox 2.1) transmissions    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''gaindebug''' : Enable to activate debug logging for replay gain on playback    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''playlistdebug''' : Enable to activate debug logging for playlists    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''mp3encdebug''' : Enable to activate debug logging for MP3 encoding    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''mp3decdebug''' : Enable to activate debug logging for MP3 decoder    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''resamplerdebug''' : Enable to activate debug logging for the resampler    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''rgcalcdebug''' : Enable to activate debug logging for the replay gain calculator    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''apidebug''' : Enable to activate debug logging for the AJAX api    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''calendardebug''' : Enable to activate debug logging for the calendar events    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''capturedebug''' : Enable to activate debug logging for live capture    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''djdebug''' : Enable to activate debug logging for DJ management    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''flashpolicyserverdebug''' : Enable to activate debug logging for the flash policy server    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''fileconverterdebug''' : Enable to activate debug logging for the server side file converter    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''sourcerelaydebug''' : Enable to active debug logging for relayed sources    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''sourceandendpointmanagerdebug''' : Enable to activate debug logging for endpoint management    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Administration Weblet Commands==&lt;br /&gt;
&lt;br /&gt;
The transcoder supports web based control of the features it provides allowing for the remote control of sc_trans much like the DNAS (sc_serv2) supports. To enable the use of the administration interface you need to specify a port and related password and username as detailed in the Administration section ([[#Administration|see 3.1]]).&lt;br /&gt;
&lt;br /&gt;
Once enabled then options detailed in the following sections will become available though the main interface and controlling aspects are available via the 'api' command with more information provided on how to use it in [[SHOUTcast_Transcoder_AJAX_api_Specification|sc_trans_ajax_api.txt]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Weblet Commands===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following are the supported commands for the administration weblet the transcoder supports and are used in the following manner:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://&amp;lt;server_ip&amp;gt;:adminport/&amp;lt;command&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''quit''' : Will make sc_trans quit (equivalent of SIGKILL on non-Windows).&lt;br /&gt;
&lt;br /&gt;
'''rotatelogs''' : Will rotate the logs (equivalent of SIGHUP).&lt;br /&gt;
The result of this is that the current log file contents will be moved into &amp;lt;logfile&amp;gt;_1 '''e.g.''' sc_trans_1.log, &amp;lt;logfile&amp;gt;_1 will be moved into &amp;lt;logfile&amp;gt;_2 '''e.g.''' sc_trans_2.log and so on for all log files which can be found which match the current log file's name. This is useful if timed to have it create day specific log files.&lt;br /&gt;
&lt;br /&gt;
'''nextsong''' : Will advance to the next song (equivalent of SIGWINCH).&lt;br /&gt;
&lt;br /&gt;
'''loadplaylist''' : This will re-load the current playlist (equivalent of SIGUSR1).&lt;br /&gt;
&lt;br /&gt;
'''toggleshuffle''' : Use to toggle the current playlist shuffle state (equivalent of SIGUSR2).&lt;br /&gt;
&lt;br /&gt;
'''kickdj?duration=hh:mm:ss''' : You can specify an amount of time for how long to kick the current DJ for. If a duration is not set i.e. just using 'kickdj', then this will defaults to 15 minutes (00:15:00). If a duration is specified then all three fields of 'hh:mm:ss' must be specified even if their value is zero (ie 01:30:30).&lt;br /&gt;
&lt;br /&gt;
'''restart''' : Restart the current sc_trans instance.&lt;br /&gt;
&lt;br /&gt;
'''vumeterleft''' or '''vumeterright''' : This will initiate a server side image push that represents the vu levels as long as there are images are available to sc_trans to use for this (see [[#VU_Image|section 3.14]]).&lt;br /&gt;
&lt;br /&gt;
'''vu.bin''' : This will return a continuous stream of type 'misc/sc-vu' as long as sc_trans is transcoding. The format of the stream is:&lt;br /&gt;
 0xa5 leftVal rightVal 0xa5 leftVal ..... etc&lt;br /&gt;
&lt;br /&gt;
If the audio signal is mono there is no right val and you get:&lt;br /&gt;
 0xa5 leftVal 0xa5 leftVal .... etc&lt;br /&gt;
&lt;br /&gt;
'''writeconfig''' : This will write out the currently stored configuration and event details to the respective configuration and calendar.xml file. You will need to ensure that you have specified valid files in the configuration options for these files otherwise they won't be saved correctly and any changes may be lost.&lt;br /&gt;
&lt;br /&gt;
'''crossdomain.xml''' : This will return the current copy of crossdomain.xml as set with 'flashPolicyFile' ([[#Flash_Security|see section 3.5]]).&lt;br /&gt;
&lt;br /&gt;
'''timeshift?t=#''' : [EXPERIMENTAL] This applies a time shift to the audio though the default is to have no shift (i.e. t=0). This should not be used unless you know what it does (added for specific Aol use).&lt;br /&gt;
&lt;br /&gt;
'''api''' : This is the point from where you can make use of the AJAX api which sc_trans offers and is used as a POST method. For more information on the parameters and options supported see [[SHOUTcast_Transcoder_AJAX_api_Specification|sc_trans_ajax_api.txt]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Metadata Support==&lt;br /&gt;
&lt;br /&gt;
As detailed in [[#Metadata_Control|section 3.8]] there are a number of ways to allow for the use of metadata from the files being played though there are certain limits to this support for different file formats currently supported by sc_trans as detailed in the following sections.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MP3 Files===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
There is support for ID3v1 and ID3v2 tags. With ID3v2 there is support of version 3 and 4 of the specification though there are the following limitations:&lt;br /&gt;
# Unsynch data is not supported&lt;br /&gt;
# Compressed frames are not supported&lt;br /&gt;
# Encrypted frames are not supported&lt;br /&gt;
# Appended v4 frames are not supported&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===FLAC and OGG Files===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
There is support of the native metadata (Vorbis comment tags). Metadata read from these files are mapped to expected values which SHOUTcast expects to get. For more information see [[SHOUTcast_XML_Metadata_Specification|sc2_xml_metadata.txt]] for details on the various field mappings applied.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Filename Metadata Extraction==&lt;br /&gt;
&lt;br /&gt;
The transcoder along with being able to make use of the metadata from files is also able to attempt to extract metadata from the filepath of the files by use of a template.&lt;br /&gt;
&lt;br /&gt;
Guessing of the metadata from the filename will happen if 'usemetadata=0' is set in your configuration file (default behaviour is to use the file tag) or if no tag is detected in the file. For the best experience it is always best to ensure any files you use have tags and the required metadata in them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Filename Metadata Extraction Pattern===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The 'metadataPattern' setting is used to specify the pattern used to extract metadata from a filename if there is no detected metadata or 'usemetadata=0'.&lt;br /&gt;
&lt;br /&gt;
The default pattern used is *\%N.* (Windows) and */%N.* (all other OSes). The following are the formatting options which are supported in the pattern:&lt;br /&gt;
 %N = Song name&lt;br /&gt;
 %G = Genre&lt;br /&gt;
 %A = Album&lt;br /&gt;
 %R = Artist&lt;br /&gt;
 %Y = Four digit year&lt;br /&gt;
 %# = Sequence of digits&lt;br /&gt;
 %% = % character&lt;br /&gt;
 [] = Brackets optional elements (no nesting)&lt;br /&gt;
 *  = String&lt;br /&gt;
 Other characters are matched exactly as found.&lt;br /&gt;
&lt;br /&gt;
The pattern matching is done working from the right to the left.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Filename Metadata Extraction Examples===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following examples show the metadata pattern matching working.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Example #1====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 metadataPattern = */%R/%Y%A/Audio/[%#_]%N.*&lt;br /&gt;
 filepath = /home/songs/Mask and Wig/1969 Irreverance Of Things Past/Audio/03_The Royal Blues.mp3&lt;br /&gt;
&lt;br /&gt;
Extracted metadata result:&lt;br /&gt;
 ALBUM = Irreverance Of Things Past&lt;br /&gt;
 ARTIST = Mask and Wig&lt;br /&gt;
 SONG = The Royal Blues&lt;br /&gt;
 YEAR = 1969&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Example #2====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 metadatapattern = */%A/[%R_]%N&lt;br /&gt;
 filepath = /home/album/song&lt;br /&gt;
&lt;br /&gt;
Extracted metadata result:&lt;br /&gt;
 ALBUM = album&lt;br /&gt;
 SONG = song&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====6.2.3   Example #3====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 metadatapattern = */%A/%R_%N&lt;br /&gt;
 filepath = /home/album/artist_song&lt;br /&gt;
&lt;br /&gt;
Extracted metadata result:&lt;br /&gt;
 ALBUM = album&lt;br /&gt;
 ARTIST = artist&lt;br /&gt;
 SONG = song&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===File Metadata Construction For SHOUTcast 1===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You can specify how metadata elements are concatenated together to from the SHOUTcast 1 metadata string by specifying the 'displaymetadatapattern' option.&lt;br /&gt;
&lt;br /&gt;
In a standard Winamp client install then it will expect the data in the equivalent format of '%R[ - ]%A[ - ]%N' and uses that format to parse the data. If you deviate from this or if the user has changed settings in their Winamp client then the results may not display properly with what is expected to be shown.&lt;br /&gt;
&lt;br /&gt;
The following token substitutions are made with 'displaymetadatapattern':&lt;br /&gt;
&lt;br /&gt;
 %N = Song name&lt;br /&gt;
 %A = Album name&lt;br /&gt;
 %R = Artist&lt;br /&gt;
 %G = Song genre&lt;br /&gt;
 %Y = song year&lt;br /&gt;
 %t = Station name (a.k.a. stream title a.k.a. icy-name)&lt;br /&gt;
 %u = Station url (a.k.a. icy-url)&lt;br /&gt;
 %g = Station genre (a.k.a. icy-genre)&lt;br /&gt;
&lt;br /&gt;
Characters in brackets are only displayed if the token substitution to the left of them did not result in the insertion of an empty string.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Playlists Support==&lt;br /&gt;
&lt;br /&gt;
The transcoder supports a playlist file to specify the file(s) to use when it is working and is a file with the .lst extension with one file per line. The file may be encoded in UTF-8 to allow for the support of non-english filenames, etc.&lt;br /&gt;
&lt;br /&gt;
Lines in the playlist beginning with a # will be ignored which allows you to disable a specific file or script in the playlist or comments on what is done.&lt;br /&gt;
&lt;br /&gt;
The playlist file will be processed until the end of the file is reached or until the parser comes across a line containing ###!EOF is detected.&lt;br /&gt;
&lt;br /&gt;
With versions of sc_trans prior to those from the end of 2010 there was a need to have a line break after the last entry in the playlist for them to be correctly recognised. This is no longer a requirement of the playlist format.&lt;br /&gt;
&lt;br /&gt;
Wildcards are supported in the processing of the folder contents though this will not do a recursion of any sub-folders within the specified folder '''e.g.'''  c:\music\*.mp3&lt;br /&gt;
&lt;br /&gt;
This will only find mp3 files in the 'music' folder and will not look in any sub-folders which may be inside the 'music' folder. For sub-folders to be included then you will need to explicitly specify the sub-folder for it to be recognised by the playlist loader.&lt;br /&gt;
&lt;br /&gt;
Additionally these entries can be intermixed with regular explicit entries '''e.g.'''&lt;br /&gt;
 c:\music\foo.mp3&lt;br /&gt;
 c:\music\otherstuff\*.mp3&lt;br /&gt;
 c:\music\bar.mp3&lt;br /&gt;
&lt;br /&gt;
Any entries which relate to file formats not supported (determined by the file extension) will be ignored from the playlist stored e.g. test.aac would not be used if read.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Playlist Formats===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The transcoder supports the following playlist file formats though is limited to use only the filepaths from the playlist formats which also provide additional title / metadata information in them:&lt;br /&gt;
&lt;br /&gt;
 Plain text file - this is the equivalent of a commentless M3U / M3U8 file&lt;br /&gt;
 PLS&lt;br /&gt;
 M3U&lt;br /&gt;
 M3U8 (UTF-8 encoded version of the M3U format)&lt;br /&gt;
&lt;br /&gt;
If a loaded playlist contains any entries with wildcards in them then the playlist loader will only attempt to find the matching files in the base folder specified and will not recurse into any sub-folders found. This is different to how Winamp for example (and any other programs) handles the loading of such entries where it would then recurse through any sub-folders found. This behaviour may change at a future time but is not guaranteed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Remote Applications===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
An additional feature of the transcoders playlist support is the ability to run remote applications in place of a fixed playlist line. This is done by starting a line with #! '''e.g.'''&lt;br /&gt;
 /music/foo.mp3&lt;br /&gt;
 #!/bin/perl /home/user/songfromDB.pl&lt;br /&gt;
 /music/bar.mp3&lt;br /&gt;
&lt;br /&gt;
The script run in this case should return the entry in the playlist to run at this point. The script is also passed an integer parameter indicating how many tracks ahead must also be returned by the script.&lt;br /&gt;
&lt;br /&gt;
By returning these extra tracks as well as the first one expected then this information will be used by YP2 to refine searching and also to establish a &amp;quot;coming soon&amp;quot; track which will be shown to clients or on the SHOUTcast site.&lt;br /&gt;
&lt;br /&gt;
So with this style of playlist handling, it is possible to have an external app running which will provide all of the files for sc_trans to process which could be of use if you have a specific requirement for when and how files are played.&lt;br /&gt;
&lt;br /&gt;
Additionally you can pair remote application actions together in such a manner:&lt;br /&gt;
 #!php call track script&lt;br /&gt;
 #!php call commercial script&lt;br /&gt;
&lt;br /&gt;
where this will alternate between the first and second scripts returning the file to be processed through sc_trans.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Additional Information===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Every entry in the playlist is run through a wildcard expander specific to the operating system the transcoder is being run on. Under *nix systems then glob() is used and for Windows systems FindFirstFile() is used to handle the wildcard.&lt;br /&gt;
&lt;br /&gt;
There are a number of scenarios to be considered for remote application entries in a playlist as detailed in the following list:&lt;br /&gt;
&lt;br /&gt;
# The standard out from the command is used as the name of the file to open.&lt;br /&gt;
# If the standard out is empty then the entry will be skipped.&lt;br /&gt;
# If the command returns an error code (non zero) then the entire playlist of which the entry is a member off will be considered to be finished.&lt;br /&gt;
# The data written to standard out should be encoded in the UTF-8 format and if returning multiple entries needs to be separated by a newline character.&lt;br /&gt;
# If only a single track name is returned by the remote application then the following values in the playlist will be used for &amp;quot;coming soon&amp;quot; calculations.&lt;br /&gt;
# If you return the requested number of additional tracks (passed in when it is run) then these will be used for &amp;quot;coming soon&amp;quot; calculations.&lt;br /&gt;
# If there are [ or ] in the filepath then for them to appear instead of being used as a filter, you will need to escape them normally as \[ and \] else it is often likely that the files will fail to load. This is more of an issue on non-Windows versions due to how the shell and expansion works.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==DJing Information==&lt;br /&gt;
&lt;br /&gt;
The DJ port (configuration option 'djport' or 'djport2') mimics the behaviour of sc_serv by allowing someone running another copy of sc_trans (or the Winamp DSP plug-in) to connect to your sc_trans and then to broadcast through it which effectively turns your sc_trans into a relay.&lt;br /&gt;
&lt;br /&gt;
The 'djport' or 'djport2' value (see [[#DJ_Support|section 3.3]] for more details setting this up) is the IP port you choose to have your sc_trans to listen on for an inbound DJ connection (by default this feature is not enabled).&lt;br /&gt;
&lt;br /&gt;
A simple example of this feature is if you have a friend who wants to do a show on your station. At the appropriate time they would start their own instance of sc_trans which will then connect to your instance as if it was a server. When the connection happens then your sc_trans instance will stop the current playlist playback and will crossfade into your friends show. Then when the show is over and the friend disconnects then your instance of sc_trans will crossfade back into the playlist from the point when the friend had connected.&lt;br /&gt;
&lt;br /&gt;
The DJ broadcast will also be copied to disk for later playback assuming that 'djcapture' has not been changed from the default settings though you can turn this feature off if required. See [[#DJ_Support|section 3.3]] for more available options.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Setting Up DJs In The New Scheme===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
DJ accounts are set up by using the 'djlogin', 'djpassword' and 'djpriority' options as shown in &amp;lt;MULTI&amp;gt; options under [[#DJ_Support|section 3.3]].&lt;br /&gt;
&lt;br /&gt;
If we have two DJs who we want to allow access into our system then we would have the following in our main configuration file (obviously in real use change the names and passwords to what you need):&lt;br /&gt;
&lt;br /&gt;
 djlogin_1=peter&lt;br /&gt;
 djpassword_1=foobar&lt;br /&gt;
 djpriority_1=4&lt;br /&gt;
 &lt;br /&gt;
 djlogin_2=paul&lt;br /&gt;
 djpassword_2=goaway &lt;br /&gt;
 djpriority_2=2&lt;br /&gt;
&lt;br /&gt;
The priority value is used if the scheduling allows for two different DJs to connect into the instance of sc_trans at the same time. If this did happen then the DJ with the higher priority will take precedence on the access made.&lt;br /&gt;
&lt;br /&gt;
Now that we have setup the DJs in our main configuration, we will need to setup access for them via the calendar.xml file scheduler ([[SHOUTcast_Calendar_Event_XML_File_Specification|see calendarxml.txt]]). In this example Peter is allowed access to sc_trans at any time whereas Paul is only allowed a connection to sc_trans on Tuesdays at 2am for an hour. Finally the shows Peter makes will not be saved whilst Paul's ones will be archived.&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;&lt;br /&gt;
    &amp;lt;eventlist&amp;gt;&lt;br /&gt;
      &amp;lt;event type=&amp;quot;dj&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;dj archive=&amp;quot;0&amp;quot;&amp;gt;peter&amp;lt;/dj&amp;gt;&lt;br /&gt;
        &amp;lt;calendar/&amp;gt;&lt;br /&gt;
      &amp;lt;/event&amp;gt;&lt;br /&gt;
      &amp;lt;event type=&amp;quot;dj&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;dj archive=&amp;quot;1&amp;quot;&amp;gt;paul&amp;lt;/dj&amp;gt;&lt;br /&gt;
        &amp;lt;calendar starttime=&amp;quot;02:00:00&amp;quot; duration=&amp;quot;01:00:00&amp;quot; repeat=&amp;quot;4&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/event&amp;gt;&lt;br /&gt;
    &amp;lt;/eventlist&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now everything is setup, all that is needed is to run sc_trans and for Peter and Paul to setup their setups (either via another sc_trans or Winamp + Source DSP for example) with the required login details and then they will be able to connect as set in the schedule.&lt;br /&gt;
&lt;br /&gt;
Note: When connecting as a SHOUTcast 1 source, the DJ must specify the login password in the form of &amp;lt;djlogin&amp;gt;:&amp;lt;djpassword&amp;gt;  '''e.g.'''  paul:goaway   If not done correctly then the DJ will not be able to connect. [[#DJ_Support|Section 3.3]] provides more information on the configuration values required.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Virtual Memory Footprint (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
Due to how sc_trans works it will create a large number of threads which may become an issue due to the default virtual memory stack allocation per thread potentially being large (typically 10MB per thread). For most people this should not be an issue as the memory is not really allocated unless it is used. If however if you have a resource constrained system or if you plan on running many copies of sc_trans then you could potentially run out of virtual memory.&lt;br /&gt;
&lt;br /&gt;
The default thread allocation can be reduced by issuing a &amp;quot;ulimit&amp;quot; command before running sc_trans and in the example reduces it to 512KB per-thread '''e.g.'''   ulimit -s 512&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Locale Error (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
If you receive the following error then you have a locale related issues:&lt;br /&gt;
&lt;br /&gt;
    terminate called after throwing an instance of 'std::runtime_error'&lt;br /&gt;
    what():  locale::facet::_S_create_c_locale name not valid&lt;br /&gt;
    Abort trap&lt;br /&gt;
&lt;br /&gt;
If this happens then you need to set the 'POSIX' locale in your terminal's environment values. If this does not happen then everything is fine or you are using a newer version of sc_trans from the end of 2010 which should no longer exhibit this issue.&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
    export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
BSD:&lt;br /&gt;
    setenv LC_ALL POSIX&lt;br /&gt;
&lt;br /&gt;
Mac OS X:&lt;br /&gt;
    export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
You can test to see if this has worked by checking the shell command &amp;quot;locale&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
    LANG=&lt;br /&gt;
    LC_COLLATE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_CTYPE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_MESSAGES=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_MONETARY=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_NUMERIC=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_TIME=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_ALL=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Configurations==&lt;br /&gt;
&lt;br /&gt;
Include as part of the sc_serv installation are a number of example configurations to get things started with using some of the features of the transcoder. The provided examples are:&lt;br /&gt;
&lt;br /&gt;
 sc_trans_basic.conf&lt;br /&gt;
 sc_trans_capture.conf&lt;br /&gt;
 sc_trans_dj.conf&lt;br /&gt;
 sc_trans_playlist.conf&lt;br /&gt;
 sc_trans_simple.conf&lt;br /&gt;
&lt;br /&gt;
All of the configuration examples are documented and will relate back to details in this file as appropriate. You will need to change some details in these example files or to obtain any applicable license keys for the setup you are making (see [[#Registering_for_MP3_Stream_Encoding|section 2.5]]).&lt;br /&gt;
&lt;br /&gt;
In all cases the examples are designed to work from the same install folder as sc_trans. &lt;br /&gt;
&lt;br /&gt;
Remember these examples are a way to get you up and running faster though you are still likely to have to adjust things depending upon the systems you are using and how you want to manage your sources and server connections which are covered in previous sections.&lt;br /&gt;
&lt;br /&gt;
Additionally if you are not happy with editing the files or find it still too confusing then you can use the configuration builder which (if installed) can be found in the 'config_builder'. Open 'config_builder.html' in your browser and then use this graphical tool to setup a configuration file for the transcoder (and additionally the server).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_basic===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This is the base configuration from which the other configuration examples are based and this will get a sc_trans instance running and making a connection to a local instance of sc_serv (see [[SHOUTcast_DNAS_Server_2#sc_serv_basic|sc_serv2.txt - section 9.1]] about the sc_serv_basic configuration file).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_capture===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_trans_basic configuration to get a sc_trans instance running as a capture device '''e.g.''' from a microphone. This shows the use of the 'include' option ([[#Miscellaneous|see section 3.9]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_dj===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_trans_basic configuration to get a sc_trans instance running with the ability to accept DJ connections using both a SHOUTcast 2 source and a legacy SHOUTcast 1 source in addition to how calendar.xml files are used to control DJ access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_playlist===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_trans_basic configuration to get a sc_trans instance running with the ability to schedule a jingle to play around 20 minutes and 40 minutes past the hour as well as to schedule a different playlists to be played in the evening and also on the weekend. This example shows of some of the features of the event system and how it is possible to automate playlist changes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_debug===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file can be included in any other configuration files to allow you to get debug logging output when trying to investigate any issues you may be experiencing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_simple===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Use this if you just need to get a very basic transcoder running or are impatient&lt;br /&gt;
 or are struggling to get it running despite the previous example configurations.&lt;br /&gt;
&lt;br /&gt;
This configuration file is designed to be used just as is and is the simplest form of the configuration file you can have which will allow you to get a running transcoder to work with an instance of the server on the same machine.&lt;br /&gt;
&lt;br /&gt;
This works by assuming default settings of the transcoder and that the server has been properly configured to work as this configuration uses the 'inheritconfig' option to get some of the passwords and other configuration details directly needed for the transcoder to work with the server instance by using sc_serv_simple.conf (see [[SHOUTcast_DNAS_Server_2#sc_serv_simple|sc_serv2.txt - section 9.5]]) or change this to reference a known server configuration you want to use this with.&lt;br /&gt;
&lt;br /&gt;
All you need to do when using this configuration file is to:&lt;br /&gt;
&lt;br /&gt;
* Edit the playlist file to be used (as referenced in the playlistfile entry)&lt;br /&gt;
* Setup the required encoder options including entering the MP3 unlock code by filling in 'unlockkeyname' and 'unlockkeycode' entries if using MP3 decoding ([[#Registering_for_MP3_Stream_Encoding|section 2.5]] has details on why this is required and how to obtain the unlock key and code)&lt;br /&gt;
* Change the stream information details as appropriate&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Transcoder_2</id>
		<title>SHOUTcast DNAS Transcoder 2</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Transcoder_2"/>
				<updated>2022-10-06T10:31:58Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
'''The Shoutcast Transcoder (sc_trans) is no longer maintained or supported.'''&lt;br /&gt;
'''This documentation remains here for legacy purposes only.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This document shows you the different configuration options supported by sc_trans along with basic and more advanced example configurations enabling you to get started with using sc_trans and the various features it can offer.&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
&lt;br /&gt;
To get started using sc_trans you need to have some media to play or to have a stream you want to relay via sc_trans. With a 'source' you can use then you will need to setup your configuration file for the transcoder so it can process the input source and provide an output which can be used by the DNAS server (see [[SHOUTcast_DNAS_Server_2|sc_serv2.txt]] in the sc_serv distribution for more details especially those for stream configurations as non-matching details will prevent sc_trans from being able to connect to it).&lt;br /&gt;
&lt;br /&gt;
The following sections will show how to get sc_trans up and running along with details on the configuration options it provides for handling different sources and outputs it can support.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Running The Transcoder===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The transcoder is able to be run either as a console application or it can be run as service (Windows) or daemon (Linux / Mac OS X / BSD). Detailed below is how to get the transcoder running on the different operating systems supported by it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The Windows version of sc_trans is designed to run on fully updated and patched versions of Windows 2000, XP, Vista and Windows 7.&lt;br /&gt;
&lt;br /&gt;
Please note that the Windows versions of sc_trans are built with a dependency against the Microsoft Visual C++ 2008 SP1 Redistributable Package. If sc_trans is unable to start due to a dependency issue then you will need to install the correct version of the package so it can run which depends on the version of sc_trans you are attempting to run:&lt;br /&gt;
&lt;br /&gt;
32-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&lt;br /&gt;
&lt;br /&gt;
64-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ba9257ca-337f-4b40-8c14-157cfdffee4e&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Install as a Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_trans.exe install &amp;lt;servicename&amp;gt; &amp;lt;username&amp;gt; &amp;lt;password&amp;gt; &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service&lt;br /&gt;
 Typically enter this as 'sc_serv' though you can use a different name but you will need&lt;br /&gt;
 to remember it as it is required to be the same when using the 'uninstall' mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;username&amp;gt; - User under which to run the service as or '0' for the local system&lt;br /&gt;
&lt;br /&gt;
&amp;lt;password&amp;gt; - Password for user or '0' for the local system or with no password&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file&lt;br /&gt;
 If no file / an invalid file is specified then sc_trans will abort loading.&lt;br /&gt;
&lt;br /&gt;
When run as a service there is not a good sense of a current working directory so requires all paths in the configuration and playlist files to be fully qualified otherwise lookups will fail when sc_serv is run.&lt;br /&gt;
&lt;br /&gt;
To run sc_serv with a configuration file in the same folder as the server as the current system user account you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_trans.exe install sc_trans 0 0 sc_trans.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Uninstall the Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_trans.exe uninstall &amp;lt;servicename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service as used when the service was registered&lt;br /&gt;
&lt;br /&gt;
To uninstall sc_serv assuming it was installed as detailed in the install section above then you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_trans.exe uninstall sc_trans&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Service in the Console====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_trans.exe &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_trans will abort loading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Linux / Mac OS X / BSD===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Remember to enable the required access on the sc_trans file by doing 'chmod a+x sc_trans' after extracting it from the distribution file otherwise the OS is likely to not run it and show the error message './sc_trans: Permission denied'.&lt;br /&gt;
&lt;br /&gt;
====Run as a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_trans daemon &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (required in all cases)&lt;br /&gt;
 If no file / an invalid file is specified then sc_trans will abort loading.&lt;br /&gt;
&lt;br /&gt;
'''e.g.'''&lt;br /&gt;
    ./sc_trans daemon ./sc_trans.conf&lt;br /&gt;
&lt;br /&gt;
When run this should output the following:&lt;br /&gt;
&lt;br /&gt;
'sc_trans going daemon with PID [XXXX]' where XXXX is the &amp;lt;pid&amp;gt; of the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====End a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
kill -SIGTERM &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -15 &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -s TERM &amp;lt;pid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pid&amp;gt; - The PID of the daemon instance (reported when the daemon started or can be found with 'ps ax | grep sc_serv' as long as sc_serv was the file run otherwise you can just use 'ps ax' if the filename isn't known). Additionally the PID of sc_trans is listed in the log file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_trans &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_trans will abort loading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Additional Signals===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
When run on Linux / Mac OS X / BSD then some additional signals are supported to allow for additional control over the running daemon instance of sc_trans.&lt;br /&gt;
&lt;br /&gt;
The following signals can be used with the 'kill' command (in the manner of your choosing for using the kill command) along with the &amp;lt;pid&amp;gt; of the daemon instance to do one of the following actions:&lt;br /&gt;
&lt;br /&gt;
 SIGKILL   -  Stops sc_trans (also SIGTERM, SIGINT and SIGQUIT will work)&lt;br /&gt;
 SIGHUP    -  Rotates logfile&lt;br /&gt;
 SIGWINCH  -  Skips to next song in playlist&lt;br /&gt;
 SIGUSR1   -  Reload playlist&lt;br /&gt;
 SIGUSR2   -  Toggle playlist shuffle&lt;br /&gt;
&lt;br /&gt;
The result of SIGHUP is that the current log file contents will be moved into &amp;lt;logfile&amp;gt;_1 '''e.g.''' sc_trans_1.log, &amp;lt;logfile&amp;gt;_1 will be moved into &amp;lt;logfile&amp;gt;_2 '''e.g.''' sc_trans_2.log and so on for all log files which can be found which match the current log file's name. This is useful if timed to have it create day specific log files.&lt;br /&gt;
&lt;br /&gt;
 These signals are not supported by the Windows version of sc_trans which will only&lt;br /&gt;
 respond to the Ctrl + C / Ctrl + Break / console close commands the OS provides.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Registering for MP3 Stream Encoding===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In order for compliance with all broadcasting laws there is a legal requirement for the need to purchase an MP3 license key in-order to be able to encode your stream in MP3 (see [[#MP3_Encoding|section 3.10]] for the related configuration entries). The license key should cost $5.&lt;br /&gt;
&lt;br /&gt;
To obtain the license key you need to go to the following page which will takes you to a secure page for purchasing the MP3 encoding license key:&lt;br /&gt;
    http://shop.winamp.com/servlet/PromoServlet/promoID.48873700&lt;br /&gt;
&lt;br /&gt;
Once the license key has been obtained (this should be a quick process only taking a few minutes when done) then you just need to add the 'name' and 'key' you have obtained into the 'unlockkeyname' and 'unlockkeycode' values in your configuration file (see [[#MP3_Encoding|section 3.10]]) and to change the 'encoder' type for the stream(s) you require from 'aacp' to 'mp3' to use it (see [[#Encoder_Options|section 3.4]]).&lt;br /&gt;
&lt;br /&gt;
So if your key is '123456' and you have used 'Bob Cratchit' as the registered name during the billing process, you would add the following to your configuration file:&lt;br /&gt;
    unlockkeyname=Bob Cratchit&lt;br /&gt;
    unlockkeycode=123456&lt;br /&gt;
&lt;br /&gt;
If the details do not exactly match then the Transcoder will show a message and will not allow the encoding of MP3 streams until the configuration issue has been resolved. The common cause for failure is not entering the '''unlockkeyname''' exactly as specified for the billing name of the method used during the purchase.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Why Does AAC Encoding Not Require a License Key?====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Encoding to an AAC stream does also require a license like the MP3 encoding though this has already been paid for you so there is no need for you to do so yourself when using sc_trans. This setup may seem strange but it is just how things happen with the different nature of licensing encoding of the AAC and MP3 formats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported File Formats===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
As sc_trans does transcoding of audio from one format to another for then being fed to a server or another sc_trans instance as a relay, the following file extensions are handled as valid input file sources:&lt;br /&gt;
&lt;br /&gt;
 MP3 + MPEG (treated as mp3)&lt;br /&gt;
 WAV (uncompressed)&lt;br /&gt;
 OGG&lt;br /&gt;
 FLAC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration File==&lt;br /&gt;
&lt;br /&gt;
Here you can find a complete list of all of the configuration options which are provided by sc_trans which ranges from logging to networking configuration to control over how the media is encoded before transmission to the server.&lt;br /&gt;
&lt;br /&gt;
The entries stored in the configuration file are processed case insensitively.&lt;br /&gt;
&lt;br /&gt;
Configuration entries labelled as ''&amp;lt;MULTI&amp;gt;'' can be used to set up specific encoder types or for specifying multiple playlists for use with the calendar system. These are specified by adding _# to the end of the option's name as shown below where # begins with one. If you are only working with a single instance then you do not need to add the _# part as&lt;br /&gt;
any instances of a configuration option will assume it is for _1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;MULTI&amp;gt;'' system is not hierarchical and all values beyond the default must be specified for all connections. So for example, if you wanted to connect to two servers on the same port you must do:&lt;br /&gt;
&lt;br /&gt;
    encoder_1=aacp&lt;br /&gt;
    encoder_2=mp3&lt;br /&gt;
    bitrate_1=32000&lt;br /&gt;
    bitrate_2=32000&lt;br /&gt;
&lt;br /&gt;
Note that you CANNOT do it like this as it leads to not all values being set:&lt;br /&gt;
&lt;br /&gt;
    encoder_1=aacp&lt;br /&gt;
    encoder_2=mp3&lt;br /&gt;
    bitrate=32000&lt;br /&gt;
&lt;br /&gt;
The configuration files also allow for notes or options to be disabled by the use of a comma (;) at the start of a line which can be seen in all of the configuration examples.&lt;br /&gt;
&lt;br /&gt;
Known options in the configuration files are recognised irrespective of the case they are entered in the configuration file so djport and dJpOrT will be handled the same way.&lt;br /&gt;
&lt;br /&gt;
Any items found in the configuration file which are not known (as detailed in following sections) or is not processed as a comment will be reported in the following manner:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;date + time&amp;gt; W msg:[CONFIG] Invalid item on line XX&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;date + time&amp;gt; is the date and time the event happens at and XX is the line in the configuration file where the error has been found to occur at.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Administration===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''adminport''' : Specify the port used to access the administrative control page    ''[Default = 0]''&lt;br /&gt;
 If no valid port is specified (i.e. zero) then this feature is disabled.&lt;br /&gt;
&lt;br /&gt;
'''adminuser''' : Specify the username used to access the administrative control page    ''[Default = admin]''&lt;br /&gt;
&lt;br /&gt;
'''adminpassword''' : Specify the password to access the administrative control page    ''[Default = goaway]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Calendar Events===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''calendarfile''' : Specify the path to the xml based calendar file    ''[Default = calendar.xml]''&lt;br /&gt;
&lt;br /&gt;
'''calendarrewrite''' : Re-write the 'calendar file' on exit    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
Note: See [[SHOUTcast_Calendar_Event_XML_File_Specification|calendarxml.txt]] for more information on the event format and what it allows you to do with playlist, DJ and relay access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===DJ Support===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''djport''' : Specify the port to listen on for DJ access using the SHOUTcast 1 protocol    ''[Default = 0 (no listening)]''&lt;br /&gt;
 This will actually open 'djport + 1' as the listening port.&lt;br /&gt;
&lt;br /&gt;
'''djport2''' : Specify the port to listen on for DJ access using the SHOUTcast 2 protocol    ''[Default = 0 (no listening)]''&lt;br /&gt;
&lt;br /&gt;
Note: It is possible to use 'djport' and 'djport2' at the same time though you need to ensure that there is no overlap of the ports used in what is specified.&lt;br /&gt;
&lt;br /&gt;
This is because 'djport2' will open the port specified unlike 'djport' which opens 'djport + 1' (as is the way with SHOUTcast 1 connections). Keep this in mind as you would not be able to do the following as it causes a duplication of the port being opened (901 in this case) :&lt;br /&gt;
 djport=900    ; i.e. will open port 901&lt;br /&gt;
 djport2=901&lt;br /&gt;
Whereas this would work as we are opening two different ports (901 + 902):&lt;br /&gt;
 djport=900&lt;br /&gt;
 djport2=902&lt;br /&gt;
&lt;br /&gt;
'''djcipher''' : Specify the key used to obfuscate the initial handshaking with the SHOUTcast 2 protocol    ''[Default = foobar]''&lt;br /&gt;
 This is a YP2 feature and it matches the 'uvoxcipherkey' value in&lt;br /&gt;
 the sc_serv configuration file (see [[SHOUTcast_DNAS_Server_2#YP_Server_Behaviour|sc_serv2.txt - section 4.14]]).&lt;br /&gt;
&lt;br /&gt;
Only change this if you really need to do so as not all SHOUTcast 2 clients will allow you to edit this value from the default value. If using the Source DSP plug-in then see [[Source_DSP_Plug-in#SHOUTcast_2_Cipher_Key|dsp_sc.txt - section 5.0]] for details on how to change the plug-in to use a differnet value.&lt;br /&gt;
&lt;br /&gt;
'''autodumpsourcetime''' : Specify the maximum idle time for the DJ in seconds before being disconnected    ''[Default = 30]''&lt;br /&gt;
&lt;br /&gt;
'''djbroadcasts''' : Specify the directory in which DJ broadcasts will be recorded into    ''[Default = recorded\ or recorded/ - relative to sc_trans[.exe] ]''&lt;br /&gt;
&lt;br /&gt;
'''djcapture''' : Enable to allow the recording of the DJ broadcast    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''djfilepattern''' : Specify how the DJ archive filenames will be created in the form of &amp;lt;djname&amp;gt;&amp;lt;date time pattern&amp;gt;suffix    ''[Default = _%Y_%m_%d_%H_%M_%S. (year_month_day_hour_minute_second)]''&lt;br /&gt;
 The date and time information are formatted using strftime().&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each DJ):&lt;br /&gt;
&lt;br /&gt;
'''djlogin''' : Specify the username required for the DJ to get access    [Default = dj]&lt;br /&gt;
 When connecting as a SHOUTcast 1 source the password has to be specified as &amp;lt;djlogin&amp;gt;:&amp;lt;djpassword&amp;gt;  '''e.g.'''  dj:noise&lt;br /&gt;
&lt;br /&gt;
'''djpassword''' : Specify the password required for the DJ to get access    ''[Default = noise]''&lt;br /&gt;
&lt;br /&gt;
'''djpriority''' : Specify the priority for the DJ when multiple DJ's are connected    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Encoder Options===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each encoder):&lt;br /&gt;
&lt;br /&gt;
'''encoder''' : Specify the encoder to use, either (mp3 or aacp)    ''[Default = aacp]''&lt;br /&gt;
&lt;br /&gt;
'''bitrate''' : Specify the encoding bitrate in bits per second    ''[Default = 96000]''&lt;br /&gt;
&lt;br /&gt;
'''samplerate''' : Specify the encoding sample rate to use    ''[Default = 44100]''&lt;br /&gt;
&lt;br /&gt;
'''channels''' : Specify the number of channels to encode    ''[Default = 2]''&lt;br /&gt;
&lt;br /&gt;
'''mp3quality''' : Specify the MP3 encoder quality to use when encoding    ''[Default = 0]''&lt;br /&gt;
Available options are :&lt;br /&gt;
 0 - fast (preferred)&lt;br /&gt;
 1 - high quality (changes sample rate and does additional filtering)&lt;br /&gt;
&lt;br /&gt;
'''mp3mode''' : Specify the MP3 encoder mode (CBR / VBR) to use when encoding    ''[Default = 0]''&lt;br /&gt;
Available options are :&lt;br /&gt;
 0 - CBR&lt;br /&gt;
 1 - VBR High Quality&lt;br /&gt;
 2 - &lt;br /&gt;
 3 - VBR Medium Quality &lt;br /&gt;
 4 - &lt;br /&gt;
 5 - VBR Low Quality]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Flash Security===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''flashpolicyfile''' : Specify the name of file which contains the flash crossdomain policies    ''[Default = crossdomain.xml]''&lt;br /&gt;
&lt;br /&gt;
'''flashpolicyserverport''' : Specify the port used for the flash policy server    ''[Default = 0]''&lt;br /&gt;
 Specify '843' if you want to turn this on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Live Capture===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''capture''' : Enable to allow the use of live capture as an input    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''capturedevice''' : Specify the OS dependent device used for capture    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''captureinput''' : Specify the OS dependent input used for capture    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''capturesamplerate''' : Specify the sample rate used for capture    ''[Default = 44100]''&lt;br /&gt;
&lt;br /&gt;
'''capturechannels''' : Specify the number of channels to capture    ''[Default = 2]''&lt;br /&gt;
&lt;br /&gt;
Note: When run under Windows on an operating system newer than XP there is a possibility for the device name obtained from Windows to be longer than 32 characters. This is a problem as the api's used only support device names upto 31 characters in length so sc_trans will attempt to clip the device name specified with 'capturedevice' to 31 characters to try to get a match with the devices the OS is reporting.&lt;br /&gt;
&lt;br /&gt;
If you are having issues with the live capture then add 'capturedebug=1' to allow you to see the device names reported back to sc_trans by the OS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Logging Options===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''log''' : Enable logging of the transmission output    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''screenlog''' :  Enable logging of output to the console    ''[Default = 1]''&lt;br /&gt;
 If log=0 or when running this as a daemon / service then this option is ignored as it is not applicable.&lt;br /&gt;
&lt;br /&gt;
'''logfile''' : Specify a different logfile to save the transmission logs into    ''[Default = %temp%\sc_trans.log or /tmp/sc_trans.log]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the logs into then you need to ensure that the&lt;br /&gt;
 folder already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Metadata Control===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''streamtitle''' : Specify the general name for the radio station or stream    ''[Default - Misc]''&lt;br /&gt;
&lt;br /&gt;
'''streamurl''' : Specify the url of the radio station or stream    ''[Default = &amp;lt;nowiki&amp;gt;http://www.shoutcast.com&amp;lt;/nowiki&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''genre''' : Specify the genre for the radio station or stream    ''[Default - N/A]''&lt;br /&gt;
&lt;br /&gt;
'''aim''' : Specify the AIM contact ID to show for the radio station or stream    ''[Default - N/A]''&lt;br /&gt;
&lt;br /&gt;
'''irc''' : Specify the IRC contact ID to show for the radio station or stream    ''[Default - N/A]''&lt;br /&gt;
&lt;br /&gt;
'''icq''' : Specify the ICQ contact ID to show for the radio station or stream    ''[Default - N/A]''&lt;br /&gt;
&lt;br /&gt;
'''public''' : Enable to register the radio station or stream with the YP (shoutcast.com)    ''[Default = 0]''&lt;br /&gt;
 If connected to sc_serv then this is used by the 'publicserver' value&lt;br /&gt;
 unless it is being overriden (see [[SHOUTcast_DNAS_Server_2#YP_Server_Behaviour|sc_serv2.txt - section 4.14]]).&lt;br /&gt;
&lt;br /&gt;
'''usemetadata''' : Enable to use use the in file metadata i.e. stored in file tags    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''metadatapattern''' : Specify the pattern used for extracting metadata from the filename    ''[Default = *\%N.* or */%N.*]''&lt;br /&gt;
 See [[#Filename_Metadata_Extraction|section 6.0]] for more details about this)&lt;br /&gt;
&lt;br /&gt;
'''displaymetadatapattern''' : Specify a pattern to use to form the metadata output string for SHOUTcast 1 metadata    ''[Default = %R[ - ]%N]''&lt;br /&gt;
&lt;br /&gt;
'''nextlookahead''' : Specifies the number of tracks ahead of the current track playing to be reported in the stream's metadata to the server    ''[Default = 3]''&lt;br /&gt;
 This is the maximum limit attempted to be reported and will vary based on the source in use&lt;br /&gt;
 e.g. if there enough entries in the current playlist being played. Setting to zero will disable this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''configrewrite''' :  Re-write the 'config file' on exit    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''timemultiplier''' : Used to shift reported time in certain uses    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''inheritconfig''': Specify the path of the sc_serv2 configuration file for the instance you want to use the transcoder with    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
The aim of this option is to make it easier to get an instance of sc_trans to run with sc_serv by ensuring that any passwords, etc match up. By using this, option any of the configuration options already set in the sc_trans config file (see below) will be replaced by those found in the sc_serv configuration file.&lt;br /&gt;
&lt;br /&gt;
The configuration options read from the sc_serv2 configuration file including what they are mapped from in the sc_serv2 value to the sc_trans value are:&lt;br /&gt;
&lt;br /&gt;
* '''portbase -&amp;gt; serverport'''&lt;br /&gt;
* '''password -&amp;gt; password''' - Master source password overriden by streampassword&lt;br /&gt;
* '''streampassword -&amp;gt; password'''&lt;br /&gt;
* '''uvoxcipherkey -&amp;gt; djcipher'''&lt;br /&gt;
* '''srcip -&amp;gt; serverip'''  -  Will use the ip set unless is empty or srcip=any&lt;br /&gt;
* '''yp2 -&amp;gt; outprotocol''' - Sets outprotocol=1 if with yp2=0 otherwise it sets outprotocol=3 as a v2 DNAS is assumed to be used and if found to be v1 configuration then outprotocol=1&lt;br /&gt;
&lt;br /&gt;
Additionally this mode will attempt to read configurations from a v1 DNAS file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''include''' : Specify an additional include file containing settings to be processed from the current point in the main configuration file    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
Note: You can do multiple calls of this allowing for a basic configuration file with then 'specific' encoder configurations set in individual conf files though you need to ensure not to include a reference to the same file in itself.&lt;br /&gt;
&lt;br /&gt;
'''serverbackupfile''' : Set the server side file for broken connection playback    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''serverintrofile''' : Set the server side file that is played when a user connects    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
Note: With both of these options, they will override any files specified in the sc_serv's configuration file and also requires 'outprotocol=3' for it to be supported (see [[#Network_Options|section 3.11]] for the options 'outprotocol' supports).&lt;br /&gt;
&lt;br /&gt;
Additionally when connecting to sc_serv via sc_trans, the server intro and backup files as specified in sc_servs configuration file (see [[SHOUTcast_DNAS_Server_2#Introduction_and_Backup_Files|sc_serv2.txt - section 4.5]]) will not be played so you need to specify them in the sc_trans configuration if required for the stream (this is a quirk of how sc_serv currently works).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MP3 Encoding===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''unlockkeyname''' : Specify the name to use to unlock mp3 encoding (case sensitive)&lt;br /&gt;
&lt;br /&gt;
'''unlockkeycode''' : Specify the code associated with name to unlock mp3 encoding&lt;br /&gt;
&lt;br /&gt;
 Due to licensing requirements for MP3 encoding see [[#Registering_for_MP3_Stream_Encoding|section 2.5]]&lt;br /&gt;
 for how to obtain the key required for unlocking MP3 encoding in sc_trans.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Network Options===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each connection):&lt;br /&gt;
&lt;br /&gt;
'''endpointname''' : Specify the name of the endpoint    ''[Default - &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: This is used to identify the encoder such as when using the AJAX api interfaces and if not specified then sc_trans creates a default name as 'endpointX' where 'X' is the encoder index starting at one. See [[SHOUTcast_Transcoder_AJAX_api_Specification|sc_trans_ajax_api.txt]] for more information on the use of this.&lt;br /&gt;
&lt;br /&gt;
'''outprotocol''' : Specify the server protocol to use    ''[Default = 1]''&lt;br /&gt;
This can be:&lt;br /&gt;
 1 = SHOUTcast 1 (Legacy)&lt;br /&gt;
 2 = Ultravox (Ultravox 2.0)&lt;br /&gt;
 3 = SHOUTcast 2 (Ultravox 2.1)&lt;br /&gt;
&lt;br /&gt;
'''serverip''' : Specify the IP address of server to connect to    ''[Default - &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: If 'srcip' has been set to a value other than 'any' in the sc_serv configuration then you need to set it for you sc_trans configuration otherwise sc_serv will not see the sc_trans connection attempts (see [[SHOUTcast_DNAS_Server_2#Client_Behaviour|sc_serv2.txt - section 4.2]]).&lt;br /&gt;
                 &lt;br /&gt;
Additionally, you will need to make sure that any IP added is valid and can be fully resolved otherwise the connection to the sc_serv instance is very likely to fail.&lt;br /&gt;
&lt;br /&gt;
'''serverport''' : Specify the server port used to connect to    ''[Default = 8000]''&lt;br /&gt;
 This should relate to the 'portbase' value set in sc_serv's configuration (see [[SHOUTcast_DNAS_Server_2#Networking|sc_serv2.txt - section 4.8]]).&lt;br /&gt;
&lt;br /&gt;
'''password''' : Specify the password used to connect to a DNAS server   ''[Default = foobar]''&lt;br /&gt;
 This matches the 'password' value in the sc_serv configuration file (see [[SHOUTcast_DNAS_Server_2#Networking|sc_serv2.txt - section 4.8]]) or 'streampassword' (see [[SHOUTcast_DNAS_Server_2#Stream_Configuration|sc_serv2.txt - section 4.12]] - this only applies for v2 DNAS servers).&lt;br /&gt;
&lt;br /&gt;
'''streamid''' : Specify the stream identifier for the SHOUTcast 2 connection    ''[Default = 1]''&lt;br /&gt;
 This relates to the 'streamid' value in the sc_serv configuration (see [[SHOUTcast_DNAS_Server_2#Networking|sc_serv2.txt - section 4.8]]).&lt;br /&gt;
&lt;br /&gt;
'''uvoxuserid''' : Specify the user ID for accessing SHOUTcast 2 (Ultravox 2.1)    ''[Default - &amp;lt;no value&amp;gt;]''&lt;br /&gt;
 This is currently not used and is provided for future usage.&lt;br /&gt;
&lt;br /&gt;
Note: If ''''requirestreamconfigs'''' is enabled in the sc_serv configuration (see [[SHOUTcast_DNAS_Server_2#Stream_Configuration|sc_serv2.txt - section 4.12]]) then you need to ensure that the 'streamid' value used in your sc_trans configuration exists in the sc_serv configuration along with any endpoint, password and other values appropriate to the 'streamid' matched with the equivalent sc_serv configuration values.&lt;br /&gt;
&lt;br /&gt;
'''uvoxradiometadata''' : Enable to send the older AOL Radio style metadata to the server    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''uvoxnewmetadata''' : Enable to send SHOUTcast 2 style metadata to the server    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''uvoxmetadatafudgefactor''' : Specify the delaying factor for Ultravox metadata in seconds    ''[Default = 0.0]''&lt;br /&gt;
&lt;br /&gt;
'''shoutcastmetadatafudgefactor''' : Specify the delaying factor for SHOUTcast metadata in seconds    ''[Default = 0.0]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Playlist Control===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''playlistfile''' : Specify the name of playlist file to use    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''shuffle''' : Enable to allow shuffling of the specified playlist    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''xfade''' : Specify the number of seconds to do  for a crossfade    ''[Default = 1]''&lt;br /&gt;
 Specify xfade=0 to disable crossfade&lt;br /&gt;
&lt;br /&gt;
'''xfadethreshold''' : Specify the minimum duration in seconds a file must be to allow crossfading in and out on it    ''[Default = 10]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Priority playlists are those used to override the playing playlist once the current song has stopped playing. This can be useful if a sudden playlist / announcement is required.&lt;br /&gt;
&lt;br /&gt;
'''playlists''' : Specify the folder used for priority playlists    ''[Default = priority\ or priority/ - relative to sc_trans[.exe]]''&lt;br /&gt;
&lt;br /&gt;
'''archive''' : Specify the folder used for archiving playlists    ''[Default = priority\archived\ or priority/archived/ - relative to sc_trans[.exe]]''&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each additional playlist):&lt;br /&gt;
&lt;br /&gt;
'''playlistfilename''' - Used to build named collections of playlists    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''playlistfilepath''' - Used to build named collections of playlists    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
Note: These playlists are used as part of the &amp;lt;playlist&amp;gt; events in calendar.xml where the name set with 'playlistfilename_X' is used in the loading done. See [[SHOUTcast_Calendar_Event_XML_File_Specification#Playlist_Events|calendarxml.txt and section 3.2]] for more information on these events.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Replay Gain Control===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''applyreplaygain''' : Enable to honour the replay gain values stored in the file    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''defaultreplaygain''' : If no replay gain is in the file then apply this adjustment    ''[Default = 0.0]''&lt;br /&gt;
&lt;br /&gt;
'''djreplaygain''' : Specify the replay gain to be applied to DJ streams    ''[Default = 0.0]''&lt;br /&gt;
&lt;br /&gt;
'''capturereplaygain''' : Specify the replay gain to apply to the live capture input    ''[Default = 0.0]''&lt;br /&gt;
&lt;br /&gt;
'''calculatereplaygain''' : Enable to calculate the replay gain on the handled files    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''replaygaintmpdir''' : Specify the temporary directory for replay gain calculator to work in    ''[Default = (Windows = %TEMP FOLDER%  Linux = /tmp/)]''&lt;br /&gt;
&lt;br /&gt;
'''replaygainrunahead''' : Specify the number of tracks head start to give the replay gain calculator    ''[Default = 2]''&lt;br /&gt;
&lt;br /&gt;
'''replaygaindontwrite''' : Specify if the replay gain values calculated should NOT be written to the file    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''enhancereplaygain''' : Specify if the file has replay gain and it is being used, an additional amount of gain to add    ''[Default = 6.0]''&lt;br /&gt;
 Winamp ships with a default value to add -6dB to file which do not have replay gain.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===VU Image===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''vuimagedirectory''' : Specify the folder in which to look for vu images to use    ''[Default = &amp;quot;&amp;quot;]''&lt;br /&gt;
 The image files are named vuimage_XX.&amp;lt;vuimagesuffix&amp;gt; where 'XX' is from 0 to 100&lt;br /&gt;
 and the path specified will need to be properly terminated to work correctly.&lt;br /&gt;
&lt;br /&gt;
'''vuimagesuffix''' : Specify the suffix for vu images to be used from the image directory    ''[Default = png]''&lt;br /&gt;
&lt;br /&gt;
'''vuimagemimetype''' : Specify the mime type for vu images to be used    ''[Default = image/png]''&lt;br /&gt;
&lt;br /&gt;
Note: This controls the images available when using the 'vumeterleft' or 'vumeterright' webcommands (see [[#Supported_Weblet_Commands|section 4.1]]). Additionally sc_trans only allows for one active use of each webcommand from the current sc_trans instance with the most current attempt made being the active instance which will be updated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Debugging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In all cases, the default value is for no debug logging for the options listed below.&lt;br /&gt;
&lt;br /&gt;
'''shuffledebug''' : Enable to activate debug logging of playlist shuffling    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''shoutcastdebug''' : Enable to activate debug logging for SHOUTcast transmission    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''uvoxdebug''' : Enable to activate debug logging for SHOUTcast 2 (Ultravox 2.1) transmissions    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''gaindebug''' : Enable to activate debug logging for replay gain on playback    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''playlistdebug''' : Enable to activate debug logging for playlists    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''mp3encdebug''' : Enable to activate debug logging for MP3 encoding    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''mp3decdebug''' : Enable to activate debug logging for MP3 decoder    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''resamplerdebug''' : Enable to activate debug logging for the resampler    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''rgcalcdebug''' : Enable to activate debug logging for the replay gain calculator    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''apidebug''' : Enable to activate debug logging for the AJAX api    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''calendardebug''' : Enable to activate debug logging for the calendar events    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''capturedebug''' : Enable to activate debug logging for live capture    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''djdebug''' : Enable to activate debug logging for DJ management    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''flashpolicyserverdebug''' : Enable to activate debug logging for the flash policy server    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''fileconverterdebug''' : Enable to activate debug logging for the server side file converter    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''sourcerelaydebug''' : Enable to active debug logging for relayed sources    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''sourceandendpointmanagerdebug''' : Enable to activate debug logging for endpoint management    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Administration Weblet Commands==&lt;br /&gt;
&lt;br /&gt;
The transcoder supports web based control of the features it provides allowing for the remote control of sc_trans much like the DNAS (sc_serv2) supports. To enable the use of the administration interface you need to specify a port and related password and username as detailed in the Administration section ([[#Administration|see 3.1]]).&lt;br /&gt;
&lt;br /&gt;
Once enabled then options detailed in the following sections will become available though the main interface and controlling aspects are available via the 'api' command with more information provided on how to use it in [[SHOUTcast_Transcoder_AJAX_api_Specification|sc_trans_ajax_api.txt]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Weblet Commands===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following are the supported commands for the administration weblet the transcoder supports and are used in the following manner:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://&amp;lt;server_ip&amp;gt;:adminport/&amp;lt;command&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''quit''' : Will make sc_trans quit (equivalent of SIGKILL on non-Windows).&lt;br /&gt;
&lt;br /&gt;
'''rotatelogs''' : Will rotate the logs (equivalent of SIGHUP).&lt;br /&gt;
The result of this is that the current log file contents will be moved into &amp;lt;logfile&amp;gt;_1 '''e.g.''' sc_trans_1.log, &amp;lt;logfile&amp;gt;_1 will be moved into &amp;lt;logfile&amp;gt;_2 '''e.g.''' sc_trans_2.log and so on for all log files which can be found which match the current log file's name. This is useful if timed to have it create day specific log files.&lt;br /&gt;
&lt;br /&gt;
'''nextsong''' : Will advance to the next song (equivalent of SIGWINCH).&lt;br /&gt;
&lt;br /&gt;
'''loadplaylist''' : This will re-load the current playlist (equivalent of SIGUSR1).&lt;br /&gt;
&lt;br /&gt;
'''toggleshuffle''' : Use to toggle the current playlist shuffle state (equivalent of SIGUSR2).&lt;br /&gt;
&lt;br /&gt;
'''kickdj?duration=hh:mm:ss''' : You can specify an amount of time for how long to kick the current DJ for. If a duration is not set i.e. just using 'kickdj', then this will defaults to 15 minutes (00:15:00). If a duration is specified then all three fields of 'hh:mm:ss' must be specified even if their value is zero (ie 01:30:30).&lt;br /&gt;
&lt;br /&gt;
'''restart''' : Restart the current sc_trans instance.&lt;br /&gt;
&lt;br /&gt;
'''vumeterleft''' or '''vumeterright''' : This will initiate a server side image push that represents the vu levels as long as there are images are available to sc_trans to use for this (see [[#VU_Image|section 3.14]]).&lt;br /&gt;
&lt;br /&gt;
'''vu.bin''' : This will return a continuous stream of type 'misc/sc-vu' as long as sc_trans is transcoding. The format of the stream is:&lt;br /&gt;
 0xa5 leftVal rightVal 0xa5 leftVal ..... etc&lt;br /&gt;
&lt;br /&gt;
If the audio signal is mono there is no right val and you get:&lt;br /&gt;
 0xa5 leftVal 0xa5 leftVal .... etc&lt;br /&gt;
&lt;br /&gt;
'''writeconfig''' : This will write out the currently stored configuration and event details to the respective configuration and calendar.xml file. You will need to ensure that you have specified valid files in the configuration options for these files otherwise they won't be saved correctly and any changes may be lost.&lt;br /&gt;
&lt;br /&gt;
'''crossdomain.xml''' : This will return the current copy of crossdomain.xml as set with 'flashPolicyFile' ([[#Flash_Security|see section 3.5]]).&lt;br /&gt;
&lt;br /&gt;
'''timeshift?t=#''' : [EXPERIMENTAL] This applies a time shift to the audio though the default is to have no shift (i.e. t=0). This should not be used unless you know what it does (added for specific Aol use).&lt;br /&gt;
&lt;br /&gt;
'''api''' : This is the point from where you can make use of the AJAX api which sc_trans offers and is used as a POST method. For more information on the parameters and options supported see [[SHOUTcast_Transcoder_AJAX_api_Specification|sc_trans_ajax_api.txt]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Metadata Support==&lt;br /&gt;
&lt;br /&gt;
As detailed in [[#Metadata_Control|section 3.8]] there are a number of ways to allow for the use of metadata from the files being played though there are certain limits to this support for different file formats currently supported by sc_trans as detailed in the following sections.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MP3 Files===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
There is support for ID3v1 and ID3v2 tags. With ID3v2 there is support of version 3 and 4 of the specification though there are the following limitations:&lt;br /&gt;
# Unsynch data is not supported&lt;br /&gt;
# Compressed frames are not supported&lt;br /&gt;
# Encrypted frames are not supported&lt;br /&gt;
# Appended v4 frames are not supported&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===FLAC and OGG Files===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
There is support of the native metadata (Vorbis comment tags). Metadata read from these files are mapped to expected values which SHOUTcast expects to get. For more information see [[SHOUTcast_XML_Metadata_Specification|sc2_xml_metadata.txt]] for details on the various field mappings applied.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Filename Metadata Extraction==&lt;br /&gt;
&lt;br /&gt;
The transcoder along with being able to make use of the metadata from files is also able to attempt to extract metadata from the filepath of the files by use of a template.&lt;br /&gt;
&lt;br /&gt;
Guessing of the metadata from the filename will happen if 'usemetadata=0' is set in your configuration file (default behaviour is to use the file tag) or if no tag is detected in the file. For the best experience it is always best to ensure any files you use have tags and the required metadata in them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Filename Metadata Extraction Pattern===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The 'metadataPattern' setting is used to specify the pattern used to extract metadata from a filename if there is no detected metadata or 'usemetadata=0'.&lt;br /&gt;
&lt;br /&gt;
The default pattern used is *\%N.* (Windows) and */%N.* (all other OSes). The following are the formatting options which are supported in the pattern:&lt;br /&gt;
 %N = Song name&lt;br /&gt;
 %G = Genre&lt;br /&gt;
 %A = Album&lt;br /&gt;
 %R = Artist&lt;br /&gt;
 %Y = Four digit year&lt;br /&gt;
 %# = Sequence of digits&lt;br /&gt;
 %% = % character&lt;br /&gt;
 [] = Brackets optional elements (no nesting)&lt;br /&gt;
 *  = String&lt;br /&gt;
 Other characters are matched exactly as found.&lt;br /&gt;
&lt;br /&gt;
The pattern matching is done working from the right to the left.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Filename Metadata Extraction Examples===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following examples show the metadata pattern matching working.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Example #1====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 metadataPattern = */%R/%Y%A/Audio/[%#_]%N.*&lt;br /&gt;
 filepath = /home/songs/Mask and Wig/1969 Irreverance Of Things Past/Audio/03_The Royal Blues.mp3&lt;br /&gt;
&lt;br /&gt;
Extracted metadata result:&lt;br /&gt;
 ALBUM = Irreverance Of Things Past&lt;br /&gt;
 ARTIST = Mask and Wig&lt;br /&gt;
 SONG = The Royal Blues&lt;br /&gt;
 YEAR = 1969&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Example #2====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 metadatapattern = */%A/[%R_]%N&lt;br /&gt;
 filepath = /home/album/song&lt;br /&gt;
&lt;br /&gt;
Extracted metadata result:&lt;br /&gt;
 ALBUM = album&lt;br /&gt;
 SONG = song&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====6.2.3   Example #3====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 metadatapattern = */%A/%R_%N&lt;br /&gt;
 filepath = /home/album/artist_song&lt;br /&gt;
&lt;br /&gt;
Extracted metadata result:&lt;br /&gt;
 ALBUM = album&lt;br /&gt;
 ARTIST = artist&lt;br /&gt;
 SONG = song&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===File Metadata Construction For SHOUTcast 1===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You can specify how metadata elements are concatenated together to from the SHOUTcast 1 metadata string by specifying the 'displaymetadatapattern' option.&lt;br /&gt;
&lt;br /&gt;
In a standard Winamp client install then it will expect the data in the equivalent format of '%R[ - ]%A[ - ]%N' and uses that format to parse the data. If you deviate from this or if the user has changed settings in their Winamp client then the results may not display properly with what is expected to be shown.&lt;br /&gt;
&lt;br /&gt;
The following token substitutions are made with 'displaymetadatapattern':&lt;br /&gt;
&lt;br /&gt;
 %N = Song name&lt;br /&gt;
 %A = Album name&lt;br /&gt;
 %R = Artist&lt;br /&gt;
 %G = Song genre&lt;br /&gt;
 %Y = song year&lt;br /&gt;
 %t = Station name (a.k.a. stream title a.k.a. icy-name)&lt;br /&gt;
 %u = Station url (a.k.a. icy-url)&lt;br /&gt;
 %g = Station genre (a.k.a. icy-genre)&lt;br /&gt;
&lt;br /&gt;
Characters in brackets are only displayed if the token substitution to the left of them did not result in the insertion of an empty string.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Playlists Support==&lt;br /&gt;
&lt;br /&gt;
The transcoder supports a playlist file to specify the file(s) to use when it is working and is a file with the .lst extension with one file per line. The file may be encoded in UTF-8 to allow for the support of non-english filenames, etc.&lt;br /&gt;
&lt;br /&gt;
Lines in the playlist beginning with a # will be ignored which allows you to disable a specific file or script in the playlist or comments on what is done.&lt;br /&gt;
&lt;br /&gt;
The playlist file will be processed until the end of the file is reached or until the parser comes across a line containing ###!EOF is detected.&lt;br /&gt;
&lt;br /&gt;
With versions of sc_trans prior to those from the end of 2010 there was a need to have a line break after the last entry in the playlist for them to be correctly recognised. This is no longer a requirement of the playlist format.&lt;br /&gt;
&lt;br /&gt;
Wildcards are supported in the processing of the folder contents though this will not do a recursion of any sub-folders within the specified folder '''e.g.'''  c:\music\*.mp3&lt;br /&gt;
&lt;br /&gt;
This will only find mp3 files in the 'music' folder and will not look in any sub-folders which may be inside the 'music' folder. For sub-folders to be included then you will need to explicitly specify the sub-folder for it to be recognised by the playlist loader.&lt;br /&gt;
&lt;br /&gt;
Additionally these entries can be intermixed with regular explicit entries '''e.g.'''&lt;br /&gt;
 c:\music\foo.mp3&lt;br /&gt;
 c:\music\otherstuff\*.mp3&lt;br /&gt;
 c:\music\bar.mp3&lt;br /&gt;
&lt;br /&gt;
Any entries which relate to file formats not supported (determined by the file extension) will be ignored from the playlist stored e.g. test.aac would not be used if read.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Playlist Formats===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The transcoder supports the following playlist file formats though is limited to use only the filepaths from the playlist formats which also provide additional title / metadata information in them:&lt;br /&gt;
&lt;br /&gt;
 Plain text file - this is the equivalent of a commentless M3U / M3U8 file&lt;br /&gt;
 PLS&lt;br /&gt;
 M3U&lt;br /&gt;
 M3U8 (UTF-8 encoded version of the M3U format)&lt;br /&gt;
&lt;br /&gt;
If a loaded playlist contains any entries with wildcards in them then the playlist loader will only attempt to find the matching files in the base folder specified and will not recurse into any sub-folders found. This is different to how Winamp for example (and any other programs) handles the loading of such entries where it would then recurse through any sub-folders found. This behaviour may change at a future time but is not guaranteed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Remote Applications===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
An additional feature of the transcoders playlist support is the ability to run remote applications in place of a fixed playlist line. This is done by starting a line with #! '''e.g.'''&lt;br /&gt;
 /music/foo.mp3&lt;br /&gt;
 #!/bin/perl /home/user/songfromDB.pl&lt;br /&gt;
 /music/bar.mp3&lt;br /&gt;
&lt;br /&gt;
The script run in this case should return the entry in the playlist to run at this point. The script is also passed an integer parameter indicating how many tracks ahead must also be returned by the script.&lt;br /&gt;
&lt;br /&gt;
By returning these extra tracks as well as the first one expected then this information will be used by YP2 to refine searching and also to establish a &amp;quot;coming soon&amp;quot; track which will be shown to clients or on the SHOUTcast site.&lt;br /&gt;
&lt;br /&gt;
So with this style of playlist handling, it is possible to have an external app running which will provide all of the files for sc_trans to process which could be of use if you have a specific requirement for when and how files are played.&lt;br /&gt;
&lt;br /&gt;
Additionally you can pair remote application actions together in such a manner:&lt;br /&gt;
 #!php call track script&lt;br /&gt;
 #!php call commercial script&lt;br /&gt;
&lt;br /&gt;
where this will alternate between the first and second scripts returning the file to be processed through sc_trans.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Additional Information===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Every entry in the playlist is run through a wildcard expander specific to the operating system the transcoder is being run on. Under *nix systems then glob() is used and for Windows systems FindFirstFile() is used to handle the wildcard.&lt;br /&gt;
&lt;br /&gt;
There are a number of scenarios to be considered for remote application entries in a playlist as detailed in the following list:&lt;br /&gt;
&lt;br /&gt;
# The standard out from the command is used as the name of the file to open.&lt;br /&gt;
# If the standard out is empty then the entry will be skipped.&lt;br /&gt;
# If the command returns an error code (non zero) then the entire playlist of which the entry is a member off will be considered to be finished.&lt;br /&gt;
# The data written to standard out should be encoded in the UTF-8 format and if returning multiple entries needs to be separated by a newline character.&lt;br /&gt;
# If only a single track name is returned by the remote application then the following values in the playlist will be used for &amp;quot;coming soon&amp;quot; calculations.&lt;br /&gt;
# If you return the requested number of additional tracks (passed in when it is run) then these will be used for &amp;quot;coming soon&amp;quot; calculations.&lt;br /&gt;
# If there are [ or ] in the filepath then for them to appear instead of being used as a filter, you will need to escape them normally as \[ and \] else it is often likely that the files will fail to load. This is more of an issue on non-Windows versions due to how the shell and expansion works.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==DJing Information==&lt;br /&gt;
&lt;br /&gt;
The DJ port (configuration option 'djport' or 'djport2') mimics the behaviour of sc_serv by allowing someone running another copy of sc_trans (or the Winamp DSP plug-in) to connect to your sc_trans and then to broadcast through it which effectively turns your sc_trans into a relay.&lt;br /&gt;
&lt;br /&gt;
The 'djport' or 'djport2' value (see [[#DJ_Support|section 3.3]] for more details setting this up) is the IP port you choose to have your sc_trans to listen on for an inbound DJ connection (by default this feature is not enabled).&lt;br /&gt;
&lt;br /&gt;
A simple example of this feature is if you have a friend who wants to do a show on your station. At the appropriate time they would start their own instance of sc_trans which will then connect to your instance as if it was a server. When the connection happens then your sc_trans instance will stop the current playlist playback and will crossfade into your friends show. Then when the show is over and the friend disconnects then your instance of sc_trans will crossfade back into the playlist from the point when the friend had connected.&lt;br /&gt;
&lt;br /&gt;
The DJ broadcast will also be copied to disk for later playback assuming that 'djcapture' has not been changed from the default settings though you can turn this feature off if required. See [[#DJ_Support|section 3.3]] for more available options.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Setting Up DJs In The New Scheme===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
DJ accounts are set up by using the 'djlogin', 'djpassword' and 'djpriority' options as shown in &amp;lt;MULTI&amp;gt; options under [[#DJ_Support|section 3.3]].&lt;br /&gt;
&lt;br /&gt;
If we have two DJs who we want to allow access into our system then we would have the following in our main configuration file (obviously in real use change the names and passwords to what you need):&lt;br /&gt;
&lt;br /&gt;
 djlogin_1=peter&lt;br /&gt;
 djpassword_1=foobar&lt;br /&gt;
 djpriority_1=4&lt;br /&gt;
 &lt;br /&gt;
 djlogin_2=paul&lt;br /&gt;
 djpassword_2=goaway &lt;br /&gt;
 djpriority_2=2&lt;br /&gt;
&lt;br /&gt;
The priority value is used if the scheduling allows for two different DJs to connect into the instance of sc_trans at the same time. If this did happen then the DJ with the higher priority will take precedence on the access made.&lt;br /&gt;
&lt;br /&gt;
Now that we have setup the DJs in our main configuration, we will need to setup access for them via the calendar.xml file scheduler ([[SHOUTcast_Calendar_Event_XML_File_Specification|see calendarxml.txt]]). In this example Peter is allowed access to sc_trans at any time whereas Paul is only allowed a connection to sc_trans on Tuesdays at 2am for an hour. Finally the shows Peter makes will not be saved whilst Paul's ones will be archived.&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;&lt;br /&gt;
    &amp;lt;eventlist&amp;gt;&lt;br /&gt;
      &amp;lt;event type=&amp;quot;dj&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;dj archive=&amp;quot;0&amp;quot;&amp;gt;peter&amp;lt;/dj&amp;gt;&lt;br /&gt;
        &amp;lt;calendar/&amp;gt;&lt;br /&gt;
      &amp;lt;/event&amp;gt;&lt;br /&gt;
      &amp;lt;event type=&amp;quot;dj&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;dj archive=&amp;quot;1&amp;quot;&amp;gt;paul&amp;lt;/dj&amp;gt;&lt;br /&gt;
        &amp;lt;calendar starttime=&amp;quot;02:00:00&amp;quot; duration=&amp;quot;01:00:00&amp;quot; repeat=&amp;quot;4&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/event&amp;gt;&lt;br /&gt;
    &amp;lt;/eventlist&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now everything is setup, all that is needed is to run sc_trans and for Peter and Paul to setup their setups (either via another sc_trans or Winamp + Source DSP for example) with the required login details and then they will be able to connect as set in the schedule.&lt;br /&gt;
&lt;br /&gt;
Note: When connecting as a SHOUTcast 1 source, the DJ must specify the login password in the form of &amp;lt;djlogin&amp;gt;:&amp;lt;djpassword&amp;gt;  '''e.g.'''  paul:goaway   If not done correctly then the DJ will not be able to connect. [[#DJ_Support|Section 3.3]] provides more information on the configuration values required.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Virtual Memory Footprint (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
Due to how sc_trans works it will create a large number of threads which may become an issue due to the default virtual memory stack allocation per thread potentially being large (typically 10MB per thread). For most people this should not be an issue as the memory is not really allocated unless it is used. If however if you have a resource constrained system or if you plan on running many copies of sc_trans then you could potentially run out of virtual memory.&lt;br /&gt;
&lt;br /&gt;
The default thread allocation can be reduced by issuing a &amp;quot;ulimit&amp;quot; command before running sc_trans and in the example reduces it to 512KB per-thread '''e.g.'''   ulimit -s 512&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Locale Error (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
If you receive the following error then you have a locale related issues:&lt;br /&gt;
&lt;br /&gt;
    terminate called after throwing an instance of 'std::runtime_error'&lt;br /&gt;
    what():  locale::facet::_S_create_c_locale name not valid&lt;br /&gt;
    Abort trap&lt;br /&gt;
&lt;br /&gt;
If this happens then you need to set the 'POSIX' locale in your terminal's environment values. If this does not happen then everything is fine or you are using a newer version of sc_trans from the end of 2010 which should no longer exhibit this issue.&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
    export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
BSD:&lt;br /&gt;
    setenv LC_ALL POSIX&lt;br /&gt;
&lt;br /&gt;
Mac OS X:&lt;br /&gt;
    export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
You can test to see if this has worked by checking the shell command &amp;quot;locale&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
    LANG=&lt;br /&gt;
    LC_COLLATE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_CTYPE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_MESSAGES=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_MONETARY=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_NUMERIC=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_TIME=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_ALL=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Configurations==&lt;br /&gt;
&lt;br /&gt;
Include as part of the sc_serv installation are a number of example configurations to get things started with using some of the features of the transcoder. The provided examples are:&lt;br /&gt;
&lt;br /&gt;
 sc_trans_basic.conf&lt;br /&gt;
 sc_trans_capture.conf&lt;br /&gt;
 sc_trans_dj.conf&lt;br /&gt;
 sc_trans_playlist.conf&lt;br /&gt;
 sc_trans_simple.conf&lt;br /&gt;
&lt;br /&gt;
All of the configuration examples are documented and will relate back to details in this file as appropriate. You will need to change some details in these example files or to obtain any applicable license keys for the setup you are making (see [[#Registering_for_MP3_Stream_Encoding|section 2.5]]).&lt;br /&gt;
&lt;br /&gt;
In all cases the examples are designed to work from the same install folder as sc_trans. &lt;br /&gt;
&lt;br /&gt;
Remember these examples are a way to get you up and running faster though you are still likely to have to adjust things depending upon the systems you are using and how you want to manage your sources and server connections which are covered in previous sections.&lt;br /&gt;
&lt;br /&gt;
Additionally if you are not happy with editing the files or find it still too confusing then you can use the configuration builder which (if installed) can be found in the 'config_builder'. Open 'config_builder.html' in your browser and then use this graphical tool to setup a configuration file for the transcoder (and additionally the server).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_basic===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This is the base configuration from which the other configuration examples are based and this will get a sc_trans instance running and making a connection to a local instance of sc_serv (see [[SHOUTcast_DNAS_Server_2#sc_serv_basic|sc_serv2.txt - section 9.1]] about the sc_serv_basic configuration file).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_capture===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_trans_basic configuration to get a sc_trans instance running as a capture device '''e.g.''' from a microphone. This shows the use of the 'include' option ([[#Miscellaneous|see section 3.9]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_dj===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_trans_basic configuration to get a sc_trans instance running with the ability to accept DJ connections using both a SHOUTcast 2 source and a legacy SHOUTcast 1 source in addition to how calendar.xml files are used to control DJ access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_playlist===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_trans_basic configuration to get a sc_trans instance running with the ability to schedule a jingle to play around 20 minutes and 40 minutes past the hour as well as to schedule a different playlists to be played in the evening and also on the weekend. This example shows of some of the features of the event system and how it is possible to automate playlist changes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_debug===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file can be included in any other configuration files to allow you to get debug logging output when trying to investigate any issues you may be experiencing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_simple===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Use this if you just need to get a very basic transcoder running or are impatient&lt;br /&gt;
 or are struggling to get it running despite the previous example configurations.&lt;br /&gt;
&lt;br /&gt;
This configuration file is designed to be used just as is and is the simplest form of the configuration file you can have which will allow you to get a running transcoder to work with an instance of the server on the same machine.&lt;br /&gt;
&lt;br /&gt;
This works by assuming default settings of the transcoder and that the server has been properly configured to work as this configuration uses the 'inheritconfig' option to get some of the passwords and other configuration details directly needed for the transcoder to work with the server instance by using sc_serv_simple.conf (see [[SHOUTcast_DNAS_Server_2#sc_serv_simple|sc_serv2.txt - section 9.5]]) or change this to reference a known server configuration you want to use this with.&lt;br /&gt;
&lt;br /&gt;
All you need to do when using this configuration file is to:&lt;br /&gt;
&lt;br /&gt;
* Edit the playlist file to be used (as referenced in the playlistfile entry)&lt;br /&gt;
* Setup the required encoder options including entering the MP3 unlock code by filling in 'unlockkeyname' and 'unlockkeycode' entries if using MP3 decoding ([[#Registering_for_MP3_Stream_Encoding|section 2.5]] has details on why this is required and how to obtain the unlock key and code)&lt;br /&gt;
* Change the stream information details as appropriate&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Transcoder_2</id>
		<title>SHOUTcast DNAS Transcoder 2</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Transcoder_2"/>
				<updated>2022-10-06T10:31:17Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
'''&lt;br /&gt;
The Shoutcast Transcoder (sc_trans) is no longer maintained or supported.&lt;br /&gt;
This documentation remains here for legacy purposes only.'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This document shows you the different configuration options supported by sc_trans along with basic and more advanced example configurations enabling you to get started with using sc_trans and the various features it can offer.&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
&lt;br /&gt;
To get started using sc_trans you need to have some media to play or to have a stream you want to relay via sc_trans. With a 'source' you can use then you will need to setup your configuration file for the transcoder so it can process the input source and provide an output which can be used by the DNAS server (see [[SHOUTcast_DNAS_Server_2|sc_serv2.txt]] in the sc_serv distribution for more details especially those for stream configurations as non-matching details will prevent sc_trans from being able to connect to it).&lt;br /&gt;
&lt;br /&gt;
The following sections will show how to get sc_trans up and running along with details on the configuration options it provides for handling different sources and outputs it can support.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Running The Transcoder===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The transcoder is able to be run either as a console application or it can be run as service (Windows) or daemon (Linux / Mac OS X / BSD). Detailed below is how to get the transcoder running on the different operating systems supported by it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The Windows version of sc_trans is designed to run on fully updated and patched versions of Windows 2000, XP, Vista and Windows 7.&lt;br /&gt;
&lt;br /&gt;
Please note that the Windows versions of sc_trans are built with a dependency against the Microsoft Visual C++ 2008 SP1 Redistributable Package. If sc_trans is unable to start due to a dependency issue then you will need to install the correct version of the package so it can run which depends on the version of sc_trans you are attempting to run:&lt;br /&gt;
&lt;br /&gt;
32-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&lt;br /&gt;
&lt;br /&gt;
64-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ba9257ca-337f-4b40-8c14-157cfdffee4e&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Install as a Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_trans.exe install &amp;lt;servicename&amp;gt; &amp;lt;username&amp;gt; &amp;lt;password&amp;gt; &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service&lt;br /&gt;
 Typically enter this as 'sc_serv' though you can use a different name but you will need&lt;br /&gt;
 to remember it as it is required to be the same when using the 'uninstall' mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;username&amp;gt; - User under which to run the service as or '0' for the local system&lt;br /&gt;
&lt;br /&gt;
&amp;lt;password&amp;gt; - Password for user or '0' for the local system or with no password&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file&lt;br /&gt;
 If no file / an invalid file is specified then sc_trans will abort loading.&lt;br /&gt;
&lt;br /&gt;
When run as a service there is not a good sense of a current working directory so requires all paths in the configuration and playlist files to be fully qualified otherwise lookups will fail when sc_serv is run.&lt;br /&gt;
&lt;br /&gt;
To run sc_serv with a configuration file in the same folder as the server as the current system user account you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_trans.exe install sc_trans 0 0 sc_trans.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Uninstall the Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_trans.exe uninstall &amp;lt;servicename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service as used when the service was registered&lt;br /&gt;
&lt;br /&gt;
To uninstall sc_serv assuming it was installed as detailed in the install section above then you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_trans.exe uninstall sc_trans&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Service in the Console====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_trans.exe &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_trans will abort loading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Linux / Mac OS X / BSD===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Remember to enable the required access on the sc_trans file by doing 'chmod a+x sc_trans' after extracting it from the distribution file otherwise the OS is likely to not run it and show the error message './sc_trans: Permission denied'.&lt;br /&gt;
&lt;br /&gt;
====Run as a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_trans daemon &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (required in all cases)&lt;br /&gt;
 If no file / an invalid file is specified then sc_trans will abort loading.&lt;br /&gt;
&lt;br /&gt;
'''e.g.'''&lt;br /&gt;
    ./sc_trans daemon ./sc_trans.conf&lt;br /&gt;
&lt;br /&gt;
When run this should output the following:&lt;br /&gt;
&lt;br /&gt;
'sc_trans going daemon with PID [XXXX]' where XXXX is the &amp;lt;pid&amp;gt; of the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====End a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
kill -SIGTERM &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -15 &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -s TERM &amp;lt;pid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pid&amp;gt; - The PID of the daemon instance (reported when the daemon started or can be found with 'ps ax | grep sc_serv' as long as sc_serv was the file run otherwise you can just use 'ps ax' if the filename isn't known). Additionally the PID of sc_trans is listed in the log file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_trans &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_trans will abort loading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Additional Signals===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
When run on Linux / Mac OS X / BSD then some additional signals are supported to allow for additional control over the running daemon instance of sc_trans.&lt;br /&gt;
&lt;br /&gt;
The following signals can be used with the 'kill' command (in the manner of your choosing for using the kill command) along with the &amp;lt;pid&amp;gt; of the daemon instance to do one of the following actions:&lt;br /&gt;
&lt;br /&gt;
 SIGKILL   -  Stops sc_trans (also SIGTERM, SIGINT and SIGQUIT will work)&lt;br /&gt;
 SIGHUP    -  Rotates logfile&lt;br /&gt;
 SIGWINCH  -  Skips to next song in playlist&lt;br /&gt;
 SIGUSR1   -  Reload playlist&lt;br /&gt;
 SIGUSR2   -  Toggle playlist shuffle&lt;br /&gt;
&lt;br /&gt;
The result of SIGHUP is that the current log file contents will be moved into &amp;lt;logfile&amp;gt;_1 '''e.g.''' sc_trans_1.log, &amp;lt;logfile&amp;gt;_1 will be moved into &amp;lt;logfile&amp;gt;_2 '''e.g.''' sc_trans_2.log and so on for all log files which can be found which match the current log file's name. This is useful if timed to have it create day specific log files.&lt;br /&gt;
&lt;br /&gt;
 These signals are not supported by the Windows version of sc_trans which will only&lt;br /&gt;
 respond to the Ctrl + C / Ctrl + Break / console close commands the OS provides.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Registering for MP3 Stream Encoding===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In order for compliance with all broadcasting laws there is a legal requirement for the need to purchase an MP3 license key in-order to be able to encode your stream in MP3 (see [[#MP3_Encoding|section 3.10]] for the related configuration entries). The license key should cost $5.&lt;br /&gt;
&lt;br /&gt;
To obtain the license key you need to go to the following page which will takes you to a secure page for purchasing the MP3 encoding license key:&lt;br /&gt;
    http://shop.winamp.com/servlet/PromoServlet/promoID.48873700&lt;br /&gt;
&lt;br /&gt;
Once the license key has been obtained (this should be a quick process only taking a few minutes when done) then you just need to add the 'name' and 'key' you have obtained into the 'unlockkeyname' and 'unlockkeycode' values in your configuration file (see [[#MP3_Encoding|section 3.10]]) and to change the 'encoder' type for the stream(s) you require from 'aacp' to 'mp3' to use it (see [[#Encoder_Options|section 3.4]]).&lt;br /&gt;
&lt;br /&gt;
So if your key is '123456' and you have used 'Bob Cratchit' as the registered name during the billing process, you would add the following to your configuration file:&lt;br /&gt;
    unlockkeyname=Bob Cratchit&lt;br /&gt;
    unlockkeycode=123456&lt;br /&gt;
&lt;br /&gt;
If the details do not exactly match then the Transcoder will show a message and will not allow the encoding of MP3 streams until the configuration issue has been resolved. The common cause for failure is not entering the '''unlockkeyname''' exactly as specified for the billing name of the method used during the purchase.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Why Does AAC Encoding Not Require a License Key?====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Encoding to an AAC stream does also require a license like the MP3 encoding though this has already been paid for you so there is no need for you to do so yourself when using sc_trans. This setup may seem strange but it is just how things happen with the different nature of licensing encoding of the AAC and MP3 formats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported File Formats===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
As sc_trans does transcoding of audio from one format to another for then being fed to a server or another sc_trans instance as a relay, the following file extensions are handled as valid input file sources:&lt;br /&gt;
&lt;br /&gt;
 MP3 + MPEG (treated as mp3)&lt;br /&gt;
 WAV (uncompressed)&lt;br /&gt;
 OGG&lt;br /&gt;
 FLAC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration File==&lt;br /&gt;
&lt;br /&gt;
Here you can find a complete list of all of the configuration options which are provided by sc_trans which ranges from logging to networking configuration to control over how the media is encoded before transmission to the server.&lt;br /&gt;
&lt;br /&gt;
The entries stored in the configuration file are processed case insensitively.&lt;br /&gt;
&lt;br /&gt;
Configuration entries labelled as ''&amp;lt;MULTI&amp;gt;'' can be used to set up specific encoder types or for specifying multiple playlists for use with the calendar system. These are specified by adding _# to the end of the option's name as shown below where # begins with one. If you are only working with a single instance then you do not need to add the _# part as&lt;br /&gt;
any instances of a configuration option will assume it is for _1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;MULTI&amp;gt;'' system is not hierarchical and all values beyond the default must be specified for all connections. So for example, if you wanted to connect to two servers on the same port you must do:&lt;br /&gt;
&lt;br /&gt;
    encoder_1=aacp&lt;br /&gt;
    encoder_2=mp3&lt;br /&gt;
    bitrate_1=32000&lt;br /&gt;
    bitrate_2=32000&lt;br /&gt;
&lt;br /&gt;
Note that you CANNOT do it like this as it leads to not all values being set:&lt;br /&gt;
&lt;br /&gt;
    encoder_1=aacp&lt;br /&gt;
    encoder_2=mp3&lt;br /&gt;
    bitrate=32000&lt;br /&gt;
&lt;br /&gt;
The configuration files also allow for notes or options to be disabled by the use of a comma (;) at the start of a line which can be seen in all of the configuration examples.&lt;br /&gt;
&lt;br /&gt;
Known options in the configuration files are recognised irrespective of the case they are entered in the configuration file so djport and dJpOrT will be handled the same way.&lt;br /&gt;
&lt;br /&gt;
Any items found in the configuration file which are not known (as detailed in following sections) or is not processed as a comment will be reported in the following manner:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;date + time&amp;gt; W msg:[CONFIG] Invalid item on line XX&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;date + time&amp;gt; is the date and time the event happens at and XX is the line in the configuration file where the error has been found to occur at.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Administration===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''adminport''' : Specify the port used to access the administrative control page    ''[Default = 0]''&lt;br /&gt;
 If no valid port is specified (i.e. zero) then this feature is disabled.&lt;br /&gt;
&lt;br /&gt;
'''adminuser''' : Specify the username used to access the administrative control page    ''[Default = admin]''&lt;br /&gt;
&lt;br /&gt;
'''adminpassword''' : Specify the password to access the administrative control page    ''[Default = goaway]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Calendar Events===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''calendarfile''' : Specify the path to the xml based calendar file    ''[Default = calendar.xml]''&lt;br /&gt;
&lt;br /&gt;
'''calendarrewrite''' : Re-write the 'calendar file' on exit    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
Note: See [[SHOUTcast_Calendar_Event_XML_File_Specification|calendarxml.txt]] for more information on the event format and what it allows you to do with playlist, DJ and relay access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===DJ Support===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''djport''' : Specify the port to listen on for DJ access using the SHOUTcast 1 protocol    ''[Default = 0 (no listening)]''&lt;br /&gt;
 This will actually open 'djport + 1' as the listening port.&lt;br /&gt;
&lt;br /&gt;
'''djport2''' : Specify the port to listen on for DJ access using the SHOUTcast 2 protocol    ''[Default = 0 (no listening)]''&lt;br /&gt;
&lt;br /&gt;
Note: It is possible to use 'djport' and 'djport2' at the same time though you need to ensure that there is no overlap of the ports used in what is specified.&lt;br /&gt;
&lt;br /&gt;
This is because 'djport2' will open the port specified unlike 'djport' which opens 'djport + 1' (as is the way with SHOUTcast 1 connections). Keep this in mind as you would not be able to do the following as it causes a duplication of the port being opened (901 in this case) :&lt;br /&gt;
 djport=900    ; i.e. will open port 901&lt;br /&gt;
 djport2=901&lt;br /&gt;
Whereas this would work as we are opening two different ports (901 + 902):&lt;br /&gt;
 djport=900&lt;br /&gt;
 djport2=902&lt;br /&gt;
&lt;br /&gt;
'''djcipher''' : Specify the key used to obfuscate the initial handshaking with the SHOUTcast 2 protocol    ''[Default = foobar]''&lt;br /&gt;
 This is a YP2 feature and it matches the 'uvoxcipherkey' value in&lt;br /&gt;
 the sc_serv configuration file (see [[SHOUTcast_DNAS_Server_2#YP_Server_Behaviour|sc_serv2.txt - section 4.14]]).&lt;br /&gt;
&lt;br /&gt;
Only change this if you really need to do so as not all SHOUTcast 2 clients will allow you to edit this value from the default value. If using the Source DSP plug-in then see [[Source_DSP_Plug-in#SHOUTcast_2_Cipher_Key|dsp_sc.txt - section 5.0]] for details on how to change the plug-in to use a differnet value.&lt;br /&gt;
&lt;br /&gt;
'''autodumpsourcetime''' : Specify the maximum idle time for the DJ in seconds before being disconnected    ''[Default = 30]''&lt;br /&gt;
&lt;br /&gt;
'''djbroadcasts''' : Specify the directory in which DJ broadcasts will be recorded into    ''[Default = recorded\ or recorded/ - relative to sc_trans[.exe] ]''&lt;br /&gt;
&lt;br /&gt;
'''djcapture''' : Enable to allow the recording of the DJ broadcast    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''djfilepattern''' : Specify how the DJ archive filenames will be created in the form of &amp;lt;djname&amp;gt;&amp;lt;date time pattern&amp;gt;suffix    ''[Default = _%Y_%m_%d_%H_%M_%S. (year_month_day_hour_minute_second)]''&lt;br /&gt;
 The date and time information are formatted using strftime().&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each DJ):&lt;br /&gt;
&lt;br /&gt;
'''djlogin''' : Specify the username required for the DJ to get access    [Default = dj]&lt;br /&gt;
 When connecting as a SHOUTcast 1 source the password has to be specified as &amp;lt;djlogin&amp;gt;:&amp;lt;djpassword&amp;gt;  '''e.g.'''  dj:noise&lt;br /&gt;
&lt;br /&gt;
'''djpassword''' : Specify the password required for the DJ to get access    ''[Default = noise]''&lt;br /&gt;
&lt;br /&gt;
'''djpriority''' : Specify the priority for the DJ when multiple DJ's are connected    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Encoder Options===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each encoder):&lt;br /&gt;
&lt;br /&gt;
'''encoder''' : Specify the encoder to use, either (mp3 or aacp)    ''[Default = aacp]''&lt;br /&gt;
&lt;br /&gt;
'''bitrate''' : Specify the encoding bitrate in bits per second    ''[Default = 96000]''&lt;br /&gt;
&lt;br /&gt;
'''samplerate''' : Specify the encoding sample rate to use    ''[Default = 44100]''&lt;br /&gt;
&lt;br /&gt;
'''channels''' : Specify the number of channels to encode    ''[Default = 2]''&lt;br /&gt;
&lt;br /&gt;
'''mp3quality''' : Specify the MP3 encoder quality to use when encoding    ''[Default = 0]''&lt;br /&gt;
Available options are :&lt;br /&gt;
 0 - fast (preferred)&lt;br /&gt;
 1 - high quality (changes sample rate and does additional filtering)&lt;br /&gt;
&lt;br /&gt;
'''mp3mode''' : Specify the MP3 encoder mode (CBR / VBR) to use when encoding    ''[Default = 0]''&lt;br /&gt;
Available options are :&lt;br /&gt;
 0 - CBR&lt;br /&gt;
 1 - VBR High Quality&lt;br /&gt;
 2 - &lt;br /&gt;
 3 - VBR Medium Quality &lt;br /&gt;
 4 - &lt;br /&gt;
 5 - VBR Low Quality]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Flash Security===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''flashpolicyfile''' : Specify the name of file which contains the flash crossdomain policies    ''[Default = crossdomain.xml]''&lt;br /&gt;
&lt;br /&gt;
'''flashpolicyserverport''' : Specify the port used for the flash policy server    ''[Default = 0]''&lt;br /&gt;
 Specify '843' if you want to turn this on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Live Capture===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''capture''' : Enable to allow the use of live capture as an input    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''capturedevice''' : Specify the OS dependent device used for capture    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''captureinput''' : Specify the OS dependent input used for capture    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''capturesamplerate''' : Specify the sample rate used for capture    ''[Default = 44100]''&lt;br /&gt;
&lt;br /&gt;
'''capturechannels''' : Specify the number of channels to capture    ''[Default = 2]''&lt;br /&gt;
&lt;br /&gt;
Note: When run under Windows on an operating system newer than XP there is a possibility for the device name obtained from Windows to be longer than 32 characters. This is a problem as the api's used only support device names upto 31 characters in length so sc_trans will attempt to clip the device name specified with 'capturedevice' to 31 characters to try to get a match with the devices the OS is reporting.&lt;br /&gt;
&lt;br /&gt;
If you are having issues with the live capture then add 'capturedebug=1' to allow you to see the device names reported back to sc_trans by the OS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Logging Options===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''log''' : Enable logging of the transmission output    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''screenlog''' :  Enable logging of output to the console    ''[Default = 1]''&lt;br /&gt;
 If log=0 or when running this as a daemon / service then this option is ignored as it is not applicable.&lt;br /&gt;
&lt;br /&gt;
'''logfile''' : Specify a different logfile to save the transmission logs into    ''[Default = %temp%\sc_trans.log or /tmp/sc_trans.log]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the logs into then you need to ensure that the&lt;br /&gt;
 folder already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Metadata Control===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''streamtitle''' : Specify the general name for the radio station or stream    ''[Default - Misc]''&lt;br /&gt;
&lt;br /&gt;
'''streamurl''' : Specify the url of the radio station or stream    ''[Default = &amp;lt;nowiki&amp;gt;http://www.shoutcast.com&amp;lt;/nowiki&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''genre''' : Specify the genre for the radio station or stream    ''[Default - N/A]''&lt;br /&gt;
&lt;br /&gt;
'''aim''' : Specify the AIM contact ID to show for the radio station or stream    ''[Default - N/A]''&lt;br /&gt;
&lt;br /&gt;
'''irc''' : Specify the IRC contact ID to show for the radio station or stream    ''[Default - N/A]''&lt;br /&gt;
&lt;br /&gt;
'''icq''' : Specify the ICQ contact ID to show for the radio station or stream    ''[Default - N/A]''&lt;br /&gt;
&lt;br /&gt;
'''public''' : Enable to register the radio station or stream with the YP (shoutcast.com)    ''[Default = 0]''&lt;br /&gt;
 If connected to sc_serv then this is used by the 'publicserver' value&lt;br /&gt;
 unless it is being overriden (see [[SHOUTcast_DNAS_Server_2#YP_Server_Behaviour|sc_serv2.txt - section 4.14]]).&lt;br /&gt;
&lt;br /&gt;
'''usemetadata''' : Enable to use use the in file metadata i.e. stored in file tags    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''metadatapattern''' : Specify the pattern used for extracting metadata from the filename    ''[Default = *\%N.* or */%N.*]''&lt;br /&gt;
 See [[#Filename_Metadata_Extraction|section 6.0]] for more details about this)&lt;br /&gt;
&lt;br /&gt;
'''displaymetadatapattern''' : Specify a pattern to use to form the metadata output string for SHOUTcast 1 metadata    ''[Default = %R[ - ]%N]''&lt;br /&gt;
&lt;br /&gt;
'''nextlookahead''' : Specifies the number of tracks ahead of the current track playing to be reported in the stream's metadata to the server    ''[Default = 3]''&lt;br /&gt;
 This is the maximum limit attempted to be reported and will vary based on the source in use&lt;br /&gt;
 e.g. if there enough entries in the current playlist being played. Setting to zero will disable this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''configrewrite''' :  Re-write the 'config file' on exit    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''timemultiplier''' : Used to shift reported time in certain uses    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''inheritconfig''': Specify the path of the sc_serv2 configuration file for the instance you want to use the transcoder with    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
The aim of this option is to make it easier to get an instance of sc_trans to run with sc_serv by ensuring that any passwords, etc match up. By using this, option any of the configuration options already set in the sc_trans config file (see below) will be replaced by those found in the sc_serv configuration file.&lt;br /&gt;
&lt;br /&gt;
The configuration options read from the sc_serv2 configuration file including what they are mapped from in the sc_serv2 value to the sc_trans value are:&lt;br /&gt;
&lt;br /&gt;
* '''portbase -&amp;gt; serverport'''&lt;br /&gt;
* '''password -&amp;gt; password''' - Master source password overriden by streampassword&lt;br /&gt;
* '''streampassword -&amp;gt; password'''&lt;br /&gt;
* '''uvoxcipherkey -&amp;gt; djcipher'''&lt;br /&gt;
* '''srcip -&amp;gt; serverip'''  -  Will use the ip set unless is empty or srcip=any&lt;br /&gt;
* '''yp2 -&amp;gt; outprotocol''' - Sets outprotocol=1 if with yp2=0 otherwise it sets outprotocol=3 as a v2 DNAS is assumed to be used and if found to be v1 configuration then outprotocol=1&lt;br /&gt;
&lt;br /&gt;
Additionally this mode will attempt to read configurations from a v1 DNAS file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''include''' : Specify an additional include file containing settings to be processed from the current point in the main configuration file    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
Note: You can do multiple calls of this allowing for a basic configuration file with then 'specific' encoder configurations set in individual conf files though you need to ensure not to include a reference to the same file in itself.&lt;br /&gt;
&lt;br /&gt;
'''serverbackupfile''' : Set the server side file for broken connection playback    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''serverintrofile''' : Set the server side file that is played when a user connects    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
Note: With both of these options, they will override any files specified in the sc_serv's configuration file and also requires 'outprotocol=3' for it to be supported (see [[#Network_Options|section 3.11]] for the options 'outprotocol' supports).&lt;br /&gt;
&lt;br /&gt;
Additionally when connecting to sc_serv via sc_trans, the server intro and backup files as specified in sc_servs configuration file (see [[SHOUTcast_DNAS_Server_2#Introduction_and_Backup_Files|sc_serv2.txt - section 4.5]]) will not be played so you need to specify them in the sc_trans configuration if required for the stream (this is a quirk of how sc_serv currently works).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MP3 Encoding===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''unlockkeyname''' : Specify the name to use to unlock mp3 encoding (case sensitive)&lt;br /&gt;
&lt;br /&gt;
'''unlockkeycode''' : Specify the code associated with name to unlock mp3 encoding&lt;br /&gt;
&lt;br /&gt;
 Due to licensing requirements for MP3 encoding see [[#Registering_for_MP3_Stream_Encoding|section 2.5]]&lt;br /&gt;
 for how to obtain the key required for unlocking MP3 encoding in sc_trans.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Network Options===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each connection):&lt;br /&gt;
&lt;br /&gt;
'''endpointname''' : Specify the name of the endpoint    ''[Default - &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: This is used to identify the encoder such as when using the AJAX api interfaces and if not specified then sc_trans creates a default name as 'endpointX' where 'X' is the encoder index starting at one. See [[SHOUTcast_Transcoder_AJAX_api_Specification|sc_trans_ajax_api.txt]] for more information on the use of this.&lt;br /&gt;
&lt;br /&gt;
'''outprotocol''' : Specify the server protocol to use    ''[Default = 1]''&lt;br /&gt;
This can be:&lt;br /&gt;
 1 = SHOUTcast 1 (Legacy)&lt;br /&gt;
 2 = Ultravox (Ultravox 2.0)&lt;br /&gt;
 3 = SHOUTcast 2 (Ultravox 2.1)&lt;br /&gt;
&lt;br /&gt;
'''serverip''' : Specify the IP address of server to connect to    ''[Default - &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: If 'srcip' has been set to a value other than 'any' in the sc_serv configuration then you need to set it for you sc_trans configuration otherwise sc_serv will not see the sc_trans connection attempts (see [[SHOUTcast_DNAS_Server_2#Client_Behaviour|sc_serv2.txt - section 4.2]]).&lt;br /&gt;
                 &lt;br /&gt;
Additionally, you will need to make sure that any IP added is valid and can be fully resolved otherwise the connection to the sc_serv instance is very likely to fail.&lt;br /&gt;
&lt;br /&gt;
'''serverport''' : Specify the server port used to connect to    ''[Default = 8000]''&lt;br /&gt;
 This should relate to the 'portbase' value set in sc_serv's configuration (see [[SHOUTcast_DNAS_Server_2#Networking|sc_serv2.txt - section 4.8]]).&lt;br /&gt;
&lt;br /&gt;
'''password''' : Specify the password used to connect to a DNAS server   ''[Default = foobar]''&lt;br /&gt;
 This matches the 'password' value in the sc_serv configuration file (see [[SHOUTcast_DNAS_Server_2#Networking|sc_serv2.txt - section 4.8]]) or 'streampassword' (see [[SHOUTcast_DNAS_Server_2#Stream_Configuration|sc_serv2.txt - section 4.12]] - this only applies for v2 DNAS servers).&lt;br /&gt;
&lt;br /&gt;
'''streamid''' : Specify the stream identifier for the SHOUTcast 2 connection    ''[Default = 1]''&lt;br /&gt;
 This relates to the 'streamid' value in the sc_serv configuration (see [[SHOUTcast_DNAS_Server_2#Networking|sc_serv2.txt - section 4.8]]).&lt;br /&gt;
&lt;br /&gt;
'''uvoxuserid''' : Specify the user ID for accessing SHOUTcast 2 (Ultravox 2.1)    ''[Default - &amp;lt;no value&amp;gt;]''&lt;br /&gt;
 This is currently not used and is provided for future usage.&lt;br /&gt;
&lt;br /&gt;
Note: If ''''requirestreamconfigs'''' is enabled in the sc_serv configuration (see [[SHOUTcast_DNAS_Server_2#Stream_Configuration|sc_serv2.txt - section 4.12]]) then you need to ensure that the 'streamid' value used in your sc_trans configuration exists in the sc_serv configuration along with any endpoint, password and other values appropriate to the 'streamid' matched with the equivalent sc_serv configuration values.&lt;br /&gt;
&lt;br /&gt;
'''uvoxradiometadata''' : Enable to send the older AOL Radio style metadata to the server    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''uvoxnewmetadata''' : Enable to send SHOUTcast 2 style metadata to the server    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''uvoxmetadatafudgefactor''' : Specify the delaying factor for Ultravox metadata in seconds    ''[Default = 0.0]''&lt;br /&gt;
&lt;br /&gt;
'''shoutcastmetadatafudgefactor''' : Specify the delaying factor for SHOUTcast metadata in seconds    ''[Default = 0.0]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Playlist Control===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''playlistfile''' : Specify the name of playlist file to use    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''shuffle''' : Enable to allow shuffling of the specified playlist    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''xfade''' : Specify the number of seconds to do  for a crossfade    ''[Default = 1]''&lt;br /&gt;
 Specify xfade=0 to disable crossfade&lt;br /&gt;
&lt;br /&gt;
'''xfadethreshold''' : Specify the minimum duration in seconds a file must be to allow crossfading in and out on it    ''[Default = 10]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Priority playlists are those used to override the playing playlist once the current song has stopped playing. This can be useful if a sudden playlist / announcement is required.&lt;br /&gt;
&lt;br /&gt;
'''playlists''' : Specify the folder used for priority playlists    ''[Default = priority\ or priority/ - relative to sc_trans[.exe]]''&lt;br /&gt;
&lt;br /&gt;
'''archive''' : Specify the folder used for archiving playlists    ''[Default = priority\archived\ or priority/archived/ - relative to sc_trans[.exe]]''&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each additional playlist):&lt;br /&gt;
&lt;br /&gt;
'''playlistfilename''' - Used to build named collections of playlists    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''playlistfilepath''' - Used to build named collections of playlists    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
Note: These playlists are used as part of the &amp;lt;playlist&amp;gt; events in calendar.xml where the name set with 'playlistfilename_X' is used in the loading done. See [[SHOUTcast_Calendar_Event_XML_File_Specification#Playlist_Events|calendarxml.txt and section 3.2]] for more information on these events.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Replay Gain Control===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''applyreplaygain''' : Enable to honour the replay gain values stored in the file    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''defaultreplaygain''' : If no replay gain is in the file then apply this adjustment    ''[Default = 0.0]''&lt;br /&gt;
&lt;br /&gt;
'''djreplaygain''' : Specify the replay gain to be applied to DJ streams    ''[Default = 0.0]''&lt;br /&gt;
&lt;br /&gt;
'''capturereplaygain''' : Specify the replay gain to apply to the live capture input    ''[Default = 0.0]''&lt;br /&gt;
&lt;br /&gt;
'''calculatereplaygain''' : Enable to calculate the replay gain on the handled files    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''replaygaintmpdir''' : Specify the temporary directory for replay gain calculator to work in    ''[Default = (Windows = %TEMP FOLDER%  Linux = /tmp/)]''&lt;br /&gt;
&lt;br /&gt;
'''replaygainrunahead''' : Specify the number of tracks head start to give the replay gain calculator    ''[Default = 2]''&lt;br /&gt;
&lt;br /&gt;
'''replaygaindontwrite''' : Specify if the replay gain values calculated should NOT be written to the file    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''enhancereplaygain''' : Specify if the file has replay gain and it is being used, an additional amount of gain to add    ''[Default = 6.0]''&lt;br /&gt;
 Winamp ships with a default value to add -6dB to file which do not have replay gain.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===VU Image===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''vuimagedirectory''' : Specify the folder in which to look for vu images to use    ''[Default = &amp;quot;&amp;quot;]''&lt;br /&gt;
 The image files are named vuimage_XX.&amp;lt;vuimagesuffix&amp;gt; where 'XX' is from 0 to 100&lt;br /&gt;
 and the path specified will need to be properly terminated to work correctly.&lt;br /&gt;
&lt;br /&gt;
'''vuimagesuffix''' : Specify the suffix for vu images to be used from the image directory    ''[Default = png]''&lt;br /&gt;
&lt;br /&gt;
'''vuimagemimetype''' : Specify the mime type for vu images to be used    ''[Default = image/png]''&lt;br /&gt;
&lt;br /&gt;
Note: This controls the images available when using the 'vumeterleft' or 'vumeterright' webcommands (see [[#Supported_Weblet_Commands|section 4.1]]). Additionally sc_trans only allows for one active use of each webcommand from the current sc_trans instance with the most current attempt made being the active instance which will be updated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Debugging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In all cases, the default value is for no debug logging for the options listed below.&lt;br /&gt;
&lt;br /&gt;
'''shuffledebug''' : Enable to activate debug logging of playlist shuffling    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''shoutcastdebug''' : Enable to activate debug logging for SHOUTcast transmission    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''uvoxdebug''' : Enable to activate debug logging for SHOUTcast 2 (Ultravox 2.1) transmissions    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''gaindebug''' : Enable to activate debug logging for replay gain on playback    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''playlistdebug''' : Enable to activate debug logging for playlists    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''mp3encdebug''' : Enable to activate debug logging for MP3 encoding    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''mp3decdebug''' : Enable to activate debug logging for MP3 decoder    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''resamplerdebug''' : Enable to activate debug logging for the resampler    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''rgcalcdebug''' : Enable to activate debug logging for the replay gain calculator    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''apidebug''' : Enable to activate debug logging for the AJAX api    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''calendardebug''' : Enable to activate debug logging for the calendar events    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''capturedebug''' : Enable to activate debug logging for live capture    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''djdebug''' : Enable to activate debug logging for DJ management    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''flashpolicyserverdebug''' : Enable to activate debug logging for the flash policy server    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''fileconverterdebug''' : Enable to activate debug logging for the server side file converter    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''sourcerelaydebug''' : Enable to active debug logging for relayed sources    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''sourceandendpointmanagerdebug''' : Enable to activate debug logging for endpoint management    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Administration Weblet Commands==&lt;br /&gt;
&lt;br /&gt;
The transcoder supports web based control of the features it provides allowing for the remote control of sc_trans much like the DNAS (sc_serv2) supports. To enable the use of the administration interface you need to specify a port and related password and username as detailed in the Administration section ([[#Administration|see 3.1]]).&lt;br /&gt;
&lt;br /&gt;
Once enabled then options detailed in the following sections will become available though the main interface and controlling aspects are available via the 'api' command with more information provided on how to use it in [[SHOUTcast_Transcoder_AJAX_api_Specification|sc_trans_ajax_api.txt]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Weblet Commands===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following are the supported commands for the administration weblet the transcoder supports and are used in the following manner:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://&amp;lt;server_ip&amp;gt;:adminport/&amp;lt;command&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''quit''' : Will make sc_trans quit (equivalent of SIGKILL on non-Windows).&lt;br /&gt;
&lt;br /&gt;
'''rotatelogs''' : Will rotate the logs (equivalent of SIGHUP).&lt;br /&gt;
The result of this is that the current log file contents will be moved into &amp;lt;logfile&amp;gt;_1 '''e.g.''' sc_trans_1.log, &amp;lt;logfile&amp;gt;_1 will be moved into &amp;lt;logfile&amp;gt;_2 '''e.g.''' sc_trans_2.log and so on for all log files which can be found which match the current log file's name. This is useful if timed to have it create day specific log files.&lt;br /&gt;
&lt;br /&gt;
'''nextsong''' : Will advance to the next song (equivalent of SIGWINCH).&lt;br /&gt;
&lt;br /&gt;
'''loadplaylist''' : This will re-load the current playlist (equivalent of SIGUSR1).&lt;br /&gt;
&lt;br /&gt;
'''toggleshuffle''' : Use to toggle the current playlist shuffle state (equivalent of SIGUSR2).&lt;br /&gt;
&lt;br /&gt;
'''kickdj?duration=hh:mm:ss''' : You can specify an amount of time for how long to kick the current DJ for. If a duration is not set i.e. just using 'kickdj', then this will defaults to 15 minutes (00:15:00). If a duration is specified then all three fields of 'hh:mm:ss' must be specified even if their value is zero (ie 01:30:30).&lt;br /&gt;
&lt;br /&gt;
'''restart''' : Restart the current sc_trans instance.&lt;br /&gt;
&lt;br /&gt;
'''vumeterleft''' or '''vumeterright''' : This will initiate a server side image push that represents the vu levels as long as there are images are available to sc_trans to use for this (see [[#VU_Image|section 3.14]]).&lt;br /&gt;
&lt;br /&gt;
'''vu.bin''' : This will return a continuous stream of type 'misc/sc-vu' as long as sc_trans is transcoding. The format of the stream is:&lt;br /&gt;
 0xa5 leftVal rightVal 0xa5 leftVal ..... etc&lt;br /&gt;
&lt;br /&gt;
If the audio signal is mono there is no right val and you get:&lt;br /&gt;
 0xa5 leftVal 0xa5 leftVal .... etc&lt;br /&gt;
&lt;br /&gt;
'''writeconfig''' : This will write out the currently stored configuration and event details to the respective configuration and calendar.xml file. You will need to ensure that you have specified valid files in the configuration options for these files otherwise they won't be saved correctly and any changes may be lost.&lt;br /&gt;
&lt;br /&gt;
'''crossdomain.xml''' : This will return the current copy of crossdomain.xml as set with 'flashPolicyFile' ([[#Flash_Security|see section 3.5]]).&lt;br /&gt;
&lt;br /&gt;
'''timeshift?t=#''' : [EXPERIMENTAL] This applies a time shift to the audio though the default is to have no shift (i.e. t=0). This should not be used unless you know what it does (added for specific Aol use).&lt;br /&gt;
&lt;br /&gt;
'''api''' : This is the point from where you can make use of the AJAX api which sc_trans offers and is used as a POST method. For more information on the parameters and options supported see [[SHOUTcast_Transcoder_AJAX_api_Specification|sc_trans_ajax_api.txt]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Metadata Support==&lt;br /&gt;
&lt;br /&gt;
As detailed in [[#Metadata_Control|section 3.8]] there are a number of ways to allow for the use of metadata from the files being played though there are certain limits to this support for different file formats currently supported by sc_trans as detailed in the following sections.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MP3 Files===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
There is support for ID3v1 and ID3v2 tags. With ID3v2 there is support of version 3 and 4 of the specification though there are the following limitations:&lt;br /&gt;
# Unsynch data is not supported&lt;br /&gt;
# Compressed frames are not supported&lt;br /&gt;
# Encrypted frames are not supported&lt;br /&gt;
# Appended v4 frames are not supported&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===FLAC and OGG Files===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
There is support of the native metadata (Vorbis comment tags). Metadata read from these files are mapped to expected values which SHOUTcast expects to get. For more information see [[SHOUTcast_XML_Metadata_Specification|sc2_xml_metadata.txt]] for details on the various field mappings applied.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Filename Metadata Extraction==&lt;br /&gt;
&lt;br /&gt;
The transcoder along with being able to make use of the metadata from files is also able to attempt to extract metadata from the filepath of the files by use of a template.&lt;br /&gt;
&lt;br /&gt;
Guessing of the metadata from the filename will happen if 'usemetadata=0' is set in your configuration file (default behaviour is to use the file tag) or if no tag is detected in the file. For the best experience it is always best to ensure any files you use have tags and the required metadata in them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Filename Metadata Extraction Pattern===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The 'metadataPattern' setting is used to specify the pattern used to extract metadata from a filename if there is no detected metadata or 'usemetadata=0'.&lt;br /&gt;
&lt;br /&gt;
The default pattern used is *\%N.* (Windows) and */%N.* (all other OSes). The following are the formatting options which are supported in the pattern:&lt;br /&gt;
 %N = Song name&lt;br /&gt;
 %G = Genre&lt;br /&gt;
 %A = Album&lt;br /&gt;
 %R = Artist&lt;br /&gt;
 %Y = Four digit year&lt;br /&gt;
 %# = Sequence of digits&lt;br /&gt;
 %% = % character&lt;br /&gt;
 [] = Brackets optional elements (no nesting)&lt;br /&gt;
 *  = String&lt;br /&gt;
 Other characters are matched exactly as found.&lt;br /&gt;
&lt;br /&gt;
The pattern matching is done working from the right to the left.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Filename Metadata Extraction Examples===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following examples show the metadata pattern matching working.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Example #1====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 metadataPattern = */%R/%Y%A/Audio/[%#_]%N.*&lt;br /&gt;
 filepath = /home/songs/Mask and Wig/1969 Irreverance Of Things Past/Audio/03_The Royal Blues.mp3&lt;br /&gt;
&lt;br /&gt;
Extracted metadata result:&lt;br /&gt;
 ALBUM = Irreverance Of Things Past&lt;br /&gt;
 ARTIST = Mask and Wig&lt;br /&gt;
 SONG = The Royal Blues&lt;br /&gt;
 YEAR = 1969&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Example #2====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 metadatapattern = */%A/[%R_]%N&lt;br /&gt;
 filepath = /home/album/song&lt;br /&gt;
&lt;br /&gt;
Extracted metadata result:&lt;br /&gt;
 ALBUM = album&lt;br /&gt;
 SONG = song&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====6.2.3   Example #3====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 metadatapattern = */%A/%R_%N&lt;br /&gt;
 filepath = /home/album/artist_song&lt;br /&gt;
&lt;br /&gt;
Extracted metadata result:&lt;br /&gt;
 ALBUM = album&lt;br /&gt;
 ARTIST = artist&lt;br /&gt;
 SONG = song&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===File Metadata Construction For SHOUTcast 1===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You can specify how metadata elements are concatenated together to from the SHOUTcast 1 metadata string by specifying the 'displaymetadatapattern' option.&lt;br /&gt;
&lt;br /&gt;
In a standard Winamp client install then it will expect the data in the equivalent format of '%R[ - ]%A[ - ]%N' and uses that format to parse the data. If you deviate from this or if the user has changed settings in their Winamp client then the results may not display properly with what is expected to be shown.&lt;br /&gt;
&lt;br /&gt;
The following token substitutions are made with 'displaymetadatapattern':&lt;br /&gt;
&lt;br /&gt;
 %N = Song name&lt;br /&gt;
 %A = Album name&lt;br /&gt;
 %R = Artist&lt;br /&gt;
 %G = Song genre&lt;br /&gt;
 %Y = song year&lt;br /&gt;
 %t = Station name (a.k.a. stream title a.k.a. icy-name)&lt;br /&gt;
 %u = Station url (a.k.a. icy-url)&lt;br /&gt;
 %g = Station genre (a.k.a. icy-genre)&lt;br /&gt;
&lt;br /&gt;
Characters in brackets are only displayed if the token substitution to the left of them did not result in the insertion of an empty string.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Playlists Support==&lt;br /&gt;
&lt;br /&gt;
The transcoder supports a playlist file to specify the file(s) to use when it is working and is a file with the .lst extension with one file per line. The file may be encoded in UTF-8 to allow for the support of non-english filenames, etc.&lt;br /&gt;
&lt;br /&gt;
Lines in the playlist beginning with a # will be ignored which allows you to disable a specific file or script in the playlist or comments on what is done.&lt;br /&gt;
&lt;br /&gt;
The playlist file will be processed until the end of the file is reached or until the parser comes across a line containing ###!EOF is detected.&lt;br /&gt;
&lt;br /&gt;
With versions of sc_trans prior to those from the end of 2010 there was a need to have a line break after the last entry in the playlist for them to be correctly recognised. This is no longer a requirement of the playlist format.&lt;br /&gt;
&lt;br /&gt;
Wildcards are supported in the processing of the folder contents though this will not do a recursion of any sub-folders within the specified folder '''e.g.'''  c:\music\*.mp3&lt;br /&gt;
&lt;br /&gt;
This will only find mp3 files in the 'music' folder and will not look in any sub-folders which may be inside the 'music' folder. For sub-folders to be included then you will need to explicitly specify the sub-folder for it to be recognised by the playlist loader.&lt;br /&gt;
&lt;br /&gt;
Additionally these entries can be intermixed with regular explicit entries '''e.g.'''&lt;br /&gt;
 c:\music\foo.mp3&lt;br /&gt;
 c:\music\otherstuff\*.mp3&lt;br /&gt;
 c:\music\bar.mp3&lt;br /&gt;
&lt;br /&gt;
Any entries which relate to file formats not supported (determined by the file extension) will be ignored from the playlist stored e.g. test.aac would not be used if read.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Playlist Formats===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The transcoder supports the following playlist file formats though is limited to use only the filepaths from the playlist formats which also provide additional title / metadata information in them:&lt;br /&gt;
&lt;br /&gt;
 Plain text file - this is the equivalent of a commentless M3U / M3U8 file&lt;br /&gt;
 PLS&lt;br /&gt;
 M3U&lt;br /&gt;
 M3U8 (UTF-8 encoded version of the M3U format)&lt;br /&gt;
&lt;br /&gt;
If a loaded playlist contains any entries with wildcards in them then the playlist loader will only attempt to find the matching files in the base folder specified and will not recurse into any sub-folders found. This is different to how Winamp for example (and any other programs) handles the loading of such entries where it would then recurse through any sub-folders found. This behaviour may change at a future time but is not guaranteed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Remote Applications===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
An additional feature of the transcoders playlist support is the ability to run remote applications in place of a fixed playlist line. This is done by starting a line with #! '''e.g.'''&lt;br /&gt;
 /music/foo.mp3&lt;br /&gt;
 #!/bin/perl /home/user/songfromDB.pl&lt;br /&gt;
 /music/bar.mp3&lt;br /&gt;
&lt;br /&gt;
The script run in this case should return the entry in the playlist to run at this point. The script is also passed an integer parameter indicating how many tracks ahead must also be returned by the script.&lt;br /&gt;
&lt;br /&gt;
By returning these extra tracks as well as the first one expected then this information will be used by YP2 to refine searching and also to establish a &amp;quot;coming soon&amp;quot; track which will be shown to clients or on the SHOUTcast site.&lt;br /&gt;
&lt;br /&gt;
So with this style of playlist handling, it is possible to have an external app running which will provide all of the files for sc_trans to process which could be of use if you have a specific requirement for when and how files are played.&lt;br /&gt;
&lt;br /&gt;
Additionally you can pair remote application actions together in such a manner:&lt;br /&gt;
 #!php call track script&lt;br /&gt;
 #!php call commercial script&lt;br /&gt;
&lt;br /&gt;
where this will alternate between the first and second scripts returning the file to be processed through sc_trans.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Additional Information===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Every entry in the playlist is run through a wildcard expander specific to the operating system the transcoder is being run on. Under *nix systems then glob() is used and for Windows systems FindFirstFile() is used to handle the wildcard.&lt;br /&gt;
&lt;br /&gt;
There are a number of scenarios to be considered for remote application entries in a playlist as detailed in the following list:&lt;br /&gt;
&lt;br /&gt;
# The standard out from the command is used as the name of the file to open.&lt;br /&gt;
# If the standard out is empty then the entry will be skipped.&lt;br /&gt;
# If the command returns an error code (non zero) then the entire playlist of which the entry is a member off will be considered to be finished.&lt;br /&gt;
# The data written to standard out should be encoded in the UTF-8 format and if returning multiple entries needs to be separated by a newline character.&lt;br /&gt;
# If only a single track name is returned by the remote application then the following values in the playlist will be used for &amp;quot;coming soon&amp;quot; calculations.&lt;br /&gt;
# If you return the requested number of additional tracks (passed in when it is run) then these will be used for &amp;quot;coming soon&amp;quot; calculations.&lt;br /&gt;
# If there are [ or ] in the filepath then for them to appear instead of being used as a filter, you will need to escape them normally as \[ and \] else it is often likely that the files will fail to load. This is more of an issue on non-Windows versions due to how the shell and expansion works.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==DJing Information==&lt;br /&gt;
&lt;br /&gt;
The DJ port (configuration option 'djport' or 'djport2') mimics the behaviour of sc_serv by allowing someone running another copy of sc_trans (or the Winamp DSP plug-in) to connect to your sc_trans and then to broadcast through it which effectively turns your sc_trans into a relay.&lt;br /&gt;
&lt;br /&gt;
The 'djport' or 'djport2' value (see [[#DJ_Support|section 3.3]] for more details setting this up) is the IP port you choose to have your sc_trans to listen on for an inbound DJ connection (by default this feature is not enabled).&lt;br /&gt;
&lt;br /&gt;
A simple example of this feature is if you have a friend who wants to do a show on your station. At the appropriate time they would start their own instance of sc_trans which will then connect to your instance as if it was a server. When the connection happens then your sc_trans instance will stop the current playlist playback and will crossfade into your friends show. Then when the show is over and the friend disconnects then your instance of sc_trans will crossfade back into the playlist from the point when the friend had connected.&lt;br /&gt;
&lt;br /&gt;
The DJ broadcast will also be copied to disk for later playback assuming that 'djcapture' has not been changed from the default settings though you can turn this feature off if required. See [[#DJ_Support|section 3.3]] for more available options.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Setting Up DJs In The New Scheme===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
DJ accounts are set up by using the 'djlogin', 'djpassword' and 'djpriority' options as shown in &amp;lt;MULTI&amp;gt; options under [[#DJ_Support|section 3.3]].&lt;br /&gt;
&lt;br /&gt;
If we have two DJs who we want to allow access into our system then we would have the following in our main configuration file (obviously in real use change the names and passwords to what you need):&lt;br /&gt;
&lt;br /&gt;
 djlogin_1=peter&lt;br /&gt;
 djpassword_1=foobar&lt;br /&gt;
 djpriority_1=4&lt;br /&gt;
 &lt;br /&gt;
 djlogin_2=paul&lt;br /&gt;
 djpassword_2=goaway &lt;br /&gt;
 djpriority_2=2&lt;br /&gt;
&lt;br /&gt;
The priority value is used if the scheduling allows for two different DJs to connect into the instance of sc_trans at the same time. If this did happen then the DJ with the higher priority will take precedence on the access made.&lt;br /&gt;
&lt;br /&gt;
Now that we have setup the DJs in our main configuration, we will need to setup access for them via the calendar.xml file scheduler ([[SHOUTcast_Calendar_Event_XML_File_Specification|see calendarxml.txt]]). In this example Peter is allowed access to sc_trans at any time whereas Paul is only allowed a connection to sc_trans on Tuesdays at 2am for an hour. Finally the shows Peter makes will not be saved whilst Paul's ones will be archived.&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;&lt;br /&gt;
    &amp;lt;eventlist&amp;gt;&lt;br /&gt;
      &amp;lt;event type=&amp;quot;dj&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;dj archive=&amp;quot;0&amp;quot;&amp;gt;peter&amp;lt;/dj&amp;gt;&lt;br /&gt;
        &amp;lt;calendar/&amp;gt;&lt;br /&gt;
      &amp;lt;/event&amp;gt;&lt;br /&gt;
      &amp;lt;event type=&amp;quot;dj&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;dj archive=&amp;quot;1&amp;quot;&amp;gt;paul&amp;lt;/dj&amp;gt;&lt;br /&gt;
        &amp;lt;calendar starttime=&amp;quot;02:00:00&amp;quot; duration=&amp;quot;01:00:00&amp;quot; repeat=&amp;quot;4&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/event&amp;gt;&lt;br /&gt;
    &amp;lt;/eventlist&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now everything is setup, all that is needed is to run sc_trans and for Peter and Paul to setup their setups (either via another sc_trans or Winamp + Source DSP for example) with the required login details and then they will be able to connect as set in the schedule.&lt;br /&gt;
&lt;br /&gt;
Note: When connecting as a SHOUTcast 1 source, the DJ must specify the login password in the form of &amp;lt;djlogin&amp;gt;:&amp;lt;djpassword&amp;gt;  '''e.g.'''  paul:goaway   If not done correctly then the DJ will not be able to connect. [[#DJ_Support|Section 3.3]] provides more information on the configuration values required.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Virtual Memory Footprint (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
Due to how sc_trans works it will create a large number of threads which may become an issue due to the default virtual memory stack allocation per thread potentially being large (typically 10MB per thread). For most people this should not be an issue as the memory is not really allocated unless it is used. If however if you have a resource constrained system or if you plan on running many copies of sc_trans then you could potentially run out of virtual memory.&lt;br /&gt;
&lt;br /&gt;
The default thread allocation can be reduced by issuing a &amp;quot;ulimit&amp;quot; command before running sc_trans and in the example reduces it to 512KB per-thread '''e.g.'''   ulimit -s 512&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Locale Error (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
If you receive the following error then you have a locale related issues:&lt;br /&gt;
&lt;br /&gt;
    terminate called after throwing an instance of 'std::runtime_error'&lt;br /&gt;
    what():  locale::facet::_S_create_c_locale name not valid&lt;br /&gt;
    Abort trap&lt;br /&gt;
&lt;br /&gt;
If this happens then you need to set the 'POSIX' locale in your terminal's environment values. If this does not happen then everything is fine or you are using a newer version of sc_trans from the end of 2010 which should no longer exhibit this issue.&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
    export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
BSD:&lt;br /&gt;
    setenv LC_ALL POSIX&lt;br /&gt;
&lt;br /&gt;
Mac OS X:&lt;br /&gt;
    export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
You can test to see if this has worked by checking the shell command &amp;quot;locale&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
    LANG=&lt;br /&gt;
    LC_COLLATE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_CTYPE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_MESSAGES=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_MONETARY=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_NUMERIC=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_TIME=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
    LC_ALL=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Configurations==&lt;br /&gt;
&lt;br /&gt;
Include as part of the sc_serv installation are a number of example configurations to get things started with using some of the features of the transcoder. The provided examples are:&lt;br /&gt;
&lt;br /&gt;
 sc_trans_basic.conf&lt;br /&gt;
 sc_trans_capture.conf&lt;br /&gt;
 sc_trans_dj.conf&lt;br /&gt;
 sc_trans_playlist.conf&lt;br /&gt;
 sc_trans_simple.conf&lt;br /&gt;
&lt;br /&gt;
All of the configuration examples are documented and will relate back to details in this file as appropriate. You will need to change some details in these example files or to obtain any applicable license keys for the setup you are making (see [[#Registering_for_MP3_Stream_Encoding|section 2.5]]).&lt;br /&gt;
&lt;br /&gt;
In all cases the examples are designed to work from the same install folder as sc_trans. &lt;br /&gt;
&lt;br /&gt;
Remember these examples are a way to get you up and running faster though you are still likely to have to adjust things depending upon the systems you are using and how you want to manage your sources and server connections which are covered in previous sections.&lt;br /&gt;
&lt;br /&gt;
Additionally if you are not happy with editing the files or find it still too confusing then you can use the configuration builder which (if installed) can be found in the 'config_builder'. Open 'config_builder.html' in your browser and then use this graphical tool to setup a configuration file for the transcoder (and additionally the server).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_basic===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This is the base configuration from which the other configuration examples are based and this will get a sc_trans instance running and making a connection to a local instance of sc_serv (see [[SHOUTcast_DNAS_Server_2#sc_serv_basic|sc_serv2.txt - section 9.1]] about the sc_serv_basic configuration file).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_capture===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_trans_basic configuration to get a sc_trans instance running as a capture device '''e.g.''' from a microphone. This shows the use of the 'include' option ([[#Miscellaneous|see section 3.9]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_dj===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_trans_basic configuration to get a sc_trans instance running with the ability to accept DJ connections using both a SHOUTcast 2 source and a legacy SHOUTcast 1 source in addition to how calendar.xml files are used to control DJ access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_playlist===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_trans_basic configuration to get a sc_trans instance running with the ability to schedule a jingle to play around 20 minutes and 40 minutes past the hour as well as to schedule a different playlists to be played in the evening and also on the weekend. This example shows of some of the features of the event system and how it is possible to automate playlist changes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_debug===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file can be included in any other configuration files to allow you to get debug logging output when trying to investigate any issues you may be experiencing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_trans_simple===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Use this if you just need to get a very basic transcoder running or are impatient&lt;br /&gt;
 or are struggling to get it running despite the previous example configurations.&lt;br /&gt;
&lt;br /&gt;
This configuration file is designed to be used just as is and is the simplest form of the configuration file you can have which will allow you to get a running transcoder to work with an instance of the server on the same machine.&lt;br /&gt;
&lt;br /&gt;
This works by assuming default settings of the transcoder and that the server has been properly configured to work as this configuration uses the 'inheritconfig' option to get some of the passwords and other configuration details directly needed for the transcoder to work with the server instance by using sc_serv_simple.conf (see [[SHOUTcast_DNAS_Server_2#sc_serv_simple|sc_serv2.txt - section 9.5]]) or change this to reference a known server configuration you want to use this with.&lt;br /&gt;
&lt;br /&gt;
All you need to do when using this configuration file is to:&lt;br /&gt;
&lt;br /&gt;
* Edit the playlist file to be used (as referenced in the playlistfile entry)&lt;br /&gt;
* Setup the required encoder options including entering the MP3 unlock code by filling in 'unlockkeyname' and 'unlockkeycode' entries if using MP3 decoding ([[#Registering_for_MP3_Stream_Encoding|section 2.5]] has details on why this is required and how to obtain the unlock key and code)&lt;br /&gt;
* Change the stream information details as appropriate&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/Source_DSP_Plug-in</id>
		<title>Source DSP Plug-in</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/Source_DSP_Plug-in"/>
				<updated>2022-09-02T11:48:13Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Installing the Plug-in */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction to the Source DSP==&lt;br /&gt;
&lt;br /&gt;
The aim of this document is to show you the different features offered by the Source DSP plug-in. Version 2 of the plug-in is designed to work only on Winamp 5.5 and higher due to better api usage and integration with the player. If you want to use the Source DSP in an alternative player, then it would need to support all of the required Winamp apis.&lt;br /&gt;
&lt;br /&gt;
The key feature of the plug-in is the ability to use Winamp as a source to a DNAS server or a Transcoder / AutoDJ instance or any compatible tool which accepts SHOUTcast streams.&lt;br /&gt;
&lt;br /&gt;
Additionally the plug-in will allow you to capture an audio input from the soundcard and its line-in or microphone inputs ([[#Soundcard Mixer Control|section 3.3.2]]) subject to OS and the audio system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
&lt;br /&gt;
To start using the Source DSP you need a configured and running DNAS server (sc_serv) or an alternative server to connect to like the Transcoder (sc_trans) and to have all of the login details required to connect as a source. The plug-in can be used as either a full full source or it can be used as a DJ connection in the case of being used with sc_trans.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Installing the Plug-in===&lt;br /&gt;
----&lt;br /&gt;
[[Image:Select_Source_DSP_plugin_in_Winamp.png|225px|thumb|right|Select Source DSP plug-in in Winamp]]&lt;br /&gt;
&lt;br /&gt;
The DSP plugin can be downloaded for free at shoutcast.com&lt;br /&gt;
&lt;br /&gt;
[https://download.nullsoft.com/shoutcast/tools/shoutcast-dsp-2-3-5-windows.exe Shoutcast DSP for Winamp 5.6] | [https://download.nullsoft.com/shoutcast/tools/shoutcast-dsp-2-4-1-windows.exe Shoutcast DSP for Winamp 5.9]&lt;br /&gt;
&lt;br /&gt;
The installer will detect the Winamp install on your machine and will then install it to the correct location. If the detected Winamp version is prior to v5.5 or if there is no winamp.exe present in the folder chosen then the installer will abort the installation.&lt;br /&gt;
&lt;br /&gt;
Once installed, if you have not chosen to make the Source DSP the default DSP plug-in, you will need to open Winamp and go to the following location:&lt;br /&gt;
&lt;br /&gt;
    Preferences -&amp;gt; Plug-ins -&amp;gt; DSP/Effect&lt;br /&gt;
&lt;br /&gt;
follwed by selecting the 'Nullsoft SHOUTcast Source DSP' entry shown in the plug-in list.&lt;br /&gt;
&lt;br /&gt;
==Configuration Window==&lt;br /&gt;
&lt;br /&gt;
The configuration window is the main interface of the plug-in and is where login details for the connection to the server can be changed or the current status viewed.&lt;br /&gt;
&lt;br /&gt;
When the configuration window is closed then any active connections will be closed. If you want to hide the window then you can click use the minimise button on the window and click on the notification area icon added when the minimise happened.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Summary Tab===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Image:Summary_tab_1.png|100px|thumb|right|SHOUTcast Source Summary Tab]]&lt;br /&gt;
'''Status / Info''' : This will show information about the status of the 5 possible outputs the plug-in is able to provide going from not connected to current duration of the connection.&lt;br /&gt;
&lt;br /&gt;
 If you double-click one of the output items you will be taken to the '[[#Output Tab|see section 3.2]]'&lt;br /&gt;
 (see section 3.2) where it will show the current settings for the output selected.&lt;br /&gt;
&lt;br /&gt;
'''Active Input Device''' : This allows you to toggle between using Winamp and the configured soundcard input as well seeing the current audio capture mode. For more configuration options go to the 'Input Tab' ([[#Input Tab|see section 3.3]]).&lt;br /&gt;
&lt;br /&gt;
'''Input Meters''' : These show the current and peak audio level of the left and right channels as is being passed through the plug-ins core. This can aid in seeing if the input source is possibly not working or to check the audio is clipped.&lt;br /&gt;
&lt;br /&gt;
===Output Tab===&lt;br /&gt;
----&lt;br /&gt;
[[Image:Output_tab_configuration.png|100px|thumb|right|SHOUTcast Source Output Tab - Login settings]]&lt;br /&gt;
This tab allows you to configure the 5 separate outputs the plug-in is able to generate where the settings for the output are selected by clicking the required item in the list.&lt;br /&gt;
&lt;br /&gt;
'''Status''' : This will show the current information about the output source ranging from not being connected to error messages due to invalid passwords to running correctly.&lt;br /&gt;
&lt;br /&gt;
'''Auto Connect''' : This will make the plug-in attempt to run this output as soon as it is started or when the option is checked if not already running when checked.&lt;br /&gt;
&lt;br /&gt;
'''Connect / Abort / Disconnect / Kill Button''' : This allows you to start a connection, abort a connection try or kill / disconnect an active connection. If 'Auto Connect' is checked and you click this for a disconnect action then the plug-in automatically re-starts the connection.&lt;br /&gt;
&lt;br /&gt;
 If there is an issue the 'Connect / Abort / Disconnect / Kill Button' will&lt;br /&gt;
 show the configuration setting which is invalid e.g. 'Set Password' if the&lt;br /&gt;
 encoder has not been specified. The tab and the title above where the value&lt;br /&gt;
 is not set will have it's text changed to red to make it easier to identify.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Login Tab====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This tab allows you to specify the details needed for connecting to a DNAS server.&lt;br /&gt;
&lt;br /&gt;
'''Server Address''' : This is the address of the server to connect to and will depend upon the setup which is being used. If the server being connected to is on the same machine then 'localhost' can be entered, otherwise the exact IP or DNS name of the server e.g. myserver.com needs to be entered here.&lt;br /&gt;
&lt;br /&gt;
'''Port''' : This is the port related to the 'address' of the server to connect to. This needs to match 'portbase' ([[SHOUTcast_DNAS_Server_2#Networking|DNAS Server - section 4.8]]) or 'serverport' ([[SHOUTcast_DNAS_Transcoder_2#Network_Options|Transcoder - section 3.11]]) if connecting to the official tools or the port value given to use.&lt;br /&gt;
&lt;br /&gt;
'''Stream ID''' : This is the identifier used to identify the source to the server when using a SHOUTcast 2 supporting setup. This needs to match 'streamid' ([[SHOUTcast_DNAS_Server_2#Networking|DNAS Server - section 4.8]]) or 'streamid' ([[SHOUTcast_DNAS_Transcoder_2#Network_Options|Transcoder - section 3.11]]) if connecting to the official tools or the port value given to use.&lt;br /&gt;
&lt;br /&gt;
 This is disabled if 'Use SHOUTcast v1 mode (for legacy servers)' is checked.&lt;br /&gt;
&lt;br /&gt;
'''DJ / User ID''' : This is the user id as specified on the server for the type of connection the plug-in is being asked to make. Examples of using this would be the 'djlogin' value from [[SHOUTcast_DNAS_Transcoder_2#DJ_Support|Transcoder - section 3.3]] though this depends on the server configuration being used. Most likely you will be provided with a user id only if it is applicable to your setup.&lt;br /&gt;
&lt;br /&gt;
 If using a compatible v2 DNAS server then this can be entered and will&lt;br /&gt;
 be used as an identifier of the current DJ but it is not used for the login.&lt;br /&gt;
&lt;br /&gt;
'''Password''' : This is the password required for accessing the server (if set on the server). This needs to match 'password' ([[SHOUTcast_DNAS_Server_2#Networking|DNAS Server - section 4.8]]) or 'password' ([[SHOUTcast_DNAS_Transcoder_2#Network_Options|Transcoder - section 3.11]]) if connecting to the official tools.&lt;br /&gt;
&lt;br /&gt;
'''Automatic reconnection on connection failure''' : This will make the plug-in attempt to connect back to the server if there is a break in the connection.&lt;br /&gt;
&lt;br /&gt;
'''Reconnection timeout''' : This is the number of seconds for the plug-in to wait in-between any connection attempts which fail before it will try again.&lt;br /&gt;
&lt;br /&gt;
'''Use SHOUTcast v1 mode (for legacy servers)''' : This controls the mode the plug-in will run as. When checked it will create a SHOUTcast v1 connection otherwise it will create a SHOUTcast v2 connection (this is the default on new installs).&lt;br /&gt;
&lt;br /&gt;
Not setting the correct mode for the server you want to connect to will cause the connection attempt to fail or enter into what appears to be a hung state where you are likely to see a 'Cipher response received' if connecting in v2 mode to v1 server. If the plug-in determines this is likely to have happened then it will show the following in status area:&lt;br /&gt;
 Cipher response received&lt;br /&gt;
 Try enabling 'SHOUTcast v1 mode'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When SHOUTcast v2 mode is enabled the information panel displayed below this option shows the following message:&lt;br /&gt;
 Connecting to a SHOUTcast v1 server in&lt;br /&gt;
 non-legacy mode will likely cause the last&lt;br /&gt;
 status message to remain on &amp;quot;Cipher&lt;br /&gt;
 response received&amp;quot;. To fix this you need to&lt;br /&gt;
 enable the &amp;quot;SHOUTcast v1 mode&amp;quot; above.&lt;br /&gt;
&lt;br /&gt;
When SHOUTcast v1 mode is enabled the information panel displayed below this option shows the following message:&lt;br /&gt;
 When the DJ password is formatted as&lt;br /&gt;
 &amp;lt;djlogin&amp;gt;:&amp;lt;djpassword&amp;gt; e.g. dj_1:noise&lt;br /&gt;
 &lt;br /&gt;
 Enter &amp;lt;djlogin&amp;gt; in 'DJ / User ID' e.g. dj_1&lt;br /&gt;
 Enter &amp;lt;djpassword&amp;gt; in 'Password' e.g. noise&lt;br /&gt;
&lt;br /&gt;
====Directory Tab====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This tab allows you to specify values specific to the stream for being listed or for what is provided to listeners when they connect to the DNAS server based on the version set.&lt;br /&gt;
&lt;br /&gt;
[[Image:Output_tab_Directory.png|100px|thumb|right|SHOUTcast Source Output Directory Tab]]&lt;br /&gt;
'''Make this server public (Recommended)''' : With this enabled, the stream is indicated as being allowed to appear in the SHOUTcast Directory. This will enable options as applicable based also on the mode the plug-in is set to run as.&lt;br /&gt;
&lt;br /&gt;
'''Name''' : This is the name you want to use for the source (often what will be used in SHOUTcast Directory listing).&lt;br /&gt;
&lt;br /&gt;
'''URL''' : This is the url for the stream allowing listeners to view or get more information.&lt;br /&gt;
&lt;br /&gt;
'''Genre''' : This is the genre for the source and is used to categorise the stream if listed on the SHOUTcast Directory listing. Select the genre from the arrow button menu. It is not possible to manually enter the genre and the input field is read-only.&lt;br /&gt;
&lt;br /&gt;
'''Arrow Button''' : This will show a menu with known genres and sub-genres allowed for any SHOUTcast Directory listings. This will only be enabled if using v1 mode or if using v2 mode and 'Make this server public' is unchecked.&lt;br /&gt;
&lt;br /&gt;
'''AIM / ICQ / IRC''' : These allow you to specify some contact information for clients though support of these fields is only available when using SHOUTcat v1 mode.&lt;br /&gt;
&lt;br /&gt;
====Encoder Tab====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Image:Output_tab_Encoder.png|100px|thumb|right|SHOUTcast Source Output Encoder Tab]]&lt;br /&gt;
This tab allows you to specify the encoder to be used to create the output stream from the input stream the plug-in gets. The following encoders are available with the plug-in:&lt;br /&gt;
&lt;br /&gt;
    MP3    (audio/mpeg)&lt;br /&gt;
    AAC    (audio/aacp)&lt;br /&gt;
&lt;br /&gt;
The AAC (actually ADTS-AAC) encoding is provided by enc_aacplus.dll (Winamp 5.1 to 5.61) or enc_fhgaac.dll (Winamp 5.62 and up). If this is not detected in the Winamp plug-ins folder then only MP3 encoding is available.&lt;br /&gt;
&lt;br /&gt;
Based on the encoder selected, the 'encoder settings' section will provide different options for controlling the encoder settings as either a button to open a configuration window or a dropdown list with options to choose from.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Save Encoded Output=====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This allows you to make a backup of the stream audio data sent to the DNAS server.&lt;br /&gt;
&lt;br /&gt;
'''Save a copy of the encoded stream audio''' : Enables or disables saving a copy of the audio.&lt;br /&gt;
&lt;br /&gt;
 The extension of the output file is automatically changed based on the selected&lt;br /&gt;
 encoder option to ensure that the file can be easily played in most media players.&lt;br /&gt;
&lt;br /&gt;
====Titles Tab====&lt;br /&gt;
----&lt;br /&gt;
[[Image:Output_tab_Titles.png|100px|thumb|right|SHOUTcast Source Output Titles Tab]]&lt;br /&gt;
This tab allows you to specify how the stream metadata is gathered from Winamp or if it is manually entered with the options provided.&lt;br /&gt;
&lt;br /&gt;
'''Disable title updates''' : This will prevent the Source DSP from sending any title updates.&lt;br /&gt;
&lt;br /&gt;
'''Follow Winamp's title updates''' : his makes the Source DSP use Winamp's title updates for stream title updates, sent in the format based on the 'Use SHOUTcast v1 mode (for legacy servers)' setting.&lt;br /&gt;
&lt;br /&gt;
'''Send next track title to the server (if applicable)''' : This sends the next track title to the server when using the v2 mode and if the plug-in can determine the next track.&lt;br /&gt;
&lt;br /&gt;
 The current version of Winamp is always recommended to use&lt;br /&gt;
 due to the improved support for this feature since Winamp v5.61.&lt;br /&gt;
&lt;br /&gt;
'''Manual title updates''' : This will only send titles updates when 'Send Update' is pressed which uses the custom title information entered into the 'now' and 'next' fields (which are enabled as applicable to the mode in use).&lt;br /&gt;
&lt;br /&gt;
 The 'Send Update' button is enabled when a title is entered or it is&lt;br /&gt;
 different from the existing title. When using SHOUTcast v2 mode the&lt;br /&gt;
 'next' title field will become available as long as title field is not empty.&lt;br /&gt;
&lt;br /&gt;
====Artwork====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Image:Output_tab_Artwork.png|100px|thumb|right|SHOUTcast Source Output Artwork in v2 mode]]&lt;br /&gt;
This tab allows you to specify whether in-stream artwork will be sent to the SHOUTcast server and if so the type of artwork which will be sent which can be for the station in general as well as per file artwork (much like album art display in most media players).&lt;br /&gt;
&lt;br /&gt;
'''Send in-stream artwork''' : Enables or disables sending of in-stream artwork.&lt;br /&gt;
&lt;br /&gt;
 If this is enabled and then disabled, it is possible that the&lt;br /&gt;
 plug-in will send some clear artwork messages after disabling&lt;br /&gt;
 this option to ensure there is no artwork cached by the server.&lt;br /&gt;
&lt;br /&gt;
'''Send artwork from the playing file (if available)''' : This sends artwork from the currently playing song to the server and acts in the same way as the album art view in most media players.&lt;br /&gt;
&lt;br /&gt;
 If unchecked or there is no artwork for the playing song then the&lt;br /&gt;
 DNAS server may be sent a clear artwork message as applicable.&lt;br /&gt;
 &lt;br /&gt;
 This is sent as a PNG image to the SHOUTcast server.&lt;br /&gt;
&lt;br /&gt;
'''Send artwork for stream branding''' : This will send the image as selected in the box below to the server to act as the station or stream image.&lt;br /&gt;
&lt;br /&gt;
 If left empty then the DNAS server may be sent a clear artwork message as applicable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Using the plug-in with a connection to a legacy server will cause the following notice to be shown:&lt;br /&gt;
&lt;br /&gt;
 Stream is setup for a SHOUTcast v1 server&lt;br /&gt;
 which does not support in-stream artwork.&lt;br /&gt;
&lt;br /&gt;
 To send in-stream artwork, uncheck the&lt;br /&gt;
 &amp;quot;SHOUTcast v1 mode&amp;quot; option and ensure&lt;br /&gt;
 you connect to a SHOUTcast v2 server.'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The plug-in is only able to send in-stream artwork upto 511 KiB (523680 bytes) in size due to the SHOUTcast 2 protocol specification for metadata packets. If this limit is reached then the artwork will not be sent and instead the server will get a clear artwork message. This tab page will show if the artwork cannot be used.&lt;br /&gt;
&lt;br /&gt;
Viewing the in-stream artwork depends on native playback support of SHOUTcast v2 streams in the player used by the client so without a compatible player the client will not be able to view it is as it is not available with SHOUTcast v1 streams.&lt;br /&gt;
&lt;br /&gt;
====Logs====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Image:Output_tab_Logs.png|100px|thumb|right|SHOUTcast Source Output Logs Tab]]&lt;br /&gt;
This tab allows you to specify the logging options of the status messages as shown at the top of this page. Additionally it also provides the means to log the filepath of the next tracks (if known) which are going to be played by Winamp with support for logging of the track titles if using the xml output mode.&lt;br /&gt;
&lt;br /&gt;
 The main logging options are not enabled by default though this can be used&lt;br /&gt;
 for tracking problems with the plug-in e.g. if you are having connection issues.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Enable logging of connection status messages''' : Enables or disables connection logging.&lt;br /&gt;
&lt;br /&gt;
'''Clear log file on logging startup''' : This will reset the log everytime the plug-in starts.&lt;br /&gt;
&lt;br /&gt;
'''Open log file...''' : This will open the log file in the associated program for .log files.&lt;br /&gt;
&lt;br /&gt;
'''Clear log file''' : This will clear the log file if it exists. It will not remove the file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Enable next track logging''' : This will enable creating a log file (based on the following options) of the known next tracks to be played by Winamp.&lt;br /&gt;
&lt;br /&gt;
'''Save report as xml instead of plain text''' : Changing this will create the log as an xml file containing filepath and title with each item identified by the 'seq' attribute.&lt;br /&gt;
&lt;br /&gt;
 The next track logging is only updated when the plug-in detects a track&lt;br /&gt;
 change. If the plain text / xml mode is changed or the plug-in starts then&lt;br /&gt;
 the file contents will be cleared until the next track title change happens.&lt;br /&gt;
&lt;br /&gt;
===Input Tab===&lt;br /&gt;
----&lt;br /&gt;
[[Image:Input_tab_Winamp.png|100px|thumb|right|SHOUTcast Source Input Tab in Winamp mode]]&lt;br /&gt;
&lt;br /&gt;
====Input Configuration====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Input Device''' : This allows you to choose between using Winamp or your soundcard (usually the line-in) as the input source for the output stream the plug-in makes. Depending upon the selection made additional options will be shown below.&lt;br /&gt;
&lt;br /&gt;
'''Input Levels''' : These show the current and peak audio level of the left and right channels as is being passed through the plug-ins core. This can aid in seeing if the input source is possibly not working or to check the audio is clipped.&lt;br /&gt;
&lt;br /&gt;
'''Input Settings''' : When the soundcard input is selected then this allows for control over the sample rate used on the input source.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Soundcard Mixer Control====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Image:Input_tab_Soundcard.png|100px|thumb|right|SHOUTcast Source Input Tab in soundcard mode]]'''Choose Microphone''' : This will allow you to choose any of the input devices reported by the OS for use with the microphone overlay mode the plug-in provides.&lt;br /&gt;
&lt;br /&gt;
'''Refresh Button''' : This allows you to refresh the capture device list on Vista / Windows 7 (is disabled otherwise) since the plug-in was started. This is useful if you have connected a device to the machine and now want to use it.&lt;br /&gt;
&lt;br /&gt;
'''Open Mixer''' : This will open the operating systems recording and playback options (when using Windows 2000 / XP) which will allow you to change any required input and output settings for the system (though the amount you can change does depend upon the operating system being used - ([[#Known Issues|see section 4.0]])).&lt;br /&gt;
&lt;br /&gt;
'''Music Level''' : This controls the Winamp output level (from no audio to full audio level).&lt;br /&gt;
&lt;br /&gt;
'''BG Level''' : This controls the Winamp output level when the 'Push to Talk' option is active (from no audio to full audio level).&lt;br /&gt;
&lt;br /&gt;
'''Mic Level''' : This controls the chosen microphone device's output level when the 'Push to Talk' option is active (from no audio to full audio level).&lt;br /&gt;
&lt;br /&gt;
'''Fade Time''' : This controls the amount of time it takes for the audio to fade from the non 'Push to Talk' mode to 'Push to Talk' being the active mode in usage (from no fade i.e. instantly changes to 2.5 second fade duration).&lt;br /&gt;
&lt;br /&gt;
'''Capture Device Fade Time''' : This controls the amount of time it takes for the selected capture device to fade from the non 'Push to Talk' mode to 'Push to Talk' being the active mode in usage (from no fade i.e. instantly changes to 2.5 second fade duration).&lt;br /&gt;
&lt;br /&gt;
'''Push to Talk''' : When this is pressed then the chosen microphone device becomes the active input source as used by any active output streams ([[#Output Tab|see section 3.2]]). When enabled this button will appear in an activated state.&lt;br /&gt;
&lt;br /&gt;
'''Lock''' : When this is pressed it will toggle the 'Push to Talk' mode on or off depending on the current state of this option when it pressed. When enabled this will appear in an activated state along with the 'Push to Talk' button.&lt;br /&gt;
&lt;br /&gt;
'''Arrow Button''' : This will show a menu with the option &amp;quot;Enable 'Push to Talk' on startup&amp;quot; allowing for the mode to be re-enabled when the plug-in is started. This may be of use as the plug-in turns off the mode and sets the system levels back to the non-pushed mode when the plug-in's window is closed.&lt;br /&gt;
&lt;br /&gt;
===About Tab===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This tab provides information about the version of the plug-in you are using - useful for determining if you are using an older version of the plug-in or when reporting issues.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Documentation and Support====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This part of the tab provides links to access the available documentation and also for going to the SHOUTcast support forum if issues are being experienced with the plug-in.&lt;br /&gt;
&lt;br /&gt;
The documentation is either the current version as shipped with the plug-in if selected during install (stored in '''&amp;lt;winampdir&amp;gt;\Plugins\SHOUTcast Source DSP''').&lt;br /&gt;
&lt;br /&gt;
The support forums is accessed via http://forums.shoutcast.com/forumdisplay.php?f=140&lt;br /&gt;
&lt;br /&gt;
Additional documentation is available here: '''[[Source_DSP_Plug-in_Configuration_Examples|SHOUTcast Source DSP Plug-in Configuration Examples]]'''&lt;br /&gt;
&lt;br /&gt;
==Known Issues==&lt;br /&gt;
&lt;br /&gt;
The following are currently known issue(s) to affect the currently released build of the Source DSP plug-in:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Soundcard Mixer Control===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Issue''': The soundcard mixer control does not work correctly or as expected on Vista / Windows 7 especially with the handling of the selected 'microphone' device due to changes in the audio system which prevent the capture handling from Windows 2000 / XP working in the same way. Windows 2000 / XP should still work as expected.&lt;br /&gt;
&lt;br /&gt;
'''Workaround''': The only obvious work around is to use the features the OS provides to enable the 'Listen to this device' option via the system's recording devices feature and then mix the levels with the controls the OS provides.&lt;br /&gt;
&lt;br /&gt;
'''Expected Resolution''': This issue is still being investigated and hopefully a solution will be provided to allow for control of the input device in unison with the selected 'microphone' device with-in the plug-ins interface when using this mode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SHOUTcast 2 Cipher Key==&lt;br /&gt;
&lt;br /&gt;
If you find that you do need to change the uvoxcipherkey ([[SHOUTcast_DNAS_Server_2#YP_Server_Behaviour|DNAS Server - section 4.14]]) or the djcipher ([[SHOUTcast_DNAS_Transcoder_2#DJ_Support|Transcoder - section 3.3]]) in you sc_serv and / or sc_trans setups then you can change the cipher key the DSP uses. You will only need to do this if you get the following status message when making a connection:&lt;br /&gt;
&lt;br /&gt;
    Authentication Error:&lt;br /&gt;
    Cipher Does Not Match&lt;br /&gt;
&lt;br /&gt;
This is done currently via editing 'Cipherkey' entry in dsp_sc.ini in your Winamp config folder where you just need to change the string after the equal sign to the value from 'uvoxcipherkey' or 'djcipher' depending upon what you are trying to connect to.&lt;br /&gt;
&lt;br /&gt;
The dsp_sc.ini file can usually be found by entering '''%appdata%\Winamp\plugins''' into the address bar in Windows Explorer. If it is not there then you should search for '''dsp_sc.ini''' and make sure to have the search program you are using to look for hidden files (this is just incase the OS is hiding the settings folder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Configurations==&lt;br /&gt;
&lt;br /&gt;
If you are unsure of what to enter to get the Source DSP connected to the official tools, you should look at the '''[[Source_DSP_Plug-in_Configuration_Examples|Source DSP Plug-in Example Configurations]]'''. This shows you where to take configuration values from the official tool configuration file(s) and where in the plug-in configuration you need to enter them for the different operating modes available.&lt;br /&gt;
&lt;br /&gt;
For 3rd party servers or broadcast tools, you may need to consult their documentation to determine from where you get the required configuration values.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/Source_DSP_Plug-in</id>
		<title>Source DSP Plug-in</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/Source_DSP_Plug-in"/>
				<updated>2022-07-28T16:58:13Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Installing the Plug-in */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction to the Source DSP==&lt;br /&gt;
&lt;br /&gt;
The aim of this document is to show you the different features offered by the Source DSP plug-in. Version 2 of the plug-in is designed to work only on Winamp 5.5 and higher due to better api usage and integration with the player. If you want to use the Source DSP in an alternative player, then it would need to support all of the required Winamp apis.&lt;br /&gt;
&lt;br /&gt;
The key feature of the plug-in is the ability to use Winamp as a source to a DNAS server or a Transcoder / AutoDJ instance or any compatible tool which accepts SHOUTcast streams.&lt;br /&gt;
&lt;br /&gt;
Additionally the plug-in will allow you to capture an audio input from the soundcard and its line-in or microphone inputs ([[#Soundcard Mixer Control|section 3.3.2]]) subject to OS and the audio system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
&lt;br /&gt;
To start using the Source DSP you need a configured and running DNAS server (sc_serv) or an alternative server to connect to like the Transcoder (sc_trans) and to have all of the login details required to connect as a source. The plug-in can be used as either a full full source or it can be used as a DJ connection in the case of being used with sc_trans.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Installing the Plug-in===&lt;br /&gt;
----&lt;br /&gt;
[[Image:Select_Source_DSP_plugin_in_Winamp.png|225px|thumb|right|Select Source DSP plug-in in Winamp]]&lt;br /&gt;
&lt;br /&gt;
The DSP plugin can be downloaded for free at shoutcast.com&lt;br /&gt;
&lt;br /&gt;
[https://download.nullsoft.com/shoutcast/tools/shoutcast-dsp-2-3-5-windows.exe Shoutcast DSP for Winamp 5.6] | [https://download.nullsoft.com/shoutcast/tools/shoutcast-dsp-2-4-0-windows.exe Shoutcast DSP for Winamp 5.9]&lt;br /&gt;
&lt;br /&gt;
The installer will detect the Winamp install on your machine and will then install it to the correct location. If the detected Winamp version is prior to v5.5 or if there is no winamp.exe present in the folder chosen then the installer will abort the installation.&lt;br /&gt;
&lt;br /&gt;
Once installed, if you have not chosen to make the Source DSP the default DSP plug-in, you will need to open Winamp and go to the following location:&lt;br /&gt;
&lt;br /&gt;
    Preferences -&amp;gt; Plug-ins -&amp;gt; DSP/Effect&lt;br /&gt;
&lt;br /&gt;
follwed by selecting the 'Nullsoft SHOUTcast Source DSP' entry shown in the plug-in list.&lt;br /&gt;
&lt;br /&gt;
==Configuration Window==&lt;br /&gt;
&lt;br /&gt;
The configuration window is the main interface of the plug-in and is where login details for the connection to the server can be changed or the current status viewed.&lt;br /&gt;
&lt;br /&gt;
When the configuration window is closed then any active connections will be closed. If you want to hide the window then you can click use the minimise button on the window and click on the notification area icon added when the minimise happened.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Summary Tab===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Image:Summary_tab_1.png|100px|thumb|right|SHOUTcast Source Summary Tab]]&lt;br /&gt;
'''Status / Info''' : This will show information about the status of the 5 possible outputs the plug-in is able to provide going from not connected to current duration of the connection.&lt;br /&gt;
&lt;br /&gt;
 If you double-click one of the output items you will be taken to the '[[#Output Tab|see section 3.2]]'&lt;br /&gt;
 (see section 3.2) where it will show the current settings for the output selected.&lt;br /&gt;
&lt;br /&gt;
'''Active Input Device''' : This allows you to toggle between using Winamp and the configured soundcard input as well seeing the current audio capture mode. For more configuration options go to the 'Input Tab' ([[#Input Tab|see section 3.3]]).&lt;br /&gt;
&lt;br /&gt;
'''Input Meters''' : These show the current and peak audio level of the left and right channels as is being passed through the plug-ins core. This can aid in seeing if the input source is possibly not working or to check the audio is clipped.&lt;br /&gt;
&lt;br /&gt;
===Output Tab===&lt;br /&gt;
----&lt;br /&gt;
[[Image:Output_tab_configuration.png|100px|thumb|right|SHOUTcast Source Output Tab - Login settings]]&lt;br /&gt;
This tab allows you to configure the 5 separate outputs the plug-in is able to generate where the settings for the output are selected by clicking the required item in the list.&lt;br /&gt;
&lt;br /&gt;
'''Status''' : This will show the current information about the output source ranging from not being connected to error messages due to invalid passwords to running correctly.&lt;br /&gt;
&lt;br /&gt;
'''Auto Connect''' : This will make the plug-in attempt to run this output as soon as it is started or when the option is checked if not already running when checked.&lt;br /&gt;
&lt;br /&gt;
'''Connect / Abort / Disconnect / Kill Button''' : This allows you to start a connection, abort a connection try or kill / disconnect an active connection. If 'Auto Connect' is checked and you click this for a disconnect action then the plug-in automatically re-starts the connection.&lt;br /&gt;
&lt;br /&gt;
 If there is an issue the 'Connect / Abort / Disconnect / Kill Button' will&lt;br /&gt;
 show the configuration setting which is invalid e.g. 'Set Password' if the&lt;br /&gt;
 encoder has not been specified. The tab and the title above where the value&lt;br /&gt;
 is not set will have it's text changed to red to make it easier to identify.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Login Tab====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This tab allows you to specify the details needed for connecting to a DNAS server.&lt;br /&gt;
&lt;br /&gt;
'''Server Address''' : This is the address of the server to connect to and will depend upon the setup which is being used. If the server being connected to is on the same machine then 'localhost' can be entered, otherwise the exact IP or DNS name of the server e.g. myserver.com needs to be entered here.&lt;br /&gt;
&lt;br /&gt;
'''Port''' : This is the port related to the 'address' of the server to connect to. This needs to match 'portbase' ([[SHOUTcast_DNAS_Server_2#Networking|DNAS Server - section 4.8]]) or 'serverport' ([[SHOUTcast_DNAS_Transcoder_2#Network_Options|Transcoder - section 3.11]]) if connecting to the official tools or the port value given to use.&lt;br /&gt;
&lt;br /&gt;
'''Stream ID''' : This is the identifier used to identify the source to the server when using a SHOUTcast 2 supporting setup. This needs to match 'streamid' ([[SHOUTcast_DNAS_Server_2#Networking|DNAS Server - section 4.8]]) or 'streamid' ([[SHOUTcast_DNAS_Transcoder_2#Network_Options|Transcoder - section 3.11]]) if connecting to the official tools or the port value given to use.&lt;br /&gt;
&lt;br /&gt;
 This is disabled if 'Use SHOUTcast v1 mode (for legacy servers)' is checked.&lt;br /&gt;
&lt;br /&gt;
'''DJ / User ID''' : This is the user id as specified on the server for the type of connection the plug-in is being asked to make. Examples of using this would be the 'djlogin' value from [[SHOUTcast_DNAS_Transcoder_2#DJ_Support|Transcoder - section 3.3]] though this depends on the server configuration being used. Most likely you will be provided with a user id only if it is applicable to your setup.&lt;br /&gt;
&lt;br /&gt;
 If using a compatible v2 DNAS server then this can be entered and will&lt;br /&gt;
 be used as an identifier of the current DJ but it is not used for the login.&lt;br /&gt;
&lt;br /&gt;
'''Password''' : This is the password required for accessing the server (if set on the server). This needs to match 'password' ([[SHOUTcast_DNAS_Server_2#Networking|DNAS Server - section 4.8]]) or 'password' ([[SHOUTcast_DNAS_Transcoder_2#Network_Options|Transcoder - section 3.11]]) if connecting to the official tools.&lt;br /&gt;
&lt;br /&gt;
'''Automatic reconnection on connection failure''' : This will make the plug-in attempt to connect back to the server if there is a break in the connection.&lt;br /&gt;
&lt;br /&gt;
'''Reconnection timeout''' : This is the number of seconds for the plug-in to wait in-between any connection attempts which fail before it will try again.&lt;br /&gt;
&lt;br /&gt;
'''Use SHOUTcast v1 mode (for legacy servers)''' : This controls the mode the plug-in will run as. When checked it will create a SHOUTcast v1 connection otherwise it will create a SHOUTcast v2 connection (this is the default on new installs).&lt;br /&gt;
&lt;br /&gt;
Not setting the correct mode for the server you want to connect to will cause the connection attempt to fail or enter into what appears to be a hung state where you are likely to see a 'Cipher response received' if connecting in v2 mode to v1 server. If the plug-in determines this is likely to have happened then it will show the following in status area:&lt;br /&gt;
 Cipher response received&lt;br /&gt;
 Try enabling 'SHOUTcast v1 mode'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When SHOUTcast v2 mode is enabled the information panel displayed below this option shows the following message:&lt;br /&gt;
 Connecting to a SHOUTcast v1 server in&lt;br /&gt;
 non-legacy mode will likely cause the last&lt;br /&gt;
 status message to remain on &amp;quot;Cipher&lt;br /&gt;
 response received&amp;quot;. To fix this you need to&lt;br /&gt;
 enable the &amp;quot;SHOUTcast v1 mode&amp;quot; above.&lt;br /&gt;
&lt;br /&gt;
When SHOUTcast v1 mode is enabled the information panel displayed below this option shows the following message:&lt;br /&gt;
 When the DJ password is formatted as&lt;br /&gt;
 &amp;lt;djlogin&amp;gt;:&amp;lt;djpassword&amp;gt; e.g. dj_1:noise&lt;br /&gt;
 &lt;br /&gt;
 Enter &amp;lt;djlogin&amp;gt; in 'DJ / User ID' e.g. dj_1&lt;br /&gt;
 Enter &amp;lt;djpassword&amp;gt; in 'Password' e.g. noise&lt;br /&gt;
&lt;br /&gt;
====Directory Tab====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This tab allows you to specify values specific to the stream for being listed or for what is provided to listeners when they connect to the DNAS server based on the version set.&lt;br /&gt;
&lt;br /&gt;
[[Image:Output_tab_Directory.png|100px|thumb|right|SHOUTcast Source Output Directory Tab]]&lt;br /&gt;
'''Make this server public (Recommended)''' : With this enabled, the stream is indicated as being allowed to appear in the SHOUTcast Directory. This will enable options as applicable based also on the mode the plug-in is set to run as.&lt;br /&gt;
&lt;br /&gt;
'''Name''' : This is the name you want to use for the source (often what will be used in SHOUTcast Directory listing).&lt;br /&gt;
&lt;br /&gt;
'''URL''' : This is the url for the stream allowing listeners to view or get more information.&lt;br /&gt;
&lt;br /&gt;
'''Genre''' : This is the genre for the source and is used to categorise the stream if listed on the SHOUTcast Directory listing. Select the genre from the arrow button menu. It is not possible to manually enter the genre and the input field is read-only.&lt;br /&gt;
&lt;br /&gt;
'''Arrow Button''' : This will show a menu with known genres and sub-genres allowed for any SHOUTcast Directory listings. This will only be enabled if using v1 mode or if using v2 mode and 'Make this server public' is unchecked.&lt;br /&gt;
&lt;br /&gt;
'''AIM / ICQ / IRC''' : These allow you to specify some contact information for clients though support of these fields is only available when using SHOUTcat v1 mode.&lt;br /&gt;
&lt;br /&gt;
====Encoder Tab====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Image:Output_tab_Encoder.png|100px|thumb|right|SHOUTcast Source Output Encoder Tab]]&lt;br /&gt;
This tab allows you to specify the encoder to be used to create the output stream from the input stream the plug-in gets. The following encoders are available with the plug-in:&lt;br /&gt;
&lt;br /&gt;
    MP3    (audio/mpeg)&lt;br /&gt;
    AAC    (audio/aacp)&lt;br /&gt;
&lt;br /&gt;
The AAC (actually ADTS-AAC) encoding is provided by enc_aacplus.dll (Winamp 5.1 to 5.61) or enc_fhgaac.dll (Winamp 5.62 and up). If this is not detected in the Winamp plug-ins folder then only MP3 encoding is available.&lt;br /&gt;
&lt;br /&gt;
Based on the encoder selected, the 'encoder settings' section will provide different options for controlling the encoder settings as either a button to open a configuration window or a dropdown list with options to choose from.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Save Encoded Output=====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This allows you to make a backup of the stream audio data sent to the DNAS server.&lt;br /&gt;
&lt;br /&gt;
'''Save a copy of the encoded stream audio''' : Enables or disables saving a copy of the audio.&lt;br /&gt;
&lt;br /&gt;
 The extension of the output file is automatically changed based on the selected&lt;br /&gt;
 encoder option to ensure that the file can be easily played in most media players.&lt;br /&gt;
&lt;br /&gt;
====Titles Tab====&lt;br /&gt;
----&lt;br /&gt;
[[Image:Output_tab_Titles.png|100px|thumb|right|SHOUTcast Source Output Titles Tab]]&lt;br /&gt;
This tab allows you to specify how the stream metadata is gathered from Winamp or if it is manually entered with the options provided.&lt;br /&gt;
&lt;br /&gt;
'''Disable title updates''' : This will prevent the Source DSP from sending any title updates.&lt;br /&gt;
&lt;br /&gt;
'''Follow Winamp's title updates''' : his makes the Source DSP use Winamp's title updates for stream title updates, sent in the format based on the 'Use SHOUTcast v1 mode (for legacy servers)' setting.&lt;br /&gt;
&lt;br /&gt;
'''Send next track title to the server (if applicable)''' : This sends the next track title to the server when using the v2 mode and if the plug-in can determine the next track.&lt;br /&gt;
&lt;br /&gt;
 The current version of Winamp is always recommended to use&lt;br /&gt;
 due to the improved support for this feature since Winamp v5.61.&lt;br /&gt;
&lt;br /&gt;
'''Manual title updates''' : This will only send titles updates when 'Send Update' is pressed which uses the custom title information entered into the 'now' and 'next' fields (which are enabled as applicable to the mode in use).&lt;br /&gt;
&lt;br /&gt;
 The 'Send Update' button is enabled when a title is entered or it is&lt;br /&gt;
 different from the existing title. When using SHOUTcast v2 mode the&lt;br /&gt;
 'next' title field will become available as long as title field is not empty.&lt;br /&gt;
&lt;br /&gt;
====Artwork====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Image:Output_tab_Artwork.png|100px|thumb|right|SHOUTcast Source Output Artwork in v2 mode]]&lt;br /&gt;
This tab allows you to specify whether in-stream artwork will be sent to the SHOUTcast server and if so the type of artwork which will be sent which can be for the station in general as well as per file artwork (much like album art display in most media players).&lt;br /&gt;
&lt;br /&gt;
'''Send in-stream artwork''' : Enables or disables sending of in-stream artwork.&lt;br /&gt;
&lt;br /&gt;
 If this is enabled and then disabled, it is possible that the&lt;br /&gt;
 plug-in will send some clear artwork messages after disabling&lt;br /&gt;
 this option to ensure there is no artwork cached by the server.&lt;br /&gt;
&lt;br /&gt;
'''Send artwork from the playing file (if available)''' : This sends artwork from the currently playing song to the server and acts in the same way as the album art view in most media players.&lt;br /&gt;
&lt;br /&gt;
 If unchecked or there is no artwork for the playing song then the&lt;br /&gt;
 DNAS server may be sent a clear artwork message as applicable.&lt;br /&gt;
 &lt;br /&gt;
 This is sent as a PNG image to the SHOUTcast server.&lt;br /&gt;
&lt;br /&gt;
'''Send artwork for stream branding''' : This will send the image as selected in the box below to the server to act as the station or stream image.&lt;br /&gt;
&lt;br /&gt;
 If left empty then the DNAS server may be sent a clear artwork message as applicable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Using the plug-in with a connection to a legacy server will cause the following notice to be shown:&lt;br /&gt;
&lt;br /&gt;
 Stream is setup for a SHOUTcast v1 server&lt;br /&gt;
 which does not support in-stream artwork.&lt;br /&gt;
&lt;br /&gt;
 To send in-stream artwork, uncheck the&lt;br /&gt;
 &amp;quot;SHOUTcast v1 mode&amp;quot; option and ensure&lt;br /&gt;
 you connect to a SHOUTcast v2 server.'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The plug-in is only able to send in-stream artwork upto 511 KiB (523680 bytes) in size due to the SHOUTcast 2 protocol specification for metadata packets. If this limit is reached then the artwork will not be sent and instead the server will get a clear artwork message. This tab page will show if the artwork cannot be used.&lt;br /&gt;
&lt;br /&gt;
Viewing the in-stream artwork depends on native playback support of SHOUTcast v2 streams in the player used by the client so without a compatible player the client will not be able to view it is as it is not available with SHOUTcast v1 streams.&lt;br /&gt;
&lt;br /&gt;
====Logs====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Image:Output_tab_Logs.png|100px|thumb|right|SHOUTcast Source Output Logs Tab]]&lt;br /&gt;
This tab allows you to specify the logging options of the status messages as shown at the top of this page. Additionally it also provides the means to log the filepath of the next tracks (if known) which are going to be played by Winamp with support for logging of the track titles if using the xml output mode.&lt;br /&gt;
&lt;br /&gt;
 The main logging options are not enabled by default though this can be used&lt;br /&gt;
 for tracking problems with the plug-in e.g. if you are having connection issues.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Enable logging of connection status messages''' : Enables or disables connection logging.&lt;br /&gt;
&lt;br /&gt;
'''Clear log file on logging startup''' : This will reset the log everytime the plug-in starts.&lt;br /&gt;
&lt;br /&gt;
'''Open log file...''' : This will open the log file in the associated program for .log files.&lt;br /&gt;
&lt;br /&gt;
'''Clear log file''' : This will clear the log file if it exists. It will not remove the file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Enable next track logging''' : This will enable creating a log file (based on the following options) of the known next tracks to be played by Winamp.&lt;br /&gt;
&lt;br /&gt;
'''Save report as xml instead of plain text''' : Changing this will create the log as an xml file containing filepath and title with each item identified by the 'seq' attribute.&lt;br /&gt;
&lt;br /&gt;
 The next track logging is only updated when the plug-in detects a track&lt;br /&gt;
 change. If the plain text / xml mode is changed or the plug-in starts then&lt;br /&gt;
 the file contents will be cleared until the next track title change happens.&lt;br /&gt;
&lt;br /&gt;
===Input Tab===&lt;br /&gt;
----&lt;br /&gt;
[[Image:Input_tab_Winamp.png|100px|thumb|right|SHOUTcast Source Input Tab in Winamp mode]]&lt;br /&gt;
&lt;br /&gt;
====Input Configuration====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Input Device''' : This allows you to choose between using Winamp or your soundcard (usually the line-in) as the input source for the output stream the plug-in makes. Depending upon the selection made additional options will be shown below.&lt;br /&gt;
&lt;br /&gt;
'''Input Levels''' : These show the current and peak audio level of the left and right channels as is being passed through the plug-ins core. This can aid in seeing if the input source is possibly not working or to check the audio is clipped.&lt;br /&gt;
&lt;br /&gt;
'''Input Settings''' : When the soundcard input is selected then this allows for control over the sample rate used on the input source.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Soundcard Mixer Control====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Image:Input_tab_Soundcard.png|100px|thumb|right|SHOUTcast Source Input Tab in soundcard mode]]'''Choose Microphone''' : This will allow you to choose any of the input devices reported by the OS for use with the microphone overlay mode the plug-in provides.&lt;br /&gt;
&lt;br /&gt;
'''Refresh Button''' : This allows you to refresh the capture device list on Vista / Windows 7 (is disabled otherwise) since the plug-in was started. This is useful if you have connected a device to the machine and now want to use it.&lt;br /&gt;
&lt;br /&gt;
'''Open Mixer''' : This will open the operating systems recording and playback options (when using Windows 2000 / XP) which will allow you to change any required input and output settings for the system (though the amount you can change does depend upon the operating system being used - ([[#Known Issues|see section 4.0]])).&lt;br /&gt;
&lt;br /&gt;
'''Music Level''' : This controls the Winamp output level (from no audio to full audio level).&lt;br /&gt;
&lt;br /&gt;
'''BG Level''' : This controls the Winamp output level when the 'Push to Talk' option is active (from no audio to full audio level).&lt;br /&gt;
&lt;br /&gt;
'''Mic Level''' : This controls the chosen microphone device's output level when the 'Push to Talk' option is active (from no audio to full audio level).&lt;br /&gt;
&lt;br /&gt;
'''Fade Time''' : This controls the amount of time it takes for the audio to fade from the non 'Push to Talk' mode to 'Push to Talk' being the active mode in usage (from no fade i.e. instantly changes to 2.5 second fade duration).&lt;br /&gt;
&lt;br /&gt;
'''Capture Device Fade Time''' : This controls the amount of time it takes for the selected capture device to fade from the non 'Push to Talk' mode to 'Push to Talk' being the active mode in usage (from no fade i.e. instantly changes to 2.5 second fade duration).&lt;br /&gt;
&lt;br /&gt;
'''Push to Talk''' : When this is pressed then the chosen microphone device becomes the active input source as used by any active output streams ([[#Output Tab|see section 3.2]]). When enabled this button will appear in an activated state.&lt;br /&gt;
&lt;br /&gt;
'''Lock''' : When this is pressed it will toggle the 'Push to Talk' mode on or off depending on the current state of this option when it pressed. When enabled this will appear in an activated state along with the 'Push to Talk' button.&lt;br /&gt;
&lt;br /&gt;
'''Arrow Button''' : This will show a menu with the option &amp;quot;Enable 'Push to Talk' on startup&amp;quot; allowing for the mode to be re-enabled when the plug-in is started. This may be of use as the plug-in turns off the mode and sets the system levels back to the non-pushed mode when the plug-in's window is closed.&lt;br /&gt;
&lt;br /&gt;
===About Tab===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This tab provides information about the version of the plug-in you are using - useful for determining if you are using an older version of the plug-in or when reporting issues.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Documentation and Support====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This part of the tab provides links to access the available documentation and also for going to the SHOUTcast support forum if issues are being experienced with the plug-in.&lt;br /&gt;
&lt;br /&gt;
The documentation is either the current version as shipped with the plug-in if selected during install (stored in '''&amp;lt;winampdir&amp;gt;\Plugins\SHOUTcast Source DSP''').&lt;br /&gt;
&lt;br /&gt;
The support forums is accessed via http://forums.shoutcast.com/forumdisplay.php?f=140&lt;br /&gt;
&lt;br /&gt;
Additional documentation is available here: '''[[Source_DSP_Plug-in_Configuration_Examples|SHOUTcast Source DSP Plug-in Configuration Examples]]'''&lt;br /&gt;
&lt;br /&gt;
==Known Issues==&lt;br /&gt;
&lt;br /&gt;
The following are currently known issue(s) to affect the currently released build of the Source DSP plug-in:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Soundcard Mixer Control===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Issue''': The soundcard mixer control does not work correctly or as expected on Vista / Windows 7 especially with the handling of the selected 'microphone' device due to changes in the audio system which prevent the capture handling from Windows 2000 / XP working in the same way. Windows 2000 / XP should still work as expected.&lt;br /&gt;
&lt;br /&gt;
'''Workaround''': The only obvious work around is to use the features the OS provides to enable the 'Listen to this device' option via the system's recording devices feature and then mix the levels with the controls the OS provides.&lt;br /&gt;
&lt;br /&gt;
'''Expected Resolution''': This issue is still being investigated and hopefully a solution will be provided to allow for control of the input device in unison with the selected 'microphone' device with-in the plug-ins interface when using this mode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SHOUTcast 2 Cipher Key==&lt;br /&gt;
&lt;br /&gt;
If you find that you do need to change the uvoxcipherkey ([[SHOUTcast_DNAS_Server_2#YP_Server_Behaviour|DNAS Server - section 4.14]]) or the djcipher ([[SHOUTcast_DNAS_Transcoder_2#DJ_Support|Transcoder - section 3.3]]) in you sc_serv and / or sc_trans setups then you can change the cipher key the DSP uses. You will only need to do this if you get the following status message when making a connection:&lt;br /&gt;
&lt;br /&gt;
    Authentication Error:&lt;br /&gt;
    Cipher Does Not Match&lt;br /&gt;
&lt;br /&gt;
This is done currently via editing 'Cipherkey' entry in dsp_sc.ini in your Winamp config folder where you just need to change the string after the equal sign to the value from 'uvoxcipherkey' or 'djcipher' depending upon what you are trying to connect to.&lt;br /&gt;
&lt;br /&gt;
The dsp_sc.ini file can usually be found by entering '''%appdata%\Winamp\plugins''' into the address bar in Windows Explorer. If it is not there then you should search for '''dsp_sc.ini''' and make sure to have the search program you are using to look for hidden files (this is just incase the OS is hiding the settings folder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Configurations==&lt;br /&gt;
&lt;br /&gt;
If you are unsure of what to enter to get the Source DSP connected to the official tools, you should look at the '''[[Source_DSP_Plug-in_Configuration_Examples|Source DSP Plug-in Example Configurations]]'''. This shows you where to take configuration values from the official tool configuration file(s) and where in the plug-in configuration you need to enter them for the different operating modes available.&lt;br /&gt;
&lt;br /&gt;
For 3rd party servers or broadcast tools, you may need to consult their documentation to determine from where you get the required configuration values.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_News</id>
		<title>SHOUTcast News</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_News"/>
				<updated>2022-07-22T19:44:37Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: 2.6.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Free Download: New Shoutcast version 2.6.1''' &lt;br /&gt;
&lt;br /&gt;
Shoutcast, the largest streaming audio software platform and worldwide radio station directory has released an update to its industry-standard streaming software. &lt;br /&gt;
&lt;br /&gt;
The new Shoutcast Suite of Streaming Products includes free streaming, powerful revenue generating tools, and the latest version adds: &lt;br /&gt;
* SSL support&lt;br /&gt;
* Improved scalability (up to 12,000 unique listeners supported)&lt;br /&gt;
* Improved ad support and revenue tracking&lt;br /&gt;
* Powerful analytics&lt;br /&gt;
* Even better stability for reliable streaming 24/7&lt;br /&gt;
* Improved processor management saves energy&lt;br /&gt;
* Better memory usage for stations with big audiences&lt;br /&gt;
* [https://yp.shoutcast.com/v/2_6_1 Full 2.6.1 changelog]&lt;br /&gt;
* [http://forums.winamp.com/showthread.php?t=453775 Info about v2.6.1 changes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Effortless Upgrade'''&lt;br /&gt;
&lt;br /&gt;
Broadcasters who run their own servers should download the updated version of the DNAS for free via the [https://radiomanager.shoutcast.com/RMO/user/your-plan/your-plan Shoutcast RMO]&lt;br /&gt;
&lt;br /&gt;
Stations using a CDN (hosting service) should ask their provider to make sure their server gets updated to at least [http://forums.shoutcast.com/showthread.php?t=451412 Shoutcast version 2.5.5] (v2.6.1 recommended)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Technical Details'''&lt;br /&gt;
&lt;br /&gt;
Read more on the [http://forums.shoutcast.com/showthread.php?t=453775  Shoutcast Forum]&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast</id>
		<title>SHOUTcast</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast"/>
				<updated>2022-07-22T19:39:31Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Shoutcast releases version 2.6! */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Shoutcast releases version 2.6.1  ==&lt;br /&gt;
&lt;br /&gt;
'''[[SHOUTcast_News | Latest Shoutcast News]]''' - The latest developments from the leader in streaming audio.&lt;br /&gt;
&lt;br /&gt;
== Shoutcast Offers a Full Suite of Streaming Products ==&lt;br /&gt;
&lt;br /&gt;
Shoutcast has you covered when it comes to broadcasting audio online. &lt;br /&gt;
&lt;br /&gt;
- '''Shoutcast.com''' [http://www.shoutcast.com]  - the hugely popular online directory of radio stations (sometimes called the YP - Yellow Pages - for online radio). &lt;br /&gt;
&lt;br /&gt;
- [[SHOUTcast Broadcaster|'''Shoutcast Server (DNAS)''']] - The most popular online streaming server software on the planet, used by over 50,000 broadcasters.&lt;br /&gt;
&lt;br /&gt;
- [[Source_DSP_Plug-in|'''Shoutcast DSP''']] - The Shoutcast DSP is an encoder plug-in for Winamp which encodes your audio and sends it to a streaming server such as the Shoutcast DNAS.&lt;br /&gt;
 &lt;br /&gt;
- [[SHOUTcast Streaming Service|'''Shoutcast For Business &amp;amp; Revenue Generation''']] - Our hosting solution allows broadcasters to stream and/or generate revenue from their listeners with audio ads. &lt;br /&gt;
&lt;br /&gt;
- [[SHOUTcast_Developer|'''The Shoutcast API''']]  offers developers the chance to integrate thousands of stations into their apps and products for free.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast</id>
		<title>SHOUTcast</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast"/>
				<updated>2022-07-22T19:38:34Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Shoutcast Offers a Full Suite of Streaming Products */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Shoutcast releases version 2.6!  ==&lt;br /&gt;
&lt;br /&gt;
'''[[SHOUTcast_News | Latest Shoutcast News]]''' - The latest developments from the leader in streaming audio.&lt;br /&gt;
&lt;br /&gt;
== Shoutcast Offers a Full Suite of Streaming Products ==&lt;br /&gt;
&lt;br /&gt;
Shoutcast has you covered when it comes to broadcasting audio online. &lt;br /&gt;
&lt;br /&gt;
- '''Shoutcast.com''' [http://www.shoutcast.com]  - the hugely popular online directory of radio stations (sometimes called the YP - Yellow Pages - for online radio). &lt;br /&gt;
&lt;br /&gt;
- [[SHOUTcast Broadcaster|'''Shoutcast Server (DNAS)''']] - The most popular online streaming server software on the planet, used by over 50,000 broadcasters.&lt;br /&gt;
&lt;br /&gt;
- [[Source_DSP_Plug-in|'''Shoutcast DSP''']] - The Shoutcast DSP is an encoder plug-in for Winamp which encodes your audio and sends it to a streaming server such as the Shoutcast DNAS.&lt;br /&gt;
 &lt;br /&gt;
- [[SHOUTcast Streaming Service|'''Shoutcast For Business &amp;amp; Revenue Generation''']] - Our hosting solution allows broadcasters to stream and/or generate revenue from their listeners with audio ads. &lt;br /&gt;
&lt;br /&gt;
- [[SHOUTcast_Developer|'''The Shoutcast API''']]  offers developers the chance to integrate thousands of stations into their apps and products for free.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Server_2</id>
		<title>SHOUTcast DNAS Server 2</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Server_2"/>
				<updated>2022-02-04T13:15:28Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Stream Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
The purpose of this document is to show you the different configuration options supported by sc_serv along with basic and more advanced example configurations to enable you to get started with using sc_serv and the features it can offer.&lt;br /&gt;
&lt;br /&gt;
The aim of sc_serv is to provide enhanced serving features and also access to the new YP2 infrastructure whilst maintaining as much backward compatibility with previous versions of sc_serv as possible. The new features introduced include:&lt;br /&gt;
&lt;br /&gt;
# Serving multiple streams from a single server instance&lt;br /&gt;
# Relaying multiple streams from a single server instance&lt;br /&gt;
# Multiplexing all server activity through a single IP port&lt;br /&gt;
# SHOUTcast 2 wire protocol support for sources, relays and clients&lt;br /&gt;
# Repackaging of SHOUTcast 1 and SHOUTcast 2 data as needed for connected clients&lt;br /&gt;
# YP2 infrastructure support&lt;br /&gt;
# Real-time metadata and statistic reporting&lt;br /&gt;
# Static station id support&lt;br /&gt;
# In-stream metadata in standardised xml files&lt;br /&gt;
# UTF-8 and international character encoding&lt;br /&gt;
# Improved server and stream security&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview of Features==&lt;br /&gt;
&lt;br /&gt;
To take full advantage of the newer features provided as part of the SHOUTcast 2 and YP2 systems then you will need to ensure you are using a compatible version of sc_serv (any version 2 will work) and that you have the required authorisation key to register as a broadcaster on the YP2 directory (see [[#Getting_Started|section 3.0]]).&lt;br /&gt;
&lt;br /&gt;
If you were intending on taking full advantage of the multiplexing and multiple stream support offered as part of sc_serv then you would need to make sure you enable the SHOUTcast 2 options (this is enabled by default with server builds from the end of 2010 if the 'yp2' option in the configuration file is not specified [see [[#YP_Server_Behaviour|section 4.14]] ). The reason for needing to enable this support is if you try to do it with the original SHOUTcast 1 protocol then it will not work as the original protocol has no means of expressing multiple streams from a single port due to the lack of an identifier provided for them.&lt;br /&gt;
&lt;br /&gt;
If you are planning on connecting multiple sc_trans instances to sc_serv then you must use the SHOUTcast 2 protocol support so that each sc_trans instance can have a unique identifier which allows for multiple streams to then be provided from a single server. It is still possible for an older source to connect to the server with a number of config options available to support this though functionality will be limited compared to what can be done with a fully supporting SHOUTcast 2 source.&lt;br /&gt;
&lt;br /&gt;
Finally clients connecting to your server do not need to directly support SHOUTcast 2 as sc_serv will repackage the stream data and any related metadata into the correct format the client requests (typically based on the user agent detected by the server).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
&lt;br /&gt;
One of the key aspects of the new YP2 directory infrastructure is an authorisation key which is used to validate your server when it tries to connect to the YP2 infrastructure for any of the station(s) you run. Once this key is obtained, it will be valid for all root servers of the station being broadcast.&lt;br /&gt;
&lt;br /&gt;
This can be done by going to the [[SHOUTcast_Authhash_Management|SHOUTcast Authhash Management]] page which shows how to do this via the 'Administation Summary' page as long as a valid source has been connected to the server. This process automatically updates your configuration file(s) with the new authhash and if the stream is set to be public then will attempt to get the stream listed in the SHOUTcast Radio Directory.&lt;br /&gt;
&lt;br /&gt;
When using an older SHOUTcast 1 server then you do not need to do this registration and the server will still be able to be listed on the directory but there is not the same level of protection over the stream as is the case with registering it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Running the Server===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The server is able to be run either as a console application or it can be run as service (Windows) or daemon (Linux / Mac OS X / BSD). Detailed below is how to get the server running on the different operating systems supported by it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The Windows version of sc_serv is designed to run on fully updated and patched versions of Windows 2000, XP, Vista and Windows 7, 8 &amp;amp; 10.&lt;br /&gt;
&lt;br /&gt;
Please note that the Windows versions of sc_serv are built with a dependency against the Microsoft Visual C++ 2008 SP1 Redistributable Package. If sc_serv is unable to start due to a dependency issue then you will need to install the correct version of the package so it can run which depends on the version of sc_serv you are attempting to run:&lt;br /&gt;
&lt;br /&gt;
32-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&lt;br /&gt;
&lt;br /&gt;
64-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ba9257ca-337f-4b40-8c14-157cfdffee4e&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Install as a Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe install &amp;lt;servicename&amp;gt; &amp;lt;username&amp;gt; &amp;lt;password&amp;gt; &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service&lt;br /&gt;
 Typically enter this as 'sc_serv' though you can use a different name but you will need&lt;br /&gt;
 to remember it as it is required to be the same when using the 'uninstall' mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;username&amp;gt; - User under which to run the service as or '0' for the local system&lt;br /&gt;
&lt;br /&gt;
&amp;lt;password&amp;gt; - Password for user or '0' for the local system or with no password&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
When run as a service there is not a good sense of a current working directory so requires all paths in the configuration and playlist files to be fully qualified otherwise lookups will fail when sc_serv is run.&lt;br /&gt;
&lt;br /&gt;
To run sc_serv with a configuration file in the same folder as the server as the current system user account you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_serv.exe install sc_serv 0 0 sc_serv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Uninstall the Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe uninstall &amp;lt;servicename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service as used when the service was registered&lt;br /&gt;
&lt;br /&gt;
To uninstall sc_serv assuming it was installed as detailed in the install section above then you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_serv.exe uninstall sc_serv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Service in the Console====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
===Linux / Mac OS X / BSD===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Remember to enable the required access on the sc_trans file by doing 'chmod a+x sc_trans' after extracting it from the distribution file otherwise the OS is likely to not run it and show the error message './sc_serv: Permission denied'.&lt;br /&gt;
&lt;br /&gt;
====Run as a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_serv daemon &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (required in all cases)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
'''e.g.'''&lt;br /&gt;
 ./sc_serv daemon ./sc_serv.conf&lt;br /&gt;
&lt;br /&gt;
When run this should output the following:&lt;br /&gt;
&lt;br /&gt;
'sc_serv going daemon with PID [XXXX]' where XXXX is the &amp;lt;pid&amp;gt; of the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====End a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
kill -SIGTERM &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -15 &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -s TERM &amp;lt;pid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pid&amp;gt; - The PID of the daemon instance (reported when the daemon started or can be found with 'ps ax | grep sc_serv' as long as sc_serv was the file run otherwise you can just use 'ps ax' if the filename isn't known). Additionally the PID of sc_serv is listed in the log file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_serv &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Additional Signals===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
When run on Linux / Mac OS X / BSD then some additional signals are supported to allow for additional control over the running daemon instance of sc_serv.&lt;br /&gt;
&lt;br /&gt;
The following signals can be used with the 'kill' command (in the manner of your choosing for using the kill command) along with the &amp;lt;pid&amp;gt; of the daemon instance to do one of the following actions:&lt;br /&gt;
&lt;br /&gt;
    SIGKILL   -  Stops sc_trans (also SIGTERM, SIGINT and SIGQUIT will work)&lt;br /&gt;
    SIGHUP    -  Rotates logfile, w3clog and streamw3clog&lt;br /&gt;
&lt;br /&gt;
The result of SIGHUP is that the current log file contents will be moved into &amp;lt;logfile&amp;gt;_1 e.g. sc_serv_1.log, &amp;lt;logfile&amp;gt;_1 will be moved into &amp;lt;logfile&amp;gt;_2 e.g. sc_serv_2.log and so on for all log files which can be found which match the current log file's name. This is useful if timed to have it create day specific log files.&lt;br /&gt;
&lt;br /&gt;
 These signals are not supported by the Windows version of sc_serv which will only&lt;br /&gt;
 respond to the Ctrl + C / Ctrl + Break / console close commands the OS provides.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration File==&lt;br /&gt;
&lt;br /&gt;
Here you can find a complete list of all of the configuration options which are provided by sc_serv which ranges from logging to networking configuration and control over the media being used when streaming via the server.&lt;br /&gt;
&lt;br /&gt;
Configuration entries labelled as ''&amp;lt;MULTI&amp;gt;'' can be used to set up simultaneous connections to the server or allow for multiple connections from various sources. These are specified by adding _# to the end of the option's name as shown below where # begins with one. If you are only working with a single instance then you do not need to add the _# part as any instances of a configuration option will assume it is for _1.&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;MULTI&amp;gt;'' system is not hierarchical and all values beyond the default must be specified for all connections. So for example, if you wanted to connect to two servers on the same port you must do:&lt;br /&gt;
&lt;br /&gt;
    portbase_1=8080&lt;br /&gt;
    portbase_2=8080&lt;br /&gt;
    destip_1=stream.server1.com&lt;br /&gt;
    destip_2=stream.server2.com&lt;br /&gt;
&lt;br /&gt;
Note that you CANNOT do it like this as it leads to not all values being set:&lt;br /&gt;
&lt;br /&gt;
    portbase=8080&lt;br /&gt;
    destip_1=stream.server1.com&lt;br /&gt;
    destip_2=stream.server2.com&lt;br /&gt;
&lt;br /&gt;
The configuration files also allow for comments/notes or options to be disabled by the use of a semi-colon (''';''') or a left bracket ('''[''') or the hash / pound symbol ('''#''') at the start of a line which can be seen in all of the configuration examples.&lt;br /&gt;
&lt;br /&gt;
Known options in the configuration files are recognised irrespective of the case they are entered in the configuration file so maxuser and MaXuSer will be handled the same way.&lt;br /&gt;
&lt;br /&gt;
Any items found in the configuration file which are not known (as detailed in following sections) or is not processed as a comment will be reported in the following manner:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;date + time&amp;gt; W msg:[CONFIG] Invalid item on line XX&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;date + time&amp;gt; is the date and time the event happens at and XX is the line in the configuration file where the error has been found to occur at.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Banning===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''banfile''' : File to store the list of banned IP addresses    ''[Default = sc_serv.ban]''&lt;br /&gt;
&lt;br /&gt;
'''savebanlistonexit''' : Re-write the 'banfile' on server exit    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the file into then you need to ensure that the&lt;br /&gt;
 folder already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Client Behaviour===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''maxuser''' : Specify the maximum number of clients allowed to connect to the server    ''[Default = 32]''&lt;br /&gt;
 This is used in conjunction with 'streammaxuser' (see [[#Stream_Configuration|section 4.12]]) to control the&lt;br /&gt;
 maximum limit on the number of client connections allowed to connect to the server instance.&lt;br /&gt;
&lt;br /&gt;
'''listenertime''' : Specify the maximum time in minutes a client can listen to the stream    ''[Default = 0]''&lt;br /&gt;
 A value of zero means there will be no time limit.&lt;br /&gt;
&lt;br /&gt;
'''autodumpusers''' : Enable to allow the server to disconnect clients if the source disconnects    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''srcip''' : Specify the server side binding address for sources to connect on    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''dstip''' or '''destip''' or '''publicip''' : Specify the server side binding address for clients    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
 If 'any' or no value is specified then sc_serv listens to all addresses.&lt;br /&gt;
&lt;br /&gt;
If you specify a value for 'dstip / destip' then this will be used by the listen feature on the Administration Pages (see section 5.1) so it can provide a valid stream url in the generated playlist. If 'dstip / destip' is not specified then the server will attempt to auto-generate the IP required for the client to be able to connect. If this fails the generated playlist is likely to return a stream url like &amp;lt;nowiki&amp;gt;http://0.0.0.0:&amp;lt;portbase&amp;gt;/&amp;lt;path&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The IP provided needs to be in a valid format like &amp;lt;nowiki&amp;gt;http://&amp;lt;my-ip&amp;gt;&amp;lt;/nowiki&amp;gt; or an address which can be resolved to an IP otherwise the internal lookups done are likely to fail (depends upon the server configuration and OS being used). Also you cannot set srcip and dstip / destip to be the same IP value and if this happens then the server will close. Closing of the server will also happen if the IP cannot be resolved or correctly bound to i.e. server is not there or an invalid value was entered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''titleformat''' : Specify a string to be used in-place of the default icy-name string being used    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''urlformat''' : Specify a string to be used in-place of the default icy-url string being used    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''  '''&lt;br /&gt;
'''  '''&lt;br /&gt;
&lt;br /&gt;
===Debugging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In all cases, the default value is for no debug logging for the options listed below.&lt;br /&gt;
&lt;br /&gt;
'''yp1debug''' : Enable debug logging of YP connections&lt;br /&gt;
&lt;br /&gt;
'''yp2debug''' : Enable debug logging of YP2 connections&lt;br /&gt;
&lt;br /&gt;
'''shoutcastsourcedebug''' : Enable debug logging of SHOUTcast source connections&lt;br /&gt;
&lt;br /&gt;
'''uvox2sourcedebug''' : Enable debug logging of SHOUTcast 2 source connections&lt;br /&gt;
&lt;br /&gt;
'''shoutcast1clientdebug''' : Enable debug logging of SHOUTcast streaming clients&lt;br /&gt;
&lt;br /&gt;
'''shoutcast2clientdebug''' : Enable debug logging of SHOUTcast 2 streaming clients&lt;br /&gt;
&lt;br /&gt;
'''relayshoutcastdebug''' : Enable debug logging for SHOUTcast relays&lt;br /&gt;
&lt;br /&gt;
'''relayuvoxdebug''' : Enable debug logging for SHOUTcast 2 relays&lt;br /&gt;
&lt;br /&gt;
'''relaydebug''' : Enable debug logging of common relay code&lt;br /&gt;
&lt;br /&gt;
'''streamdatadebug''' : Enable debug logging of common streaming code&lt;br /&gt;
&lt;br /&gt;
'''httpstyledebug''' : Enable debug logging of http style requests&lt;br /&gt;
&lt;br /&gt;
'''statsdebug''' : Enable debug logging of statistics&lt;br /&gt;
&lt;br /&gt;
'''microserverdebug''' : Enable debug logging of common server activity&lt;br /&gt;
&lt;br /&gt;
'''threadrunnerdebug''' : Enable debug logging of the thread manager&lt;br /&gt;
&lt;br /&gt;
'''rtmpclientdebug''' : Enable debug logging of rtmp clients&lt;br /&gt;
&lt;br /&gt;
'''admetricsdebug''' : Enable debug logging of ad metrics (v2.5 and newer)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' '''&lt;br /&gt;
''' '''&lt;br /&gt;
&lt;br /&gt;
===Flash Security===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''flashpolicyfile''' : Name of file containing flash crossdomain policies on the server    ''[Default = crossdomain.xml]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Introduction and Backup Files===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Note that intro and backup audio files must precisely match the format and bitrate for the stream! If they do not match, there will be a break in the stream and the listener will be disconnected. &lt;br /&gt;
&lt;br /&gt;
'''introfile''' : File to play when a client first connects to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: This is used globally and also is default for stream #1 on DNAS versions greater than 2.0. To apply a specific intro file to a stream, use streamintrofile_X. &lt;br /&gt;
&lt;br /&gt;
'''streamintrofile_X''' : File to play when a client first connects to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''backupfile''' : File to play if the source disconnects from the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: This is used globally and also is default for stream #1 on DNAS versions greater than 2.0. To apply a specific backup file to a stream, use streambackupfile_X. &lt;br /&gt;
&lt;br /&gt;
'''streambackupfile_X''' : assigns a specific backup file to a streamID X [Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''streambackupurl_X''' : assigns a specific backup stream to a streamID X (v2.6.1 feature)''&lt;br /&gt;
&lt;br /&gt;
'''specialfiletmpdir''' : place to store intro and backup files uploaded by sc_trans    ''[Default = /tmp/ (*nix only)]''&lt;br /&gt;
&lt;br /&gt;
'''maxspecialfilesize''' : Change the maximum size in bytes of the backup and intro files    ''[Default = 30000000]''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''log''' : Enable logging of the servers output    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''screenlog''' :  Enable logging of servers output to the console    ''[Default = 1]''&lt;br /&gt;
 If log=0 then this option is ignored due to no logging happening.&lt;br /&gt;
&lt;br /&gt;
'''logfile''' : Specify a different logfile to save the logs into ''[Default = %temp%\sc_serv.log or /tmp/sc_serv.log]''&lt;br /&gt;
&lt;br /&gt;
'''logclients''' : Enable logging of details about client connections and disconnections made ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the logs into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''configrewrite''' :  Re-write the 'config file' on server exit    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''songhistory''' : Specify the maximum song history to preserve    ''[Default = 10]''&lt;br /&gt;
&lt;br /&gt;
'''cpucount''' : Specify the number of cpu's present instead of the calculated number if non-zero    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''unique''' : Specify a substitution string for the '$' character to be used when processing filenames which if specified will set any occurences of '$' to the value set. This will be used in the processing of the following filenames: '''logfile''', '''introfile''', '''streamintrofile''', '''backupfile''', '''streambackupfile''', '''banfile''', '''streambanfile''', '''ripfile''', '''streamripfile''', '''include''', '''w3clog''', '''streamw3clog'''&lt;br /&gt;
&lt;br /&gt;
 So when 'unique' is changed from '$' to say 'test' then the following happens if 'logfile' is&lt;br /&gt;
 set to '/usr/local/shoutcast/$.log' then this would be converted to '/usr/local/shoutcast/test.log'&lt;br /&gt;
&lt;br /&gt;
'''include''' : Specify an additional include file containing settings to be processed from the current point in the main configuration file    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
You can do multiple calls of this allowing for a basic configuration file with then 'specific' stream configurations set in individual conf files though you need to ensure not to include a reference to the same file in itself.&lt;br /&gt;
&lt;br /&gt;
You can also specify a path with a wildcard for sc_serv to use to find multiple configuration files to include '''e.g.''' 'include=stream/*.conf'.  This can then be used along with the multiple stream configurations (see section 4.12) and the admin command 'admin.cgi?mode=reload' (see section 5.1) to add / remove / update stream configurations without having to close the server to apply them.&lt;br /&gt;
&lt;br /&gt;
'''admincssfile''' : Specify the css styling to be used on the index.html and admin pages    ''[Default = v2]''&lt;br /&gt;
&lt;br /&gt;
This can accept the following parameters:&lt;br /&gt;
&lt;br /&gt;
:admincssfile='''v1'''  -  Uses the v1 DNAS style&lt;br /&gt;
:admincssfile='''v2'''  -  Uses the newer SHOUTcast 2 style&lt;br /&gt;
:admincssfile='''path_to_local_css_file'''  e.g. my_index.css&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 If using a custom css file, if it does not exist on the first try to load it the server will revert to&lt;br /&gt;
 the default css style. As well the style is cached once loaded so changes require a restart of sc_serv.&lt;br /&gt;
&lt;br /&gt;
'''faviconfile''' : Specify the file to be returned as the favicon.ico when the administration pages are being queried by the client's browser    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
The default behaviour is to use a SHOUTcast themed built-in icon file and support / handling the update of this will entirely depend on the browser.&lt;br /&gt;
&lt;br /&gt;
'''faviconmimetype''' : Specify the mime type for actual file to be served in the favicon.ico response    ''[Default = image/x-icon]''&lt;br /&gt;
&lt;br /&gt;
Ensure this is correct for the type of image being used so it is valid.&lt;br /&gt;
&lt;br /&gt;
'''hidestats''' : Specify if the publically accessible stats?sid=# page can be accessed or if it is only available via the private administration pages   ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''robotstxtfile''' : Specify the file to be returned as the robots.txt when queried by search engines, etc to attempt to prevent incorrect access to the server's pages which may cause invalid client connections    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
The default behaviour is to return a robots.txt reponse indicating not to look at any of the server's pages i.e.&lt;br /&gt;
::User-agent:*&lt;br /&gt;
::Disallow:/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Networking===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''namelookups''' : Enable to allow reverse DNS look-ups on incoming IP addresses    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''portbase''' : Specify the port which clients and sources need to use to connect to the server    ''[Default = 8000]''&lt;br /&gt;
 SHOUTcast 1 sources are only able to connect to 'portbase + 1'.&lt;br /&gt;
&lt;br /&gt;
'''autodumpsourcetime''' : Specify how long before an idle source is dumped from the server (in seconds)    ''[Default: 30]''&lt;br /&gt;
 A value of zero means there is no timeout of an idle source.&lt;br /&gt;
 Also if you set this too low then it is likely that valid sources will&lt;br /&gt;
 fail to connect during the initial stages of a source connection.&lt;br /&gt;
&lt;br /&gt;
'''maxheaderlinesize''' : Specify the maximum size of an HTTP header line    ''[Default = 2048]''&lt;br /&gt;
&lt;br /&gt;
'''maxheaderlinecount''' : Specify the maximum header lines in an HTTP style exchange    ''[Default = 100]''&lt;br /&gt;
&lt;br /&gt;
'''adminpassword''' : Specify the administrator password for accessing the remote server features    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''password''' : Specify the password for broadcasters when connecting to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
 This matches the 'uvoxauth' value in the sc_trans configuration file (see [[SHOUTcast_DNAS_Transcoder_2#Network_Options|sc_trans.txt - section 3.11]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Network Buffers===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''buffertype''' : Specify whether the buffer size is fixed [0] or adaptive [1]    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''adaptivebuffersize''' : Specify the buffer size in seconds if buffer is set to adaptive    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''fixedbuffersize''' : Specify the buffer size in bytes if the buffer is set to fixed    ''[Default = 1048576]''&lt;br /&gt;
&lt;br /&gt;
'''bufferhardlimit''' : Specify the maximum buffer size in bytes which it can never go above    ''[Default = 16777216]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Relaying===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''allowrelay''' : Enable to allow a relay to connect to the server    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''allowpublicrelay''' : Enable to allow relays to list themselves in the YP directory    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''relayreconnecttime''' : Specify how many seconds to wait to reconnect on a relay failure    ''[Default = 30]''&lt;br /&gt;
 Setting this to 0 will disable attempts for the relay to reconnect.&lt;br /&gt;
&lt;br /&gt;
'''relayconnectretries''' : Specify the number of times relays are attempted to be connected to if it is initially unable to connect    ''[Default = 3]''&lt;br /&gt;
 This generally applies only to YP1 connections and is related to the&lt;br /&gt;
 actual attempts to make and get a http response from the YP server.&lt;br /&gt;
&lt;br /&gt;
'''maxhttpredirects''' : Specify the maximum number of times we can redirect when relaying    ''[Default = 5]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;Legacy Options&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
'''relayport''' : Port of the source to use for the relay    ''[Default: 80]''&lt;br /&gt;
&lt;br /&gt;
'''relayserver''' : Url of the source to relay    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
 Using the stream configuration options (see [[#Stream_Configuration|section 4.12]]) is the preferred method&lt;br /&gt;
 of setting up a relay. These options are only provided as a means for loading&lt;br /&gt;
 legacy configuration files. If found then these are mapped to 'streamrelayurl_1'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Reserved List===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''ripfile''' : File to store the list of reserved IP addresses    ''[Default = sc_serv.rip]''&lt;br /&gt;
&lt;br /&gt;
'''saveriplistonexist''' : Re-write the 'ripfile' on server exit    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''riponly''' : Only allow connections to be made from reserved IP addresses    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the file into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Stream Configuration===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Important Note:''' If you do not specify an identifier (_#) on the end of the above options then it will be treated like _1 (effectively acting like SHOUTcast 1). Additionally, _0 is not a supported identifier and will be mapped to _1.&lt;br /&gt;
&lt;br /&gt;
'''requirestreamconfigs''' : Only allow sources to connect if a stream configuration has been set in your configuration file    ''[Default = 0]''&lt;br /&gt;
 With this enabled, you will need to ensure that any sources have their configuration details&lt;br /&gt;
 setup to match those in sc_trans's configuration, in particular the 'uvoxstreamid' value with&lt;br /&gt;
 sc_trans (see [[SHOUTcast_DNAS_Transcoder_2#Network_Options|sc_trans.txt - section 3.11]]).&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each stream configuration):&lt;br /&gt;
&lt;br /&gt;
'''streamid''' : Specify the numerical identifier of the stream for control or referencing the stream configuration. This can only be a numeric value from 1 to 2147483647.&lt;br /&gt;
&lt;br /&gt;
 If you use multiple stream configurations then you will need to ensure the _X&lt;br /&gt;
 part is specified and correct for each stream configuration group&lt;br /&gt;
 e.g.&lt;br /&gt;
   streamid=1&lt;br /&gt;
   streampath=/live&lt;br /&gt;
     or&lt;br /&gt;
   streamid_1=1&lt;br /&gt;
   streampath_1=/random_mountpoint&lt;br /&gt;
   streamid_2=2&lt;br /&gt;
   streampath_2=/another_mountpoint&lt;br /&gt;
&lt;br /&gt;
'''streamauthhash''' : The authorisation key needed for YP2 directory registration.&lt;br /&gt;
 This is a requirement for using the YP2 system and without it you will not be able to&lt;br /&gt;
 successfully connect to the YP2 directory (see [[#Getting_Started|section 3.0]]).&lt;br /&gt;
 &lt;br /&gt;
 This can be used for multiple streams you are providing or can be different (as long&lt;br /&gt;
 as valid) so you can infact provide multiple stations from the same server if desired.&lt;br /&gt;
&lt;br /&gt;
'''streampath''' : Specify the path clients need to use to access the stream&lt;br /&gt;
 If a / is not specified on the start of the string then the server will add&lt;br /&gt;
 it to the generated path in playlist entries or other places as required so&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://&amp;lt;serverurl&amp;gt;/&amp;lt;streampath&amp;gt;&amp;lt;/nowiki&amp;gt; will work so clients are able to connect.&lt;br /&gt;
 &lt;br /&gt;
 If this is not specified then &amp;lt;nowiki&amp;gt;http://&amp;lt;serverurl&amp;gt;/stream/&amp;lt;streamid&amp;gt;/&amp;lt;/nowiki&amp;gt; will be&lt;br /&gt;
 used for client access and in generated playlist entries so that it will&lt;br /&gt;
 always be possible for clients to connect to the server somehow. &lt;br /&gt;
 See [[SHOUTcast_DNAS_Server_2#Stream_Addresses|section 6.0]] for more information on the server's stream address support.&lt;br /&gt;
&lt;br /&gt;
 Note: streampath is the mountpoint, e.g. streampath_1=/mystation would result in ip:port/mystation&lt;br /&gt;
 Do NOT specify a streamurl as streampath as this will result in an error.&lt;br /&gt;
&lt;br /&gt;
'''streamrelayurl''' : Specify the full url of source to relay (if this is a relay).&lt;br /&gt;
 Make sure if you use this that the full url is entered and that it is&lt;br /&gt;
 the url which clients would connect to for the stream to be relayed.&lt;br /&gt;
&lt;br /&gt;
'''streammaxuser''' : Specify the maximum number of clients allowed to connect to the stream    ''[Default = 0]''&lt;br /&gt;
If set to zero, not specified or higher than 'maxuser' then the value set for 'maxuser' (see [[#Client_Behaviour|section 4.2]]) will be used for all known streams.&lt;br /&gt;
&lt;br /&gt;
Changing this to a value between zero and 'maxuser' will enforce the user connection limit for the specified value in the stream configuration '''e.g.'''&lt;br /&gt;
 streammaxuser_1 = 8&lt;br /&gt;
 maxuser = 32&lt;br /&gt;
&lt;br /&gt;
This allows a total of 32 connections to the server but specifies the maximum number of connections to the first stream configuration is 8.&lt;br /&gt;
&lt;br /&gt;
With the following stream configuration&lt;br /&gt;
 streammaxuser_1 = 64&lt;br /&gt;
 maxuser = 32&lt;br /&gt;
&lt;br /&gt;
This allows a total of 32 connections to the server but with a per stream limit above the maximum means the maximum number of connections to the first stream group will be 32. However this also depends upon any other stream configurations and their limits as to whether 32 clients will be able to connect to this stream configuration.&lt;br /&gt;
&lt;br /&gt;
Finally unless a valid stream configuration is specified then this value will only be applied to the first stream configuration found i.e. there is a need to specify a streamid_XXX for streammaxuser_XXX (where XXX is the stream identifier of the stream configuration group.&lt;br /&gt;
&lt;br /&gt;
'''streamadminpassword''' : Specify the administrator password for accessing the remote server features for the specified stream configuration group. If this is not specified then 'adminpassword' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streampassword''' : Specify the password for broadcasters when connecting to the server for the specified stream configuration group. If this is not specified then 'password' will be used.&lt;br /&gt;
 This matches the 'uvoxauth' value in the sc_trans configuration file (see sc_trans.txt - section 3.11).&lt;br /&gt;
&lt;br /&gt;
'''streampublicserver''' : This allows you to override the public flag received from the source when a connection is being made to the YP directory. If this is not specified or is set to empty then 'publicserver' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamallowrelay''' : Enable to allow a relay to connect to the server. If this is not specified then 'allowrelay' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamallowpublicrelay''' : Enable to allow relays to list themselves in the YP directory. If this is not specified then 'allowpublicrelay' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamriponly''' : Enable to only allow connections to be made from reserved IP addresses. If this is not specified then 'riponly' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamautodumpsourcetime''' : Specify how long before an idle source will be dumped from the server (in seconds). A value of zero means there is no timeout of an idle source. If not specified then 'autodumpsourcetime' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamautodumpusers''' : Enable to allow the server to disconnect clients if the source disconnects. If not specified then 'autodumpusers' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamlistenertime''' : Specify the maximum time in minutes a client is allowed to listen to the stream. A value of zero means there will be no time limit. If not specified then 'listenertime' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamintrofile''' : File to play when a client first connects to the server. If this is not specified then 'introfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streambackupfile''' : File to play if the source disconnects from the server. If this is not specified then 'backupfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streammovedurl_X''' : redirects a permanently stopped or moved stream to a different working stream url.&lt;br /&gt;
&lt;br /&gt;
'''streambanfile''' : File to store the list of banned IP addresses. If this is not specified then 'banfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamripfile''' : File to store the list of banned IP addresses. If this is not specified then 'ripfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamw3clog''' : File to store the web connections logs into. If this is not specified then 'w3clog' will be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''DNAS v2.6.1 and newer'''&lt;br /&gt;
&lt;br /&gt;
'''sslCertificateFile''' : For https:// streams, specify .crt file e.g. sslCertificateFile=/path/to/ssl.crt&lt;br /&gt;
&lt;br /&gt;
'''sslCertificateKeyFile''' : specify key file, e.g. sslCertificateKeyFile=/path/to/key.pem&lt;br /&gt;
&lt;br /&gt;
 Put the whole certificate chain in the .crt file, and only the key in the .key file&lt;br /&gt;
 SSL Cert needs to be assigned to a DNS e.g. stream.mysite.com&lt;br /&gt;
 Be sure to also add destip=stream.mysite.com and/or publicip= and alternateports=443 lines to DNAS config file.&lt;br /&gt;
&lt;br /&gt;
 Note: SSL Support is for Linux-only, not Windows.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' '''&lt;br /&gt;
&lt;br /&gt;
===Web Connection (W3C) Logging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''w3cenable''' : Enable logging of web connections to describe the duration a client has listened to a specific title    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''w3clog''' : File to store the web connections logs into    ''[Default = sc_w3c.log]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the log into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
'''webclientdebug''' : Enable logging of web client connections    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===YP Server Behaviour===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''uvoxcipherkey''' : Specify the key used to obfuscate the initial handshaking with the source    ''[Default = foobar]''&lt;br /&gt;
 This is a SHOUTcast 2 only feature and it matches the 'djcipher' value in the sc_trans&lt;br /&gt;
 configuration file (see [[SHOUTcast_DNAS_Transcoder_2#DJ_Support|sc_trans.txt - section 3.3]]).&lt;br /&gt;
&lt;br /&gt;
Only change this if you really need to do so as not all SHOUTcast 2 clients will allow you to edit this value from the default value. If using the Source DSP plug-in then see [[Source_DSP_Plug-in#SHOUTcast_2_Cipher_Key|dsp_sc.txt - section 5.0]] for details on how to change the plug-in to use a differnet value.&lt;br /&gt;
&lt;br /&gt;
'''metainterval''' : Specify the metadata transmission interval in bytes    ''[Default = 8192]''&lt;br /&gt;
 YP1 only&lt;br /&gt;
&lt;br /&gt;
'''yp2''' : Enable to use the SHOUTcast 2 protocol and related server features for access to the YP2 directory    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
If this is enabled and not all of the required values are set then the server will throw an error and will abort from its start-up attempt. It should be indicated what needs to be set to allow the server to start with this set.&lt;br /&gt;
&lt;br /&gt;
Additionally if there is an issue then the server will report an error in its log ouput of 'Connection attempt failed. YP2 error code is XXX (&amp;lt;message&amp;gt;)' where XXX is one of the following error codes and &amp;lt;message&amp;gt; is a message set in the error response to indicate a bit more what the error relates to. All current error codes can be found [[#YP_Server_Errors|here]].&lt;br /&gt;
&lt;br /&gt;
'''ypaddr''' : Allows you to specify a different YP server if required    ''[Default = yp.shoutcast.com]''&lt;br /&gt;
&lt;br /&gt;
'''ypport''' : Allows you to specify the port of the YP server if required    ''[Default = 80]''&lt;br /&gt;
&lt;br /&gt;
'''ypPath''' : Allows you to specify the path to YP2 services on the server    ''[Default = /yp2]''&lt;br /&gt;
&lt;br /&gt;
'''ypTimeout''' : Specify the timeout interval in seconds for requests made to the YP server    ''[Default = 60]''&lt;br /&gt;
&lt;br /&gt;
'''ypmaxretries''' : Specify the maximum number of times a YP request will be attempted    ''[Default = 10]''&lt;br /&gt;
 This generally applies only to YP1 connections and is related to the&lt;br /&gt;
 actual attempts to make and get a http response from the YP server.&lt;br /&gt;
&lt;br /&gt;
'''ypreportinterval''' : Specify the maximum time in which the YP must have contacted our server in seconds    ''[Default = 300]''&lt;br /&gt;
&lt;br /&gt;
'''ypminreportinterval''' : Specify the minimum time in which the YP can contact our server in seconds    ''[Default = 10]''&lt;br /&gt;
&lt;br /&gt;
'''publicserver''' : This allows you to override the public flag from the connected source when a connection is being made to the YP directory    ''[Default = default]''&lt;br /&gt;
This can be one of the following values:&lt;br /&gt;
 '''default''' - use the flag provided by the source&lt;br /&gt;
 '''always''' - force the source to be public&lt;br /&gt;
 '''never''' - never allow the use the flag provided by the source&lt;br /&gt;
&lt;br /&gt;
When using sc_trans this would match with the 'public' value (see [[SHOUTcast_DNAS_Transcoder_2#Metadata_Control|sc_trans.txt - section 3.8]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===YP Server Errors===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If not all of the required values are set for a public listing then the DNAS server will throw an error and will abort its attempt to be listed in the Directory. It should be indicated the error is with one of the error codes provided below so it can be resolved.&lt;br /&gt;
&lt;br /&gt;
Additionally if there is an issue during Directory updates or removals, then the server will report an error in its log ouput as one of the following error codes and &amp;lt;message&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status Code&lt;br /&gt;
! Status Message&lt;br /&gt;
|-&lt;br /&gt;
| 400 || Generic error ''(covers all other cases usually from internal failures)''&lt;br /&gt;
|-&lt;br /&gt;
| 457 || Unrecoverable error while updating station information - DNAS restart required.&lt;br /&gt;
|-&lt;br /&gt;
| 470 || Invalid authorization hash&lt;br /&gt;
|-&lt;br /&gt;
| 471 || Invalid stream type (could be a bad bitrate or mime type)&lt;br /&gt;
|-&lt;br /&gt;
| 472 || Missing or invalid stream url&lt;br /&gt;
|-&lt;br /&gt;
| 473 || Server unreachable by YP&lt;br /&gt;
|-&lt;br /&gt;
| 474 || Relay url does not exist&lt;br /&gt;
|-&lt;br /&gt;
| 475 || Invalid server ID&lt;br /&gt;
|-&lt;br /&gt;
| 476 || Invalid max clients (value out of range or missing)&lt;br /&gt;
|-&lt;br /&gt;
| 477 || Terms of Service violator.  You are being reported.&lt;br /&gt;
|-&lt;br /&gt;
| 478 || Incompatible protocol.&lt;br /&gt;
|-&lt;br /&gt;
| 479 || Streams requiring authorization are not public and cannot list here.&lt;br /&gt;
|-&lt;br /&gt;
| 480 || Cannot see your station/computer (URL: &amp;lt;streamurl&amp;gt;) from the Internet, disable Internet Sharing/NAT/firewall/ISP cache.&lt;br /&gt;
|-&lt;br /&gt;
| 481 || Cannot verify server since all listener slots are full.  Please wait.&lt;br /&gt;
|-&lt;br /&gt;
| 482 || This network has been permanently banned due to a previous violation of the SHOUTcast directory terms of service&lt;br /&gt;
|-&lt;br /&gt;
| 483 || Invalid listeners (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 484 || Invalid avglistentime (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 485 || Invalid newsessions (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 486 || Invalid connects (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 487 || Request &amp;amp; Response objects are null&lt;br /&gt;
|-&lt;br /&gt;
| 488 || Request xml is null&lt;br /&gt;
|-&lt;br /&gt;
| 489 || YP command not specified&lt;br /&gt;
|-&lt;br /&gt;
| 490 || Generic error, while doing xml parsing&lt;br /&gt;
|-&lt;br /&gt;
| 491 || Generic error, while reading xml request&lt;br /&gt;
|-&lt;br /&gt;
| 492 || Error closing buffer / HTTP connection&lt;br /&gt;
|-&lt;br /&gt;
| 493 || Internal error - unable to acquire data source&lt;br /&gt;
|-&lt;br /&gt;
| 494 || Error updating information - DNAS restart required&lt;br /&gt;
|-&lt;br /&gt;
| 495 || Error acquiring station ID - DNAS restart required&lt;br /&gt;
|-&lt;br /&gt;
| 496 || Error converting data type&lt;br /&gt;
|-&lt;br /&gt;
| 497 || Inconsistent stream behaviour&lt;br /&gt;
|-&lt;br /&gt;
| 498 || Invalid Request (Invalid request received)&lt;br /&gt;
|-&lt;br /&gt;
| 499 || Error while getting information&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Administration==&lt;br /&gt;
&lt;br /&gt;
With sc_serv there are administration pages available for accessing and controlling the server remotely which allows you to monitor and control clients connected to the stream (or not if banning them). These pages can now be accessed through a summary page at /index.html which will show a link to any active stream(s) or you explicitly access them via the /index.html?sid=# path where # is the ID of the stream (see [[#Stream_Configuration|section 4.12]] for more about using 'streamid') '''e.g.'''&lt;br /&gt;
 &amp;lt;streamurl&amp;gt;/index.html?sid=1&lt;br /&gt;
&lt;br /&gt;
If no sid or an invalid sid is passed then you will be taken to the summary /index.html and this will be applied even if you were on a page with a known ID and then enter an invalid sid or remove it purposefully.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Administration Pages===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
As part of the administrative features provided there are the following pages where # is the streamid you want to use). This is not a complete list but should cover all of the pages which allow for a direct http url to be entered to get an administation action to work. The ban and reserve IP actions require input fields and do not map to direct sends.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Public Pages====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''index.html'''  -  Shows a summary page with links to get to any active stream(s)&lt;br /&gt;
&lt;br /&gt;
'''currentsong?sid=#'''  -  Returns the current song title or a null response&lt;br /&gt;
&lt;br /&gt;
'''nextsong?sid=#'''  -  Returns the next song title (if known) or a null response&lt;br /&gt;
 currentsong and nextsong both provide a UTF-8 encoded string of the song title&lt;br /&gt;
 otherwise it will return effectively no response (ignoring the http header).&lt;br /&gt;
&lt;br /&gt;
'''nextsongs?sid=#'''  -  Returns in an xml format the next song title(s) (if known) to be played when using a compatible v2 stream source. See [[#XML_Responses|section 5.2]] for more details on the format of the xml returned).&lt;br /&gt;
&lt;br /&gt;
'''index.html?sid=#'''  -  Shows current status of the specified stream&lt;br /&gt;
&lt;br /&gt;
'''played.html?sid=#'''  -  Song history of specified playing history&lt;br /&gt;
:or&lt;br /&gt;
'''played?sid=#'''&lt;br /&gt;
&lt;br /&gt;
'''listen.pls?sid=#'''  -  Provides a PLS for file clients to use to connect to the stream.&lt;br /&gt;
:or&lt;br /&gt;
'''listen?sid=#'''&lt;br /&gt;
&lt;br /&gt;
'''listen.m3u?sid=#'''  -  Provides a M3U file for clients to use to connect to the stream.&lt;br /&gt;
&lt;br /&gt;
'''listen.asx?sid=#'''  -  Provides a ASX file for clients to use to connect to the stream.&lt;br /&gt;
&lt;br /&gt;
 With the listen pages you either need to have specified an IP with 'dstip / destip'&lt;br /&gt;
 (see section 4.2) or leave empty and allow the server to attempt to auto-generate&lt;br /&gt;
 the IP required for the client to be able to connect. If this fails the generated&lt;br /&gt;
 playlist is likely to return a stream url like &amp;lt;nowiki&amp;gt;http://0.0.0.0:&amp;lt;portbase&amp;gt;/&amp;lt;path&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''home.html?sid=#''' or '''home?sid=#'''  -  Opens in a new window or tab (depending on the client browser) the 'streamurl' as specified by the stream source. If this is not set then the client will be redirected to the shoutcast.com main page.&lt;br /&gt;
&lt;br /&gt;
'''stats?sid=#'''  -  Provides an xml response for public accessibility which matches the private version from admin.cgi?sid=#&amp;amp;mode=viewxml&amp;amp;page=1. This is the modern version of the 7.html page as provided by the legacy v1 servers. See [[#XML_Responses|section 5.2]] for information on what is provided in the xml response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Private Pages====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 By passing &amp;amp;pass=password where password is the 'adminpassword' (see section [[#Networking|4.8]]) then it is possible&lt;br /&gt;
 to directly access the administration page(s) required. As well the base64 encoded version of the password&lt;br /&gt;
 can be passed as long as it is prefixed with ''YWRtaW46''&lt;br /&gt;
 e.g.&lt;br /&gt;
     &amp;amp;pass=changeme is the same as &amp;amp;pass=YWRtaW46Y2hhbmdlbWU=&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi'''  -  Shows the an overal summary admin page for the streams provided by the server including direct links to certain information pages (see notes about the 'admin.cgi?sid=#&amp;amp;mode=viewxml' command for more info)&lt;br /&gt;
:or&lt;br /&gt;
'''admin.cgi?sid=0'''&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#'''  -  Shows the base admin page for the stream and information&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=updinfo&amp;amp;song=title'''           &lt;br /&gt;
:or&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=updinfo&amp;amp;type=xml&amp;amp;song=xml'''    &lt;br /&gt;
 If 'title' is not empty then it will be set as the current song title for the stream&lt;br /&gt;
 specified until the next use of this action or the next title update is received from&lt;br /&gt;
 the source. Specifying '&amp;amp;type=xml' will process the value of 'song' as [[SHOUTcast_XML_Metadata_Specification|v2 XML metadata]]&lt;br /&gt;
 instead of a v1 title.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewlog'''  -  View logfile&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewlog&amp;amp;viewlog=tail'''  -  View logfile (tailing)&lt;br /&gt;
&lt;br /&gt;
 The tailing option keeps adding additional log entries to the end of the view whilst the view is active.&lt;br /&gt;
 As well any html or xml data in the log will not be shown correctly in the view as &amp;lt; &amp;gt; &amp;amp; are not escaped&lt;br /&gt;
 to their html entities. See [[#Logging|section 4.6]] for more information on the log file.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewban'''  -  Ban view which matches the ban file and allows you to ban a single IP or an IP range from it (see [[#Banning|section 4.1]] for more info on the file)&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewrip'''  -  Reserved IP list that matches the rip file (see [[#Reserved_IP_.28RIP.29|section 4.11]] for more info on the file)&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=art''' or '''admin.cgi?sid=#&amp;amp;mode=art&amp;amp;art=playing'''  -  Displays the artwork SHOUTcast v2 compatible clients may be able to display if the SHOUTcast v2 source does provide it.&lt;br /&gt;
  &lt;br /&gt;
 The artwork mode is primarily intended as a debugging option to make it possible&lt;br /&gt;
 to see what (if anything) has been provided by the SHOUTcast v2 source.&lt;br /&gt;
 &lt;br /&gt;
 If no '&amp;amp;art=' is specified or not a matching option then the stream artwork (if&lt;br /&gt;
 available) will be shown. If no '&amp;amp;art=playing' is specified then this will show&lt;br /&gt;
 the playing file's artwork (if available).&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewxml''' or '''admin.cgi?sid=#&amp;amp;mode=viewxml&amp;amp;page=#'''  -  Returns an xml output of the current stream information&lt;br /&gt;
&lt;br /&gt;
 If page is not set or is outside of the range zero to 6 then this will output all of the&lt;br /&gt;
 information as the standard viewxml action does. Otherwise this only display information&lt;br /&gt;
 depending on the value assigned to page which can be from 1 to 6 which maps as follows:&lt;br /&gt;
 &lt;br /&gt;
     1 - Server Summary (this is the same as using the public stats?sid=# action)&lt;br /&gt;
     2 - Not used (previously used for Webdata Stats but not in current builds)&lt;br /&gt;
     3 - Listener Stats&lt;br /&gt;
     4 - Song History&lt;br /&gt;
     5 - Stream Metadata        (if supported by the source otherwise can just be title)&lt;br /&gt;
     6 - Stream Configurations  (displays all of the known stream configurations though this is only available on admin.cgi)&lt;br /&gt;
 &lt;br /&gt;
 If accessing the standard viewxml or the listener stats (page = 3), you can also send&lt;br /&gt;
 '&amp;amp;iponly=1' which will filter the listener information (if there are any) to just output&lt;br /&gt;
 the IP instead of the additional information provided normally.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=resetxml&amp;amp;sid=#'''  -  Will flush the held stream information to refresh it&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=kicksrc'''  -  Will allow you to kick the currently connected source for the specified stream.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unripdst&amp;amp;ripdst=&amp;lt;IP&amp;gt;'''  -  Where &amp;lt;IP&amp;gt; is the IP to reserve (see [[#Reserved_IP_.28RIP.29|section 4.11]] for more information).&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unbandst&amp;amp;bandst=&amp;lt;IP&amp;gt;.0&amp;amp;banmsk=0'''  -  Where &amp;lt;IP&amp;gt; is the first 3 parts of a subnet IP to unban.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unbandst&amp;amp;bandst=&amp;lt;IP&amp;gt;&amp;amp;banmsk=255'''  -  Where &amp;lt;IP&amp;gt; is that of a single IP to unban.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=rotate''' or '''admin.cgi?mode=rotate&amp;amp;files=log|w3c'''  -  This will rotate the log files set via the 'logfile', 'w3clog' and 'streamw3clog' options.&lt;br /&gt;
 If &amp;amp;files is specified then passing log or w3c will allow you to only&lt;br /&gt;
 rotate one type of file otherwise both will be rotated by this command.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=reload''' or '''admin.cgi?mode=reload&amp;amp;force=1'''  -  This reloads the stream configuration details in the main configuration file the server used when started and is only available on the admin summary page and so can only be run by the master administrator password.&lt;br /&gt;
&lt;br /&gt;
 This command works on the server as a whole (hence no sid parameter) and it will add or&lt;br /&gt;
 remove or update any stream configuration as applicable which will cause any connected&lt;br /&gt;
 sources and clients to be kicked as applicable (usually if a stream configuration was removed).&lt;br /&gt;
 &lt;br /&gt;
 This will recognise any configurations included via 'include' entries so you can have 'include=stream/*.conf'&lt;br /&gt;
 in your main configuration file which the server can then use to detect different stream configurations.&lt;br /&gt;
 &lt;br /&gt;
 If '&amp;amp;force=1' is passed then the reload will treat the updating of active stream configurations in the&lt;br /&gt;
 same manner as a stream configuration removal instead of trying to update compatible stream configuration&lt;br /&gt;
 details without resetting the stream '''e.g.''' not increasing the 'streammaxuser' when it could be increased.&lt;br /&gt;
 &lt;br /&gt;
 The following configuration options are updated when using this command:&lt;br /&gt;
 &lt;br /&gt;
     password or streampassword (*)            streamadminpassword (#)&lt;br /&gt;
     requirestreamconfigs                      streamid&lt;br /&gt;
     streamauthhash                            streampath&lt;br /&gt;
     streamrelayurl                            streammaxuser&lt;br /&gt;
     streampublicserver                        streamallowrelay&lt;br /&gt;
     streamallowpublicrelay                    streamriponly&lt;br /&gt;
     streamautodumpsourcetime                  streamautodumpusers&lt;br /&gt;
     streamlistenertime                        streamintrofile&lt;br /&gt;
     streambackupfile                          streambanfile&lt;br /&gt;
     streamripfile&lt;br /&gt;
 &lt;br /&gt;
 (*) This will depend upon the current values versus the new configuration values&lt;br /&gt;
 (#) The master 'adminpassword' can only be changed after a restart of the server&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XML Responses===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
As detailed in the previous sections, some of the administration actions will provide the information in an xml response. For information on what is actually returned in these xml responses see [[SHOUTcast_DNAS_Server_2_XML_Reponses|sc_serv2_xml_responses.txt]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stream Addresses==&lt;br /&gt;
&lt;br /&gt;
Clients connecting to the streams provided by sc_serv are able to so in a number of ways depending upon how the streams have been configured and also depending upon the number of streams you have available.&lt;br /&gt;
&lt;br /&gt;
The two main ways for a client to connect to a stream are as follows:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;serverurl&amp;gt;/stream/&amp;lt;streamid&amp;gt;/&lt;br /&gt;
or&lt;br /&gt;
 &amp;lt;serverurl&amp;gt;/&amp;lt;streampath&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;serverurl&amp;gt; is typically formed as &amp;lt;nowiki&amp;gt;http://dstip:portbase&amp;lt;/nowiki&amp;gt; (see sections [[#Client_Behaviour|4.2]] and [[#Networking|4.8]])&lt;br /&gt;
 &amp;lt;streamid&amp;gt; is the 'streamid' set from the stream configuration (see [[#Stream_Configuration|section 4.12]])&lt;br /&gt;
 &amp;lt;streampath&amp;gt; is the 'streampath' set from the stream configuration (see [[#Stream_Configuration|section 4.12]])&lt;br /&gt;
&lt;br /&gt;
If the client attempting to connect to the server instance does not specify &amp;lt;streampath&amp;gt; or &amp;lt;streamid&amp;gt; in the stream url it attempts to access or if only one stream is provided then the server will usually default to the first stream it knows about and will allow the client to make a valid connection (though this is not guaranteed to happen).&lt;br /&gt;
&lt;br /&gt;
This handling of the stream addresses provided is something to keep in mind especially if you are providing multiple streams as this will allow you to provide different addresses for certain clients to be able to use a specific stream '''e.g.''' if you wanted to have mobile clients connect to a lower bandwidth stream then you could direct them to '&amp;lt;serverurl&amp;gt;/mobile'&lt;br /&gt;
&lt;br /&gt;
The server options available for controlling how the stream's path is specified can be seen in [[#Stream_Configuration|section 4.12]] which also details the equivalent values needing to be set in the sc_trans configuration if you use sc_trans to provide a source to sc_serv.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Locale Error (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
If you receive the following error then you have a locale related issues:&lt;br /&gt;
&lt;br /&gt;
 terminate called after throwing an instance of 'std::runtime_error'&lt;br /&gt;
 what():  locale::facet::_S_create_c_locale name not valid&lt;br /&gt;
 Abort trap&lt;br /&gt;
&lt;br /&gt;
If this happens then you need to set the 'POSIX' locale in your terminal's environment values. If this does not happen then everything is fine or you are using a newer version of sc_serv from the end of 2010 which should no longer exhibit this issue.&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
BSD:&lt;br /&gt;
 setenv LC_ALL POSIX&lt;br /&gt;
&lt;br /&gt;
Mac OS X:&lt;br /&gt;
 export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
You can test to see if this has worked by checking the shell command &amp;quot;locale&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 LANG=&lt;br /&gt;
 LC_COLLATE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_CTYPE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_MESSAGES=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_MONETARY=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_NUMERIC=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_TIME=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_ALL=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Virtual Memory Footprint (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
Due to how sc_serv works it will create a large number of threads which may become an issue due to the default virtual memory stack allocation per thread potentially being large (typically 10MB per thread). For most people this should not be an issue as the memory is not really allocated unless it is used. If however if you have a resource constrained system or if you plan on running many copies of sc_trans then you could potentially run out of virtual memory.&lt;br /&gt;
&lt;br /&gt;
The default thread allocation can be reduced by issuing a &amp;quot;ulimit&amp;quot; command before running sc_trans and in the example reduces it to 512KB per-thread '''e.g.'''   ulimit -s 512&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Maximum Client Connection Limits==&lt;br /&gt;
&lt;br /&gt;
In general, there are inherent limits on the maximum number of client connections which may be made to a running instances of sc_serv which can either be set by configuration limits e.g. 'maxuser', Operating System limits or bandwidth limits being reached.&lt;br /&gt;
&lt;br /&gt;
The first two are easy to resolve whereas the last (bandwidth limits) is something which will usually require obtaining additional hosting or paying for more available bandwidth.&lt;br /&gt;
&lt;br /&gt;
If reaching the Operating System limit, this is usually indicated by the maximum number of clients never going above a fixed value even if there is the bandwidth and the server has been configured to go higher. This usually appears as around 1016 maximum connections (though this can vary a bit)&lt;br /&gt;
&lt;br /&gt;
If using a non-Windows Operating System then you can use the 'ulimit -n xxxx' command to change the upper limit from what is already set which can be found from just 'ulimit -n' e.g. to change the limit to 4096 connections you would run ulimit -n 4096&lt;br /&gt;
&lt;br /&gt;
If using a Windows Operating System then there isn't any real way to change such things due to the OS hopefully being configured with limits that will not be reached when using sc_serv. If in doubt then consult the Microsoft support documentation for the OS used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Configurations==&lt;br /&gt;
&lt;br /&gt;
Include as part of the sc_serv installation are a number of example configurations to get things started with using some of the features of the server. The provided examples are:&lt;br /&gt;
&lt;br /&gt;
 sc_serv_basic.conf&lt;br /&gt;
 sc_serv_public.conf&lt;br /&gt;
 sc_serv_relay.conf&lt;br /&gt;
 sc_serv_simple.conf&lt;br /&gt;
&lt;br /&gt;
All of the configuration examples are documented and will relate back to details in this file appropriately. You will need to change some details in these example files or to obtain any applicable authorisation keys for the setup you are making ([[#Getting_Started|see section 3.0]]). In all cases the examples are designed to work from the same install folder as sc_serv.&lt;br /&gt;
&lt;br /&gt;
Remember these examples are a way to get you up and running faster though you are still likely to have to adjust things depending upon the systems you are using and how you want to manage your sources and server connections which are covered in previous sections.&lt;br /&gt;
&lt;br /&gt;
Additionally if you are not happy with editing the files or find it still too confusing then you can use the configuration builder which (if installed) can be found in the 'config_builder'. Open 'config_builder.html' in your browser and then use this graphical tool to setup a configuration file for the server (and additionally the transcoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_basic===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This is the base configuration from which the other configuration examples are based and this will get a sc_serv instance running as a local setup with no connection made to the YP directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_public===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_serv_basic configuration to get a sc_serv instance running as a public setup with a connection made to the YP for listing the stream in the directory. This shows the use of the 'include' option (see section [[#Miscellaneous|4.7]]) and how specifying a configuration option twice uses the last value found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_relay===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_serv_public configuration to get a sc_serv instance running as a public setup with a source coming in from a relay server providing a SHOUTcast 2 stream.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_debug===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file can be included in any other configuration files to allow you to get debug logging output when trying to investigate any issues you may be experiencing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_simple===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Use this if you just need to get a very basic server running or are impatient&lt;br /&gt;
 or are struggling to get it running despite the previous example configurations.&lt;br /&gt;
&lt;br /&gt;
This configuration file is designed to be used just as is and is the simplest form of the configuration file you can have which will allow you to get a running server to appear on the YP. This works on using the default settings of the server though does change some of the file paths inorder to fit in with the existing setup as used in the other examples.&lt;br /&gt;
&lt;br /&gt;
All you need to do when using this configuration file is to enter your authorisation key in the 'streamauthhash' line '''e.g.''' if your authorisation key is '''123456789''' then you change ''streamauthhash=&amp;lt;enter_your_auth_key_here&amp;gt;'' to ''streamauthhash='''123456789''''' and save the file.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Server_2</id>
		<title>SHOUTcast DNAS Server 2</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Server_2"/>
				<updated>2022-02-04T12:27:39Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Stream Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
The purpose of this document is to show you the different configuration options supported by sc_serv along with basic and more advanced example configurations to enable you to get started with using sc_serv and the features it can offer.&lt;br /&gt;
&lt;br /&gt;
The aim of sc_serv is to provide enhanced serving features and also access to the new YP2 infrastructure whilst maintaining as much backward compatibility with previous versions of sc_serv as possible. The new features introduced include:&lt;br /&gt;
&lt;br /&gt;
# Serving multiple streams from a single server instance&lt;br /&gt;
# Relaying multiple streams from a single server instance&lt;br /&gt;
# Multiplexing all server activity through a single IP port&lt;br /&gt;
# SHOUTcast 2 wire protocol support for sources, relays and clients&lt;br /&gt;
# Repackaging of SHOUTcast 1 and SHOUTcast 2 data as needed for connected clients&lt;br /&gt;
# YP2 infrastructure support&lt;br /&gt;
# Real-time metadata and statistic reporting&lt;br /&gt;
# Static station id support&lt;br /&gt;
# In-stream metadata in standardised xml files&lt;br /&gt;
# UTF-8 and international character encoding&lt;br /&gt;
# Improved server and stream security&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview of Features==&lt;br /&gt;
&lt;br /&gt;
To take full advantage of the newer features provided as part of the SHOUTcast 2 and YP2 systems then you will need to ensure you are using a compatible version of sc_serv (any version 2 will work) and that you have the required authorisation key to register as a broadcaster on the YP2 directory (see [[#Getting_Started|section 3.0]]).&lt;br /&gt;
&lt;br /&gt;
If you were intending on taking full advantage of the multiplexing and multiple stream support offered as part of sc_serv then you would need to make sure you enable the SHOUTcast 2 options (this is enabled by default with server builds from the end of 2010 if the 'yp2' option in the configuration file is not specified [see [[#YP_Server_Behaviour|section 4.14]] ). The reason for needing to enable this support is if you try to do it with the original SHOUTcast 1 protocol then it will not work as the original protocol has no means of expressing multiple streams from a single port due to the lack of an identifier provided for them.&lt;br /&gt;
&lt;br /&gt;
If you are planning on connecting multiple sc_trans instances to sc_serv then you must use the SHOUTcast 2 protocol support so that each sc_trans instance can have a unique identifier which allows for multiple streams to then be provided from a single server. It is still possible for an older source to connect to the server with a number of config options available to support this though functionality will be limited compared to what can be done with a fully supporting SHOUTcast 2 source.&lt;br /&gt;
&lt;br /&gt;
Finally clients connecting to your server do not need to directly support SHOUTcast 2 as sc_serv will repackage the stream data and any related metadata into the correct format the client requests (typically based on the user agent detected by the server).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
&lt;br /&gt;
One of the key aspects of the new YP2 directory infrastructure is an authorisation key which is used to validate your server when it tries to connect to the YP2 infrastructure for any of the station(s) you run. Once this key is obtained, it will be valid for all root servers of the station being broadcast.&lt;br /&gt;
&lt;br /&gt;
This can be done by going to the [[SHOUTcast_Authhash_Management|SHOUTcast Authhash Management]] page which shows how to do this via the 'Administation Summary' page as long as a valid source has been connected to the server. This process automatically updates your configuration file(s) with the new authhash and if the stream is set to be public then will attempt to get the stream listed in the SHOUTcast Radio Directory.&lt;br /&gt;
&lt;br /&gt;
When using an older SHOUTcast 1 server then you do not need to do this registration and the server will still be able to be listed on the directory but there is not the same level of protection over the stream as is the case with registering it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Running the Server===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The server is able to be run either as a console application or it can be run as service (Windows) or daemon (Linux / Mac OS X / BSD). Detailed below is how to get the server running on the different operating systems supported by it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The Windows version of sc_serv is designed to run on fully updated and patched versions of Windows 2000, XP, Vista and Windows 7, 8 &amp;amp; 10.&lt;br /&gt;
&lt;br /&gt;
Please note that the Windows versions of sc_serv are built with a dependency against the Microsoft Visual C++ 2008 SP1 Redistributable Package. If sc_serv is unable to start due to a dependency issue then you will need to install the correct version of the package so it can run which depends on the version of sc_serv you are attempting to run:&lt;br /&gt;
&lt;br /&gt;
32-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&lt;br /&gt;
&lt;br /&gt;
64-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ba9257ca-337f-4b40-8c14-157cfdffee4e&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Install as a Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe install &amp;lt;servicename&amp;gt; &amp;lt;username&amp;gt; &amp;lt;password&amp;gt; &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service&lt;br /&gt;
 Typically enter this as 'sc_serv' though you can use a different name but you will need&lt;br /&gt;
 to remember it as it is required to be the same when using the 'uninstall' mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;username&amp;gt; - User under which to run the service as or '0' for the local system&lt;br /&gt;
&lt;br /&gt;
&amp;lt;password&amp;gt; - Password for user or '0' for the local system or with no password&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
When run as a service there is not a good sense of a current working directory so requires all paths in the configuration and playlist files to be fully qualified otherwise lookups will fail when sc_serv is run.&lt;br /&gt;
&lt;br /&gt;
To run sc_serv with a configuration file in the same folder as the server as the current system user account you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_serv.exe install sc_serv 0 0 sc_serv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Uninstall the Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe uninstall &amp;lt;servicename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service as used when the service was registered&lt;br /&gt;
&lt;br /&gt;
To uninstall sc_serv assuming it was installed as detailed in the install section above then you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_serv.exe uninstall sc_serv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Service in the Console====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
===Linux / Mac OS X / BSD===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Remember to enable the required access on the sc_trans file by doing 'chmod a+x sc_trans' after extracting it from the distribution file otherwise the OS is likely to not run it and show the error message './sc_serv: Permission denied'.&lt;br /&gt;
&lt;br /&gt;
====Run as a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_serv daemon &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (required in all cases)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
'''e.g.'''&lt;br /&gt;
 ./sc_serv daemon ./sc_serv.conf&lt;br /&gt;
&lt;br /&gt;
When run this should output the following:&lt;br /&gt;
&lt;br /&gt;
'sc_serv going daemon with PID [XXXX]' where XXXX is the &amp;lt;pid&amp;gt; of the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====End a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
kill -SIGTERM &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -15 &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -s TERM &amp;lt;pid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pid&amp;gt; - The PID of the daemon instance (reported when the daemon started or can be found with 'ps ax | grep sc_serv' as long as sc_serv was the file run otherwise you can just use 'ps ax' if the filename isn't known). Additionally the PID of sc_serv is listed in the log file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_serv &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Additional Signals===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
When run on Linux / Mac OS X / BSD then some additional signals are supported to allow for additional control over the running daemon instance of sc_serv.&lt;br /&gt;
&lt;br /&gt;
The following signals can be used with the 'kill' command (in the manner of your choosing for using the kill command) along with the &amp;lt;pid&amp;gt; of the daemon instance to do one of the following actions:&lt;br /&gt;
&lt;br /&gt;
    SIGKILL   -  Stops sc_trans (also SIGTERM, SIGINT and SIGQUIT will work)&lt;br /&gt;
    SIGHUP    -  Rotates logfile, w3clog and streamw3clog&lt;br /&gt;
&lt;br /&gt;
The result of SIGHUP is that the current log file contents will be moved into &amp;lt;logfile&amp;gt;_1 e.g. sc_serv_1.log, &amp;lt;logfile&amp;gt;_1 will be moved into &amp;lt;logfile&amp;gt;_2 e.g. sc_serv_2.log and so on for all log files which can be found which match the current log file's name. This is useful if timed to have it create day specific log files.&lt;br /&gt;
&lt;br /&gt;
 These signals are not supported by the Windows version of sc_serv which will only&lt;br /&gt;
 respond to the Ctrl + C / Ctrl + Break / console close commands the OS provides.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration File==&lt;br /&gt;
&lt;br /&gt;
Here you can find a complete list of all of the configuration options which are provided by sc_serv which ranges from logging to networking configuration and control over the media being used when streaming via the server.&lt;br /&gt;
&lt;br /&gt;
Configuration entries labelled as ''&amp;lt;MULTI&amp;gt;'' can be used to set up simultaneous connections to the server or allow for multiple connections from various sources. These are specified by adding _# to the end of the option's name as shown below where # begins with one. If you are only working with a single instance then you do not need to add the _# part as any instances of a configuration option will assume it is for _1.&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;MULTI&amp;gt;'' system is not hierarchical and all values beyond the default must be specified for all connections. So for example, if you wanted to connect to two servers on the same port you must do:&lt;br /&gt;
&lt;br /&gt;
    portbase_1=8080&lt;br /&gt;
    portbase_2=8080&lt;br /&gt;
    destip_1=stream.server1.com&lt;br /&gt;
    destip_2=stream.server2.com&lt;br /&gt;
&lt;br /&gt;
Note that you CANNOT do it like this as it leads to not all values being set:&lt;br /&gt;
&lt;br /&gt;
    portbase=8080&lt;br /&gt;
    destip_1=stream.server1.com&lt;br /&gt;
    destip_2=stream.server2.com&lt;br /&gt;
&lt;br /&gt;
The configuration files also allow for comments/notes or options to be disabled by the use of a semi-colon (''';''') or a left bracket ('''[''') or the hash / pound symbol ('''#''') at the start of a line which can be seen in all of the configuration examples.&lt;br /&gt;
&lt;br /&gt;
Known options in the configuration files are recognised irrespective of the case they are entered in the configuration file so maxuser and MaXuSer will be handled the same way.&lt;br /&gt;
&lt;br /&gt;
Any items found in the configuration file which are not known (as detailed in following sections) or is not processed as a comment will be reported in the following manner:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;date + time&amp;gt; W msg:[CONFIG] Invalid item on line XX&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;date + time&amp;gt; is the date and time the event happens at and XX is the line in the configuration file where the error has been found to occur at.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Banning===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''banfile''' : File to store the list of banned IP addresses    ''[Default = sc_serv.ban]''&lt;br /&gt;
&lt;br /&gt;
'''savebanlistonexit''' : Re-write the 'banfile' on server exit    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the file into then you need to ensure that the&lt;br /&gt;
 folder already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Client Behaviour===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''maxuser''' : Specify the maximum number of clients allowed to connect to the server    ''[Default = 32]''&lt;br /&gt;
 This is used in conjunction with 'streammaxuser' (see [[#Stream_Configuration|section 4.12]]) to control the&lt;br /&gt;
 maximum limit on the number of client connections allowed to connect to the server instance.&lt;br /&gt;
&lt;br /&gt;
'''listenertime''' : Specify the maximum time in minutes a client can listen to the stream    ''[Default = 0]''&lt;br /&gt;
 A value of zero means there will be no time limit.&lt;br /&gt;
&lt;br /&gt;
'''autodumpusers''' : Enable to allow the server to disconnect clients if the source disconnects    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''srcip''' : Specify the server side binding address for sources to connect on    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''dstip''' or '''destip''' or '''publicip''' : Specify the server side binding address for clients    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
 If 'any' or no value is specified then sc_serv listens to all addresses.&lt;br /&gt;
&lt;br /&gt;
If you specify a value for 'dstip / destip' then this will be used by the listen feature on the Administration Pages (see section 5.1) so it can provide a valid stream url in the generated playlist. If 'dstip / destip' is not specified then the server will attempt to auto-generate the IP required for the client to be able to connect. If this fails the generated playlist is likely to return a stream url like &amp;lt;nowiki&amp;gt;http://0.0.0.0:&amp;lt;portbase&amp;gt;/&amp;lt;path&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The IP provided needs to be in a valid format like &amp;lt;nowiki&amp;gt;http://&amp;lt;my-ip&amp;gt;&amp;lt;/nowiki&amp;gt; or an address which can be resolved to an IP otherwise the internal lookups done are likely to fail (depends upon the server configuration and OS being used). Also you cannot set srcip and dstip / destip to be the same IP value and if this happens then the server will close. Closing of the server will also happen if the IP cannot be resolved or correctly bound to i.e. server is not there or an invalid value was entered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''titleformat''' : Specify a string to be used in-place of the default icy-name string being used    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''urlformat''' : Specify a string to be used in-place of the default icy-url string being used    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''  '''&lt;br /&gt;
'''  '''&lt;br /&gt;
&lt;br /&gt;
===Debugging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In all cases, the default value is for no debug logging for the options listed below.&lt;br /&gt;
&lt;br /&gt;
'''yp1debug''' : Enable debug logging of YP connections&lt;br /&gt;
&lt;br /&gt;
'''yp2debug''' : Enable debug logging of YP2 connections&lt;br /&gt;
&lt;br /&gt;
'''shoutcastsourcedebug''' : Enable debug logging of SHOUTcast source connections&lt;br /&gt;
&lt;br /&gt;
'''uvox2sourcedebug''' : Enable debug logging of SHOUTcast 2 source connections&lt;br /&gt;
&lt;br /&gt;
'''shoutcast1clientdebug''' : Enable debug logging of SHOUTcast streaming clients&lt;br /&gt;
&lt;br /&gt;
'''shoutcast2clientdebug''' : Enable debug logging of SHOUTcast 2 streaming clients&lt;br /&gt;
&lt;br /&gt;
'''relayshoutcastdebug''' : Enable debug logging for SHOUTcast relays&lt;br /&gt;
&lt;br /&gt;
'''relayuvoxdebug''' : Enable debug logging for SHOUTcast 2 relays&lt;br /&gt;
&lt;br /&gt;
'''relaydebug''' : Enable debug logging of common relay code&lt;br /&gt;
&lt;br /&gt;
'''streamdatadebug''' : Enable debug logging of common streaming code&lt;br /&gt;
&lt;br /&gt;
'''httpstyledebug''' : Enable debug logging of http style requests&lt;br /&gt;
&lt;br /&gt;
'''statsdebug''' : Enable debug logging of statistics&lt;br /&gt;
&lt;br /&gt;
'''microserverdebug''' : Enable debug logging of common server activity&lt;br /&gt;
&lt;br /&gt;
'''threadrunnerdebug''' : Enable debug logging of the thread manager&lt;br /&gt;
&lt;br /&gt;
'''rtmpclientdebug''' : Enable debug logging of rtmp clients&lt;br /&gt;
&lt;br /&gt;
'''admetricsdebug''' : Enable debug logging of ad metrics (v2.5 and newer)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' '''&lt;br /&gt;
''' '''&lt;br /&gt;
&lt;br /&gt;
===Flash Security===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''flashpolicyfile''' : Name of file containing flash crossdomain policies on the server    ''[Default = crossdomain.xml]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Introduction and Backup Files===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Note that intro and backup audio files must precisely match the format and bitrate for the stream! If they do not match, there will be a break in the stream and the listener will be disconnected. &lt;br /&gt;
&lt;br /&gt;
'''introfile''' : File to play when a client first connects to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: This is used globally and also is default for stream #1 on DNAS versions greater than 2.0. To apply a specific intro file to a stream, use streamintrofile_X. &lt;br /&gt;
&lt;br /&gt;
'''streamintrofile_X''' : File to play when a client first connects to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''backupfile''' : File to play if the source disconnects from the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: This is used globally and also is default for stream #1 on DNAS versions greater than 2.0. To apply a specific backup file to a stream, use streambackupfile_X. &lt;br /&gt;
&lt;br /&gt;
'''streambackupfile_X''' : assigns a specific backup file to a streamID X [Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''streambackupurl_X''' : assigns a specific backup stream to a streamID X (v2.6.1 feature)''&lt;br /&gt;
&lt;br /&gt;
'''specialfiletmpdir''' : place to store intro and backup files uploaded by sc_trans    ''[Default = /tmp/ (*nix only)]''&lt;br /&gt;
&lt;br /&gt;
'''maxspecialfilesize''' : Change the maximum size in bytes of the backup and intro files    ''[Default = 30000000]''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''log''' : Enable logging of the servers output    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''screenlog''' :  Enable logging of servers output to the console    ''[Default = 1]''&lt;br /&gt;
 If log=0 then this option is ignored due to no logging happening.&lt;br /&gt;
&lt;br /&gt;
'''logfile''' : Specify a different logfile to save the logs into ''[Default = %temp%\sc_serv.log or /tmp/sc_serv.log]''&lt;br /&gt;
&lt;br /&gt;
'''logclients''' : Enable logging of details about client connections and disconnections made ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the logs into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''configrewrite''' :  Re-write the 'config file' on server exit    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''songhistory''' : Specify the maximum song history to preserve    ''[Default = 10]''&lt;br /&gt;
&lt;br /&gt;
'''cpucount''' : Specify the number of cpu's present instead of the calculated number if non-zero    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''unique''' : Specify a substitution string for the '$' character to be used when processing filenames which if specified will set any occurences of '$' to the value set. This will be used in the processing of the following filenames: '''logfile''', '''introfile''', '''streamintrofile''', '''backupfile''', '''streambackupfile''', '''banfile''', '''streambanfile''', '''ripfile''', '''streamripfile''', '''include''', '''w3clog''', '''streamw3clog'''&lt;br /&gt;
&lt;br /&gt;
 So when 'unique' is changed from '$' to say 'test' then the following happens if 'logfile' is&lt;br /&gt;
 set to '/usr/local/shoutcast/$.log' then this would be converted to '/usr/local/shoutcast/test.log'&lt;br /&gt;
&lt;br /&gt;
'''include''' : Specify an additional include file containing settings to be processed from the current point in the main configuration file    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
You can do multiple calls of this allowing for a basic configuration file with then 'specific' stream configurations set in individual conf files though you need to ensure not to include a reference to the same file in itself.&lt;br /&gt;
&lt;br /&gt;
You can also specify a path with a wildcard for sc_serv to use to find multiple configuration files to include '''e.g.''' 'include=stream/*.conf'.  This can then be used along with the multiple stream configurations (see section 4.12) and the admin command 'admin.cgi?mode=reload' (see section 5.1) to add / remove / update stream configurations without having to close the server to apply them.&lt;br /&gt;
&lt;br /&gt;
'''admincssfile''' : Specify the css styling to be used on the index.html and admin pages    ''[Default = v2]''&lt;br /&gt;
&lt;br /&gt;
This can accept the following parameters:&lt;br /&gt;
&lt;br /&gt;
:admincssfile='''v1'''  -  Uses the v1 DNAS style&lt;br /&gt;
:admincssfile='''v2'''  -  Uses the newer SHOUTcast 2 style&lt;br /&gt;
:admincssfile='''path_to_local_css_file'''  e.g. my_index.css&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 If using a custom css file, if it does not exist on the first try to load it the server will revert to&lt;br /&gt;
 the default css style. As well the style is cached once loaded so changes require a restart of sc_serv.&lt;br /&gt;
&lt;br /&gt;
'''faviconfile''' : Specify the file to be returned as the favicon.ico when the administration pages are being queried by the client's browser    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
The default behaviour is to use a SHOUTcast themed built-in icon file and support / handling the update of this will entirely depend on the browser.&lt;br /&gt;
&lt;br /&gt;
'''faviconmimetype''' : Specify the mime type for actual file to be served in the favicon.ico response    ''[Default = image/x-icon]''&lt;br /&gt;
&lt;br /&gt;
Ensure this is correct for the type of image being used so it is valid.&lt;br /&gt;
&lt;br /&gt;
'''hidestats''' : Specify if the publically accessible stats?sid=# page can be accessed or if it is only available via the private administration pages   ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''robotstxtfile''' : Specify the file to be returned as the robots.txt when queried by search engines, etc to attempt to prevent incorrect access to the server's pages which may cause invalid client connections    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
The default behaviour is to return a robots.txt reponse indicating not to look at any of the server's pages i.e.&lt;br /&gt;
::User-agent:*&lt;br /&gt;
::Disallow:/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Networking===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''namelookups''' : Enable to allow reverse DNS look-ups on incoming IP addresses    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''portbase''' : Specify the port which clients and sources need to use to connect to the server    ''[Default = 8000]''&lt;br /&gt;
 SHOUTcast 1 sources are only able to connect to 'portbase + 1'.&lt;br /&gt;
&lt;br /&gt;
'''autodumpsourcetime''' : Specify how long before an idle source is dumped from the server (in seconds)    ''[Default: 30]''&lt;br /&gt;
 A value of zero means there is no timeout of an idle source.&lt;br /&gt;
 Also if you set this too low then it is likely that valid sources will&lt;br /&gt;
 fail to connect during the initial stages of a source connection.&lt;br /&gt;
&lt;br /&gt;
'''maxheaderlinesize''' : Specify the maximum size of an HTTP header line    ''[Default = 2048]''&lt;br /&gt;
&lt;br /&gt;
'''maxheaderlinecount''' : Specify the maximum header lines in an HTTP style exchange    ''[Default = 100]''&lt;br /&gt;
&lt;br /&gt;
'''adminpassword''' : Specify the administrator password for accessing the remote server features    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''password''' : Specify the password for broadcasters when connecting to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
 This matches the 'uvoxauth' value in the sc_trans configuration file (see [[SHOUTcast_DNAS_Transcoder_2#Network_Options|sc_trans.txt - section 3.11]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Network Buffers===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''buffertype''' : Specify whether the buffer size is fixed [0] or adaptive [1]    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''adaptivebuffersize''' : Specify the buffer size in seconds if buffer is set to adaptive    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''fixedbuffersize''' : Specify the buffer size in bytes if the buffer is set to fixed    ''[Default = 1048576]''&lt;br /&gt;
&lt;br /&gt;
'''bufferhardlimit''' : Specify the maximum buffer size in bytes which it can never go above    ''[Default = 16777216]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Relaying===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''allowrelay''' : Enable to allow a relay to connect to the server    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''allowpublicrelay''' : Enable to allow relays to list themselves in the YP directory    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''relayreconnecttime''' : Specify how many seconds to wait to reconnect on a relay failure    ''[Default = 30]''&lt;br /&gt;
 Setting this to 0 will disable attempts for the relay to reconnect.&lt;br /&gt;
&lt;br /&gt;
'''relayconnectretries''' : Specify the number of times relays are attempted to be connected to if it is initially unable to connect    ''[Default = 3]''&lt;br /&gt;
 This generally applies only to YP1 connections and is related to the&lt;br /&gt;
 actual attempts to make and get a http response from the YP server.&lt;br /&gt;
&lt;br /&gt;
'''maxhttpredirects''' : Specify the maximum number of times we can redirect when relaying    ''[Default = 5]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;Legacy Options&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
'''relayport''' : Port of the source to use for the relay    ''[Default: 80]''&lt;br /&gt;
&lt;br /&gt;
'''relayserver''' : Url of the source to relay    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
 Using the stream configuration options (see [[#Stream_Configuration|section 4.12]]) is the preferred method&lt;br /&gt;
 of setting up a relay. These options are only provided as a means for loading&lt;br /&gt;
 legacy configuration files. If found then these are mapped to 'streamrelayurl_1'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Reserved List===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''ripfile''' : File to store the list of reserved IP addresses    ''[Default = sc_serv.rip]''&lt;br /&gt;
&lt;br /&gt;
'''saveriplistonexist''' : Re-write the 'ripfile' on server exit    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''riponly''' : Only allow connections to be made from reserved IP addresses    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the file into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Stream Configuration===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Important Note:''' If you do not specify an identifier (_#) on the end of the above options then it will be treated like _1 (effectively acting like SHOUTcast 1). Additionally, _0 is not a supported identifier and will be mapped to _1.&lt;br /&gt;
&lt;br /&gt;
'''requirestreamconfigs''' : Only allow sources to connect if a stream configuration has been set in your configuration file    ''[Default = 0]''&lt;br /&gt;
 With this enabled, you will need to ensure that any sources have their configuration details&lt;br /&gt;
 setup to match those in sc_trans's configuration, in particular the 'uvoxstreamid' value with&lt;br /&gt;
 sc_trans (see [[SHOUTcast_DNAS_Transcoder_2#Network_Options|sc_trans.txt - section 3.11]]).&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each stream configuration):&lt;br /&gt;
&lt;br /&gt;
'''streamid''' : Specify the numerical identifier of the stream for control or referencing the stream configuration. This can only be a numeric value from 1 to 2147483647.&lt;br /&gt;
&lt;br /&gt;
 If you use multiple stream configurations then you will need to ensure the _X&lt;br /&gt;
 part is specified and correct for each stream configuration group&lt;br /&gt;
 e.g.&lt;br /&gt;
   streamid=1&lt;br /&gt;
   streampath=/live&lt;br /&gt;
     or&lt;br /&gt;
   streamid_1=1&lt;br /&gt;
   streampath_1=/random_mountpoint&lt;br /&gt;
   streamid_2=2&lt;br /&gt;
   streampath_2=/another_mountpoint&lt;br /&gt;
&lt;br /&gt;
'''streamauthhash''' : The authorisation key needed for YP2 directory registration.&lt;br /&gt;
 This is a requirement for using the YP2 system and without it you will not be able to&lt;br /&gt;
 successfully connect to the YP2 directory (see [[#Getting_Started|section 3.0]]).&lt;br /&gt;
 &lt;br /&gt;
 This can be used for multiple streams you are providing or can be different (as long&lt;br /&gt;
 as valid) so you can infact provide multiple stations from the same server if desired.&lt;br /&gt;
&lt;br /&gt;
'''streampath''' : Specify the path clients need to use to access the stream&lt;br /&gt;
 If a / is not specified on the start of the string then the server will add&lt;br /&gt;
 it to the generated path in playlist entries or other places as required so&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://&amp;lt;serverurl&amp;gt;/&amp;lt;streampath&amp;gt;&amp;lt;/nowiki&amp;gt; will work so clients are able to connect.&lt;br /&gt;
 &lt;br /&gt;
 If this is not specified then &amp;lt;nowiki&amp;gt;http://&amp;lt;serverurl&amp;gt;/stream/&amp;lt;streamid&amp;gt;/&amp;lt;/nowiki&amp;gt; will be&lt;br /&gt;
 used for client access and in generated playlist entries so that it will&lt;br /&gt;
 always be possible for clients to connect to the server somehow. &lt;br /&gt;
 See [[SHOUTcast_DNAS_Server_2#Stream_Addresses|section 6.0]] for more information on the server's stream address support.&lt;br /&gt;
&lt;br /&gt;
 Note: streampath is the mountpoint, e.g. streampath_1=/mystation would result in ip:port/mystation&lt;br /&gt;
 Do NOT specify a streamurl as streampath as this will result in an error.&lt;br /&gt;
&lt;br /&gt;
'''streamrelayurl''' : Specify the full url of source to relay (if this is a relay).&lt;br /&gt;
 Make sure if you use this that the full url is entered and that it is&lt;br /&gt;
 the url which clients would connect to for the stream to be relayed.&lt;br /&gt;
&lt;br /&gt;
'''streammaxuser''' : Specify the maximum number of clients allowed to connect to the stream    ''[Default = 0]''&lt;br /&gt;
If set to zero, not specified or higher than 'maxuser' then the value set for 'maxuser' (see [[#Client_Behaviour|section 4.2]]) will be used for all known streams.&lt;br /&gt;
&lt;br /&gt;
Changing this to a value between zero and 'maxuser' will enforce the user connection limit for the specified value in the stream configuration '''e.g.'''&lt;br /&gt;
 streammaxuser_1 = 8&lt;br /&gt;
 maxuser = 32&lt;br /&gt;
&lt;br /&gt;
This allows a total of 32 connections to the server but specifies the maximum number of connections to the first stream configuration is 8.&lt;br /&gt;
&lt;br /&gt;
With the following stream configuration&lt;br /&gt;
 streammaxuser_1 = 64&lt;br /&gt;
 maxuser = 32&lt;br /&gt;
&lt;br /&gt;
This allows a total of 32 connections to the server but with a per stream limit above the maximum means the maximum number of connections to the first stream group will be 32. However this also depends upon any other stream configurations and their limits as to whether 32 clients will be able to connect to this stream configuration.&lt;br /&gt;
&lt;br /&gt;
Finally unless a valid stream configuration is specified then this value will only be applied to the first stream configuration found i.e. there is a need to specify a streamid_XXX for streammaxuser_XXX (where XXX is the stream identifier of the stream configuration group.&lt;br /&gt;
&lt;br /&gt;
'''streamadminpassword''' : Specify the administrator password for accessing the remote server features for the specified stream configuration group. If this is not specified then 'adminpassword' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streampassword''' : Specify the password for broadcasters when connecting to the server for the specified stream configuration group. If this is not specified then 'password' will be used.&lt;br /&gt;
 This matches the 'uvoxauth' value in the sc_trans configuration file (see sc_trans.txt - section 3.11).&lt;br /&gt;
&lt;br /&gt;
'''streampublicserver''' : This allows you to override the public flag received from the source when a connection is being made to the YP directory. If this is not specified or is set to empty then 'publicserver' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamallowrelay''' : Enable to allow a relay to connect to the server. If this is not specified then 'allowrelay' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamallowpublicrelay''' : Enable to allow relays to list themselves in the YP directory. If this is not specified then 'allowpublicrelay' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamriponly''' : Enable to only allow connections to be made from reserved IP addresses. If this is not specified then 'riponly' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamautodumpsourcetime''' : Specify how long before an idle source will be dumped from the server (in seconds). A value of zero means there is no timeout of an idle source. If not specified then 'autodumpsourcetime' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamautodumpusers''' : Enable to allow the server to disconnect clients if the source disconnects. If not specified then 'autodumpusers' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamlistenertime''' : Specify the maximum time in minutes a client is allowed to listen to the stream. A value of zero means there will be no time limit. If not specified then 'listenertime' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamintrofile''' : File to play when a client first connects to the server. If this is not specified then 'introfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streambackupfile''' : File to play if the source disconnects from the server. If this is not specified then 'backupfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streammovedurl_X''' : redirects a permanently stopped or moved stream to a different working stream url.&lt;br /&gt;
&lt;br /&gt;
'''streambanfile''' : File to store the list of banned IP addresses. If this is not specified then 'banfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamripfile''' : File to store the list of banned IP addresses. If this is not specified then 'ripfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamw3clog''' : File to store the web connections logs into. If this is not specified then 'w3clog' will be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''DNAS v2.6.1 and newer'''&lt;br /&gt;
&lt;br /&gt;
'''sslCertificateFile''' : For https:// streams, specify .crt file e.g. sslCertificateFile=/path/to/ssl.crt&lt;br /&gt;
&lt;br /&gt;
'''sslCertificateKeyFile''' : specify key file, e.g. sslCertificateKeyFile=/path/to/key.pem&lt;br /&gt;
&lt;br /&gt;
 Put the whole certificate chain in the .crt file, and only the key in the .key file&lt;br /&gt;
 SSL Cert needs to be assigned to a DNS e.g. stream.mysite.com&lt;br /&gt;
 Be sure to also add destip=stream.mysite.com and/or publicip= and alternateports=443 lines to DNAS config file.&lt;br /&gt;
&lt;br /&gt;
 Note: SSL Support is a Linux-only feature. It will not work on Windows.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' '''&lt;br /&gt;
&lt;br /&gt;
===Web Connection (W3C) Logging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''w3cenable''' : Enable logging of web connections to describe the duration a client has listened to a specific title    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''w3clog''' : File to store the web connections logs into    ''[Default = sc_w3c.log]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the log into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
'''webclientdebug''' : Enable logging of web client connections    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===YP Server Behaviour===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''uvoxcipherkey''' : Specify the key used to obfuscate the initial handshaking with the source    ''[Default = foobar]''&lt;br /&gt;
 This is a SHOUTcast 2 only feature and it matches the 'djcipher' value in the sc_trans&lt;br /&gt;
 configuration file (see [[SHOUTcast_DNAS_Transcoder_2#DJ_Support|sc_trans.txt - section 3.3]]).&lt;br /&gt;
&lt;br /&gt;
Only change this if you really need to do so as not all SHOUTcast 2 clients will allow you to edit this value from the default value. If using the Source DSP plug-in then see [[Source_DSP_Plug-in#SHOUTcast_2_Cipher_Key|dsp_sc.txt - section 5.0]] for details on how to change the plug-in to use a differnet value.&lt;br /&gt;
&lt;br /&gt;
'''metainterval''' : Specify the metadata transmission interval in bytes    ''[Default = 8192]''&lt;br /&gt;
 YP1 only&lt;br /&gt;
&lt;br /&gt;
'''yp2''' : Enable to use the SHOUTcast 2 protocol and related server features for access to the YP2 directory    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
If this is enabled and not all of the required values are set then the server will throw an error and will abort from its start-up attempt. It should be indicated what needs to be set to allow the server to start with this set.&lt;br /&gt;
&lt;br /&gt;
Additionally if there is an issue then the server will report an error in its log ouput of 'Connection attempt failed. YP2 error code is XXX (&amp;lt;message&amp;gt;)' where XXX is one of the following error codes and &amp;lt;message&amp;gt; is a message set in the error response to indicate a bit more what the error relates to. All current error codes can be found [[#YP_Server_Errors|here]].&lt;br /&gt;
&lt;br /&gt;
'''ypaddr''' : Allows you to specify a different YP server if required    ''[Default = yp.shoutcast.com]''&lt;br /&gt;
&lt;br /&gt;
'''ypport''' : Allows you to specify the port of the YP server if required    ''[Default = 80]''&lt;br /&gt;
&lt;br /&gt;
'''ypPath''' : Allows you to specify the path to YP2 services on the server    ''[Default = /yp2]''&lt;br /&gt;
&lt;br /&gt;
'''ypTimeout''' : Specify the timeout interval in seconds for requests made to the YP server    ''[Default = 60]''&lt;br /&gt;
&lt;br /&gt;
'''ypmaxretries''' : Specify the maximum number of times a YP request will be attempted    ''[Default = 10]''&lt;br /&gt;
 This generally applies only to YP1 connections and is related to the&lt;br /&gt;
 actual attempts to make and get a http response from the YP server.&lt;br /&gt;
&lt;br /&gt;
'''ypreportinterval''' : Specify the maximum time in which the YP must have contacted our server in seconds    ''[Default = 300]''&lt;br /&gt;
&lt;br /&gt;
'''ypminreportinterval''' : Specify the minimum time in which the YP can contact our server in seconds    ''[Default = 10]''&lt;br /&gt;
&lt;br /&gt;
'''publicserver''' : This allows you to override the public flag from the connected source when a connection is being made to the YP directory    ''[Default = default]''&lt;br /&gt;
This can be one of the following values:&lt;br /&gt;
 '''default''' - use the flag provided by the source&lt;br /&gt;
 '''always''' - force the source to be public&lt;br /&gt;
 '''never''' - never allow the use the flag provided by the source&lt;br /&gt;
&lt;br /&gt;
When using sc_trans this would match with the 'public' value (see [[SHOUTcast_DNAS_Transcoder_2#Metadata_Control|sc_trans.txt - section 3.8]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===YP Server Errors===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If not all of the required values are set for a public listing then the DNAS server will throw an error and will abort its attempt to be listed in the Directory. It should be indicated the error is with one of the error codes provided below so it can be resolved.&lt;br /&gt;
&lt;br /&gt;
Additionally if there is an issue during Directory updates or removals, then the server will report an error in its log ouput as one of the following error codes and &amp;lt;message&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status Code&lt;br /&gt;
! Status Message&lt;br /&gt;
|-&lt;br /&gt;
| 400 || Generic error ''(covers all other cases usually from internal failures)''&lt;br /&gt;
|-&lt;br /&gt;
| 457 || Unrecoverable error while updating station information - DNAS restart required.&lt;br /&gt;
|-&lt;br /&gt;
| 470 || Invalid authorization hash&lt;br /&gt;
|-&lt;br /&gt;
| 471 || Invalid stream type (could be a bad bitrate or mime type)&lt;br /&gt;
|-&lt;br /&gt;
| 472 || Missing or invalid stream url&lt;br /&gt;
|-&lt;br /&gt;
| 473 || Server unreachable by YP&lt;br /&gt;
|-&lt;br /&gt;
| 474 || Relay url does not exist&lt;br /&gt;
|-&lt;br /&gt;
| 475 || Invalid server ID&lt;br /&gt;
|-&lt;br /&gt;
| 476 || Invalid max clients (value out of range or missing)&lt;br /&gt;
|-&lt;br /&gt;
| 477 || Terms of Service violator.  You are being reported.&lt;br /&gt;
|-&lt;br /&gt;
| 478 || Incompatible protocol.&lt;br /&gt;
|-&lt;br /&gt;
| 479 || Streams requiring authorization are not public and cannot list here.&lt;br /&gt;
|-&lt;br /&gt;
| 480 || Cannot see your station/computer (URL: &amp;lt;streamurl&amp;gt;) from the Internet, disable Internet Sharing/NAT/firewall/ISP cache.&lt;br /&gt;
|-&lt;br /&gt;
| 481 || Cannot verify server since all listener slots are full.  Please wait.&lt;br /&gt;
|-&lt;br /&gt;
| 482 || This network has been permanently banned due to a previous violation of the SHOUTcast directory terms of service&lt;br /&gt;
|-&lt;br /&gt;
| 483 || Invalid listeners (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 484 || Invalid avglistentime (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 485 || Invalid newsessions (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 486 || Invalid connects (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 487 || Request &amp;amp; Response objects are null&lt;br /&gt;
|-&lt;br /&gt;
| 488 || Request xml is null&lt;br /&gt;
|-&lt;br /&gt;
| 489 || YP command not specified&lt;br /&gt;
|-&lt;br /&gt;
| 490 || Generic error, while doing xml parsing&lt;br /&gt;
|-&lt;br /&gt;
| 491 || Generic error, while reading xml request&lt;br /&gt;
|-&lt;br /&gt;
| 492 || Error closing buffer / HTTP connection&lt;br /&gt;
|-&lt;br /&gt;
| 493 || Internal error - unable to acquire data source&lt;br /&gt;
|-&lt;br /&gt;
| 494 || Error updating information - DNAS restart required&lt;br /&gt;
|-&lt;br /&gt;
| 495 || Error acquiring station ID - DNAS restart required&lt;br /&gt;
|-&lt;br /&gt;
| 496 || Error converting data type&lt;br /&gt;
|-&lt;br /&gt;
| 497 || Inconsistent stream behaviour&lt;br /&gt;
|-&lt;br /&gt;
| 498 || Invalid Request (Invalid request received)&lt;br /&gt;
|-&lt;br /&gt;
| 499 || Error while getting information&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Administration==&lt;br /&gt;
&lt;br /&gt;
With sc_serv there are administration pages available for accessing and controlling the server remotely which allows you to monitor and control clients connected to the stream (or not if banning them). These pages can now be accessed through a summary page at /index.html which will show a link to any active stream(s) or you explicitly access them via the /index.html?sid=# path where # is the ID of the stream (see [[#Stream_Configuration|section 4.12]] for more about using 'streamid') '''e.g.'''&lt;br /&gt;
 &amp;lt;streamurl&amp;gt;/index.html?sid=1&lt;br /&gt;
&lt;br /&gt;
If no sid or an invalid sid is passed then you will be taken to the summary /index.html and this will be applied even if you were on a page with a known ID and then enter an invalid sid or remove it purposefully.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Administration Pages===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
As part of the administrative features provided there are the following pages where # is the streamid you want to use). This is not a complete list but should cover all of the pages which allow for a direct http url to be entered to get an administation action to work. The ban and reserve IP actions require input fields and do not map to direct sends.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Public Pages====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''index.html'''  -  Shows a summary page with links to get to any active stream(s)&lt;br /&gt;
&lt;br /&gt;
'''currentsong?sid=#'''  -  Returns the current song title or a null response&lt;br /&gt;
&lt;br /&gt;
'''nextsong?sid=#'''  -  Returns the next song title (if known) or a null response&lt;br /&gt;
 currentsong and nextsong both provide a UTF-8 encoded string of the song title&lt;br /&gt;
 otherwise it will return effectively no response (ignoring the http header).&lt;br /&gt;
&lt;br /&gt;
'''nextsongs?sid=#'''  -  Returns in an xml format the next song title(s) (if known) to be played when using a compatible v2 stream source. See [[#XML_Responses|section 5.2]] for more details on the format of the xml returned).&lt;br /&gt;
&lt;br /&gt;
'''index.html?sid=#'''  -  Shows current status of the specified stream&lt;br /&gt;
&lt;br /&gt;
'''played.html?sid=#'''  -  Song history of specified playing history&lt;br /&gt;
:or&lt;br /&gt;
'''played?sid=#'''&lt;br /&gt;
&lt;br /&gt;
'''listen.pls?sid=#'''  -  Provides a PLS for file clients to use to connect to the stream.&lt;br /&gt;
:or&lt;br /&gt;
'''listen?sid=#'''&lt;br /&gt;
&lt;br /&gt;
'''listen.m3u?sid=#'''  -  Provides a M3U file for clients to use to connect to the stream.&lt;br /&gt;
&lt;br /&gt;
'''listen.asx?sid=#'''  -  Provides a ASX file for clients to use to connect to the stream.&lt;br /&gt;
&lt;br /&gt;
 With the listen pages you either need to have specified an IP with 'dstip / destip'&lt;br /&gt;
 (see section 4.2) or leave empty and allow the server to attempt to auto-generate&lt;br /&gt;
 the IP required for the client to be able to connect. If this fails the generated&lt;br /&gt;
 playlist is likely to return a stream url like &amp;lt;nowiki&amp;gt;http://0.0.0.0:&amp;lt;portbase&amp;gt;/&amp;lt;path&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''home.html?sid=#''' or '''home?sid=#'''  -  Opens in a new window or tab (depending on the client browser) the 'streamurl' as specified by the stream source. If this is not set then the client will be redirected to the shoutcast.com main page.&lt;br /&gt;
&lt;br /&gt;
'''stats?sid=#'''  -  Provides an xml response for public accessibility which matches the private version from admin.cgi?sid=#&amp;amp;mode=viewxml&amp;amp;page=1. This is the modern version of the 7.html page as provided by the legacy v1 servers. See [[#XML_Responses|section 5.2]] for information on what is provided in the xml response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Private Pages====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 By passing &amp;amp;pass=password where password is the 'adminpassword' (see section [[#Networking|4.8]]) then it is possible&lt;br /&gt;
 to directly access the administration page(s) required. As well the base64 encoded version of the password&lt;br /&gt;
 can be passed as long as it is prefixed with ''YWRtaW46''&lt;br /&gt;
 e.g.&lt;br /&gt;
     &amp;amp;pass=changeme is the same as &amp;amp;pass=YWRtaW46Y2hhbmdlbWU=&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi'''  -  Shows the an overal summary admin page for the streams provided by the server including direct links to certain information pages (see notes about the 'admin.cgi?sid=#&amp;amp;mode=viewxml' command for more info)&lt;br /&gt;
:or&lt;br /&gt;
'''admin.cgi?sid=0'''&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#'''  -  Shows the base admin page for the stream and information&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=updinfo&amp;amp;song=title'''           &lt;br /&gt;
:or&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=updinfo&amp;amp;type=xml&amp;amp;song=xml'''    &lt;br /&gt;
 If 'title' is not empty then it will be set as the current song title for the stream&lt;br /&gt;
 specified until the next use of this action or the next title update is received from&lt;br /&gt;
 the source. Specifying '&amp;amp;type=xml' will process the value of 'song' as [[SHOUTcast_XML_Metadata_Specification|v2 XML metadata]]&lt;br /&gt;
 instead of a v1 title.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewlog'''  -  View logfile&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewlog&amp;amp;viewlog=tail'''  -  View logfile (tailing)&lt;br /&gt;
&lt;br /&gt;
 The tailing option keeps adding additional log entries to the end of the view whilst the view is active.&lt;br /&gt;
 As well any html or xml data in the log will not be shown correctly in the view as &amp;lt; &amp;gt; &amp;amp; are not escaped&lt;br /&gt;
 to their html entities. See [[#Logging|section 4.6]] for more information on the log file.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewban'''  -  Ban view which matches the ban file and allows you to ban a single IP or an IP range from it (see [[#Banning|section 4.1]] for more info on the file)&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewrip'''  -  Reserved IP list that matches the rip file (see [[#Reserved_IP_.28RIP.29|section 4.11]] for more info on the file)&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=art''' or '''admin.cgi?sid=#&amp;amp;mode=art&amp;amp;art=playing'''  -  Displays the artwork SHOUTcast v2 compatible clients may be able to display if the SHOUTcast v2 source does provide it.&lt;br /&gt;
  &lt;br /&gt;
 The artwork mode is primarily intended as a debugging option to make it possible&lt;br /&gt;
 to see what (if anything) has been provided by the SHOUTcast v2 source.&lt;br /&gt;
 &lt;br /&gt;
 If no '&amp;amp;art=' is specified or not a matching option then the stream artwork (if&lt;br /&gt;
 available) will be shown. If no '&amp;amp;art=playing' is specified then this will show&lt;br /&gt;
 the playing file's artwork (if available).&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewxml''' or '''admin.cgi?sid=#&amp;amp;mode=viewxml&amp;amp;page=#'''  -  Returns an xml output of the current stream information&lt;br /&gt;
&lt;br /&gt;
 If page is not set or is outside of the range zero to 6 then this will output all of the&lt;br /&gt;
 information as the standard viewxml action does. Otherwise this only display information&lt;br /&gt;
 depending on the value assigned to page which can be from 1 to 6 which maps as follows:&lt;br /&gt;
 &lt;br /&gt;
     1 - Server Summary (this is the same as using the public stats?sid=# action)&lt;br /&gt;
     2 - Not used (previously used for Webdata Stats but not in current builds)&lt;br /&gt;
     3 - Listener Stats&lt;br /&gt;
     4 - Song History&lt;br /&gt;
     5 - Stream Metadata        (if supported by the source otherwise can just be title)&lt;br /&gt;
     6 - Stream Configurations  (displays all of the known stream configurations though this is only available on admin.cgi)&lt;br /&gt;
 &lt;br /&gt;
 If accessing the standard viewxml or the listener stats (page = 3), you can also send&lt;br /&gt;
 '&amp;amp;iponly=1' which will filter the listener information (if there are any) to just output&lt;br /&gt;
 the IP instead of the additional information provided normally.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=resetxml&amp;amp;sid=#'''  -  Will flush the held stream information to refresh it&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=kicksrc'''  -  Will allow you to kick the currently connected source for the specified stream.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unripdst&amp;amp;ripdst=&amp;lt;IP&amp;gt;'''  -  Where &amp;lt;IP&amp;gt; is the IP to reserve (see [[#Reserved_IP_.28RIP.29|section 4.11]] for more information).&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unbandst&amp;amp;bandst=&amp;lt;IP&amp;gt;.0&amp;amp;banmsk=0'''  -  Where &amp;lt;IP&amp;gt; is the first 3 parts of a subnet IP to unban.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unbandst&amp;amp;bandst=&amp;lt;IP&amp;gt;&amp;amp;banmsk=255'''  -  Where &amp;lt;IP&amp;gt; is that of a single IP to unban.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=rotate''' or '''admin.cgi?mode=rotate&amp;amp;files=log|w3c'''  -  This will rotate the log files set via the 'logfile', 'w3clog' and 'streamw3clog' options.&lt;br /&gt;
 If &amp;amp;files is specified then passing log or w3c will allow you to only&lt;br /&gt;
 rotate one type of file otherwise both will be rotated by this command.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=reload''' or '''admin.cgi?mode=reload&amp;amp;force=1'''  -  This reloads the stream configuration details in the main configuration file the server used when started and is only available on the admin summary page and so can only be run by the master administrator password.&lt;br /&gt;
&lt;br /&gt;
 This command works on the server as a whole (hence no sid parameter) and it will add or&lt;br /&gt;
 remove or update any stream configuration as applicable which will cause any connected&lt;br /&gt;
 sources and clients to be kicked as applicable (usually if a stream configuration was removed).&lt;br /&gt;
 &lt;br /&gt;
 This will recognise any configurations included via 'include' entries so you can have 'include=stream/*.conf'&lt;br /&gt;
 in your main configuration file which the server can then use to detect different stream configurations.&lt;br /&gt;
 &lt;br /&gt;
 If '&amp;amp;force=1' is passed then the reload will treat the updating of active stream configurations in the&lt;br /&gt;
 same manner as a stream configuration removal instead of trying to update compatible stream configuration&lt;br /&gt;
 details without resetting the stream '''e.g.''' not increasing the 'streammaxuser' when it could be increased.&lt;br /&gt;
 &lt;br /&gt;
 The following configuration options are updated when using this command:&lt;br /&gt;
 &lt;br /&gt;
     password or streampassword (*)            streamadminpassword (#)&lt;br /&gt;
     requirestreamconfigs                      streamid&lt;br /&gt;
     streamauthhash                            streampath&lt;br /&gt;
     streamrelayurl                            streammaxuser&lt;br /&gt;
     streampublicserver                        streamallowrelay&lt;br /&gt;
     streamallowpublicrelay                    streamriponly&lt;br /&gt;
     streamautodumpsourcetime                  streamautodumpusers&lt;br /&gt;
     streamlistenertime                        streamintrofile&lt;br /&gt;
     streambackupfile                          streambanfile&lt;br /&gt;
     streamripfile&lt;br /&gt;
 &lt;br /&gt;
 (*) This will depend upon the current values versus the new configuration values&lt;br /&gt;
 (#) The master 'adminpassword' can only be changed after a restart of the server&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XML Responses===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
As detailed in the previous sections, some of the administration actions will provide the information in an xml response. For information on what is actually returned in these xml responses see [[SHOUTcast_DNAS_Server_2_XML_Reponses|sc_serv2_xml_responses.txt]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stream Addresses==&lt;br /&gt;
&lt;br /&gt;
Clients connecting to the streams provided by sc_serv are able to so in a number of ways depending upon how the streams have been configured and also depending upon the number of streams you have available.&lt;br /&gt;
&lt;br /&gt;
The two main ways for a client to connect to a stream are as follows:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;serverurl&amp;gt;/stream/&amp;lt;streamid&amp;gt;/&lt;br /&gt;
or&lt;br /&gt;
 &amp;lt;serverurl&amp;gt;/&amp;lt;streampath&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;serverurl&amp;gt; is typically formed as &amp;lt;nowiki&amp;gt;http://dstip:portbase&amp;lt;/nowiki&amp;gt; (see sections [[#Client_Behaviour|4.2]] and [[#Networking|4.8]])&lt;br /&gt;
 &amp;lt;streamid&amp;gt; is the 'streamid' set from the stream configuration (see [[#Stream_Configuration|section 4.12]])&lt;br /&gt;
 &amp;lt;streampath&amp;gt; is the 'streampath' set from the stream configuration (see [[#Stream_Configuration|section 4.12]])&lt;br /&gt;
&lt;br /&gt;
If the client attempting to connect to the server instance does not specify &amp;lt;streampath&amp;gt; or &amp;lt;streamid&amp;gt; in the stream url it attempts to access or if only one stream is provided then the server will usually default to the first stream it knows about and will allow the client to make a valid connection (though this is not guaranteed to happen).&lt;br /&gt;
&lt;br /&gt;
This handling of the stream addresses provided is something to keep in mind especially if you are providing multiple streams as this will allow you to provide different addresses for certain clients to be able to use a specific stream '''e.g.''' if you wanted to have mobile clients connect to a lower bandwidth stream then you could direct them to '&amp;lt;serverurl&amp;gt;/mobile'&lt;br /&gt;
&lt;br /&gt;
The server options available for controlling how the stream's path is specified can be seen in [[#Stream_Configuration|section 4.12]] which also details the equivalent values needing to be set in the sc_trans configuration if you use sc_trans to provide a source to sc_serv.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Locale Error (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
If you receive the following error then you have a locale related issues:&lt;br /&gt;
&lt;br /&gt;
 terminate called after throwing an instance of 'std::runtime_error'&lt;br /&gt;
 what():  locale::facet::_S_create_c_locale name not valid&lt;br /&gt;
 Abort trap&lt;br /&gt;
&lt;br /&gt;
If this happens then you need to set the 'POSIX' locale in your terminal's environment values. If this does not happen then everything is fine or you are using a newer version of sc_serv from the end of 2010 which should no longer exhibit this issue.&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
BSD:&lt;br /&gt;
 setenv LC_ALL POSIX&lt;br /&gt;
&lt;br /&gt;
Mac OS X:&lt;br /&gt;
 export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
You can test to see if this has worked by checking the shell command &amp;quot;locale&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 LANG=&lt;br /&gt;
 LC_COLLATE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_CTYPE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_MESSAGES=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_MONETARY=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_NUMERIC=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_TIME=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_ALL=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Virtual Memory Footprint (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
Due to how sc_serv works it will create a large number of threads which may become an issue due to the default virtual memory stack allocation per thread potentially being large (typically 10MB per thread). For most people this should not be an issue as the memory is not really allocated unless it is used. If however if you have a resource constrained system or if you plan on running many copies of sc_trans then you could potentially run out of virtual memory.&lt;br /&gt;
&lt;br /&gt;
The default thread allocation can be reduced by issuing a &amp;quot;ulimit&amp;quot; command before running sc_trans and in the example reduces it to 512KB per-thread '''e.g.'''   ulimit -s 512&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Maximum Client Connection Limits==&lt;br /&gt;
&lt;br /&gt;
In general, there are inherent limits on the maximum number of client connections which may be made to a running instances of sc_serv which can either be set by configuration limits e.g. 'maxuser', Operating System limits or bandwidth limits being reached.&lt;br /&gt;
&lt;br /&gt;
The first two are easy to resolve whereas the last (bandwidth limits) is something which will usually require obtaining additional hosting or paying for more available bandwidth.&lt;br /&gt;
&lt;br /&gt;
If reaching the Operating System limit, this is usually indicated by the maximum number of clients never going above a fixed value even if there is the bandwidth and the server has been configured to go higher. This usually appears as around 1016 maximum connections (though this can vary a bit)&lt;br /&gt;
&lt;br /&gt;
If using a non-Windows Operating System then you can use the 'ulimit -n xxxx' command to change the upper limit from what is already set which can be found from just 'ulimit -n' e.g. to change the limit to 4096 connections you would run ulimit -n 4096&lt;br /&gt;
&lt;br /&gt;
If using a Windows Operating System then there isn't any real way to change such things due to the OS hopefully being configured with limits that will not be reached when using sc_serv. If in doubt then consult the Microsoft support documentation for the OS used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Configurations==&lt;br /&gt;
&lt;br /&gt;
Include as part of the sc_serv installation are a number of example configurations to get things started with using some of the features of the server. The provided examples are:&lt;br /&gt;
&lt;br /&gt;
 sc_serv_basic.conf&lt;br /&gt;
 sc_serv_public.conf&lt;br /&gt;
 sc_serv_relay.conf&lt;br /&gt;
 sc_serv_simple.conf&lt;br /&gt;
&lt;br /&gt;
All of the configuration examples are documented and will relate back to details in this file appropriately. You will need to change some details in these example files or to obtain any applicable authorisation keys for the setup you are making ([[#Getting_Started|see section 3.0]]). In all cases the examples are designed to work from the same install folder as sc_serv.&lt;br /&gt;
&lt;br /&gt;
Remember these examples are a way to get you up and running faster though you are still likely to have to adjust things depending upon the systems you are using and how you want to manage your sources and server connections which are covered in previous sections.&lt;br /&gt;
&lt;br /&gt;
Additionally if you are not happy with editing the files or find it still too confusing then you can use the configuration builder which (if installed) can be found in the 'config_builder'. Open 'config_builder.html' in your browser and then use this graphical tool to setup a configuration file for the server (and additionally the transcoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_basic===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This is the base configuration from which the other configuration examples are based and this will get a sc_serv instance running as a local setup with no connection made to the YP directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_public===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_serv_basic configuration to get a sc_serv instance running as a public setup with a connection made to the YP for listing the stream in the directory. This shows the use of the 'include' option (see section [[#Miscellaneous|4.7]]) and how specifying a configuration option twice uses the last value found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_relay===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_serv_public configuration to get a sc_serv instance running as a public setup with a source coming in from a relay server providing a SHOUTcast 2 stream.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_debug===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file can be included in any other configuration files to allow you to get debug logging output when trying to investigate any issues you may be experiencing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_simple===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Use this if you just need to get a very basic server running or are impatient&lt;br /&gt;
 or are struggling to get it running despite the previous example configurations.&lt;br /&gt;
&lt;br /&gt;
This configuration file is designed to be used just as is and is the simplest form of the configuration file you can have which will allow you to get a running server to appear on the YP. This works on using the default settings of the server though does change some of the file paths inorder to fit in with the existing setup as used in the other examples.&lt;br /&gt;
&lt;br /&gt;
All you need to do when using this configuration file is to enter your authorisation key in the 'streamauthhash' line '''e.g.''' if your authorisation key is '''123456789''' then you change ''streamauthhash=&amp;lt;enter_your_auth_key_here&amp;gt;'' to ''streamauthhash='''123456789''''' and save the file.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Server_2</id>
		<title>SHOUTcast DNAS Server 2</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Server_2"/>
				<updated>2022-02-01T13:51:23Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Stream Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
The purpose of this document is to show you the different configuration options supported by sc_serv along with basic and more advanced example configurations to enable you to get started with using sc_serv and the features it can offer.&lt;br /&gt;
&lt;br /&gt;
The aim of sc_serv is to provide enhanced serving features and also access to the new YP2 infrastructure whilst maintaining as much backward compatibility with previous versions of sc_serv as possible. The new features introduced include:&lt;br /&gt;
&lt;br /&gt;
# Serving multiple streams from a single server instance&lt;br /&gt;
# Relaying multiple streams from a single server instance&lt;br /&gt;
# Multiplexing all server activity through a single IP port&lt;br /&gt;
# SHOUTcast 2 wire protocol support for sources, relays and clients&lt;br /&gt;
# Repackaging of SHOUTcast 1 and SHOUTcast 2 data as needed for connected clients&lt;br /&gt;
# YP2 infrastructure support&lt;br /&gt;
# Real-time metadata and statistic reporting&lt;br /&gt;
# Static station id support&lt;br /&gt;
# In-stream metadata in standardised xml files&lt;br /&gt;
# UTF-8 and international character encoding&lt;br /&gt;
# Improved server and stream security&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview of Features==&lt;br /&gt;
&lt;br /&gt;
To take full advantage of the newer features provided as part of the SHOUTcast 2 and YP2 systems then you will need to ensure you are using a compatible version of sc_serv (any version 2 will work) and that you have the required authorisation key to register as a broadcaster on the YP2 directory (see [[#Getting_Started|section 3.0]]).&lt;br /&gt;
&lt;br /&gt;
If you were intending on taking full advantage of the multiplexing and multiple stream support offered as part of sc_serv then you would need to make sure you enable the SHOUTcast 2 options (this is enabled by default with server builds from the end of 2010 if the 'yp2' option in the configuration file is not specified [see [[#YP_Server_Behaviour|section 4.14]] ). The reason for needing to enable this support is if you try to do it with the original SHOUTcast 1 protocol then it will not work as the original protocol has no means of expressing multiple streams from a single port due to the lack of an identifier provided for them.&lt;br /&gt;
&lt;br /&gt;
If you are planning on connecting multiple sc_trans instances to sc_serv then you must use the SHOUTcast 2 protocol support so that each sc_trans instance can have a unique identifier which allows for multiple streams to then be provided from a single server. It is still possible for an older source to connect to the server with a number of config options available to support this though functionality will be limited compared to what can be done with a fully supporting SHOUTcast 2 source.&lt;br /&gt;
&lt;br /&gt;
Finally clients connecting to your server do not need to directly support SHOUTcast 2 as sc_serv will repackage the stream data and any related metadata into the correct format the client requests (typically based on the user agent detected by the server).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
&lt;br /&gt;
One of the key aspects of the new YP2 directory infrastructure is an authorisation key which is used to validate your server when it tries to connect to the YP2 infrastructure for any of the station(s) you run. Once this key is obtained, it will be valid for all root servers of the station being broadcast.&lt;br /&gt;
&lt;br /&gt;
This can be done by going to the [[SHOUTcast_Authhash_Management|SHOUTcast Authhash Management]] page which shows how to do this via the 'Administation Summary' page as long as a valid source has been connected to the server. This process automatically updates your configuration file(s) with the new authhash and if the stream is set to be public then will attempt to get the stream listed in the SHOUTcast Radio Directory.&lt;br /&gt;
&lt;br /&gt;
When using an older SHOUTcast 1 server then you do not need to do this registration and the server will still be able to be listed on the directory but there is not the same level of protection over the stream as is the case with registering it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Running the Server===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The server is able to be run either as a console application or it can be run as service (Windows) or daemon (Linux / Mac OS X / BSD). Detailed below is how to get the server running on the different operating systems supported by it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The Windows version of sc_serv is designed to run on fully updated and patched versions of Windows 2000, XP, Vista and Windows 7, 8 &amp;amp; 10.&lt;br /&gt;
&lt;br /&gt;
Please note that the Windows versions of sc_serv are built with a dependency against the Microsoft Visual C++ 2008 SP1 Redistributable Package. If sc_serv is unable to start due to a dependency issue then you will need to install the correct version of the package so it can run which depends on the version of sc_serv you are attempting to run:&lt;br /&gt;
&lt;br /&gt;
32-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&lt;br /&gt;
&lt;br /&gt;
64-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ba9257ca-337f-4b40-8c14-157cfdffee4e&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Install as a Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe install &amp;lt;servicename&amp;gt; &amp;lt;username&amp;gt; &amp;lt;password&amp;gt; &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service&lt;br /&gt;
 Typically enter this as 'sc_serv' though you can use a different name but you will need&lt;br /&gt;
 to remember it as it is required to be the same when using the 'uninstall' mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;username&amp;gt; - User under which to run the service as or '0' for the local system&lt;br /&gt;
&lt;br /&gt;
&amp;lt;password&amp;gt; - Password for user or '0' for the local system or with no password&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
When run as a service there is not a good sense of a current working directory so requires all paths in the configuration and playlist files to be fully qualified otherwise lookups will fail when sc_serv is run.&lt;br /&gt;
&lt;br /&gt;
To run sc_serv with a configuration file in the same folder as the server as the current system user account you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_serv.exe install sc_serv 0 0 sc_serv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Uninstall the Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe uninstall &amp;lt;servicename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service as used when the service was registered&lt;br /&gt;
&lt;br /&gt;
To uninstall sc_serv assuming it was installed as detailed in the install section above then you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_serv.exe uninstall sc_serv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Service in the Console====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
===Linux / Mac OS X / BSD===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Remember to enable the required access on the sc_trans file by doing 'chmod a+x sc_trans' after extracting it from the distribution file otherwise the OS is likely to not run it and show the error message './sc_serv: Permission denied'.&lt;br /&gt;
&lt;br /&gt;
====Run as a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_serv daemon &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (required in all cases)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
'''e.g.'''&lt;br /&gt;
 ./sc_serv daemon ./sc_serv.conf&lt;br /&gt;
&lt;br /&gt;
When run this should output the following:&lt;br /&gt;
&lt;br /&gt;
'sc_serv going daemon with PID [XXXX]' where XXXX is the &amp;lt;pid&amp;gt; of the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====End a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
kill -SIGTERM &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -15 &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -s TERM &amp;lt;pid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pid&amp;gt; - The PID of the daemon instance (reported when the daemon started or can be found with 'ps ax | grep sc_serv' as long as sc_serv was the file run otherwise you can just use 'ps ax' if the filename isn't known). Additionally the PID of sc_serv is listed in the log file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_serv &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Additional Signals===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
When run on Linux / Mac OS X / BSD then some additional signals are supported to allow for additional control over the running daemon instance of sc_serv.&lt;br /&gt;
&lt;br /&gt;
The following signals can be used with the 'kill' command (in the manner of your choosing for using the kill command) along with the &amp;lt;pid&amp;gt; of the daemon instance to do one of the following actions:&lt;br /&gt;
&lt;br /&gt;
    SIGKILL   -  Stops sc_trans (also SIGTERM, SIGINT and SIGQUIT will work)&lt;br /&gt;
    SIGHUP    -  Rotates logfile, w3clog and streamw3clog&lt;br /&gt;
&lt;br /&gt;
The result of SIGHUP is that the current log file contents will be moved into &amp;lt;logfile&amp;gt;_1 e.g. sc_serv_1.log, &amp;lt;logfile&amp;gt;_1 will be moved into &amp;lt;logfile&amp;gt;_2 e.g. sc_serv_2.log and so on for all log files which can be found which match the current log file's name. This is useful if timed to have it create day specific log files.&lt;br /&gt;
&lt;br /&gt;
 These signals are not supported by the Windows version of sc_serv which will only&lt;br /&gt;
 respond to the Ctrl + C / Ctrl + Break / console close commands the OS provides.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration File==&lt;br /&gt;
&lt;br /&gt;
Here you can find a complete list of all of the configuration options which are provided by sc_serv which ranges from logging to networking configuration and control over the media being used when streaming via the server.&lt;br /&gt;
&lt;br /&gt;
Configuration entries labelled as ''&amp;lt;MULTI&amp;gt;'' can be used to set up simultaneous connections to the server or allow for multiple connections from various sources. These are specified by adding _# to the end of the option's name as shown below where # begins with one. If you are only working with a single instance then you do not need to add the _# part as any instances of a configuration option will assume it is for _1.&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;MULTI&amp;gt;'' system is not hierarchical and all values beyond the default must be specified for all connections. So for example, if you wanted to connect to two servers on the same port you must do:&lt;br /&gt;
&lt;br /&gt;
    portbase_1=8080&lt;br /&gt;
    portbase_2=8080&lt;br /&gt;
    destip_1=stream.server1.com&lt;br /&gt;
    destip_2=stream.server2.com&lt;br /&gt;
&lt;br /&gt;
Note that you CANNOT do it like this as it leads to not all values being set:&lt;br /&gt;
&lt;br /&gt;
    portbase=8080&lt;br /&gt;
    destip_1=stream.server1.com&lt;br /&gt;
    destip_2=stream.server2.com&lt;br /&gt;
&lt;br /&gt;
The configuration files also allow for comments/notes or options to be disabled by the use of a semi-colon (''';''') or a left bracket ('''[''') or the hash / pound symbol ('''#''') at the start of a line which can be seen in all of the configuration examples.&lt;br /&gt;
&lt;br /&gt;
Known options in the configuration files are recognised irrespective of the case they are entered in the configuration file so maxuser and MaXuSer will be handled the same way.&lt;br /&gt;
&lt;br /&gt;
Any items found in the configuration file which are not known (as detailed in following sections) or is not processed as a comment will be reported in the following manner:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;date + time&amp;gt; W msg:[CONFIG] Invalid item on line XX&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;date + time&amp;gt; is the date and time the event happens at and XX is the line in the configuration file where the error has been found to occur at.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Banning===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''banfile''' : File to store the list of banned IP addresses    ''[Default = sc_serv.ban]''&lt;br /&gt;
&lt;br /&gt;
'''savebanlistonexit''' : Re-write the 'banfile' on server exit    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the file into then you need to ensure that the&lt;br /&gt;
 folder already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Client Behaviour===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''maxuser''' : Specify the maximum number of clients allowed to connect to the server    ''[Default = 32]''&lt;br /&gt;
 This is used in conjunction with 'streammaxuser' (see [[#Stream_Configuration|section 4.12]]) to control the&lt;br /&gt;
 maximum limit on the number of client connections allowed to connect to the server instance.&lt;br /&gt;
&lt;br /&gt;
'''listenertime''' : Specify the maximum time in minutes a client can listen to the stream    ''[Default = 0]''&lt;br /&gt;
 A value of zero means there will be no time limit.&lt;br /&gt;
&lt;br /&gt;
'''autodumpusers''' : Enable to allow the server to disconnect clients if the source disconnects    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''srcip''' : Specify the server side binding address for sources to connect on    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''dstip''' or '''destip''' or '''publicip''' : Specify the server side binding address for clients    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
 If 'any' or no value is specified then sc_serv listens to all addresses.&lt;br /&gt;
&lt;br /&gt;
If you specify a value for 'dstip / destip' then this will be used by the listen feature on the Administration Pages (see section 5.1) so it can provide a valid stream url in the generated playlist. If 'dstip / destip' is not specified then the server will attempt to auto-generate the IP required for the client to be able to connect. If this fails the generated playlist is likely to return a stream url like &amp;lt;nowiki&amp;gt;http://0.0.0.0:&amp;lt;portbase&amp;gt;/&amp;lt;path&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The IP provided needs to be in a valid format like &amp;lt;nowiki&amp;gt;http://&amp;lt;my-ip&amp;gt;&amp;lt;/nowiki&amp;gt; or an address which can be resolved to an IP otherwise the internal lookups done are likely to fail (depends upon the server configuration and OS being used). Also you cannot set srcip and dstip / destip to be the same IP value and if this happens then the server will close. Closing of the server will also happen if the IP cannot be resolved or correctly bound to i.e. server is not there or an invalid value was entered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''titleformat''' : Specify a string to be used in-place of the default icy-name string being used    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''urlformat''' : Specify a string to be used in-place of the default icy-url string being used    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''  '''&lt;br /&gt;
'''  '''&lt;br /&gt;
&lt;br /&gt;
===Debugging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In all cases, the default value is for no debug logging for the options listed below.&lt;br /&gt;
&lt;br /&gt;
'''yp1debug''' : Enable debug logging of YP connections&lt;br /&gt;
&lt;br /&gt;
'''yp2debug''' : Enable debug logging of YP2 connections&lt;br /&gt;
&lt;br /&gt;
'''shoutcastsourcedebug''' : Enable debug logging of SHOUTcast source connections&lt;br /&gt;
&lt;br /&gt;
'''uvox2sourcedebug''' : Enable debug logging of SHOUTcast 2 source connections&lt;br /&gt;
&lt;br /&gt;
'''shoutcast1clientdebug''' : Enable debug logging of SHOUTcast streaming clients&lt;br /&gt;
&lt;br /&gt;
'''shoutcast2clientdebug''' : Enable debug logging of SHOUTcast 2 streaming clients&lt;br /&gt;
&lt;br /&gt;
'''relayshoutcastdebug''' : Enable debug logging for SHOUTcast relays&lt;br /&gt;
&lt;br /&gt;
'''relayuvoxdebug''' : Enable debug logging for SHOUTcast 2 relays&lt;br /&gt;
&lt;br /&gt;
'''relaydebug''' : Enable debug logging of common relay code&lt;br /&gt;
&lt;br /&gt;
'''streamdatadebug''' : Enable debug logging of common streaming code&lt;br /&gt;
&lt;br /&gt;
'''httpstyledebug''' : Enable debug logging of http style requests&lt;br /&gt;
&lt;br /&gt;
'''statsdebug''' : Enable debug logging of statistics&lt;br /&gt;
&lt;br /&gt;
'''microserverdebug''' : Enable debug logging of common server activity&lt;br /&gt;
&lt;br /&gt;
'''threadrunnerdebug''' : Enable debug logging of the thread manager&lt;br /&gt;
&lt;br /&gt;
'''rtmpclientdebug''' : Enable debug logging of rtmp clients&lt;br /&gt;
&lt;br /&gt;
'''admetricsdebug''' : Enable debug logging of ad metrics (v2.5 and newer)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' '''&lt;br /&gt;
''' '''&lt;br /&gt;
&lt;br /&gt;
===Flash Security===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''flashpolicyfile''' : Name of file containing flash crossdomain policies on the server    ''[Default = crossdomain.xml]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Introduction and Backup Files===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Note that intro and backup audio files must precisely match the format and bitrate for the stream! If they do not match, there will be a break in the stream and the listener will be disconnected. &lt;br /&gt;
&lt;br /&gt;
'''introfile''' : File to play when a client first connects to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: This is used globally and also is default for stream #1 on DNAS versions greater than 2.0. To apply a specific intro file to a stream, use streamintrofile_X. &lt;br /&gt;
&lt;br /&gt;
'''streamintrofile_X''' : File to play when a client first connects to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''backupfile''' : File to play if the source disconnects from the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: This is used globally and also is default for stream #1 on DNAS versions greater than 2.0. To apply a specific backup file to a stream, use streambackupfile_X. &lt;br /&gt;
&lt;br /&gt;
'''streambackupfile_X''' : assigns a specific backup file to a streamID X [Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''streambackupurl_X''' : assigns a specific backup stream to a streamID X (v2.6.1 feature)''&lt;br /&gt;
&lt;br /&gt;
'''specialfiletmpdir''' : place to store intro and backup files uploaded by sc_trans    ''[Default = /tmp/ (*nix only)]''&lt;br /&gt;
&lt;br /&gt;
'''maxspecialfilesize''' : Change the maximum size in bytes of the backup and intro files    ''[Default = 30000000]''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''log''' : Enable logging of the servers output    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''screenlog''' :  Enable logging of servers output to the console    ''[Default = 1]''&lt;br /&gt;
 If log=0 then this option is ignored due to no logging happening.&lt;br /&gt;
&lt;br /&gt;
'''logfile''' : Specify a different logfile to save the logs into ''[Default = %temp%\sc_serv.log or /tmp/sc_serv.log]''&lt;br /&gt;
&lt;br /&gt;
'''logclients''' : Enable logging of details about client connections and disconnections made ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the logs into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''configrewrite''' :  Re-write the 'config file' on server exit    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''songhistory''' : Specify the maximum song history to preserve    ''[Default = 10]''&lt;br /&gt;
&lt;br /&gt;
'''cpucount''' : Specify the number of cpu's present instead of the calculated number if non-zero    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''unique''' : Specify a substitution string for the '$' character to be used when processing filenames which if specified will set any occurences of '$' to the value set. This will be used in the processing of the following filenames: '''logfile''', '''introfile''', '''streamintrofile''', '''backupfile''', '''streambackupfile''', '''banfile''', '''streambanfile''', '''ripfile''', '''streamripfile''', '''include''', '''w3clog''', '''streamw3clog'''&lt;br /&gt;
&lt;br /&gt;
 So when 'unique' is changed from '$' to say 'test' then the following happens if 'logfile' is&lt;br /&gt;
 set to '/usr/local/shoutcast/$.log' then this would be converted to '/usr/local/shoutcast/test.log'&lt;br /&gt;
&lt;br /&gt;
'''include''' : Specify an additional include file containing settings to be processed from the current point in the main configuration file    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
You can do multiple calls of this allowing for a basic configuration file with then 'specific' stream configurations set in individual conf files though you need to ensure not to include a reference to the same file in itself.&lt;br /&gt;
&lt;br /&gt;
You can also specify a path with a wildcard for sc_serv to use to find multiple configuration files to include '''e.g.''' 'include=stream/*.conf'.  This can then be used along with the multiple stream configurations (see section 4.12) and the admin command 'admin.cgi?mode=reload' (see section 5.1) to add / remove / update stream configurations without having to close the server to apply them.&lt;br /&gt;
&lt;br /&gt;
'''admincssfile''' : Specify the css styling to be used on the index.html and admin pages    ''[Default = v2]''&lt;br /&gt;
&lt;br /&gt;
This can accept the following parameters:&lt;br /&gt;
&lt;br /&gt;
:admincssfile='''v1'''  -  Uses the v1 DNAS style&lt;br /&gt;
:admincssfile='''v2'''  -  Uses the newer SHOUTcast 2 style&lt;br /&gt;
:admincssfile='''path_to_local_css_file'''  e.g. my_index.css&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 If using a custom css file, if it does not exist on the first try to load it the server will revert to&lt;br /&gt;
 the default css style. As well the style is cached once loaded so changes require a restart of sc_serv.&lt;br /&gt;
&lt;br /&gt;
'''faviconfile''' : Specify the file to be returned as the favicon.ico when the administration pages are being queried by the client's browser    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
The default behaviour is to use a SHOUTcast themed built-in icon file and support / handling the update of this will entirely depend on the browser.&lt;br /&gt;
&lt;br /&gt;
'''faviconmimetype''' : Specify the mime type for actual file to be served in the favicon.ico response    ''[Default = image/x-icon]''&lt;br /&gt;
&lt;br /&gt;
Ensure this is correct for the type of image being used so it is valid.&lt;br /&gt;
&lt;br /&gt;
'''hidestats''' : Specify if the publically accessible stats?sid=# page can be accessed or if it is only available via the private administration pages   ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''robotstxtfile''' : Specify the file to be returned as the robots.txt when queried by search engines, etc to attempt to prevent incorrect access to the server's pages which may cause invalid client connections    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
The default behaviour is to return a robots.txt reponse indicating not to look at any of the server's pages i.e.&lt;br /&gt;
::User-agent:*&lt;br /&gt;
::Disallow:/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Networking===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''namelookups''' : Enable to allow reverse DNS look-ups on incoming IP addresses    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''portbase''' : Specify the port which clients and sources need to use to connect to the server    ''[Default = 8000]''&lt;br /&gt;
 SHOUTcast 1 sources are only able to connect to 'portbase + 1'.&lt;br /&gt;
&lt;br /&gt;
'''autodumpsourcetime''' : Specify how long before an idle source is dumped from the server (in seconds)    ''[Default: 30]''&lt;br /&gt;
 A value of zero means there is no timeout of an idle source.&lt;br /&gt;
 Also if you set this too low then it is likely that valid sources will&lt;br /&gt;
 fail to connect during the initial stages of a source connection.&lt;br /&gt;
&lt;br /&gt;
'''maxheaderlinesize''' : Specify the maximum size of an HTTP header line    ''[Default = 2048]''&lt;br /&gt;
&lt;br /&gt;
'''maxheaderlinecount''' : Specify the maximum header lines in an HTTP style exchange    ''[Default = 100]''&lt;br /&gt;
&lt;br /&gt;
'''adminpassword''' : Specify the administrator password for accessing the remote server features    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''password''' : Specify the password for broadcasters when connecting to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
 This matches the 'uvoxauth' value in the sc_trans configuration file (see [[SHOUTcast_DNAS_Transcoder_2#Network_Options|sc_trans.txt - section 3.11]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Network Buffers===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''buffertype''' : Specify whether the buffer size is fixed [0] or adaptive [1]    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''adaptivebuffersize''' : Specify the buffer size in seconds if buffer is set to adaptive    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''fixedbuffersize''' : Specify the buffer size in bytes if the buffer is set to fixed    ''[Default = 1048576]''&lt;br /&gt;
&lt;br /&gt;
'''bufferhardlimit''' : Specify the maximum buffer size in bytes which it can never go above    ''[Default = 16777216]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Relaying===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''allowrelay''' : Enable to allow a relay to connect to the server    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''allowpublicrelay''' : Enable to allow relays to list themselves in the YP directory    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''relayreconnecttime''' : Specify how many seconds to wait to reconnect on a relay failure    ''[Default = 30]''&lt;br /&gt;
 Setting this to 0 will disable attempts for the relay to reconnect.&lt;br /&gt;
&lt;br /&gt;
'''relayconnectretries''' : Specify the number of times relays are attempted to be connected to if it is initially unable to connect    ''[Default = 3]''&lt;br /&gt;
 This generally applies only to YP1 connections and is related to the&lt;br /&gt;
 actual attempts to make and get a http response from the YP server.&lt;br /&gt;
&lt;br /&gt;
'''maxhttpredirects''' : Specify the maximum number of times we can redirect when relaying    ''[Default = 5]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;Legacy Options&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
'''relayport''' : Port of the source to use for the relay    ''[Default: 80]''&lt;br /&gt;
&lt;br /&gt;
'''relayserver''' : Url of the source to relay    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
 Using the stream configuration options (see [[#Stream_Configuration|section 4.12]]) is the preferred method&lt;br /&gt;
 of setting up a relay. These options are only provided as a means for loading&lt;br /&gt;
 legacy configuration files. If found then these are mapped to 'streamrelayurl_1'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Reserved List===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''ripfile''' : File to store the list of reserved IP addresses    ''[Default = sc_serv.rip]''&lt;br /&gt;
&lt;br /&gt;
'''saveriplistonexist''' : Re-write the 'ripfile' on server exit    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''riponly''' : Only allow connections to be made from reserved IP addresses    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the file into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Stream Configuration===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Important Note:''' If you do not specify an identifier (_#) on the end of the above options then it will be treated like _1 (effectively acting like SHOUTcast 1). Additionally, _0 is not a supported identifier and will be mapped to _1.&lt;br /&gt;
&lt;br /&gt;
'''requirestreamconfigs''' : Only allow sources to connect if a stream configuration has been set in your configuration file    ''[Default = 0]''&lt;br /&gt;
 With this enabled, you will need to ensure that any sources have their configuration details&lt;br /&gt;
 setup to match those in sc_trans's configuration, in particular the 'uvoxstreamid' value with&lt;br /&gt;
 sc_trans (see [[SHOUTcast_DNAS_Transcoder_2#Network_Options|sc_trans.txt - section 3.11]]).&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each stream configuration):&lt;br /&gt;
&lt;br /&gt;
'''streamid''' : Specify the numerical identifier of the stream for control or referencing the stream configuration. This can only be a numeric value from 1 to 2147483647.&lt;br /&gt;
&lt;br /&gt;
 If you use multiple stream configurations then you will need to ensure the _X&lt;br /&gt;
 part is specified and correct for each stream configuration group&lt;br /&gt;
 e.g.&lt;br /&gt;
   streamid=1&lt;br /&gt;
   streampath=/live&lt;br /&gt;
     or&lt;br /&gt;
   streamid_1=1&lt;br /&gt;
   streampath_1=/random_mountpoint&lt;br /&gt;
   streamid_2=2&lt;br /&gt;
   streampath_2=/another_mountpoint&lt;br /&gt;
&lt;br /&gt;
'''streamauthhash''' : The authorisation key needed for YP2 directory registration.&lt;br /&gt;
 This is a requirement for using the YP2 system and without it you will not be able to&lt;br /&gt;
 successfully connect to the YP2 directory (see [[#Getting_Started|section 3.0]]).&lt;br /&gt;
 &lt;br /&gt;
 This can be used for multiple streams you are providing or can be different (as long&lt;br /&gt;
 as valid) so you can infact provide multiple stations from the same server if desired.&lt;br /&gt;
&lt;br /&gt;
'''streampath''' : Specify the path clients need to use to access the stream&lt;br /&gt;
 If a / is not specified on the start of the string then the server will add&lt;br /&gt;
 it to the generated path in playlist entries or other places as required so&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://&amp;lt;serverurl&amp;gt;/&amp;lt;streampath&amp;gt;&amp;lt;/nowiki&amp;gt; will work so clients are able to connect.&lt;br /&gt;
 &lt;br /&gt;
 If this is not specified then &amp;lt;nowiki&amp;gt;http://&amp;lt;serverurl&amp;gt;/stream/&amp;lt;streamid&amp;gt;/&amp;lt;/nowiki&amp;gt; will be&lt;br /&gt;
 used for client access and in generated playlist entries so that it will&lt;br /&gt;
 always be possible for clients to connect to the server somehow. &lt;br /&gt;
 See [[SHOUTcast_DNAS_Server_2#Stream_Addresses|section 6.0]] for more information on the server's stream address support.&lt;br /&gt;
&lt;br /&gt;
 Note: streampath is the mountpoint, e.g. streampath_1=/mystation would result in ip:port/mystation&lt;br /&gt;
 Do NOT specify a streamurl as streampath as this will result in an error.&lt;br /&gt;
&lt;br /&gt;
'''streamrelayurl''' : Specify the full url of source to relay (if this is a relay).&lt;br /&gt;
 Make sure if you use this that the full url is entered and that it is&lt;br /&gt;
 the url which clients would connect to for the stream to be relayed.&lt;br /&gt;
&lt;br /&gt;
'''streammaxuser''' : Specify the maximum number of clients allowed to connect to the stream    ''[Default = 0]''&lt;br /&gt;
If set to zero, not specified or higher than 'maxuser' then the value set for 'maxuser' (see [[#Client_Behaviour|section 4.2]]) will be used for all known streams.&lt;br /&gt;
&lt;br /&gt;
Changing this to a value between zero and 'maxuser' will enforce the user connection limit for the specified value in the stream configuration '''e.g.'''&lt;br /&gt;
 streammaxuser_1 = 8&lt;br /&gt;
 maxuser = 32&lt;br /&gt;
&lt;br /&gt;
This allows a total of 32 connections to the server but specifies the maximum number of connections to the first stream configuration is 8.&lt;br /&gt;
&lt;br /&gt;
With the following stream configuration&lt;br /&gt;
 streammaxuser_1 = 64&lt;br /&gt;
 maxuser = 32&lt;br /&gt;
&lt;br /&gt;
This allows a total of 32 connections to the server but with a per stream limit above the maximum means the maximum number of connections to the first stream group will be 32. However this also depends upon any other stream configurations and their limits as to whether 32 clients will be able to connect to this stream configuration.&lt;br /&gt;
&lt;br /&gt;
Finally unless a valid stream configuration is specified then this value will only be applied to the first stream configuration found i.e. there is a need to specify a streamid_XXX for streammaxuser_XXX (where XXX is the stream identifier of the stream configuration group.&lt;br /&gt;
&lt;br /&gt;
'''streamadminpassword''' : Specify the administrator password for accessing the remote server features for the specified stream configuration group. If this is not specified then 'adminpassword' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streampassword''' : Specify the password for broadcasters when connecting to the server for the specified stream configuration group. If this is not specified then 'password' will be used.&lt;br /&gt;
 This matches the 'uvoxauth' value in the sc_trans configuration file (see sc_trans.txt - section 3.11).&lt;br /&gt;
&lt;br /&gt;
'''streampublicserver''' : This allows you to override the public flag received from the source when a connection is being made to the YP directory. If this is not specified or is set to empty then 'publicserver' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamallowrelay''' : Enable to allow a relay to connect to the server. If this is not specified then 'allowrelay' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamallowpublicrelay''' : Enable to allow relays to list themselves in the YP directory. If this is not specified then 'allowpublicrelay' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamriponly''' : Enable to only allow connections to be made from reserved IP addresses. If this is not specified then 'riponly' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamautodumpsourcetime''' : Specify how long before an idle source will be dumped from the server (in seconds). A value of zero means there is no timeout of an idle source. If not specified then 'autodumpsourcetime' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamautodumpusers''' : Enable to allow the server to disconnect clients if the source disconnects. If not specified then 'autodumpusers' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamlistenertime''' : Specify the maximum time in minutes a client is allowed to listen to the stream. A value of zero means there will be no time limit. If not specified then 'listenertime' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamintrofile''' : File to play when a client first connects to the server. If this is not specified then 'introfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streambackupfile''' : File to play if the source disconnects from the server. If this is not specified then 'backupfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streammovedurl_X''' : redirects a permanently stopped or moved stream to a different working stream url.&lt;br /&gt;
&lt;br /&gt;
'''streambanfile''' : File to store the list of banned IP addresses. If this is not specified then 'banfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamripfile''' : File to store the list of banned IP addresses. If this is not specified then 'ripfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamw3clog''' : File to store the web connections logs into. If this is not specified then 'w3clog' will be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''DNAS v2.6.1 and newer'''&lt;br /&gt;
&lt;br /&gt;
'''sslCertificateFile''' : For https:// streams, specify .crt file e.g. sslCertificateFile=/path/to/ssl.crt&lt;br /&gt;
&lt;br /&gt;
'''sslCertificateKeyFile''' : specify key file, e.g. sslCertificateKeyFile=/path/to/key.pem&lt;br /&gt;
&lt;br /&gt;
 Put the whole certificate chain in the .crt file, and only the key in the .key file&lt;br /&gt;
 SSL Cert needs to be assigned to a DNS e.g. stream.mysite.com&lt;br /&gt;
 Be sure to also add destip=stream.mysite.com and/or publicip= and alternateports=443 lines to DNAS config file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' '''&lt;br /&gt;
&lt;br /&gt;
===Web Connection (W3C) Logging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''w3cenable''' : Enable logging of web connections to describe the duration a client has listened to a specific title    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''w3clog''' : File to store the web connections logs into    ''[Default = sc_w3c.log]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the log into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
'''webclientdebug''' : Enable logging of web client connections    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===YP Server Behaviour===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''uvoxcipherkey''' : Specify the key used to obfuscate the initial handshaking with the source    ''[Default = foobar]''&lt;br /&gt;
 This is a SHOUTcast 2 only feature and it matches the 'djcipher' value in the sc_trans&lt;br /&gt;
 configuration file (see [[SHOUTcast_DNAS_Transcoder_2#DJ_Support|sc_trans.txt - section 3.3]]).&lt;br /&gt;
&lt;br /&gt;
Only change this if you really need to do so as not all SHOUTcast 2 clients will allow you to edit this value from the default value. If using the Source DSP plug-in then see [[Source_DSP_Plug-in#SHOUTcast_2_Cipher_Key|dsp_sc.txt - section 5.0]] for details on how to change the plug-in to use a differnet value.&lt;br /&gt;
&lt;br /&gt;
'''metainterval''' : Specify the metadata transmission interval in bytes    ''[Default = 8192]''&lt;br /&gt;
 YP1 only&lt;br /&gt;
&lt;br /&gt;
'''yp2''' : Enable to use the SHOUTcast 2 protocol and related server features for access to the YP2 directory    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
If this is enabled and not all of the required values are set then the server will throw an error and will abort from its start-up attempt. It should be indicated what needs to be set to allow the server to start with this set.&lt;br /&gt;
&lt;br /&gt;
Additionally if there is an issue then the server will report an error in its log ouput of 'Connection attempt failed. YP2 error code is XXX (&amp;lt;message&amp;gt;)' where XXX is one of the following error codes and &amp;lt;message&amp;gt; is a message set in the error response to indicate a bit more what the error relates to. All current error codes can be found [[#YP_Server_Errors|here]].&lt;br /&gt;
&lt;br /&gt;
'''ypaddr''' : Allows you to specify a different YP server if required    ''[Default = yp.shoutcast.com]''&lt;br /&gt;
&lt;br /&gt;
'''ypport''' : Allows you to specify the port of the YP server if required    ''[Default = 80]''&lt;br /&gt;
&lt;br /&gt;
'''ypPath''' : Allows you to specify the path to YP2 services on the server    ''[Default = /yp2]''&lt;br /&gt;
&lt;br /&gt;
'''ypTimeout''' : Specify the timeout interval in seconds for requests made to the YP server    ''[Default = 60]''&lt;br /&gt;
&lt;br /&gt;
'''ypmaxretries''' : Specify the maximum number of times a YP request will be attempted    ''[Default = 10]''&lt;br /&gt;
 This generally applies only to YP1 connections and is related to the&lt;br /&gt;
 actual attempts to make and get a http response from the YP server.&lt;br /&gt;
&lt;br /&gt;
'''ypreportinterval''' : Specify the maximum time in which the YP must have contacted our server in seconds    ''[Default = 300]''&lt;br /&gt;
&lt;br /&gt;
'''ypminreportinterval''' : Specify the minimum time in which the YP can contact our server in seconds    ''[Default = 10]''&lt;br /&gt;
&lt;br /&gt;
'''publicserver''' : This allows you to override the public flag from the connected source when a connection is being made to the YP directory    ''[Default = default]''&lt;br /&gt;
This can be one of the following values:&lt;br /&gt;
 '''default''' - use the flag provided by the source&lt;br /&gt;
 '''always''' - force the source to be public&lt;br /&gt;
 '''never''' - never allow the use the flag provided by the source&lt;br /&gt;
&lt;br /&gt;
When using sc_trans this would match with the 'public' value (see [[SHOUTcast_DNAS_Transcoder_2#Metadata_Control|sc_trans.txt - section 3.8]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===YP Server Errors===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If not all of the required values are set for a public listing then the DNAS server will throw an error and will abort its attempt to be listed in the Directory. It should be indicated the error is with one of the error codes provided below so it can be resolved.&lt;br /&gt;
&lt;br /&gt;
Additionally if there is an issue during Directory updates or removals, then the server will report an error in its log ouput as one of the following error codes and &amp;lt;message&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status Code&lt;br /&gt;
! Status Message&lt;br /&gt;
|-&lt;br /&gt;
| 400 || Generic error ''(covers all other cases usually from internal failures)''&lt;br /&gt;
|-&lt;br /&gt;
| 457 || Unrecoverable error while updating station information - DNAS restart required.&lt;br /&gt;
|-&lt;br /&gt;
| 470 || Invalid authorization hash&lt;br /&gt;
|-&lt;br /&gt;
| 471 || Invalid stream type (could be a bad bitrate or mime type)&lt;br /&gt;
|-&lt;br /&gt;
| 472 || Missing or invalid stream url&lt;br /&gt;
|-&lt;br /&gt;
| 473 || Server unreachable by YP&lt;br /&gt;
|-&lt;br /&gt;
| 474 || Relay url does not exist&lt;br /&gt;
|-&lt;br /&gt;
| 475 || Invalid server ID&lt;br /&gt;
|-&lt;br /&gt;
| 476 || Invalid max clients (value out of range or missing)&lt;br /&gt;
|-&lt;br /&gt;
| 477 || Terms of Service violator.  You are being reported.&lt;br /&gt;
|-&lt;br /&gt;
| 478 || Incompatible protocol.&lt;br /&gt;
|-&lt;br /&gt;
| 479 || Streams requiring authorization are not public and cannot list here.&lt;br /&gt;
|-&lt;br /&gt;
| 480 || Cannot see your station/computer (URL: &amp;lt;streamurl&amp;gt;) from the Internet, disable Internet Sharing/NAT/firewall/ISP cache.&lt;br /&gt;
|-&lt;br /&gt;
| 481 || Cannot verify server since all listener slots are full.  Please wait.&lt;br /&gt;
|-&lt;br /&gt;
| 482 || This network has been permanently banned due to a previous violation of the SHOUTcast directory terms of service&lt;br /&gt;
|-&lt;br /&gt;
| 483 || Invalid listeners (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 484 || Invalid avglistentime (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 485 || Invalid newsessions (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 486 || Invalid connects (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 487 || Request &amp;amp; Response objects are null&lt;br /&gt;
|-&lt;br /&gt;
| 488 || Request xml is null&lt;br /&gt;
|-&lt;br /&gt;
| 489 || YP command not specified&lt;br /&gt;
|-&lt;br /&gt;
| 490 || Generic error, while doing xml parsing&lt;br /&gt;
|-&lt;br /&gt;
| 491 || Generic error, while reading xml request&lt;br /&gt;
|-&lt;br /&gt;
| 492 || Error closing buffer / HTTP connection&lt;br /&gt;
|-&lt;br /&gt;
| 493 || Internal error - unable to acquire data source&lt;br /&gt;
|-&lt;br /&gt;
| 494 || Error updating information - DNAS restart required&lt;br /&gt;
|-&lt;br /&gt;
| 495 || Error acquiring station ID - DNAS restart required&lt;br /&gt;
|-&lt;br /&gt;
| 496 || Error converting data type&lt;br /&gt;
|-&lt;br /&gt;
| 497 || Inconsistent stream behaviour&lt;br /&gt;
|-&lt;br /&gt;
| 498 || Invalid Request (Invalid request received)&lt;br /&gt;
|-&lt;br /&gt;
| 499 || Error while getting information&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Administration==&lt;br /&gt;
&lt;br /&gt;
With sc_serv there are administration pages available for accessing and controlling the server remotely which allows you to monitor and control clients connected to the stream (or not if banning them). These pages can now be accessed through a summary page at /index.html which will show a link to any active stream(s) or you explicitly access them via the /index.html?sid=# path where # is the ID of the stream (see [[#Stream_Configuration|section 4.12]] for more about using 'streamid') '''e.g.'''&lt;br /&gt;
 &amp;lt;streamurl&amp;gt;/index.html?sid=1&lt;br /&gt;
&lt;br /&gt;
If no sid or an invalid sid is passed then you will be taken to the summary /index.html and this will be applied even if you were on a page with a known ID and then enter an invalid sid or remove it purposefully.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Administration Pages===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
As part of the administrative features provided there are the following pages where # is the streamid you want to use). This is not a complete list but should cover all of the pages which allow for a direct http url to be entered to get an administation action to work. The ban and reserve IP actions require input fields and do not map to direct sends.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Public Pages====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''index.html'''  -  Shows a summary page with links to get to any active stream(s)&lt;br /&gt;
&lt;br /&gt;
'''currentsong?sid=#'''  -  Returns the current song title or a null response&lt;br /&gt;
&lt;br /&gt;
'''nextsong?sid=#'''  -  Returns the next song title (if known) or a null response&lt;br /&gt;
 currentsong and nextsong both provide a UTF-8 encoded string of the song title&lt;br /&gt;
 otherwise it will return effectively no response (ignoring the http header).&lt;br /&gt;
&lt;br /&gt;
'''nextsongs?sid=#'''  -  Returns in an xml format the next song title(s) (if known) to be played when using a compatible v2 stream source. See [[#XML_Responses|section 5.2]] for more details on the format of the xml returned).&lt;br /&gt;
&lt;br /&gt;
'''index.html?sid=#'''  -  Shows current status of the specified stream&lt;br /&gt;
&lt;br /&gt;
'''played.html?sid=#'''  -  Song history of specified playing history&lt;br /&gt;
:or&lt;br /&gt;
'''played?sid=#'''&lt;br /&gt;
&lt;br /&gt;
'''listen.pls?sid=#'''  -  Provides a PLS for file clients to use to connect to the stream.&lt;br /&gt;
:or&lt;br /&gt;
'''listen?sid=#'''&lt;br /&gt;
&lt;br /&gt;
'''listen.m3u?sid=#'''  -  Provides a M3U file for clients to use to connect to the stream.&lt;br /&gt;
&lt;br /&gt;
'''listen.asx?sid=#'''  -  Provides a ASX file for clients to use to connect to the stream.&lt;br /&gt;
&lt;br /&gt;
 With the listen pages you either need to have specified an IP with 'dstip / destip'&lt;br /&gt;
 (see section 4.2) or leave empty and allow the server to attempt to auto-generate&lt;br /&gt;
 the IP required for the client to be able to connect. If this fails the generated&lt;br /&gt;
 playlist is likely to return a stream url like &amp;lt;nowiki&amp;gt;http://0.0.0.0:&amp;lt;portbase&amp;gt;/&amp;lt;path&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''home.html?sid=#''' or '''home?sid=#'''  -  Opens in a new window or tab (depending on the client browser) the 'streamurl' as specified by the stream source. If this is not set then the client will be redirected to the shoutcast.com main page.&lt;br /&gt;
&lt;br /&gt;
'''stats?sid=#'''  -  Provides an xml response for public accessibility which matches the private version from admin.cgi?sid=#&amp;amp;mode=viewxml&amp;amp;page=1. This is the modern version of the 7.html page as provided by the legacy v1 servers. See [[#XML_Responses|section 5.2]] for information on what is provided in the xml response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Private Pages====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 By passing &amp;amp;pass=password where password is the 'adminpassword' (see section [[#Networking|4.8]]) then it is possible&lt;br /&gt;
 to directly access the administration page(s) required. As well the base64 encoded version of the password&lt;br /&gt;
 can be passed as long as it is prefixed with ''YWRtaW46''&lt;br /&gt;
 e.g.&lt;br /&gt;
     &amp;amp;pass=changeme is the same as &amp;amp;pass=YWRtaW46Y2hhbmdlbWU=&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi'''  -  Shows the an overal summary admin page for the streams provided by the server including direct links to certain information pages (see notes about the 'admin.cgi?sid=#&amp;amp;mode=viewxml' command for more info)&lt;br /&gt;
:or&lt;br /&gt;
'''admin.cgi?sid=0'''&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#'''  -  Shows the base admin page for the stream and information&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=updinfo&amp;amp;song=title'''           &lt;br /&gt;
:or&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=updinfo&amp;amp;type=xml&amp;amp;song=xml'''    &lt;br /&gt;
 If 'title' is not empty then it will be set as the current song title for the stream&lt;br /&gt;
 specified until the next use of this action or the next title update is received from&lt;br /&gt;
 the source. Specifying '&amp;amp;type=xml' will process the value of 'song' as [[SHOUTcast_XML_Metadata_Specification|v2 XML metadata]]&lt;br /&gt;
 instead of a v1 title.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewlog'''  -  View logfile&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewlog&amp;amp;viewlog=tail'''  -  View logfile (tailing)&lt;br /&gt;
&lt;br /&gt;
 The tailing option keeps adding additional log entries to the end of the view whilst the view is active.&lt;br /&gt;
 As well any html or xml data in the log will not be shown correctly in the view as &amp;lt; &amp;gt; &amp;amp; are not escaped&lt;br /&gt;
 to their html entities. See [[#Logging|section 4.6]] for more information on the log file.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewban'''  -  Ban view which matches the ban file and allows you to ban a single IP or an IP range from it (see [[#Banning|section 4.1]] for more info on the file)&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewrip'''  -  Reserved IP list that matches the rip file (see [[#Reserved_IP_.28RIP.29|section 4.11]] for more info on the file)&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=art''' or '''admin.cgi?sid=#&amp;amp;mode=art&amp;amp;art=playing'''  -  Displays the artwork SHOUTcast v2 compatible clients may be able to display if the SHOUTcast v2 source does provide it.&lt;br /&gt;
  &lt;br /&gt;
 The artwork mode is primarily intended as a debugging option to make it possible&lt;br /&gt;
 to see what (if anything) has been provided by the SHOUTcast v2 source.&lt;br /&gt;
 &lt;br /&gt;
 If no '&amp;amp;art=' is specified or not a matching option then the stream artwork (if&lt;br /&gt;
 available) will be shown. If no '&amp;amp;art=playing' is specified then this will show&lt;br /&gt;
 the playing file's artwork (if available).&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewxml''' or '''admin.cgi?sid=#&amp;amp;mode=viewxml&amp;amp;page=#'''  -  Returns an xml output of the current stream information&lt;br /&gt;
&lt;br /&gt;
 If page is not set or is outside of the range zero to 6 then this will output all of the&lt;br /&gt;
 information as the standard viewxml action does. Otherwise this only display information&lt;br /&gt;
 depending on the value assigned to page which can be from 1 to 6 which maps as follows:&lt;br /&gt;
 &lt;br /&gt;
     1 - Server Summary (this is the same as using the public stats?sid=# action)&lt;br /&gt;
     2 - Not used (previously used for Webdata Stats but not in current builds)&lt;br /&gt;
     3 - Listener Stats&lt;br /&gt;
     4 - Song History&lt;br /&gt;
     5 - Stream Metadata        (if supported by the source otherwise can just be title)&lt;br /&gt;
     6 - Stream Configurations  (displays all of the known stream configurations though this is only available on admin.cgi)&lt;br /&gt;
 &lt;br /&gt;
 If accessing the standard viewxml or the listener stats (page = 3), you can also send&lt;br /&gt;
 '&amp;amp;iponly=1' which will filter the listener information (if there are any) to just output&lt;br /&gt;
 the IP instead of the additional information provided normally.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=resetxml&amp;amp;sid=#'''  -  Will flush the held stream information to refresh it&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=kicksrc'''  -  Will allow you to kick the currently connected source for the specified stream.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unripdst&amp;amp;ripdst=&amp;lt;IP&amp;gt;'''  -  Where &amp;lt;IP&amp;gt; is the IP to reserve (see [[#Reserved_IP_.28RIP.29|section 4.11]] for more information).&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unbandst&amp;amp;bandst=&amp;lt;IP&amp;gt;.0&amp;amp;banmsk=0'''  -  Where &amp;lt;IP&amp;gt; is the first 3 parts of a subnet IP to unban.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unbandst&amp;amp;bandst=&amp;lt;IP&amp;gt;&amp;amp;banmsk=255'''  -  Where &amp;lt;IP&amp;gt; is that of a single IP to unban.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=rotate''' or '''admin.cgi?mode=rotate&amp;amp;files=log|w3c'''  -  This will rotate the log files set via the 'logfile', 'w3clog' and 'streamw3clog' options.&lt;br /&gt;
 If &amp;amp;files is specified then passing log or w3c will allow you to only&lt;br /&gt;
 rotate one type of file otherwise both will be rotated by this command.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=reload''' or '''admin.cgi?mode=reload&amp;amp;force=1'''  -  This reloads the stream configuration details in the main configuration file the server used when started and is only available on the admin summary page and so can only be run by the master administrator password.&lt;br /&gt;
&lt;br /&gt;
 This command works on the server as a whole (hence no sid parameter) and it will add or&lt;br /&gt;
 remove or update any stream configuration as applicable which will cause any connected&lt;br /&gt;
 sources and clients to be kicked as applicable (usually if a stream configuration was removed).&lt;br /&gt;
 &lt;br /&gt;
 This will recognise any configurations included via 'include' entries so you can have 'include=stream/*.conf'&lt;br /&gt;
 in your main configuration file which the server can then use to detect different stream configurations.&lt;br /&gt;
 &lt;br /&gt;
 If '&amp;amp;force=1' is passed then the reload will treat the updating of active stream configurations in the&lt;br /&gt;
 same manner as a stream configuration removal instead of trying to update compatible stream configuration&lt;br /&gt;
 details without resetting the stream '''e.g.''' not increasing the 'streammaxuser' when it could be increased.&lt;br /&gt;
 &lt;br /&gt;
 The following configuration options are updated when using this command:&lt;br /&gt;
 &lt;br /&gt;
     password or streampassword (*)            streamadminpassword (#)&lt;br /&gt;
     requirestreamconfigs                      streamid&lt;br /&gt;
     streamauthhash                            streampath&lt;br /&gt;
     streamrelayurl                            streammaxuser&lt;br /&gt;
     streampublicserver                        streamallowrelay&lt;br /&gt;
     streamallowpublicrelay                    streamriponly&lt;br /&gt;
     streamautodumpsourcetime                  streamautodumpusers&lt;br /&gt;
     streamlistenertime                        streamintrofile&lt;br /&gt;
     streambackupfile                          streambanfile&lt;br /&gt;
     streamripfile&lt;br /&gt;
 &lt;br /&gt;
 (*) This will depend upon the current values versus the new configuration values&lt;br /&gt;
 (#) The master 'adminpassword' can only be changed after a restart of the server&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XML Responses===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
As detailed in the previous sections, some of the administration actions will provide the information in an xml response. For information on what is actually returned in these xml responses see [[SHOUTcast_DNAS_Server_2_XML_Reponses|sc_serv2_xml_responses.txt]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stream Addresses==&lt;br /&gt;
&lt;br /&gt;
Clients connecting to the streams provided by sc_serv are able to so in a number of ways depending upon how the streams have been configured and also depending upon the number of streams you have available.&lt;br /&gt;
&lt;br /&gt;
The two main ways for a client to connect to a stream are as follows:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;serverurl&amp;gt;/stream/&amp;lt;streamid&amp;gt;/&lt;br /&gt;
or&lt;br /&gt;
 &amp;lt;serverurl&amp;gt;/&amp;lt;streampath&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;serverurl&amp;gt; is typically formed as &amp;lt;nowiki&amp;gt;http://dstip:portbase&amp;lt;/nowiki&amp;gt; (see sections [[#Client_Behaviour|4.2]] and [[#Networking|4.8]])&lt;br /&gt;
 &amp;lt;streamid&amp;gt; is the 'streamid' set from the stream configuration (see [[#Stream_Configuration|section 4.12]])&lt;br /&gt;
 &amp;lt;streampath&amp;gt; is the 'streampath' set from the stream configuration (see [[#Stream_Configuration|section 4.12]])&lt;br /&gt;
&lt;br /&gt;
If the client attempting to connect to the server instance does not specify &amp;lt;streampath&amp;gt; or &amp;lt;streamid&amp;gt; in the stream url it attempts to access or if only one stream is provided then the server will usually default to the first stream it knows about and will allow the client to make a valid connection (though this is not guaranteed to happen).&lt;br /&gt;
&lt;br /&gt;
This handling of the stream addresses provided is something to keep in mind especially if you are providing multiple streams as this will allow you to provide different addresses for certain clients to be able to use a specific stream '''e.g.''' if you wanted to have mobile clients connect to a lower bandwidth stream then you could direct them to '&amp;lt;serverurl&amp;gt;/mobile'&lt;br /&gt;
&lt;br /&gt;
The server options available for controlling how the stream's path is specified can be seen in [[#Stream_Configuration|section 4.12]] which also details the equivalent values needing to be set in the sc_trans configuration if you use sc_trans to provide a source to sc_serv.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Locale Error (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
If you receive the following error then you have a locale related issues:&lt;br /&gt;
&lt;br /&gt;
 terminate called after throwing an instance of 'std::runtime_error'&lt;br /&gt;
 what():  locale::facet::_S_create_c_locale name not valid&lt;br /&gt;
 Abort trap&lt;br /&gt;
&lt;br /&gt;
If this happens then you need to set the 'POSIX' locale in your terminal's environment values. If this does not happen then everything is fine or you are using a newer version of sc_serv from the end of 2010 which should no longer exhibit this issue.&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
BSD:&lt;br /&gt;
 setenv LC_ALL POSIX&lt;br /&gt;
&lt;br /&gt;
Mac OS X:&lt;br /&gt;
 export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
You can test to see if this has worked by checking the shell command &amp;quot;locale&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 LANG=&lt;br /&gt;
 LC_COLLATE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_CTYPE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_MESSAGES=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_MONETARY=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_NUMERIC=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_TIME=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_ALL=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Virtual Memory Footprint (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
Due to how sc_serv works it will create a large number of threads which may become an issue due to the default virtual memory stack allocation per thread potentially being large (typically 10MB per thread). For most people this should not be an issue as the memory is not really allocated unless it is used. If however if you have a resource constrained system or if you plan on running many copies of sc_trans then you could potentially run out of virtual memory.&lt;br /&gt;
&lt;br /&gt;
The default thread allocation can be reduced by issuing a &amp;quot;ulimit&amp;quot; command before running sc_trans and in the example reduces it to 512KB per-thread '''e.g.'''   ulimit -s 512&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Maximum Client Connection Limits==&lt;br /&gt;
&lt;br /&gt;
In general, there are inherent limits on the maximum number of client connections which may be made to a running instances of sc_serv which can either be set by configuration limits e.g. 'maxuser', Operating System limits or bandwidth limits being reached.&lt;br /&gt;
&lt;br /&gt;
The first two are easy to resolve whereas the last (bandwidth limits) is something which will usually require obtaining additional hosting or paying for more available bandwidth.&lt;br /&gt;
&lt;br /&gt;
If reaching the Operating System limit, this is usually indicated by the maximum number of clients never going above a fixed value even if there is the bandwidth and the server has been configured to go higher. This usually appears as around 1016 maximum connections (though this can vary a bit)&lt;br /&gt;
&lt;br /&gt;
If using a non-Windows Operating System then you can use the 'ulimit -n xxxx' command to change the upper limit from what is already set which can be found from just 'ulimit -n' e.g. to change the limit to 4096 connections you would run ulimit -n 4096&lt;br /&gt;
&lt;br /&gt;
If using a Windows Operating System then there isn't any real way to change such things due to the OS hopefully being configured with limits that will not be reached when using sc_serv. If in doubt then consult the Microsoft support documentation for the OS used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Configurations==&lt;br /&gt;
&lt;br /&gt;
Include as part of the sc_serv installation are a number of example configurations to get things started with using some of the features of the server. The provided examples are:&lt;br /&gt;
&lt;br /&gt;
 sc_serv_basic.conf&lt;br /&gt;
 sc_serv_public.conf&lt;br /&gt;
 sc_serv_relay.conf&lt;br /&gt;
 sc_serv_simple.conf&lt;br /&gt;
&lt;br /&gt;
All of the configuration examples are documented and will relate back to details in this file appropriately. You will need to change some details in these example files or to obtain any applicable authorisation keys for the setup you are making ([[#Getting_Started|see section 3.0]]). In all cases the examples are designed to work from the same install folder as sc_serv.&lt;br /&gt;
&lt;br /&gt;
Remember these examples are a way to get you up and running faster though you are still likely to have to adjust things depending upon the systems you are using and how you want to manage your sources and server connections which are covered in previous sections.&lt;br /&gt;
&lt;br /&gt;
Additionally if you are not happy with editing the files or find it still too confusing then you can use the configuration builder which (if installed) can be found in the 'config_builder'. Open 'config_builder.html' in your browser and then use this graphical tool to setup a configuration file for the server (and additionally the transcoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_basic===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This is the base configuration from which the other configuration examples are based and this will get a sc_serv instance running as a local setup with no connection made to the YP directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_public===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_serv_basic configuration to get a sc_serv instance running as a public setup with a connection made to the YP for listing the stream in the directory. This shows the use of the 'include' option (see section [[#Miscellaneous|4.7]]) and how specifying a configuration option twice uses the last value found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_relay===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_serv_public configuration to get a sc_serv instance running as a public setup with a source coming in from a relay server providing a SHOUTcast 2 stream.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_debug===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file can be included in any other configuration files to allow you to get debug logging output when trying to investigate any issues you may be experiencing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_simple===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Use this if you just need to get a very basic server running or are impatient&lt;br /&gt;
 or are struggling to get it running despite the previous example configurations.&lt;br /&gt;
&lt;br /&gt;
This configuration file is designed to be used just as is and is the simplest form of the configuration file you can have which will allow you to get a running server to appear on the YP. This works on using the default settings of the server though does change some of the file paths inorder to fit in with the existing setup as used in the other examples.&lt;br /&gt;
&lt;br /&gt;
All you need to do when using this configuration file is to enter your authorisation key in the 'streamauthhash' line '''e.g.''' if your authorisation key is '''123456789''' then you change ''streamauthhash=&amp;lt;enter_your_auth_key_here&amp;gt;'' to ''streamauthhash='''123456789''''' and save the file.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Server_2</id>
		<title>SHOUTcast DNAS Server 2</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Server_2"/>
				<updated>2022-02-01T13:49:28Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Introduction and Backup Files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
The purpose of this document is to show you the different configuration options supported by sc_serv along with basic and more advanced example configurations to enable you to get started with using sc_serv and the features it can offer.&lt;br /&gt;
&lt;br /&gt;
The aim of sc_serv is to provide enhanced serving features and also access to the new YP2 infrastructure whilst maintaining as much backward compatibility with previous versions of sc_serv as possible. The new features introduced include:&lt;br /&gt;
&lt;br /&gt;
# Serving multiple streams from a single server instance&lt;br /&gt;
# Relaying multiple streams from a single server instance&lt;br /&gt;
# Multiplexing all server activity through a single IP port&lt;br /&gt;
# SHOUTcast 2 wire protocol support for sources, relays and clients&lt;br /&gt;
# Repackaging of SHOUTcast 1 and SHOUTcast 2 data as needed for connected clients&lt;br /&gt;
# YP2 infrastructure support&lt;br /&gt;
# Real-time metadata and statistic reporting&lt;br /&gt;
# Static station id support&lt;br /&gt;
# In-stream metadata in standardised xml files&lt;br /&gt;
# UTF-8 and international character encoding&lt;br /&gt;
# Improved server and stream security&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview of Features==&lt;br /&gt;
&lt;br /&gt;
To take full advantage of the newer features provided as part of the SHOUTcast 2 and YP2 systems then you will need to ensure you are using a compatible version of sc_serv (any version 2 will work) and that you have the required authorisation key to register as a broadcaster on the YP2 directory (see [[#Getting_Started|section 3.0]]).&lt;br /&gt;
&lt;br /&gt;
If you were intending on taking full advantage of the multiplexing and multiple stream support offered as part of sc_serv then you would need to make sure you enable the SHOUTcast 2 options (this is enabled by default with server builds from the end of 2010 if the 'yp2' option in the configuration file is not specified [see [[#YP_Server_Behaviour|section 4.14]] ). The reason for needing to enable this support is if you try to do it with the original SHOUTcast 1 protocol then it will not work as the original protocol has no means of expressing multiple streams from a single port due to the lack of an identifier provided for them.&lt;br /&gt;
&lt;br /&gt;
If you are planning on connecting multiple sc_trans instances to sc_serv then you must use the SHOUTcast 2 protocol support so that each sc_trans instance can have a unique identifier which allows for multiple streams to then be provided from a single server. It is still possible for an older source to connect to the server with a number of config options available to support this though functionality will be limited compared to what can be done with a fully supporting SHOUTcast 2 source.&lt;br /&gt;
&lt;br /&gt;
Finally clients connecting to your server do not need to directly support SHOUTcast 2 as sc_serv will repackage the stream data and any related metadata into the correct format the client requests (typically based on the user agent detected by the server).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
&lt;br /&gt;
One of the key aspects of the new YP2 directory infrastructure is an authorisation key which is used to validate your server when it tries to connect to the YP2 infrastructure for any of the station(s) you run. Once this key is obtained, it will be valid for all root servers of the station being broadcast.&lt;br /&gt;
&lt;br /&gt;
This can be done by going to the [[SHOUTcast_Authhash_Management|SHOUTcast Authhash Management]] page which shows how to do this via the 'Administation Summary' page as long as a valid source has been connected to the server. This process automatically updates your configuration file(s) with the new authhash and if the stream is set to be public then will attempt to get the stream listed in the SHOUTcast Radio Directory.&lt;br /&gt;
&lt;br /&gt;
When using an older SHOUTcast 1 server then you do not need to do this registration and the server will still be able to be listed on the directory but there is not the same level of protection over the stream as is the case with registering it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Running the Server===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The server is able to be run either as a console application or it can be run as service (Windows) or daemon (Linux / Mac OS X / BSD). Detailed below is how to get the server running on the different operating systems supported by it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The Windows version of sc_serv is designed to run on fully updated and patched versions of Windows 2000, XP, Vista and Windows 7, 8 &amp;amp; 10.&lt;br /&gt;
&lt;br /&gt;
Please note that the Windows versions of sc_serv are built with a dependency against the Microsoft Visual C++ 2008 SP1 Redistributable Package. If sc_serv is unable to start due to a dependency issue then you will need to install the correct version of the package so it can run which depends on the version of sc_serv you are attempting to run:&lt;br /&gt;
&lt;br /&gt;
32-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&lt;br /&gt;
&lt;br /&gt;
64-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ba9257ca-337f-4b40-8c14-157cfdffee4e&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Install as a Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe install &amp;lt;servicename&amp;gt; &amp;lt;username&amp;gt; &amp;lt;password&amp;gt; &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service&lt;br /&gt;
 Typically enter this as 'sc_serv' though you can use a different name but you will need&lt;br /&gt;
 to remember it as it is required to be the same when using the 'uninstall' mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;username&amp;gt; - User under which to run the service as or '0' for the local system&lt;br /&gt;
&lt;br /&gt;
&amp;lt;password&amp;gt; - Password for user or '0' for the local system or with no password&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
When run as a service there is not a good sense of a current working directory so requires all paths in the configuration and playlist files to be fully qualified otherwise lookups will fail when sc_serv is run.&lt;br /&gt;
&lt;br /&gt;
To run sc_serv with a configuration file in the same folder as the server as the current system user account you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_serv.exe install sc_serv 0 0 sc_serv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Uninstall the Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe uninstall &amp;lt;servicename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service as used when the service was registered&lt;br /&gt;
&lt;br /&gt;
To uninstall sc_serv assuming it was installed as detailed in the install section above then you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_serv.exe uninstall sc_serv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Service in the Console====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
===Linux / Mac OS X / BSD===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Remember to enable the required access on the sc_trans file by doing 'chmod a+x sc_trans' after extracting it from the distribution file otherwise the OS is likely to not run it and show the error message './sc_serv: Permission denied'.&lt;br /&gt;
&lt;br /&gt;
====Run as a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_serv daemon &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (required in all cases)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
'''e.g.'''&lt;br /&gt;
 ./sc_serv daemon ./sc_serv.conf&lt;br /&gt;
&lt;br /&gt;
When run this should output the following:&lt;br /&gt;
&lt;br /&gt;
'sc_serv going daemon with PID [XXXX]' where XXXX is the &amp;lt;pid&amp;gt; of the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====End a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
kill -SIGTERM &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -15 &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -s TERM &amp;lt;pid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pid&amp;gt; - The PID of the daemon instance (reported when the daemon started or can be found with 'ps ax | grep sc_serv' as long as sc_serv was the file run otherwise you can just use 'ps ax' if the filename isn't known). Additionally the PID of sc_serv is listed in the log file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_serv &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Additional Signals===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
When run on Linux / Mac OS X / BSD then some additional signals are supported to allow for additional control over the running daemon instance of sc_serv.&lt;br /&gt;
&lt;br /&gt;
The following signals can be used with the 'kill' command (in the manner of your choosing for using the kill command) along with the &amp;lt;pid&amp;gt; of the daemon instance to do one of the following actions:&lt;br /&gt;
&lt;br /&gt;
    SIGKILL   -  Stops sc_trans (also SIGTERM, SIGINT and SIGQUIT will work)&lt;br /&gt;
    SIGHUP    -  Rotates logfile, w3clog and streamw3clog&lt;br /&gt;
&lt;br /&gt;
The result of SIGHUP is that the current log file contents will be moved into &amp;lt;logfile&amp;gt;_1 e.g. sc_serv_1.log, &amp;lt;logfile&amp;gt;_1 will be moved into &amp;lt;logfile&amp;gt;_2 e.g. sc_serv_2.log and so on for all log files which can be found which match the current log file's name. This is useful if timed to have it create day specific log files.&lt;br /&gt;
&lt;br /&gt;
 These signals are not supported by the Windows version of sc_serv which will only&lt;br /&gt;
 respond to the Ctrl + C / Ctrl + Break / console close commands the OS provides.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration File==&lt;br /&gt;
&lt;br /&gt;
Here you can find a complete list of all of the configuration options which are provided by sc_serv which ranges from logging to networking configuration and control over the media being used when streaming via the server.&lt;br /&gt;
&lt;br /&gt;
Configuration entries labelled as ''&amp;lt;MULTI&amp;gt;'' can be used to set up simultaneous connections to the server or allow for multiple connections from various sources. These are specified by adding _# to the end of the option's name as shown below where # begins with one. If you are only working with a single instance then you do not need to add the _# part as any instances of a configuration option will assume it is for _1.&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;MULTI&amp;gt;'' system is not hierarchical and all values beyond the default must be specified for all connections. So for example, if you wanted to connect to two servers on the same port you must do:&lt;br /&gt;
&lt;br /&gt;
    portbase_1=8080&lt;br /&gt;
    portbase_2=8080&lt;br /&gt;
    destip_1=stream.server1.com&lt;br /&gt;
    destip_2=stream.server2.com&lt;br /&gt;
&lt;br /&gt;
Note that you CANNOT do it like this as it leads to not all values being set:&lt;br /&gt;
&lt;br /&gt;
    portbase=8080&lt;br /&gt;
    destip_1=stream.server1.com&lt;br /&gt;
    destip_2=stream.server2.com&lt;br /&gt;
&lt;br /&gt;
The configuration files also allow for comments/notes or options to be disabled by the use of a semi-colon (''';''') or a left bracket ('''[''') or the hash / pound symbol ('''#''') at the start of a line which can be seen in all of the configuration examples.&lt;br /&gt;
&lt;br /&gt;
Known options in the configuration files are recognised irrespective of the case they are entered in the configuration file so maxuser and MaXuSer will be handled the same way.&lt;br /&gt;
&lt;br /&gt;
Any items found in the configuration file which are not known (as detailed in following sections) or is not processed as a comment will be reported in the following manner:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;date + time&amp;gt; W msg:[CONFIG] Invalid item on line XX&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;date + time&amp;gt; is the date and time the event happens at and XX is the line in the configuration file where the error has been found to occur at.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Banning===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''banfile''' : File to store the list of banned IP addresses    ''[Default = sc_serv.ban]''&lt;br /&gt;
&lt;br /&gt;
'''savebanlistonexit''' : Re-write the 'banfile' on server exit    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the file into then you need to ensure that the&lt;br /&gt;
 folder already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Client Behaviour===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''maxuser''' : Specify the maximum number of clients allowed to connect to the server    ''[Default = 32]''&lt;br /&gt;
 This is used in conjunction with 'streammaxuser' (see [[#Stream_Configuration|section 4.12]]) to control the&lt;br /&gt;
 maximum limit on the number of client connections allowed to connect to the server instance.&lt;br /&gt;
&lt;br /&gt;
'''listenertime''' : Specify the maximum time in minutes a client can listen to the stream    ''[Default = 0]''&lt;br /&gt;
 A value of zero means there will be no time limit.&lt;br /&gt;
&lt;br /&gt;
'''autodumpusers''' : Enable to allow the server to disconnect clients if the source disconnects    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''srcip''' : Specify the server side binding address for sources to connect on    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''dstip''' or '''destip''' or '''publicip''' : Specify the server side binding address for clients    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
 If 'any' or no value is specified then sc_serv listens to all addresses.&lt;br /&gt;
&lt;br /&gt;
If you specify a value for 'dstip / destip' then this will be used by the listen feature on the Administration Pages (see section 5.1) so it can provide a valid stream url in the generated playlist. If 'dstip / destip' is not specified then the server will attempt to auto-generate the IP required for the client to be able to connect. If this fails the generated playlist is likely to return a stream url like &amp;lt;nowiki&amp;gt;http://0.0.0.0:&amp;lt;portbase&amp;gt;/&amp;lt;path&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The IP provided needs to be in a valid format like &amp;lt;nowiki&amp;gt;http://&amp;lt;my-ip&amp;gt;&amp;lt;/nowiki&amp;gt; or an address which can be resolved to an IP otherwise the internal lookups done are likely to fail (depends upon the server configuration and OS being used). Also you cannot set srcip and dstip / destip to be the same IP value and if this happens then the server will close. Closing of the server will also happen if the IP cannot be resolved or correctly bound to i.e. server is not there or an invalid value was entered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''titleformat''' : Specify a string to be used in-place of the default icy-name string being used    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''urlformat''' : Specify a string to be used in-place of the default icy-url string being used    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''  '''&lt;br /&gt;
'''  '''&lt;br /&gt;
&lt;br /&gt;
===Debugging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In all cases, the default value is for no debug logging for the options listed below.&lt;br /&gt;
&lt;br /&gt;
'''yp1debug''' : Enable debug logging of YP connections&lt;br /&gt;
&lt;br /&gt;
'''yp2debug''' : Enable debug logging of YP2 connections&lt;br /&gt;
&lt;br /&gt;
'''shoutcastsourcedebug''' : Enable debug logging of SHOUTcast source connections&lt;br /&gt;
&lt;br /&gt;
'''uvox2sourcedebug''' : Enable debug logging of SHOUTcast 2 source connections&lt;br /&gt;
&lt;br /&gt;
'''shoutcast1clientdebug''' : Enable debug logging of SHOUTcast streaming clients&lt;br /&gt;
&lt;br /&gt;
'''shoutcast2clientdebug''' : Enable debug logging of SHOUTcast 2 streaming clients&lt;br /&gt;
&lt;br /&gt;
'''relayshoutcastdebug''' : Enable debug logging for SHOUTcast relays&lt;br /&gt;
&lt;br /&gt;
'''relayuvoxdebug''' : Enable debug logging for SHOUTcast 2 relays&lt;br /&gt;
&lt;br /&gt;
'''relaydebug''' : Enable debug logging of common relay code&lt;br /&gt;
&lt;br /&gt;
'''streamdatadebug''' : Enable debug logging of common streaming code&lt;br /&gt;
&lt;br /&gt;
'''httpstyledebug''' : Enable debug logging of http style requests&lt;br /&gt;
&lt;br /&gt;
'''statsdebug''' : Enable debug logging of statistics&lt;br /&gt;
&lt;br /&gt;
'''microserverdebug''' : Enable debug logging of common server activity&lt;br /&gt;
&lt;br /&gt;
'''threadrunnerdebug''' : Enable debug logging of the thread manager&lt;br /&gt;
&lt;br /&gt;
'''rtmpclientdebug''' : Enable debug logging of rtmp clients&lt;br /&gt;
&lt;br /&gt;
'''admetricsdebug''' : Enable debug logging of ad metrics (v2.5 and newer)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' '''&lt;br /&gt;
''' '''&lt;br /&gt;
&lt;br /&gt;
===Flash Security===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''flashpolicyfile''' : Name of file containing flash crossdomain policies on the server    ''[Default = crossdomain.xml]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Introduction and Backup Files===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Note that intro and backup audio files must precisely match the format and bitrate for the stream! If they do not match, there will be a break in the stream and the listener will be disconnected. &lt;br /&gt;
&lt;br /&gt;
'''introfile''' : File to play when a client first connects to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: This is used globally and also is default for stream #1 on DNAS versions greater than 2.0. To apply a specific intro file to a stream, use streamintrofile_X. &lt;br /&gt;
&lt;br /&gt;
'''streamintrofile_X''' : File to play when a client first connects to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''backupfile''' : File to play if the source disconnects from the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: This is used globally and also is default for stream #1 on DNAS versions greater than 2.0. To apply a specific backup file to a stream, use streambackupfile_X. &lt;br /&gt;
&lt;br /&gt;
'''streambackupfile_X''' : assigns a specific backup file to a streamID X [Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''streambackupurl_X''' : assigns a specific backup stream to a streamID X (v2.6.1 feature)''&lt;br /&gt;
&lt;br /&gt;
'''specialfiletmpdir''' : place to store intro and backup files uploaded by sc_trans    ''[Default = /tmp/ (*nix only)]''&lt;br /&gt;
&lt;br /&gt;
'''maxspecialfilesize''' : Change the maximum size in bytes of the backup and intro files    ''[Default = 30000000]''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''log''' : Enable logging of the servers output    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''screenlog''' :  Enable logging of servers output to the console    ''[Default = 1]''&lt;br /&gt;
 If log=0 then this option is ignored due to no logging happening.&lt;br /&gt;
&lt;br /&gt;
'''logfile''' : Specify a different logfile to save the logs into ''[Default = %temp%\sc_serv.log or /tmp/sc_serv.log]''&lt;br /&gt;
&lt;br /&gt;
'''logclients''' : Enable logging of details about client connections and disconnections made ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the logs into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''configrewrite''' :  Re-write the 'config file' on server exit    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''songhistory''' : Specify the maximum song history to preserve    ''[Default = 10]''&lt;br /&gt;
&lt;br /&gt;
'''cpucount''' : Specify the number of cpu's present instead of the calculated number if non-zero    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''unique''' : Specify a substitution string for the '$' character to be used when processing filenames which if specified will set any occurences of '$' to the value set. This will be used in the processing of the following filenames: '''logfile''', '''introfile''', '''streamintrofile''', '''backupfile''', '''streambackupfile''', '''banfile''', '''streambanfile''', '''ripfile''', '''streamripfile''', '''include''', '''w3clog''', '''streamw3clog'''&lt;br /&gt;
&lt;br /&gt;
 So when 'unique' is changed from '$' to say 'test' then the following happens if 'logfile' is&lt;br /&gt;
 set to '/usr/local/shoutcast/$.log' then this would be converted to '/usr/local/shoutcast/test.log'&lt;br /&gt;
&lt;br /&gt;
'''include''' : Specify an additional include file containing settings to be processed from the current point in the main configuration file    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
You can do multiple calls of this allowing for a basic configuration file with then 'specific' stream configurations set in individual conf files though you need to ensure not to include a reference to the same file in itself.&lt;br /&gt;
&lt;br /&gt;
You can also specify a path with a wildcard for sc_serv to use to find multiple configuration files to include '''e.g.''' 'include=stream/*.conf'.  This can then be used along with the multiple stream configurations (see section 4.12) and the admin command 'admin.cgi?mode=reload' (see section 5.1) to add / remove / update stream configurations without having to close the server to apply them.&lt;br /&gt;
&lt;br /&gt;
'''admincssfile''' : Specify the css styling to be used on the index.html and admin pages    ''[Default = v2]''&lt;br /&gt;
&lt;br /&gt;
This can accept the following parameters:&lt;br /&gt;
&lt;br /&gt;
:admincssfile='''v1'''  -  Uses the v1 DNAS style&lt;br /&gt;
:admincssfile='''v2'''  -  Uses the newer SHOUTcast 2 style&lt;br /&gt;
:admincssfile='''path_to_local_css_file'''  e.g. my_index.css&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 If using a custom css file, if it does not exist on the first try to load it the server will revert to&lt;br /&gt;
 the default css style. As well the style is cached once loaded so changes require a restart of sc_serv.&lt;br /&gt;
&lt;br /&gt;
'''faviconfile''' : Specify the file to be returned as the favicon.ico when the administration pages are being queried by the client's browser    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
The default behaviour is to use a SHOUTcast themed built-in icon file and support / handling the update of this will entirely depend on the browser.&lt;br /&gt;
&lt;br /&gt;
'''faviconmimetype''' : Specify the mime type for actual file to be served in the favicon.ico response    ''[Default = image/x-icon]''&lt;br /&gt;
&lt;br /&gt;
Ensure this is correct for the type of image being used so it is valid.&lt;br /&gt;
&lt;br /&gt;
'''hidestats''' : Specify if the publically accessible stats?sid=# page can be accessed or if it is only available via the private administration pages   ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''robotstxtfile''' : Specify the file to be returned as the robots.txt when queried by search engines, etc to attempt to prevent incorrect access to the server's pages which may cause invalid client connections    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
The default behaviour is to return a robots.txt reponse indicating not to look at any of the server's pages i.e.&lt;br /&gt;
::User-agent:*&lt;br /&gt;
::Disallow:/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Networking===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''namelookups''' : Enable to allow reverse DNS look-ups on incoming IP addresses    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''portbase''' : Specify the port which clients and sources need to use to connect to the server    ''[Default = 8000]''&lt;br /&gt;
 SHOUTcast 1 sources are only able to connect to 'portbase + 1'.&lt;br /&gt;
&lt;br /&gt;
'''autodumpsourcetime''' : Specify how long before an idle source is dumped from the server (in seconds)    ''[Default: 30]''&lt;br /&gt;
 A value of zero means there is no timeout of an idle source.&lt;br /&gt;
 Also if you set this too low then it is likely that valid sources will&lt;br /&gt;
 fail to connect during the initial stages of a source connection.&lt;br /&gt;
&lt;br /&gt;
'''maxheaderlinesize''' : Specify the maximum size of an HTTP header line    ''[Default = 2048]''&lt;br /&gt;
&lt;br /&gt;
'''maxheaderlinecount''' : Specify the maximum header lines in an HTTP style exchange    ''[Default = 100]''&lt;br /&gt;
&lt;br /&gt;
'''adminpassword''' : Specify the administrator password for accessing the remote server features    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''password''' : Specify the password for broadcasters when connecting to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
 This matches the 'uvoxauth' value in the sc_trans configuration file (see [[SHOUTcast_DNAS_Transcoder_2#Network_Options|sc_trans.txt - section 3.11]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Network Buffers===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''buffertype''' : Specify whether the buffer size is fixed [0] or adaptive [1]    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''adaptivebuffersize''' : Specify the buffer size in seconds if buffer is set to adaptive    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''fixedbuffersize''' : Specify the buffer size in bytes if the buffer is set to fixed    ''[Default = 1048576]''&lt;br /&gt;
&lt;br /&gt;
'''bufferhardlimit''' : Specify the maximum buffer size in bytes which it can never go above    ''[Default = 16777216]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Relaying===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''allowrelay''' : Enable to allow a relay to connect to the server    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''allowpublicrelay''' : Enable to allow relays to list themselves in the YP directory    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''relayreconnecttime''' : Specify how many seconds to wait to reconnect on a relay failure    ''[Default = 30]''&lt;br /&gt;
 Setting this to 0 will disable attempts for the relay to reconnect.&lt;br /&gt;
&lt;br /&gt;
'''relayconnectretries''' : Specify the number of times relays are attempted to be connected to if it is initially unable to connect    ''[Default = 3]''&lt;br /&gt;
 This generally applies only to YP1 connections and is related to the&lt;br /&gt;
 actual attempts to make and get a http response from the YP server.&lt;br /&gt;
&lt;br /&gt;
'''maxhttpredirects''' : Specify the maximum number of times we can redirect when relaying    ''[Default = 5]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;Legacy Options&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
'''relayport''' : Port of the source to use for the relay    ''[Default: 80]''&lt;br /&gt;
&lt;br /&gt;
'''relayserver''' : Url of the source to relay    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
 Using the stream configuration options (see [[#Stream_Configuration|section 4.12]]) is the preferred method&lt;br /&gt;
 of setting up a relay. These options are only provided as a means for loading&lt;br /&gt;
 legacy configuration files. If found then these are mapped to 'streamrelayurl_1'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Reserved List===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''ripfile''' : File to store the list of reserved IP addresses    ''[Default = sc_serv.rip]''&lt;br /&gt;
&lt;br /&gt;
'''saveriplistonexist''' : Re-write the 'ripfile' on server exit    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''riponly''' : Only allow connections to be made from reserved IP addresses    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the file into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Stream Configuration===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Important Note:''' If you do not specify an identifier (_#) on the end of the above options then it will be treated like _1 (effectively acting like SHOUTcast 1). Additionally, _0 is not a supported identifier and will be mapped to _1.&lt;br /&gt;
&lt;br /&gt;
'''requirestreamconfigs''' : Only allow sources to connect if a stream configuration has been set in your configuration file    ''[Default = 0]''&lt;br /&gt;
 With this enabled, you will need to ensure that any sources have their configuration details&lt;br /&gt;
 setup to match those in sc_trans's configuration, in particular the 'uvoxstreamid' value with&lt;br /&gt;
 sc_trans (see [[SHOUTcast_DNAS_Transcoder_2#Network_Options|sc_trans.txt - section 3.11]]).&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each stream configuration):&lt;br /&gt;
&lt;br /&gt;
'''streamid''' : Specify the numerical identifier of the stream for control or referencing the stream configuration. This can only be a numeric value from 1 to 2147483647.&lt;br /&gt;
&lt;br /&gt;
 If you use multiple stream configurations then you will need to ensure the _X&lt;br /&gt;
 part is specified and correct for each stream configuration group&lt;br /&gt;
 e.g.&lt;br /&gt;
   streamid=1&lt;br /&gt;
   streampath=/live&lt;br /&gt;
     or&lt;br /&gt;
   streamid_1=1&lt;br /&gt;
   streampath_1=/random_mountpoint&lt;br /&gt;
   streamid_2=2&lt;br /&gt;
   streampath_2=/another_mountpoint&lt;br /&gt;
&lt;br /&gt;
'''streamauthhash''' : The authorisation key needed for YP2 directory registration.&lt;br /&gt;
 This is a requirement for using the YP2 system and without it you will not be able to&lt;br /&gt;
 successfully connect to the YP2 directory (see [[#Getting_Started|section 3.0]]).&lt;br /&gt;
 &lt;br /&gt;
 This can be used for multiple streams you are providing or can be different (as long&lt;br /&gt;
 as valid) so you can infact provide multiple stations from the same server if desired.&lt;br /&gt;
&lt;br /&gt;
'''streampath''' : Specify the path clients need to use to access the stream&lt;br /&gt;
 If a / is not specified on the start of the string then the server will add&lt;br /&gt;
 it to the generated path in playlist entries or other places as required so&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://&amp;lt;serverurl&amp;gt;/&amp;lt;streampath&amp;gt;&amp;lt;/nowiki&amp;gt; will work so clients are able to connect.&lt;br /&gt;
 &lt;br /&gt;
 If this is not specified then &amp;lt;nowiki&amp;gt;http://&amp;lt;serverurl&amp;gt;/stream/&amp;lt;streamid&amp;gt;/&amp;lt;/nowiki&amp;gt; will be&lt;br /&gt;
 used for client access and in generated playlist entries so that it will&lt;br /&gt;
 always be possible for clients to connect to the server somehow. &lt;br /&gt;
 See [[SHOUTcast_DNAS_Server_2#Stream_Addresses|section 6.0]] for more information on the server's stream address support.&lt;br /&gt;
&lt;br /&gt;
 Note: streampath is the mountpoint, e.g. streampath_1=/mystation would result in ip:port/mystation&lt;br /&gt;
 Do NOT specify a streamurl as streampath as this will result in an error.&lt;br /&gt;
&lt;br /&gt;
'''streamrelayurl''' : Specify the full url of source to relay (if this is a relay).&lt;br /&gt;
 Make sure if you use this that the full url is entered and that it is&lt;br /&gt;
 the url which clients would connect to for the stream to be relayed.&lt;br /&gt;
&lt;br /&gt;
'''streammaxuser''' : Specify the maximum number of clients allowed to connect to the stream    ''[Default = 0]''&lt;br /&gt;
If set to zero, not specified or higher than 'maxuser' then the value set for 'maxuser' (see [[#Client_Behaviour|section 4.2]]) will be used for all known streams.&lt;br /&gt;
&lt;br /&gt;
Changing this to a value between zero and 'maxuser' will enforce the user connection limit for the specified value in the stream configuration '''e.g.'''&lt;br /&gt;
 streammaxuser_1 = 8&lt;br /&gt;
 maxuser = 32&lt;br /&gt;
&lt;br /&gt;
This allows a total of 32 connections to the server but specifies the maximum number of connections to the first stream configuration is 8.&lt;br /&gt;
&lt;br /&gt;
With the following stream configuration&lt;br /&gt;
 streammaxuser_1 = 64&lt;br /&gt;
 maxuser = 32&lt;br /&gt;
&lt;br /&gt;
This allows a total of 32 connections to the server but with a per stream limit above the maximum means the maximum number of connections to the first stream group will be 32. However this also depends upon any other stream configurations and their limits as to whether 32 clients will be able to connect to this stream configuration.&lt;br /&gt;
&lt;br /&gt;
Finally unless a valid stream configuration is specified then this value will only be applied to the first stream configuration found i.e. there is a need to specify a streamid_XXX for streammaxuser_XXX (where XXX is the stream identifier of the stream configuration group.&lt;br /&gt;
&lt;br /&gt;
'''streamadminpassword''' : Specify the administrator password for accessing the remote server features for the specified stream configuration group. If this is not specified then 'adminpassword' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streampassword''' : Specify the password for broadcasters when connecting to the server for the specified stream configuration group. If this is not specified then 'password' will be used.&lt;br /&gt;
 This matches the 'uvoxauth' value in the sc_trans configuration file (see sc_trans.txt - section 3.11).&lt;br /&gt;
&lt;br /&gt;
'''streampublicserver''' : This allows you to override the public flag received from the source when a connection is being made to the YP directory. If this is not specified or is set to empty then 'publicserver' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamallowrelay''' : Enable to allow a relay to connect to the server. If this is not specified then 'allowrelay' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamallowpublicrelay''' : Enable to allow relays to list themselves in the YP directory. If this is not specified then 'allowpublicrelay' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamriponly''' : Enable to only allow connections to be made from reserved IP addresses. If this is not specified then 'riponly' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamautodumpsourcetime''' : Specify how long before an idle source will be dumped from the server (in seconds). A value of zero means there is no timeout of an idle source. If not specified then 'autodumpsourcetime' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamautodumpusers''' : Enable to allow the server to disconnect clients if the source disconnects. If not specified then 'autodumpusers' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamlistenertime''' : Specify the maximum time in minutes a client is allowed to listen to the stream. A value of zero means there will be no time limit. If not specified then 'listenertime' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamintrofile''' : File to play when a client first connects to the server. If this is not specified then 'introfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streambackupfile''' : File to play if the source disconnects from the server. If this is not specified then 'backupfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streammovedurl_X''' : redirects a permanently stopped or moved stream to a different working stream url.&lt;br /&gt;
&lt;br /&gt;
'''streambanfile''' : File to store the list of banned IP addresses. If this is not specified then 'banfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamripfile''' : File to store the list of banned IP addresses. If this is not specified then 'ripfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamw3clog''' : File to store the web connections logs into. If this is not specified then 'w3clog' will be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''DNAS v2.6 and newer'''&lt;br /&gt;
&lt;br /&gt;
'''sslCertificateFile''' : For https:// streams, specify .crt file e.g. sslCertificateFile=/path/to/ssl.crt&lt;br /&gt;
&lt;br /&gt;
'''sslCertificateKeyFile''' : specify key file, e.g. sslCertificateKeyFile=/path/to/key.pem&lt;br /&gt;
&lt;br /&gt;
 Put the whole certificate chain in the .crt file, and only the key in the .key file&lt;br /&gt;
 Note: Requires Premium subscription to unlock Premium features.&lt;br /&gt;
 SSL Cert needs to be assigned to a DNS e.g. stream.mysite.com&lt;br /&gt;
 Be sure to also add destip=stream.mysite.com and/or publicip= and alternateports=443 lines to DNAS config file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' '''&lt;br /&gt;
&lt;br /&gt;
===Web Connection (W3C) Logging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''w3cenable''' : Enable logging of web connections to describe the duration a client has listened to a specific title    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''w3clog''' : File to store the web connections logs into    ''[Default = sc_w3c.log]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the log into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
'''webclientdebug''' : Enable logging of web client connections    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===YP Server Behaviour===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''uvoxcipherkey''' : Specify the key used to obfuscate the initial handshaking with the source    ''[Default = foobar]''&lt;br /&gt;
 This is a SHOUTcast 2 only feature and it matches the 'djcipher' value in the sc_trans&lt;br /&gt;
 configuration file (see [[SHOUTcast_DNAS_Transcoder_2#DJ_Support|sc_trans.txt - section 3.3]]).&lt;br /&gt;
&lt;br /&gt;
Only change this if you really need to do so as not all SHOUTcast 2 clients will allow you to edit this value from the default value. If using the Source DSP plug-in then see [[Source_DSP_Plug-in#SHOUTcast_2_Cipher_Key|dsp_sc.txt - section 5.0]] for details on how to change the plug-in to use a differnet value.&lt;br /&gt;
&lt;br /&gt;
'''metainterval''' : Specify the metadata transmission interval in bytes    ''[Default = 8192]''&lt;br /&gt;
 YP1 only&lt;br /&gt;
&lt;br /&gt;
'''yp2''' : Enable to use the SHOUTcast 2 protocol and related server features for access to the YP2 directory    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
If this is enabled and not all of the required values are set then the server will throw an error and will abort from its start-up attempt. It should be indicated what needs to be set to allow the server to start with this set.&lt;br /&gt;
&lt;br /&gt;
Additionally if there is an issue then the server will report an error in its log ouput of 'Connection attempt failed. YP2 error code is XXX (&amp;lt;message&amp;gt;)' where XXX is one of the following error codes and &amp;lt;message&amp;gt; is a message set in the error response to indicate a bit more what the error relates to. All current error codes can be found [[#YP_Server_Errors|here]].&lt;br /&gt;
&lt;br /&gt;
'''ypaddr''' : Allows you to specify a different YP server if required    ''[Default = yp.shoutcast.com]''&lt;br /&gt;
&lt;br /&gt;
'''ypport''' : Allows you to specify the port of the YP server if required    ''[Default = 80]''&lt;br /&gt;
&lt;br /&gt;
'''ypPath''' : Allows you to specify the path to YP2 services on the server    ''[Default = /yp2]''&lt;br /&gt;
&lt;br /&gt;
'''ypTimeout''' : Specify the timeout interval in seconds for requests made to the YP server    ''[Default = 60]''&lt;br /&gt;
&lt;br /&gt;
'''ypmaxretries''' : Specify the maximum number of times a YP request will be attempted    ''[Default = 10]''&lt;br /&gt;
 This generally applies only to YP1 connections and is related to the&lt;br /&gt;
 actual attempts to make and get a http response from the YP server.&lt;br /&gt;
&lt;br /&gt;
'''ypreportinterval''' : Specify the maximum time in which the YP must have contacted our server in seconds    ''[Default = 300]''&lt;br /&gt;
&lt;br /&gt;
'''ypminreportinterval''' : Specify the minimum time in which the YP can contact our server in seconds    ''[Default = 10]''&lt;br /&gt;
&lt;br /&gt;
'''publicserver''' : This allows you to override the public flag from the connected source when a connection is being made to the YP directory    ''[Default = default]''&lt;br /&gt;
This can be one of the following values:&lt;br /&gt;
 '''default''' - use the flag provided by the source&lt;br /&gt;
 '''always''' - force the source to be public&lt;br /&gt;
 '''never''' - never allow the use the flag provided by the source&lt;br /&gt;
&lt;br /&gt;
When using sc_trans this would match with the 'public' value (see [[SHOUTcast_DNAS_Transcoder_2#Metadata_Control|sc_trans.txt - section 3.8]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===YP Server Errors===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If not all of the required values are set for a public listing then the DNAS server will throw an error and will abort its attempt to be listed in the Directory. It should be indicated the error is with one of the error codes provided below so it can be resolved.&lt;br /&gt;
&lt;br /&gt;
Additionally if there is an issue during Directory updates or removals, then the server will report an error in its log ouput as one of the following error codes and &amp;lt;message&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status Code&lt;br /&gt;
! Status Message&lt;br /&gt;
|-&lt;br /&gt;
| 400 || Generic error ''(covers all other cases usually from internal failures)''&lt;br /&gt;
|-&lt;br /&gt;
| 457 || Unrecoverable error while updating station information - DNAS restart required.&lt;br /&gt;
|-&lt;br /&gt;
| 470 || Invalid authorization hash&lt;br /&gt;
|-&lt;br /&gt;
| 471 || Invalid stream type (could be a bad bitrate or mime type)&lt;br /&gt;
|-&lt;br /&gt;
| 472 || Missing or invalid stream url&lt;br /&gt;
|-&lt;br /&gt;
| 473 || Server unreachable by YP&lt;br /&gt;
|-&lt;br /&gt;
| 474 || Relay url does not exist&lt;br /&gt;
|-&lt;br /&gt;
| 475 || Invalid server ID&lt;br /&gt;
|-&lt;br /&gt;
| 476 || Invalid max clients (value out of range or missing)&lt;br /&gt;
|-&lt;br /&gt;
| 477 || Terms of Service violator.  You are being reported.&lt;br /&gt;
|-&lt;br /&gt;
| 478 || Incompatible protocol.&lt;br /&gt;
|-&lt;br /&gt;
| 479 || Streams requiring authorization are not public and cannot list here.&lt;br /&gt;
|-&lt;br /&gt;
| 480 || Cannot see your station/computer (URL: &amp;lt;streamurl&amp;gt;) from the Internet, disable Internet Sharing/NAT/firewall/ISP cache.&lt;br /&gt;
|-&lt;br /&gt;
| 481 || Cannot verify server since all listener slots are full.  Please wait.&lt;br /&gt;
|-&lt;br /&gt;
| 482 || This network has been permanently banned due to a previous violation of the SHOUTcast directory terms of service&lt;br /&gt;
|-&lt;br /&gt;
| 483 || Invalid listeners (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 484 || Invalid avglistentime (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 485 || Invalid newsessions (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 486 || Invalid connects (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 487 || Request &amp;amp; Response objects are null&lt;br /&gt;
|-&lt;br /&gt;
| 488 || Request xml is null&lt;br /&gt;
|-&lt;br /&gt;
| 489 || YP command not specified&lt;br /&gt;
|-&lt;br /&gt;
| 490 || Generic error, while doing xml parsing&lt;br /&gt;
|-&lt;br /&gt;
| 491 || Generic error, while reading xml request&lt;br /&gt;
|-&lt;br /&gt;
| 492 || Error closing buffer / HTTP connection&lt;br /&gt;
|-&lt;br /&gt;
| 493 || Internal error - unable to acquire data source&lt;br /&gt;
|-&lt;br /&gt;
| 494 || Error updating information - DNAS restart required&lt;br /&gt;
|-&lt;br /&gt;
| 495 || Error acquiring station ID - DNAS restart required&lt;br /&gt;
|-&lt;br /&gt;
| 496 || Error converting data type&lt;br /&gt;
|-&lt;br /&gt;
| 497 || Inconsistent stream behaviour&lt;br /&gt;
|-&lt;br /&gt;
| 498 || Invalid Request (Invalid request received)&lt;br /&gt;
|-&lt;br /&gt;
| 499 || Error while getting information&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Administration==&lt;br /&gt;
&lt;br /&gt;
With sc_serv there are administration pages available for accessing and controlling the server remotely which allows you to monitor and control clients connected to the stream (or not if banning them). These pages can now be accessed through a summary page at /index.html which will show a link to any active stream(s) or you explicitly access them via the /index.html?sid=# path where # is the ID of the stream (see [[#Stream_Configuration|section 4.12]] for more about using 'streamid') '''e.g.'''&lt;br /&gt;
 &amp;lt;streamurl&amp;gt;/index.html?sid=1&lt;br /&gt;
&lt;br /&gt;
If no sid or an invalid sid is passed then you will be taken to the summary /index.html and this will be applied even if you were on a page with a known ID and then enter an invalid sid or remove it purposefully.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Administration Pages===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
As part of the administrative features provided there are the following pages where # is the streamid you want to use). This is not a complete list but should cover all of the pages which allow for a direct http url to be entered to get an administation action to work. The ban and reserve IP actions require input fields and do not map to direct sends.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Public Pages====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''index.html'''  -  Shows a summary page with links to get to any active stream(s)&lt;br /&gt;
&lt;br /&gt;
'''currentsong?sid=#'''  -  Returns the current song title or a null response&lt;br /&gt;
&lt;br /&gt;
'''nextsong?sid=#'''  -  Returns the next song title (if known) or a null response&lt;br /&gt;
 currentsong and nextsong both provide a UTF-8 encoded string of the song title&lt;br /&gt;
 otherwise it will return effectively no response (ignoring the http header).&lt;br /&gt;
&lt;br /&gt;
'''nextsongs?sid=#'''  -  Returns in an xml format the next song title(s) (if known) to be played when using a compatible v2 stream source. See [[#XML_Responses|section 5.2]] for more details on the format of the xml returned).&lt;br /&gt;
&lt;br /&gt;
'''index.html?sid=#'''  -  Shows current status of the specified stream&lt;br /&gt;
&lt;br /&gt;
'''played.html?sid=#'''  -  Song history of specified playing history&lt;br /&gt;
:or&lt;br /&gt;
'''played?sid=#'''&lt;br /&gt;
&lt;br /&gt;
'''listen.pls?sid=#'''  -  Provides a PLS for file clients to use to connect to the stream.&lt;br /&gt;
:or&lt;br /&gt;
'''listen?sid=#'''&lt;br /&gt;
&lt;br /&gt;
'''listen.m3u?sid=#'''  -  Provides a M3U file for clients to use to connect to the stream.&lt;br /&gt;
&lt;br /&gt;
'''listen.asx?sid=#'''  -  Provides a ASX file for clients to use to connect to the stream.&lt;br /&gt;
&lt;br /&gt;
 With the listen pages you either need to have specified an IP with 'dstip / destip'&lt;br /&gt;
 (see section 4.2) or leave empty and allow the server to attempt to auto-generate&lt;br /&gt;
 the IP required for the client to be able to connect. If this fails the generated&lt;br /&gt;
 playlist is likely to return a stream url like &amp;lt;nowiki&amp;gt;http://0.0.0.0:&amp;lt;portbase&amp;gt;/&amp;lt;path&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''home.html?sid=#''' or '''home?sid=#'''  -  Opens in a new window or tab (depending on the client browser) the 'streamurl' as specified by the stream source. If this is not set then the client will be redirected to the shoutcast.com main page.&lt;br /&gt;
&lt;br /&gt;
'''stats?sid=#'''  -  Provides an xml response for public accessibility which matches the private version from admin.cgi?sid=#&amp;amp;mode=viewxml&amp;amp;page=1. This is the modern version of the 7.html page as provided by the legacy v1 servers. See [[#XML_Responses|section 5.2]] for information on what is provided in the xml response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Private Pages====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 By passing &amp;amp;pass=password where password is the 'adminpassword' (see section [[#Networking|4.8]]) then it is possible&lt;br /&gt;
 to directly access the administration page(s) required. As well the base64 encoded version of the password&lt;br /&gt;
 can be passed as long as it is prefixed with ''YWRtaW46''&lt;br /&gt;
 e.g.&lt;br /&gt;
     &amp;amp;pass=changeme is the same as &amp;amp;pass=YWRtaW46Y2hhbmdlbWU=&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi'''  -  Shows the an overal summary admin page for the streams provided by the server including direct links to certain information pages (see notes about the 'admin.cgi?sid=#&amp;amp;mode=viewxml' command for more info)&lt;br /&gt;
:or&lt;br /&gt;
'''admin.cgi?sid=0'''&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#'''  -  Shows the base admin page for the stream and information&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=updinfo&amp;amp;song=title'''           &lt;br /&gt;
:or&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=updinfo&amp;amp;type=xml&amp;amp;song=xml'''    &lt;br /&gt;
 If 'title' is not empty then it will be set as the current song title for the stream&lt;br /&gt;
 specified until the next use of this action or the next title update is received from&lt;br /&gt;
 the source. Specifying '&amp;amp;type=xml' will process the value of 'song' as [[SHOUTcast_XML_Metadata_Specification|v2 XML metadata]]&lt;br /&gt;
 instead of a v1 title.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewlog'''  -  View logfile&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewlog&amp;amp;viewlog=tail'''  -  View logfile (tailing)&lt;br /&gt;
&lt;br /&gt;
 The tailing option keeps adding additional log entries to the end of the view whilst the view is active.&lt;br /&gt;
 As well any html or xml data in the log will not be shown correctly in the view as &amp;lt; &amp;gt; &amp;amp; are not escaped&lt;br /&gt;
 to their html entities. See [[#Logging|section 4.6]] for more information on the log file.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewban'''  -  Ban view which matches the ban file and allows you to ban a single IP or an IP range from it (see [[#Banning|section 4.1]] for more info on the file)&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewrip'''  -  Reserved IP list that matches the rip file (see [[#Reserved_IP_.28RIP.29|section 4.11]] for more info on the file)&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=art''' or '''admin.cgi?sid=#&amp;amp;mode=art&amp;amp;art=playing'''  -  Displays the artwork SHOUTcast v2 compatible clients may be able to display if the SHOUTcast v2 source does provide it.&lt;br /&gt;
  &lt;br /&gt;
 The artwork mode is primarily intended as a debugging option to make it possible&lt;br /&gt;
 to see what (if anything) has been provided by the SHOUTcast v2 source.&lt;br /&gt;
 &lt;br /&gt;
 If no '&amp;amp;art=' is specified or not a matching option then the stream artwork (if&lt;br /&gt;
 available) will be shown. If no '&amp;amp;art=playing' is specified then this will show&lt;br /&gt;
 the playing file's artwork (if available).&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewxml''' or '''admin.cgi?sid=#&amp;amp;mode=viewxml&amp;amp;page=#'''  -  Returns an xml output of the current stream information&lt;br /&gt;
&lt;br /&gt;
 If page is not set or is outside of the range zero to 6 then this will output all of the&lt;br /&gt;
 information as the standard viewxml action does. Otherwise this only display information&lt;br /&gt;
 depending on the value assigned to page which can be from 1 to 6 which maps as follows:&lt;br /&gt;
 &lt;br /&gt;
     1 - Server Summary (this is the same as using the public stats?sid=# action)&lt;br /&gt;
     2 - Not used (previously used for Webdata Stats but not in current builds)&lt;br /&gt;
     3 - Listener Stats&lt;br /&gt;
     4 - Song History&lt;br /&gt;
     5 - Stream Metadata        (if supported by the source otherwise can just be title)&lt;br /&gt;
     6 - Stream Configurations  (displays all of the known stream configurations though this is only available on admin.cgi)&lt;br /&gt;
 &lt;br /&gt;
 If accessing the standard viewxml or the listener stats (page = 3), you can also send&lt;br /&gt;
 '&amp;amp;iponly=1' which will filter the listener information (if there are any) to just output&lt;br /&gt;
 the IP instead of the additional information provided normally.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=resetxml&amp;amp;sid=#'''  -  Will flush the held stream information to refresh it&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=kicksrc'''  -  Will allow you to kick the currently connected source for the specified stream.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unripdst&amp;amp;ripdst=&amp;lt;IP&amp;gt;'''  -  Where &amp;lt;IP&amp;gt; is the IP to reserve (see [[#Reserved_IP_.28RIP.29|section 4.11]] for more information).&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unbandst&amp;amp;bandst=&amp;lt;IP&amp;gt;.0&amp;amp;banmsk=0'''  -  Where &amp;lt;IP&amp;gt; is the first 3 parts of a subnet IP to unban.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unbandst&amp;amp;bandst=&amp;lt;IP&amp;gt;&amp;amp;banmsk=255'''  -  Where &amp;lt;IP&amp;gt; is that of a single IP to unban.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=rotate''' or '''admin.cgi?mode=rotate&amp;amp;files=log|w3c'''  -  This will rotate the log files set via the 'logfile', 'w3clog' and 'streamw3clog' options.&lt;br /&gt;
 If &amp;amp;files is specified then passing log or w3c will allow you to only&lt;br /&gt;
 rotate one type of file otherwise both will be rotated by this command.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=reload''' or '''admin.cgi?mode=reload&amp;amp;force=1'''  -  This reloads the stream configuration details in the main configuration file the server used when started and is only available on the admin summary page and so can only be run by the master administrator password.&lt;br /&gt;
&lt;br /&gt;
 This command works on the server as a whole (hence no sid parameter) and it will add or&lt;br /&gt;
 remove or update any stream configuration as applicable which will cause any connected&lt;br /&gt;
 sources and clients to be kicked as applicable (usually if a stream configuration was removed).&lt;br /&gt;
 &lt;br /&gt;
 This will recognise any configurations included via 'include' entries so you can have 'include=stream/*.conf'&lt;br /&gt;
 in your main configuration file which the server can then use to detect different stream configurations.&lt;br /&gt;
 &lt;br /&gt;
 If '&amp;amp;force=1' is passed then the reload will treat the updating of active stream configurations in the&lt;br /&gt;
 same manner as a stream configuration removal instead of trying to update compatible stream configuration&lt;br /&gt;
 details without resetting the stream '''e.g.''' not increasing the 'streammaxuser' when it could be increased.&lt;br /&gt;
 &lt;br /&gt;
 The following configuration options are updated when using this command:&lt;br /&gt;
 &lt;br /&gt;
     password or streampassword (*)            streamadminpassword (#)&lt;br /&gt;
     requirestreamconfigs                      streamid&lt;br /&gt;
     streamauthhash                            streampath&lt;br /&gt;
     streamrelayurl                            streammaxuser&lt;br /&gt;
     streampublicserver                        streamallowrelay&lt;br /&gt;
     streamallowpublicrelay                    streamriponly&lt;br /&gt;
     streamautodumpsourcetime                  streamautodumpusers&lt;br /&gt;
     streamlistenertime                        streamintrofile&lt;br /&gt;
     streambackupfile                          streambanfile&lt;br /&gt;
     streamripfile&lt;br /&gt;
 &lt;br /&gt;
 (*) This will depend upon the current values versus the new configuration values&lt;br /&gt;
 (#) The master 'adminpassword' can only be changed after a restart of the server&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XML Responses===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
As detailed in the previous sections, some of the administration actions will provide the information in an xml response. For information on what is actually returned in these xml responses see [[SHOUTcast_DNAS_Server_2_XML_Reponses|sc_serv2_xml_responses.txt]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stream Addresses==&lt;br /&gt;
&lt;br /&gt;
Clients connecting to the streams provided by sc_serv are able to so in a number of ways depending upon how the streams have been configured and also depending upon the number of streams you have available.&lt;br /&gt;
&lt;br /&gt;
The two main ways for a client to connect to a stream are as follows:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;serverurl&amp;gt;/stream/&amp;lt;streamid&amp;gt;/&lt;br /&gt;
or&lt;br /&gt;
 &amp;lt;serverurl&amp;gt;/&amp;lt;streampath&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;serverurl&amp;gt; is typically formed as &amp;lt;nowiki&amp;gt;http://dstip:portbase&amp;lt;/nowiki&amp;gt; (see sections [[#Client_Behaviour|4.2]] and [[#Networking|4.8]])&lt;br /&gt;
 &amp;lt;streamid&amp;gt; is the 'streamid' set from the stream configuration (see [[#Stream_Configuration|section 4.12]])&lt;br /&gt;
 &amp;lt;streampath&amp;gt; is the 'streampath' set from the stream configuration (see [[#Stream_Configuration|section 4.12]])&lt;br /&gt;
&lt;br /&gt;
If the client attempting to connect to the server instance does not specify &amp;lt;streampath&amp;gt; or &amp;lt;streamid&amp;gt; in the stream url it attempts to access or if only one stream is provided then the server will usually default to the first stream it knows about and will allow the client to make a valid connection (though this is not guaranteed to happen).&lt;br /&gt;
&lt;br /&gt;
This handling of the stream addresses provided is something to keep in mind especially if you are providing multiple streams as this will allow you to provide different addresses for certain clients to be able to use a specific stream '''e.g.''' if you wanted to have mobile clients connect to a lower bandwidth stream then you could direct them to '&amp;lt;serverurl&amp;gt;/mobile'&lt;br /&gt;
&lt;br /&gt;
The server options available for controlling how the stream's path is specified can be seen in [[#Stream_Configuration|section 4.12]] which also details the equivalent values needing to be set in the sc_trans configuration if you use sc_trans to provide a source to sc_serv.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Locale Error (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
If you receive the following error then you have a locale related issues:&lt;br /&gt;
&lt;br /&gt;
 terminate called after throwing an instance of 'std::runtime_error'&lt;br /&gt;
 what():  locale::facet::_S_create_c_locale name not valid&lt;br /&gt;
 Abort trap&lt;br /&gt;
&lt;br /&gt;
If this happens then you need to set the 'POSIX' locale in your terminal's environment values. If this does not happen then everything is fine or you are using a newer version of sc_serv from the end of 2010 which should no longer exhibit this issue.&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
BSD:&lt;br /&gt;
 setenv LC_ALL POSIX&lt;br /&gt;
&lt;br /&gt;
Mac OS X:&lt;br /&gt;
 export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
You can test to see if this has worked by checking the shell command &amp;quot;locale&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 LANG=&lt;br /&gt;
 LC_COLLATE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_CTYPE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_MESSAGES=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_MONETARY=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_NUMERIC=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_TIME=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_ALL=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Virtual Memory Footprint (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
Due to how sc_serv works it will create a large number of threads which may become an issue due to the default virtual memory stack allocation per thread potentially being large (typically 10MB per thread). For most people this should not be an issue as the memory is not really allocated unless it is used. If however if you have a resource constrained system or if you plan on running many copies of sc_trans then you could potentially run out of virtual memory.&lt;br /&gt;
&lt;br /&gt;
The default thread allocation can be reduced by issuing a &amp;quot;ulimit&amp;quot; command before running sc_trans and in the example reduces it to 512KB per-thread '''e.g.'''   ulimit -s 512&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Maximum Client Connection Limits==&lt;br /&gt;
&lt;br /&gt;
In general, there are inherent limits on the maximum number of client connections which may be made to a running instances of sc_serv which can either be set by configuration limits e.g. 'maxuser', Operating System limits or bandwidth limits being reached.&lt;br /&gt;
&lt;br /&gt;
The first two are easy to resolve whereas the last (bandwidth limits) is something which will usually require obtaining additional hosting or paying for more available bandwidth.&lt;br /&gt;
&lt;br /&gt;
If reaching the Operating System limit, this is usually indicated by the maximum number of clients never going above a fixed value even if there is the bandwidth and the server has been configured to go higher. This usually appears as around 1016 maximum connections (though this can vary a bit)&lt;br /&gt;
&lt;br /&gt;
If using a non-Windows Operating System then you can use the 'ulimit -n xxxx' command to change the upper limit from what is already set which can be found from just 'ulimit -n' e.g. to change the limit to 4096 connections you would run ulimit -n 4096&lt;br /&gt;
&lt;br /&gt;
If using a Windows Operating System then there isn't any real way to change such things due to the OS hopefully being configured with limits that will not be reached when using sc_serv. If in doubt then consult the Microsoft support documentation for the OS used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Configurations==&lt;br /&gt;
&lt;br /&gt;
Include as part of the sc_serv installation are a number of example configurations to get things started with using some of the features of the server. The provided examples are:&lt;br /&gt;
&lt;br /&gt;
 sc_serv_basic.conf&lt;br /&gt;
 sc_serv_public.conf&lt;br /&gt;
 sc_serv_relay.conf&lt;br /&gt;
 sc_serv_simple.conf&lt;br /&gt;
&lt;br /&gt;
All of the configuration examples are documented and will relate back to details in this file appropriately. You will need to change some details in these example files or to obtain any applicable authorisation keys for the setup you are making ([[#Getting_Started|see section 3.0]]). In all cases the examples are designed to work from the same install folder as sc_serv.&lt;br /&gt;
&lt;br /&gt;
Remember these examples are a way to get you up and running faster though you are still likely to have to adjust things depending upon the systems you are using and how you want to manage your sources and server connections which are covered in previous sections.&lt;br /&gt;
&lt;br /&gt;
Additionally if you are not happy with editing the files or find it still too confusing then you can use the configuration builder which (if installed) can be found in the 'config_builder'. Open 'config_builder.html' in your browser and then use this graphical tool to setup a configuration file for the server (and additionally the transcoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_basic===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This is the base configuration from which the other configuration examples are based and this will get a sc_serv instance running as a local setup with no connection made to the YP directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_public===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_serv_basic configuration to get a sc_serv instance running as a public setup with a connection made to the YP for listing the stream in the directory. This shows the use of the 'include' option (see section [[#Miscellaneous|4.7]]) and how specifying a configuration option twice uses the last value found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_relay===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_serv_public configuration to get a sc_serv instance running as a public setup with a source coming in from a relay server providing a SHOUTcast 2 stream.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_debug===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file can be included in any other configuration files to allow you to get debug logging output when trying to investigate any issues you may be experiencing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_simple===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Use this if you just need to get a very basic server running or are impatient&lt;br /&gt;
 or are struggling to get it running despite the previous example configurations.&lt;br /&gt;
&lt;br /&gt;
This configuration file is designed to be used just as is and is the simplest form of the configuration file you can have which will allow you to get a running server to appear on the YP. This works on using the default settings of the server though does change some of the file paths inorder to fit in with the existing setup as used in the other examples.&lt;br /&gt;
&lt;br /&gt;
All you need to do when using this configuration file is to enter your authorisation key in the 'streamauthhash' line '''e.g.''' if your authorisation key is '''123456789''' then you change ''streamauthhash=&amp;lt;enter_your_auth_key_here&amp;gt;'' to ''streamauthhash='''123456789''''' and save the file.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API</id>
		<title>SHOUTcast Radio Authhash API</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API"/>
				<updated>2021-11-29T16:31:42Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Update Authorisation Key */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
A key aspect of the SHOUTcast 2.0 system is the usage of authorisation keys to control the listing of stations within the SHOUTcast Radio Directory (otherwise known as the YP).&lt;br /&gt;
&lt;br /&gt;
The API which is documented here is provided as a means for registered developers to be able to obtain and manage any authorisation keys for the station(s) they are providing.&lt;br /&gt;
&lt;br /&gt;
The API works for generating and editing a 20 character v2.x authhash for DNAS v2.5.5 and earlier.&lt;br /&gt;
It will not work for editing the 32 character GUID-style authhash used in DNAS v2.6, although v2.6.0.753 does now accept a v2.5x authhash.&lt;br /&gt;
&lt;br /&gt;
==API Overview==&lt;br /&gt;
&lt;br /&gt;
There are four core parts of the authorisation key APIs (usage details are in [[#API_Usage|section 3]]):&lt;br /&gt;
&lt;br /&gt;
:[[#Create_Authorisation_Key|Create]]&lt;br /&gt;
:[[#Check_Authorisation_Key|Check]]&lt;br /&gt;
:[[#Update_Authorisation_Key|Update]]&lt;br /&gt;
:[[#Remove_Authorisation_Key|Remove]]&lt;br /&gt;
&lt;br /&gt;
The authorisation key APIs are xml based responses which provide information and status details of the provided API methods in a common style to ease implementation and usage.&lt;br /&gt;
&lt;br /&gt;
The API methods are called by passing parameters to the required YP site url.&lt;br /&gt;
&lt;br /&gt;
When the API methods are called then the status code of the method response is set to the status code of the API method so it is easy to detect errors from calling the API method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Successful Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are no issues with the API method call then one of the following responses will be received as the response generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first response is the '''basic''' success response and is provided if there is no extra information to be returned by the API method:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second response is the '''full''' success response and is provided when the API method needs to return additional information such as the authorisation key when a new one is created or the details of the authorisation key when using the ''''check'''' method:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;!-- information is found here --&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Error Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are issues experienced during the API method call then an error response will be received which takes the following form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;440&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Invalid devId&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;!-- the following is optional dependent upon the error --&amp;gt;&lt;br /&gt;
 &amp;lt;statusDetailText&amp;gt;Invalid parameter k&amp;lt;/statusDetailText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In all uses of the API methods, the ''''statusCode'''' and ''''statusText'''' elements are provided when an error occurs. The ''''statusDetailText'''' value is an optional element and is only provided if the internal error handling is able to provide additional information. This will usually be present for errors relating to parameter issues i.e. missing parameters.&lt;br /&gt;
&lt;br /&gt;
See [[#Status_Codes|section 5]] for the status codes and messages returned when using the API methods.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API Usage==&lt;br /&gt;
&lt;br /&gt;
The following sections detail how to use the four authorisation key API methods.&lt;br /&gt;
&lt;br /&gt;
Importantly, once an authorisation key has been created then it will be locked to the Developer ID used so you can only check, update or remove authorisation keys against that Developer ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Create Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will create an authorisation key (authhash) and will return it in the xml response on success.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error will be left at their default values which will be indicated by empty xml elements when using the ''''check'''' API.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/createauthhash?k=[Your Dev ID]&amp;amp;stationname=The Station Name&amp;amp;genre=Rock&amp;amp;[Optional Parameters To Set]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (preferably use Shoutcast RadioManager email, if account exists, though any will suffice)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters (replace non-latin/non-alphanumeric characters with [https://www.degraeve.com/reference/urlencoding.php url-encoded] equivalents, e.g. &amp;amp; = %26)&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* genre2 genre3 genre4 genre5 - specify up to 4 additional genres&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
* admode - determine whether monetization support is enabled for DNAS v2.4.7 and later (0=off, 1=on)&lt;br /&gt;
* logo - full url of jpg or png station logo. Previously used for Radionomy listings (limited to 2mb or 800x800 px).&lt;br /&gt;
* callsign - the GUID of station if registered in the Shoutcast RadioManager&lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the new authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;authhash&amp;gt;An_Authorisation_Key&amp;lt;/authhash&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Check Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will return all values for an existing authorisation key.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/checkauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to check&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the found details of the authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;response&amp;gt;&lt;br /&gt;
  &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
  &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
   &amp;lt;stationname&amp;gt;The Station Name&amp;lt;/stationname&amp;gt;&lt;br /&gt;
   &amp;lt;genre&amp;gt;Misc&amp;lt;/genre&amp;gt;&lt;br /&gt;
   &amp;lt;website&amp;gt;www.shoutcast.com&amp;lt;/website&amp;gt;&lt;br /&gt;
   &amp;lt;description&amp;gt;The Best Station Ever...!&amp;lt;/description&amp;gt;&lt;br /&gt;
   &amp;lt;langid&amp;gt;EN&amp;lt;/langid&amp;gt;&lt;br /&gt;
   &amp;lt;countryiso&amp;gt;US&amp;lt;/countryiso&amp;gt;&lt;br /&gt;
   &amp;lt;stateiso&amp;gt;00&amp;lt;/stateiso&amp;gt;&lt;br /&gt;
   &amp;lt;city&amp;gt;&amp;lt;/city&amp;gt;&lt;br /&gt;
   &amp;lt;keywords&amp;gt;Greatest Web Station&amp;lt;/keywords&amp;gt;&lt;br /&gt;
   &amp;lt;private&amp;gt;0&amp;lt;/private&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
 &amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 The &amp;lt;stateiso&amp;gt; element will only be returned if the &amp;lt;countryiso&amp;gt; element is 'US'.&lt;br /&gt;
&lt;br /&gt;
===Update Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will update an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error when making an update are reset to their default value when this completes. Otherwise this acts the same as the ''''create'''' API with the addition of specifying the authorisation key to update.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/updateauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;amp;stationname=The Station Name&amp;amp;genre=Misc&amp;amp;[Other Parameters To Update]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to update&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (this is so we can contact you easily in-case of an issue with your listing or needing to inform you of a required DNAS update)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* genre2 genre3 genre4 genre5 - specify up to 4 additional genres&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
* admode - determine whether monetization support is enabled for DNAS v2.4.7 and later (0=off, 1=on)&lt;br /&gt;
* logo - full url of jpg or png station logo. Previously used for Radionomy listings (limited to 2mb or 800x800 px).&lt;br /&gt;
* callsign - the GUID of station if registered in the Shoutcast RadioManager &lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
===Remove Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will remove an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/removeauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to remove&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Resources==&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, some additional methods are provided for accessing the supported primary and secondary genres, country, state and language codes. These are provided as a means to check you are using the correct values or to use if creating your own interface around the core authorisation key APIs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These additional methods are accessed via &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/authutil_*&amp;lt;/nowiki&amp;gt; where '''*''' is then replaced with one of the following to get the required information:&lt;br /&gt;
&lt;br /&gt;
* '''country''' - provides provides a html select control containing the ISO 3166-1-alpha-2 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''languages''' - provides provides a html select control containing the ISO 639-1 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''states''' - provides provides a html select control containing the USPO state code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''primarygenre''' - provides a html select control of the primary genres recognised&lt;br /&gt;
&lt;br /&gt;
* '''secondarygenre?primarygenre=&amp;lt;genre&amp;gt;''' - provides a html select control of the secondary genres related to the primary genre passed or an empty response if there are no genres found&lt;br /&gt;
&lt;br /&gt;
* '''parentgenre?genre=&amp;lt;genre&amp;gt;''' - provides the name of the parent genre of the passed genre or an empty response if there is no parent genre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All additional methods (excluding the ''''parentgenre'''' method) provide a fully formed html select control which is filled with relevent values based on the parameter passed to the method (if applicable). These are done like this to allow for ease of insertion into a&lt;br /&gt;
&amp;lt;div&amp;gt; element for example with an interface used to control the APIs.&lt;br /&gt;
&lt;br /&gt;
Calling these additional methods (excluding the ''''parentgenre'''' method) with ''''&amp;amp;raw=1'''' in the url will output the result (if applicable) as plain text instead of as a html select control. The values returned are separated by a comma and each data pair is then placed on a new line. This is provided as a quick way of getting the recognised values if the html select control is not suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===User Interface Versions===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, specifying ''''ui_'''' on the front of the API method e.g. &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/ui_checkauthhash&amp;lt;/nowiki&amp;gt; for the ''''check'''' method provides a pre-built interface pages which can be used as a base point for making your own interface for the authorisation key APIs or to use as is as long as you have the required developer access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Genres===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The genre specified for an authhash can only be a primary genre (e.g. Misc) or it can be a secondary genre related to a chosen primary genre (e.g. House from Electronic). The following lists the supported primary genres and the associated secondary genres to them.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Primary Genre&lt;br /&gt;
!Associated Secondary Genres&lt;br /&gt;
|-&lt;br /&gt;
| Alternative || Adult Alternative, Britpop, Classic Alternative, College, Dancepunk, Dream Pop, Emo, Goth, Grunge, Hardcore, Indie Pop, Indie Rock, Industrial, LoFi, Modern Rock, New Wave, Noise Pop, Post Punk, Power Pop, Punk, Ska, Xtreme&lt;br /&gt;
|-&lt;br /&gt;
| Blues || Acoustic Blues, Cajun and Zydeco, Chicago Blues, Contemporary Blues, Country Blues, Delta Blues, Electric Blues&lt;br /&gt;
|-&lt;br /&gt;
| Classical || Baroque, Chamber, Choral, Classical Period, Early Classical, Impressionist, Modern, Opera, Piano, Romantic, Symphony&lt;br /&gt;
|-&lt;br /&gt;
| Country || Alt Country, Americana, Bluegrass, Classic Country, Contemporary Bluegrass, Contemporary Country, Honky Tonk, Hot Country Hits, Western&lt;br /&gt;
|-&lt;br /&gt;
| Decades || 30s, 40s, 50s, 60s, 70s, 80s, 90s, 00s&lt;br /&gt;
|-&lt;br /&gt;
| Easy Listening || Exotica, Light Rock, Lounge, Orchestral Pop, Polka, Space Age Pop&lt;br /&gt;
|-&lt;br /&gt;
| Electronic || Acid House, Ambient, Big Beat, Breakbeat, Dance, Demo, Disco, Downtempo, Drum and Bass, Dubstep, Electro, Garage, Hard House, House, IDM, Jungle, Progressive, Techno, Trance, Tribal, Trip Hop&lt;br /&gt;
|-&lt;br /&gt;
| Folk || Alternative Folk, Contemporary Folk, Folk Rock, New Acoustic, Old Time, Traditional Folk, World Folk&lt;br /&gt;
|-&lt;br /&gt;
| Inspirational || Christian, Christian Metal, Christian Rap, Christian Rock, Classic Christian, Contemporary Gospel, Gospel, Praise and Worship, Sermons and Services, Southern Gospel, Traditional Gospel&lt;br /&gt;
|-&lt;br /&gt;
| International || African, Afrikaans, Arabic, Asian, Bollywood, Brazilian, Caribbean, Celtic, Chinese, Creole, European, Filipino, French, German, Greek, Hawaiian and Pacific, Hebrew, Hindi, Indian, Islamic, Japanese, Klezmer, Korean, Mediterranean, Middle Eastern, North American, Russian, Soca, South American, Tamil, Turkish, Worldbeat, Zouk&lt;br /&gt;
|-&lt;br /&gt;
| Jazz || Acid Jazz, Avant Garde, Big Band, Bop, Classic Jazz, Cool Jazz, Fusion, Hard Bop, Latin Jazz, Smooth Jazz, Swing, Vocal Jazz, World Fusion&lt;br /&gt;
|-&lt;br /&gt;
| Latin || Bachata, Banda, Bossa Nova, Cumbia, Flamenco, Latin Dance, Latin Pop, Latin Rap and Hip Hop, Latin Rock, Mariachi, Merengue, Ranchera, Reggaeton, Regional Mexican, Salsa, Samba, Tango, Tejano, Tropicalia&lt;br /&gt;
|-&lt;br /&gt;
| Metal || Black Metal, Classic Metal, Death Metal, Extreme Metal, Grindcore, Hair Metal, Heavy Metal, Metalcore, Power Metal, Progressive Metal, Rap Metal, Thrash Metal&lt;br /&gt;
|-&lt;br /&gt;
| New Age || Environmental, Ethnic Fusion, Healing, Meditation, Spiritual&lt;br /&gt;
|-&lt;br /&gt;
| Pop || Adult Contemporary, Barbershop, Bubblegum Pop, Dance Pop, Idols, JPOP, KPOP, Oldies, Soft Rock, Teen Pop, Top 40, World Pop&lt;br /&gt;
|-&lt;br /&gt;
| Public Radio || College, News, Sports, Talk, Weather&lt;br /&gt;
|-&lt;br /&gt;
| R&amp;amp;B and Urban || &lt;br /&gt;
|-&lt;br /&gt;
| Rap || Alternative Rap, Dirty South, East Coast Rap, Freestyle, Gangsta Rap, Hip Hop, Mixtapes, Old School, Turntablism, Underground Hip Hop, West Coast Rap&lt;br /&gt;
|-&lt;br /&gt;
| Reggae || Contemporary Reggae, Dancehall, Dub, Pop Reggae, Ragga, Reggae Roots, Rock Steady&lt;br /&gt;
|-&lt;br /&gt;
| Rock || Adult Album Alternative, British Invasion, Celtic Rock, Classic Rock, Garage Rock, Glam, Hard Rock, Jam Bands, JROCK, Piano Rock, Prog Rock, Psychedelic, Rock &amp;amp; Roll, Rockabilly, Singer and Songwriter, Surf&lt;br /&gt;
|-&lt;br /&gt;
| Seasonal and Holiday || Anniversary, Birthday, Christmas, Halloween, Hanukkah, Honeymoon, Kwanzaa, Valentine, Wedding, Winter&lt;br /&gt;
|-&lt;br /&gt;
| Soundtracks || Anime, Kids, Original Score, Showtunes, Video Game Music&lt;br /&gt;
|-&lt;br /&gt;
| Talk || BlogTalk, Comedy, Community, Educational, Government, News, Old Time Radio, Other Talk, Political, Scanner, Spoken Word, Sports, Technology&lt;br /&gt;
|-&lt;br /&gt;
| Themes || Adult, Best Of, Chill, Eclectic, Experimental, Female, Heartache, Instrumental, LGBT, Love and Romance, Party Mix, Patriotic, Rainy Day Mix, Reality, Se xy ''(remove space for actual word - spam filter display issue)'', Shuffle, Travel Mix, Tribute, Trippy, Work Mix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Illegal Input Values===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following values are not allowed when entered as the stationname (case insensitively) and will cause a 456 error response to be received when an authorisation key is created or updated as they are not easily found when multiple other listings are also using the same stationame.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 127.0.0.1 || admin || auto dj || auto jedi&lt;br /&gt;
|-&lt;br /&gt;
| auto pj || auto-dj || autodj || autopj&lt;br /&gt;
|-&lt;br /&gt;
| demo || dj || internet radio || live&lt;br /&gt;
|-&lt;br /&gt;
| local server || localhost || localserver || music&lt;br /&gt;
|-&lt;br /&gt;
| my radio || my server || my station name || my test server&lt;br /&gt;
|-&lt;br /&gt;
| n/a || pj || playlist || radio&lt;br /&gt;
|-&lt;br /&gt;
| radio station || test || test server || unnamed server&lt;br /&gt;
|-&lt;br /&gt;
| virtual dj || virtualdj || web rdio || web radio&lt;br /&gt;
|-&lt;br /&gt;
| song || teste || default stream || radio stream&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Additionally, stationnames just containing punctuation are not allowed as well as any which specify a name which matches with the supported genres (see [[SHOUTcast_Radio_Authhash_API#Supported_Genres|section 4.2]]).&lt;br /&gt;
&lt;br /&gt;
==Status Codes==&lt;br /&gt;
&lt;br /&gt;
The following status codes are returned on success or error when using the provided APIs:&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Code&lt;br /&gt;
!Status Text&lt;br /&gt;
!Detailed Text (if available)&lt;br /&gt;
|-&lt;br /&gt;
| 200 || Ok || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 400 || Generic Error || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 404 || Page Not Found || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 440 || Invalid devId || Invalid parameter k&lt;br /&gt;
|-&lt;br /&gt;
| 456 || Parameter value not allowed || ''&amp;lt;variable&amp;gt;=&amp;lt;value&amp;gt;'' not allowed&lt;br /&gt;
|-&lt;br /&gt;
| 458 || Building internal value failure || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 459 || Authhash could not be found for reading || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 460 || Missing required parameter || Missing ''&amp;lt;variable&amp;gt;''&lt;br /&gt;
|-&lt;br /&gt;
| 461 || Error while updating authhash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 462 || Parameter error || Invalid parameter &amp;lt;variable&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 463 || Invalid station result returned || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 464 || Authhash could not be found or removed || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 465 || Required parameter missing for registration || ''&amp;lt;variable&amp;gt;'' is a required parameter&lt;br /&gt;
|-&lt;br /&gt;
| 466 || Parameter outside of allowed range || ''&amp;lt;variable&amp;gt;'' parameter too long&lt;br /&gt;
|-&lt;br /&gt;
| 467 || Parameter value not recognized in stored values || ''&amp;lt;variable&amp;gt;'' value not recognized&lt;br /&gt;
|-&lt;br /&gt;
| 468 || Error creating intended xml response || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 469 || Authhash could not be updated as not found || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 470 || Invalid authorization hash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 500 || Generic Server Error || n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;variable&amp;gt;'' value in the detailed text will be replaced with the parameter name which the error relates to. The ''&amp;lt;value&amp;gt;'' value in the detailed text will be replaced with the parameter value which the error relates to.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API</id>
		<title>SHOUTcast Radio Authhash API</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API"/>
				<updated>2021-11-29T16:31:22Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Create Authorisation Key */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
A key aspect of the SHOUTcast 2.0 system is the usage of authorisation keys to control the listing of stations within the SHOUTcast Radio Directory (otherwise known as the YP).&lt;br /&gt;
&lt;br /&gt;
The API which is documented here is provided as a means for registered developers to be able to obtain and manage any authorisation keys for the station(s) they are providing.&lt;br /&gt;
&lt;br /&gt;
The API works for generating and editing a 20 character v2.x authhash for DNAS v2.5.5 and earlier.&lt;br /&gt;
It will not work for editing the 32 character GUID-style authhash used in DNAS v2.6, although v2.6.0.753 does now accept a v2.5x authhash.&lt;br /&gt;
&lt;br /&gt;
==API Overview==&lt;br /&gt;
&lt;br /&gt;
There are four core parts of the authorisation key APIs (usage details are in [[#API_Usage|section 3]]):&lt;br /&gt;
&lt;br /&gt;
:[[#Create_Authorisation_Key|Create]]&lt;br /&gt;
:[[#Check_Authorisation_Key|Check]]&lt;br /&gt;
:[[#Update_Authorisation_Key|Update]]&lt;br /&gt;
:[[#Remove_Authorisation_Key|Remove]]&lt;br /&gt;
&lt;br /&gt;
The authorisation key APIs are xml based responses which provide information and status details of the provided API methods in a common style to ease implementation and usage.&lt;br /&gt;
&lt;br /&gt;
The API methods are called by passing parameters to the required YP site url.&lt;br /&gt;
&lt;br /&gt;
When the API methods are called then the status code of the method response is set to the status code of the API method so it is easy to detect errors from calling the API method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Successful Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are no issues with the API method call then one of the following responses will be received as the response generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first response is the '''basic''' success response and is provided if there is no extra information to be returned by the API method:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second response is the '''full''' success response and is provided when the API method needs to return additional information such as the authorisation key when a new one is created or the details of the authorisation key when using the ''''check'''' method:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;!-- information is found here --&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Error Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are issues experienced during the API method call then an error response will be received which takes the following form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;440&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Invalid devId&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;!-- the following is optional dependent upon the error --&amp;gt;&lt;br /&gt;
 &amp;lt;statusDetailText&amp;gt;Invalid parameter k&amp;lt;/statusDetailText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In all uses of the API methods, the ''''statusCode'''' and ''''statusText'''' elements are provided when an error occurs. The ''''statusDetailText'''' value is an optional element and is only provided if the internal error handling is able to provide additional information. This will usually be present for errors relating to parameter issues i.e. missing parameters.&lt;br /&gt;
&lt;br /&gt;
See [[#Status_Codes|section 5]] for the status codes and messages returned when using the API methods.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API Usage==&lt;br /&gt;
&lt;br /&gt;
The following sections detail how to use the four authorisation key API methods.&lt;br /&gt;
&lt;br /&gt;
Importantly, once an authorisation key has been created then it will be locked to the Developer ID used so you can only check, update or remove authorisation keys against that Developer ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Create Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will create an authorisation key (authhash) and will return it in the xml response on success.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error will be left at their default values which will be indicated by empty xml elements when using the ''''check'''' API.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/createauthhash?k=[Your Dev ID]&amp;amp;stationname=The Station Name&amp;amp;genre=Rock&amp;amp;[Optional Parameters To Set]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (preferably use Shoutcast RadioManager email, if account exists, though any will suffice)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters (replace non-latin/non-alphanumeric characters with [https://www.degraeve.com/reference/urlencoding.php url-encoded] equivalents, e.g. &amp;amp; = %26)&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* genre2 genre3 genre4 genre5 - specify up to 4 additional genres&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
* admode - determine whether monetization support is enabled for DNAS v2.4.7 and later (0=off, 1=on)&lt;br /&gt;
* logo - full url of jpg or png station logo. Previously used for Radionomy listings (limited to 2mb or 800x800 px).&lt;br /&gt;
* callsign - the GUID of station if registered in the Shoutcast RadioManager&lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the new authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;authhash&amp;gt;An_Authorisation_Key&amp;lt;/authhash&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Check Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will return all values for an existing authorisation key.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/checkauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to check&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the found details of the authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;response&amp;gt;&lt;br /&gt;
  &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
  &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
   &amp;lt;stationname&amp;gt;The Station Name&amp;lt;/stationname&amp;gt;&lt;br /&gt;
   &amp;lt;genre&amp;gt;Misc&amp;lt;/genre&amp;gt;&lt;br /&gt;
   &amp;lt;website&amp;gt;www.shoutcast.com&amp;lt;/website&amp;gt;&lt;br /&gt;
   &amp;lt;description&amp;gt;The Best Station Ever...!&amp;lt;/description&amp;gt;&lt;br /&gt;
   &amp;lt;langid&amp;gt;EN&amp;lt;/langid&amp;gt;&lt;br /&gt;
   &amp;lt;countryiso&amp;gt;US&amp;lt;/countryiso&amp;gt;&lt;br /&gt;
   &amp;lt;stateiso&amp;gt;00&amp;lt;/stateiso&amp;gt;&lt;br /&gt;
   &amp;lt;city&amp;gt;&amp;lt;/city&amp;gt;&lt;br /&gt;
   &amp;lt;keywords&amp;gt;Greatest Web Station&amp;lt;/keywords&amp;gt;&lt;br /&gt;
   &amp;lt;private&amp;gt;0&amp;lt;/private&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
 &amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 The &amp;lt;stateiso&amp;gt; element will only be returned if the &amp;lt;countryiso&amp;gt; element is 'US'.&lt;br /&gt;
&lt;br /&gt;
===Update Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will update an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error when making an update are reset to their default value when this completes. Otherwise this acts the same as the ''''create'''' API with the addition of specifying the authorisation key to update.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/updateauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;amp;stationname=The Station Name&amp;amp;genre=Misc&amp;amp;[Other Parameters To Update]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to update&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (this is so we can contact you easily in-case of an issue with your listing or needing to inform you of a required DNAS update)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* genre2 genre3 genre4 genre5 - specify up to 4 additional genres&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
* admode - determine whether monetization support is enabled for DNAS v2.4.7 and later (0=off, 1=on)&lt;br /&gt;
* logo - full url of jpg or png station logo (limited to 2mb or 800x800 px). Previously used for Radionomy listings.&lt;br /&gt;
* callsign - the GUID of station if registered in the Shoutcast RadioManager &lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
===Remove Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will remove an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/removeauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to remove&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Resources==&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, some additional methods are provided for accessing the supported primary and secondary genres, country, state and language codes. These are provided as a means to check you are using the correct values or to use if creating your own interface around the core authorisation key APIs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These additional methods are accessed via &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/authutil_*&amp;lt;/nowiki&amp;gt; where '''*''' is then replaced with one of the following to get the required information:&lt;br /&gt;
&lt;br /&gt;
* '''country''' - provides provides a html select control containing the ISO 3166-1-alpha-2 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''languages''' - provides provides a html select control containing the ISO 639-1 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''states''' - provides provides a html select control containing the USPO state code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''primarygenre''' - provides a html select control of the primary genres recognised&lt;br /&gt;
&lt;br /&gt;
* '''secondarygenre?primarygenre=&amp;lt;genre&amp;gt;''' - provides a html select control of the secondary genres related to the primary genre passed or an empty response if there are no genres found&lt;br /&gt;
&lt;br /&gt;
* '''parentgenre?genre=&amp;lt;genre&amp;gt;''' - provides the name of the parent genre of the passed genre or an empty response if there is no parent genre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All additional methods (excluding the ''''parentgenre'''' method) provide a fully formed html select control which is filled with relevent values based on the parameter passed to the method (if applicable). These are done like this to allow for ease of insertion into a&lt;br /&gt;
&amp;lt;div&amp;gt; element for example with an interface used to control the APIs.&lt;br /&gt;
&lt;br /&gt;
Calling these additional methods (excluding the ''''parentgenre'''' method) with ''''&amp;amp;raw=1'''' in the url will output the result (if applicable) as plain text instead of as a html select control. The values returned are separated by a comma and each data pair is then placed on a new line. This is provided as a quick way of getting the recognised values if the html select control is not suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===User Interface Versions===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, specifying ''''ui_'''' on the front of the API method e.g. &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/ui_checkauthhash&amp;lt;/nowiki&amp;gt; for the ''''check'''' method provides a pre-built interface pages which can be used as a base point for making your own interface for the authorisation key APIs or to use as is as long as you have the required developer access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Genres===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The genre specified for an authhash can only be a primary genre (e.g. Misc) or it can be a secondary genre related to a chosen primary genre (e.g. House from Electronic). The following lists the supported primary genres and the associated secondary genres to them.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Primary Genre&lt;br /&gt;
!Associated Secondary Genres&lt;br /&gt;
|-&lt;br /&gt;
| Alternative || Adult Alternative, Britpop, Classic Alternative, College, Dancepunk, Dream Pop, Emo, Goth, Grunge, Hardcore, Indie Pop, Indie Rock, Industrial, LoFi, Modern Rock, New Wave, Noise Pop, Post Punk, Power Pop, Punk, Ska, Xtreme&lt;br /&gt;
|-&lt;br /&gt;
| Blues || Acoustic Blues, Cajun and Zydeco, Chicago Blues, Contemporary Blues, Country Blues, Delta Blues, Electric Blues&lt;br /&gt;
|-&lt;br /&gt;
| Classical || Baroque, Chamber, Choral, Classical Period, Early Classical, Impressionist, Modern, Opera, Piano, Romantic, Symphony&lt;br /&gt;
|-&lt;br /&gt;
| Country || Alt Country, Americana, Bluegrass, Classic Country, Contemporary Bluegrass, Contemporary Country, Honky Tonk, Hot Country Hits, Western&lt;br /&gt;
|-&lt;br /&gt;
| Decades || 30s, 40s, 50s, 60s, 70s, 80s, 90s, 00s&lt;br /&gt;
|-&lt;br /&gt;
| Easy Listening || Exotica, Light Rock, Lounge, Orchestral Pop, Polka, Space Age Pop&lt;br /&gt;
|-&lt;br /&gt;
| Electronic || Acid House, Ambient, Big Beat, Breakbeat, Dance, Demo, Disco, Downtempo, Drum and Bass, Dubstep, Electro, Garage, Hard House, House, IDM, Jungle, Progressive, Techno, Trance, Tribal, Trip Hop&lt;br /&gt;
|-&lt;br /&gt;
| Folk || Alternative Folk, Contemporary Folk, Folk Rock, New Acoustic, Old Time, Traditional Folk, World Folk&lt;br /&gt;
|-&lt;br /&gt;
| Inspirational || Christian, Christian Metal, Christian Rap, Christian Rock, Classic Christian, Contemporary Gospel, Gospel, Praise and Worship, Sermons and Services, Southern Gospel, Traditional Gospel&lt;br /&gt;
|-&lt;br /&gt;
| International || African, Afrikaans, Arabic, Asian, Bollywood, Brazilian, Caribbean, Celtic, Chinese, Creole, European, Filipino, French, German, Greek, Hawaiian and Pacific, Hebrew, Hindi, Indian, Islamic, Japanese, Klezmer, Korean, Mediterranean, Middle Eastern, North American, Russian, Soca, South American, Tamil, Turkish, Worldbeat, Zouk&lt;br /&gt;
|-&lt;br /&gt;
| Jazz || Acid Jazz, Avant Garde, Big Band, Bop, Classic Jazz, Cool Jazz, Fusion, Hard Bop, Latin Jazz, Smooth Jazz, Swing, Vocal Jazz, World Fusion&lt;br /&gt;
|-&lt;br /&gt;
| Latin || Bachata, Banda, Bossa Nova, Cumbia, Flamenco, Latin Dance, Latin Pop, Latin Rap and Hip Hop, Latin Rock, Mariachi, Merengue, Ranchera, Reggaeton, Regional Mexican, Salsa, Samba, Tango, Tejano, Tropicalia&lt;br /&gt;
|-&lt;br /&gt;
| Metal || Black Metal, Classic Metal, Death Metal, Extreme Metal, Grindcore, Hair Metal, Heavy Metal, Metalcore, Power Metal, Progressive Metal, Rap Metal, Thrash Metal&lt;br /&gt;
|-&lt;br /&gt;
| New Age || Environmental, Ethnic Fusion, Healing, Meditation, Spiritual&lt;br /&gt;
|-&lt;br /&gt;
| Pop || Adult Contemporary, Barbershop, Bubblegum Pop, Dance Pop, Idols, JPOP, KPOP, Oldies, Soft Rock, Teen Pop, Top 40, World Pop&lt;br /&gt;
|-&lt;br /&gt;
| Public Radio || College, News, Sports, Talk, Weather&lt;br /&gt;
|-&lt;br /&gt;
| R&amp;amp;B and Urban || &lt;br /&gt;
|-&lt;br /&gt;
| Rap || Alternative Rap, Dirty South, East Coast Rap, Freestyle, Gangsta Rap, Hip Hop, Mixtapes, Old School, Turntablism, Underground Hip Hop, West Coast Rap&lt;br /&gt;
|-&lt;br /&gt;
| Reggae || Contemporary Reggae, Dancehall, Dub, Pop Reggae, Ragga, Reggae Roots, Rock Steady&lt;br /&gt;
|-&lt;br /&gt;
| Rock || Adult Album Alternative, British Invasion, Celtic Rock, Classic Rock, Garage Rock, Glam, Hard Rock, Jam Bands, JROCK, Piano Rock, Prog Rock, Psychedelic, Rock &amp;amp; Roll, Rockabilly, Singer and Songwriter, Surf&lt;br /&gt;
|-&lt;br /&gt;
| Seasonal and Holiday || Anniversary, Birthday, Christmas, Halloween, Hanukkah, Honeymoon, Kwanzaa, Valentine, Wedding, Winter&lt;br /&gt;
|-&lt;br /&gt;
| Soundtracks || Anime, Kids, Original Score, Showtunes, Video Game Music&lt;br /&gt;
|-&lt;br /&gt;
| Talk || BlogTalk, Comedy, Community, Educational, Government, News, Old Time Radio, Other Talk, Political, Scanner, Spoken Word, Sports, Technology&lt;br /&gt;
|-&lt;br /&gt;
| Themes || Adult, Best Of, Chill, Eclectic, Experimental, Female, Heartache, Instrumental, LGBT, Love and Romance, Party Mix, Patriotic, Rainy Day Mix, Reality, Se xy ''(remove space for actual word - spam filter display issue)'', Shuffle, Travel Mix, Tribute, Trippy, Work Mix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Illegal Input Values===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following values are not allowed when entered as the stationname (case insensitively) and will cause a 456 error response to be received when an authorisation key is created or updated as they are not easily found when multiple other listings are also using the same stationame.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 127.0.0.1 || admin || auto dj || auto jedi&lt;br /&gt;
|-&lt;br /&gt;
| auto pj || auto-dj || autodj || autopj&lt;br /&gt;
|-&lt;br /&gt;
| demo || dj || internet radio || live&lt;br /&gt;
|-&lt;br /&gt;
| local server || localhost || localserver || music&lt;br /&gt;
|-&lt;br /&gt;
| my radio || my server || my station name || my test server&lt;br /&gt;
|-&lt;br /&gt;
| n/a || pj || playlist || radio&lt;br /&gt;
|-&lt;br /&gt;
| radio station || test || test server || unnamed server&lt;br /&gt;
|-&lt;br /&gt;
| virtual dj || virtualdj || web rdio || web radio&lt;br /&gt;
|-&lt;br /&gt;
| song || teste || default stream || radio stream&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Additionally, stationnames just containing punctuation are not allowed as well as any which specify a name which matches with the supported genres (see [[SHOUTcast_Radio_Authhash_API#Supported_Genres|section 4.2]]).&lt;br /&gt;
&lt;br /&gt;
==Status Codes==&lt;br /&gt;
&lt;br /&gt;
The following status codes are returned on success or error when using the provided APIs:&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Code&lt;br /&gt;
!Status Text&lt;br /&gt;
!Detailed Text (if available)&lt;br /&gt;
|-&lt;br /&gt;
| 200 || Ok || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 400 || Generic Error || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 404 || Page Not Found || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 440 || Invalid devId || Invalid parameter k&lt;br /&gt;
|-&lt;br /&gt;
| 456 || Parameter value not allowed || ''&amp;lt;variable&amp;gt;=&amp;lt;value&amp;gt;'' not allowed&lt;br /&gt;
|-&lt;br /&gt;
| 458 || Building internal value failure || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 459 || Authhash could not be found for reading || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 460 || Missing required parameter || Missing ''&amp;lt;variable&amp;gt;''&lt;br /&gt;
|-&lt;br /&gt;
| 461 || Error while updating authhash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 462 || Parameter error || Invalid parameter &amp;lt;variable&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 463 || Invalid station result returned || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 464 || Authhash could not be found or removed || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 465 || Required parameter missing for registration || ''&amp;lt;variable&amp;gt;'' is a required parameter&lt;br /&gt;
|-&lt;br /&gt;
| 466 || Parameter outside of allowed range || ''&amp;lt;variable&amp;gt;'' parameter too long&lt;br /&gt;
|-&lt;br /&gt;
| 467 || Parameter value not recognized in stored values || ''&amp;lt;variable&amp;gt;'' value not recognized&lt;br /&gt;
|-&lt;br /&gt;
| 468 || Error creating intended xml response || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 469 || Authhash could not be updated as not found || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 470 || Invalid authorization hash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 500 || Generic Server Error || n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;variable&amp;gt;'' value in the detailed text will be replaced with the parameter name which the error relates to. The ''&amp;lt;value&amp;gt;'' value in the detailed text will be replaced with the parameter value which the error relates to.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API</id>
		<title>SHOUTcast Radio Authhash API</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API"/>
				<updated>2021-11-29T16:25:44Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Update Authorisation Key */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
A key aspect of the SHOUTcast 2.0 system is the usage of authorisation keys to control the listing of stations within the SHOUTcast Radio Directory (otherwise known as the YP).&lt;br /&gt;
&lt;br /&gt;
The API which is documented here is provided as a means for registered developers to be able to obtain and manage any authorisation keys for the station(s) they are providing.&lt;br /&gt;
&lt;br /&gt;
The API works for generating and editing a 20 character v2.x authhash for DNAS v2.5.5 and earlier.&lt;br /&gt;
It will not work for editing the 32 character GUID-style authhash used in DNAS v2.6, although v2.6.0.753 does now accept a v2.5x authhash.&lt;br /&gt;
&lt;br /&gt;
==API Overview==&lt;br /&gt;
&lt;br /&gt;
There are four core parts of the authorisation key APIs (usage details are in [[#API_Usage|section 3]]):&lt;br /&gt;
&lt;br /&gt;
:[[#Create_Authorisation_Key|Create]]&lt;br /&gt;
:[[#Check_Authorisation_Key|Check]]&lt;br /&gt;
:[[#Update_Authorisation_Key|Update]]&lt;br /&gt;
:[[#Remove_Authorisation_Key|Remove]]&lt;br /&gt;
&lt;br /&gt;
The authorisation key APIs are xml based responses which provide information and status details of the provided API methods in a common style to ease implementation and usage.&lt;br /&gt;
&lt;br /&gt;
The API methods are called by passing parameters to the required YP site url.&lt;br /&gt;
&lt;br /&gt;
When the API methods are called then the status code of the method response is set to the status code of the API method so it is easy to detect errors from calling the API method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Successful Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are no issues with the API method call then one of the following responses will be received as the response generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first response is the '''basic''' success response and is provided if there is no extra information to be returned by the API method:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second response is the '''full''' success response and is provided when the API method needs to return additional information such as the authorisation key when a new one is created or the details of the authorisation key when using the ''''check'''' method:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;!-- information is found here --&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Error Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are issues experienced during the API method call then an error response will be received which takes the following form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;440&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Invalid devId&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;!-- the following is optional dependent upon the error --&amp;gt;&lt;br /&gt;
 &amp;lt;statusDetailText&amp;gt;Invalid parameter k&amp;lt;/statusDetailText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In all uses of the API methods, the ''''statusCode'''' and ''''statusText'''' elements are provided when an error occurs. The ''''statusDetailText'''' value is an optional element and is only provided if the internal error handling is able to provide additional information. This will usually be present for errors relating to parameter issues i.e. missing parameters.&lt;br /&gt;
&lt;br /&gt;
See [[#Status_Codes|section 5]] for the status codes and messages returned when using the API methods.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API Usage==&lt;br /&gt;
&lt;br /&gt;
The following sections detail how to use the four authorisation key API methods.&lt;br /&gt;
&lt;br /&gt;
Importantly, once an authorisation key has been created then it will be locked to the Developer ID used so you can only check, update or remove authorisation keys against that Developer ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Create Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will create an authorisation key (authhash) and will return it in the xml response on success.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error will be left at their default values which will be indicated by empty xml elements when using the ''''check'''' API.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/createauthhash?k=[Your Dev ID]&amp;amp;stationname=The Station Name&amp;amp;genre=Rock&amp;amp;[Optional Parameters To Set]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (preferably use Shoutcast RadioManager email, if account exists, though any will suffice)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters (replace non-latin/non-alphanumeric characters with [https://www.degraeve.com/reference/urlencoding.php url-encoded] equivalents, e.g. &amp;amp; = %26)&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* genre2 genre3 genre4 genre5 - specify up to 4 additional genres&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
* admode - determine whether monetization support is enabled for DNAS v2.4.7 and later (0=off, 1=on)&lt;br /&gt;
* callsign - the GUID of station if registered in the Shoutcast RadioManager&lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the new authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;authhash&amp;gt;An_Authorisation_Key&amp;lt;/authhash&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Check Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will return all values for an existing authorisation key.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/checkauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to check&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the found details of the authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;response&amp;gt;&lt;br /&gt;
  &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
  &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
   &amp;lt;stationname&amp;gt;The Station Name&amp;lt;/stationname&amp;gt;&lt;br /&gt;
   &amp;lt;genre&amp;gt;Misc&amp;lt;/genre&amp;gt;&lt;br /&gt;
   &amp;lt;website&amp;gt;www.shoutcast.com&amp;lt;/website&amp;gt;&lt;br /&gt;
   &amp;lt;description&amp;gt;The Best Station Ever...!&amp;lt;/description&amp;gt;&lt;br /&gt;
   &amp;lt;langid&amp;gt;EN&amp;lt;/langid&amp;gt;&lt;br /&gt;
   &amp;lt;countryiso&amp;gt;US&amp;lt;/countryiso&amp;gt;&lt;br /&gt;
   &amp;lt;stateiso&amp;gt;00&amp;lt;/stateiso&amp;gt;&lt;br /&gt;
   &amp;lt;city&amp;gt;&amp;lt;/city&amp;gt;&lt;br /&gt;
   &amp;lt;keywords&amp;gt;Greatest Web Station&amp;lt;/keywords&amp;gt;&lt;br /&gt;
   &amp;lt;private&amp;gt;0&amp;lt;/private&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
 &amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 The &amp;lt;stateiso&amp;gt; element will only be returned if the &amp;lt;countryiso&amp;gt; element is 'US'.&lt;br /&gt;
&lt;br /&gt;
===Update Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will update an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error when making an update are reset to their default value when this completes. Otherwise this acts the same as the ''''create'''' API with the addition of specifying the authorisation key to update.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/updateauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;amp;stationname=The Station Name&amp;amp;genre=Misc&amp;amp;[Other Parameters To Update]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to update&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (this is so we can contact you easily in-case of an issue with your listing or needing to inform you of a required DNAS update)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* genre2 genre3 genre4 genre5 - specify up to 4 additional genres&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
* admode - determine whether monetization support is enabled for DNAS v2.4.7 and later (0=off, 1=on)&lt;br /&gt;
* logo - full url of jpg or png station logo (limited to 2mb or 800x800 px). Previously used for Radionomy listings.&lt;br /&gt;
* callsign - the GUID of station if registered in the Shoutcast RadioManager &lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
===Remove Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will remove an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/removeauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to remove&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Resources==&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, some additional methods are provided for accessing the supported primary and secondary genres, country, state and language codes. These are provided as a means to check you are using the correct values or to use if creating your own interface around the core authorisation key APIs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These additional methods are accessed via &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/authutil_*&amp;lt;/nowiki&amp;gt; where '''*''' is then replaced with one of the following to get the required information:&lt;br /&gt;
&lt;br /&gt;
* '''country''' - provides provides a html select control containing the ISO 3166-1-alpha-2 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''languages''' - provides provides a html select control containing the ISO 639-1 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''states''' - provides provides a html select control containing the USPO state code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''primarygenre''' - provides a html select control of the primary genres recognised&lt;br /&gt;
&lt;br /&gt;
* '''secondarygenre?primarygenre=&amp;lt;genre&amp;gt;''' - provides a html select control of the secondary genres related to the primary genre passed or an empty response if there are no genres found&lt;br /&gt;
&lt;br /&gt;
* '''parentgenre?genre=&amp;lt;genre&amp;gt;''' - provides the name of the parent genre of the passed genre or an empty response if there is no parent genre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All additional methods (excluding the ''''parentgenre'''' method) provide a fully formed html select control which is filled with relevent values based on the parameter passed to the method (if applicable). These are done like this to allow for ease of insertion into a&lt;br /&gt;
&amp;lt;div&amp;gt; element for example with an interface used to control the APIs.&lt;br /&gt;
&lt;br /&gt;
Calling these additional methods (excluding the ''''parentgenre'''' method) with ''''&amp;amp;raw=1'''' in the url will output the result (if applicable) as plain text instead of as a html select control. The values returned are separated by a comma and each data pair is then placed on a new line. This is provided as a quick way of getting the recognised values if the html select control is not suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===User Interface Versions===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, specifying ''''ui_'''' on the front of the API method e.g. &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/ui_checkauthhash&amp;lt;/nowiki&amp;gt; for the ''''check'''' method provides a pre-built interface pages which can be used as a base point for making your own interface for the authorisation key APIs or to use as is as long as you have the required developer access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Genres===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The genre specified for an authhash can only be a primary genre (e.g. Misc) or it can be a secondary genre related to a chosen primary genre (e.g. House from Electronic). The following lists the supported primary genres and the associated secondary genres to them.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Primary Genre&lt;br /&gt;
!Associated Secondary Genres&lt;br /&gt;
|-&lt;br /&gt;
| Alternative || Adult Alternative, Britpop, Classic Alternative, College, Dancepunk, Dream Pop, Emo, Goth, Grunge, Hardcore, Indie Pop, Indie Rock, Industrial, LoFi, Modern Rock, New Wave, Noise Pop, Post Punk, Power Pop, Punk, Ska, Xtreme&lt;br /&gt;
|-&lt;br /&gt;
| Blues || Acoustic Blues, Cajun and Zydeco, Chicago Blues, Contemporary Blues, Country Blues, Delta Blues, Electric Blues&lt;br /&gt;
|-&lt;br /&gt;
| Classical || Baroque, Chamber, Choral, Classical Period, Early Classical, Impressionist, Modern, Opera, Piano, Romantic, Symphony&lt;br /&gt;
|-&lt;br /&gt;
| Country || Alt Country, Americana, Bluegrass, Classic Country, Contemporary Bluegrass, Contemporary Country, Honky Tonk, Hot Country Hits, Western&lt;br /&gt;
|-&lt;br /&gt;
| Decades || 30s, 40s, 50s, 60s, 70s, 80s, 90s, 00s&lt;br /&gt;
|-&lt;br /&gt;
| Easy Listening || Exotica, Light Rock, Lounge, Orchestral Pop, Polka, Space Age Pop&lt;br /&gt;
|-&lt;br /&gt;
| Electronic || Acid House, Ambient, Big Beat, Breakbeat, Dance, Demo, Disco, Downtempo, Drum and Bass, Dubstep, Electro, Garage, Hard House, House, IDM, Jungle, Progressive, Techno, Trance, Tribal, Trip Hop&lt;br /&gt;
|-&lt;br /&gt;
| Folk || Alternative Folk, Contemporary Folk, Folk Rock, New Acoustic, Old Time, Traditional Folk, World Folk&lt;br /&gt;
|-&lt;br /&gt;
| Inspirational || Christian, Christian Metal, Christian Rap, Christian Rock, Classic Christian, Contemporary Gospel, Gospel, Praise and Worship, Sermons and Services, Southern Gospel, Traditional Gospel&lt;br /&gt;
|-&lt;br /&gt;
| International || African, Afrikaans, Arabic, Asian, Bollywood, Brazilian, Caribbean, Celtic, Chinese, Creole, European, Filipino, French, German, Greek, Hawaiian and Pacific, Hebrew, Hindi, Indian, Islamic, Japanese, Klezmer, Korean, Mediterranean, Middle Eastern, North American, Russian, Soca, South American, Tamil, Turkish, Worldbeat, Zouk&lt;br /&gt;
|-&lt;br /&gt;
| Jazz || Acid Jazz, Avant Garde, Big Band, Bop, Classic Jazz, Cool Jazz, Fusion, Hard Bop, Latin Jazz, Smooth Jazz, Swing, Vocal Jazz, World Fusion&lt;br /&gt;
|-&lt;br /&gt;
| Latin || Bachata, Banda, Bossa Nova, Cumbia, Flamenco, Latin Dance, Latin Pop, Latin Rap and Hip Hop, Latin Rock, Mariachi, Merengue, Ranchera, Reggaeton, Regional Mexican, Salsa, Samba, Tango, Tejano, Tropicalia&lt;br /&gt;
|-&lt;br /&gt;
| Metal || Black Metal, Classic Metal, Death Metal, Extreme Metal, Grindcore, Hair Metal, Heavy Metal, Metalcore, Power Metal, Progressive Metal, Rap Metal, Thrash Metal&lt;br /&gt;
|-&lt;br /&gt;
| New Age || Environmental, Ethnic Fusion, Healing, Meditation, Spiritual&lt;br /&gt;
|-&lt;br /&gt;
| Pop || Adult Contemporary, Barbershop, Bubblegum Pop, Dance Pop, Idols, JPOP, KPOP, Oldies, Soft Rock, Teen Pop, Top 40, World Pop&lt;br /&gt;
|-&lt;br /&gt;
| Public Radio || College, News, Sports, Talk, Weather&lt;br /&gt;
|-&lt;br /&gt;
| R&amp;amp;B and Urban || &lt;br /&gt;
|-&lt;br /&gt;
| Rap || Alternative Rap, Dirty South, East Coast Rap, Freestyle, Gangsta Rap, Hip Hop, Mixtapes, Old School, Turntablism, Underground Hip Hop, West Coast Rap&lt;br /&gt;
|-&lt;br /&gt;
| Reggae || Contemporary Reggae, Dancehall, Dub, Pop Reggae, Ragga, Reggae Roots, Rock Steady&lt;br /&gt;
|-&lt;br /&gt;
| Rock || Adult Album Alternative, British Invasion, Celtic Rock, Classic Rock, Garage Rock, Glam, Hard Rock, Jam Bands, JROCK, Piano Rock, Prog Rock, Psychedelic, Rock &amp;amp; Roll, Rockabilly, Singer and Songwriter, Surf&lt;br /&gt;
|-&lt;br /&gt;
| Seasonal and Holiday || Anniversary, Birthday, Christmas, Halloween, Hanukkah, Honeymoon, Kwanzaa, Valentine, Wedding, Winter&lt;br /&gt;
|-&lt;br /&gt;
| Soundtracks || Anime, Kids, Original Score, Showtunes, Video Game Music&lt;br /&gt;
|-&lt;br /&gt;
| Talk || BlogTalk, Comedy, Community, Educational, Government, News, Old Time Radio, Other Talk, Political, Scanner, Spoken Word, Sports, Technology&lt;br /&gt;
|-&lt;br /&gt;
| Themes || Adult, Best Of, Chill, Eclectic, Experimental, Female, Heartache, Instrumental, LGBT, Love and Romance, Party Mix, Patriotic, Rainy Day Mix, Reality, Se xy ''(remove space for actual word - spam filter display issue)'', Shuffle, Travel Mix, Tribute, Trippy, Work Mix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Illegal Input Values===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following values are not allowed when entered as the stationname (case insensitively) and will cause a 456 error response to be received when an authorisation key is created or updated as they are not easily found when multiple other listings are also using the same stationame.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 127.0.0.1 || admin || auto dj || auto jedi&lt;br /&gt;
|-&lt;br /&gt;
| auto pj || auto-dj || autodj || autopj&lt;br /&gt;
|-&lt;br /&gt;
| demo || dj || internet radio || live&lt;br /&gt;
|-&lt;br /&gt;
| local server || localhost || localserver || music&lt;br /&gt;
|-&lt;br /&gt;
| my radio || my server || my station name || my test server&lt;br /&gt;
|-&lt;br /&gt;
| n/a || pj || playlist || radio&lt;br /&gt;
|-&lt;br /&gt;
| radio station || test || test server || unnamed server&lt;br /&gt;
|-&lt;br /&gt;
| virtual dj || virtualdj || web rdio || web radio&lt;br /&gt;
|-&lt;br /&gt;
| song || teste || default stream || radio stream&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Additionally, stationnames just containing punctuation are not allowed as well as any which specify a name which matches with the supported genres (see [[SHOUTcast_Radio_Authhash_API#Supported_Genres|section 4.2]]).&lt;br /&gt;
&lt;br /&gt;
==Status Codes==&lt;br /&gt;
&lt;br /&gt;
The following status codes are returned on success or error when using the provided APIs:&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Code&lt;br /&gt;
!Status Text&lt;br /&gt;
!Detailed Text (if available)&lt;br /&gt;
|-&lt;br /&gt;
| 200 || Ok || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 400 || Generic Error || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 404 || Page Not Found || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 440 || Invalid devId || Invalid parameter k&lt;br /&gt;
|-&lt;br /&gt;
| 456 || Parameter value not allowed || ''&amp;lt;variable&amp;gt;=&amp;lt;value&amp;gt;'' not allowed&lt;br /&gt;
|-&lt;br /&gt;
| 458 || Building internal value failure || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 459 || Authhash could not be found for reading || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 460 || Missing required parameter || Missing ''&amp;lt;variable&amp;gt;''&lt;br /&gt;
|-&lt;br /&gt;
| 461 || Error while updating authhash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 462 || Parameter error || Invalid parameter &amp;lt;variable&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 463 || Invalid station result returned || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 464 || Authhash could not be found or removed || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 465 || Required parameter missing for registration || ''&amp;lt;variable&amp;gt;'' is a required parameter&lt;br /&gt;
|-&lt;br /&gt;
| 466 || Parameter outside of allowed range || ''&amp;lt;variable&amp;gt;'' parameter too long&lt;br /&gt;
|-&lt;br /&gt;
| 467 || Parameter value not recognized in stored values || ''&amp;lt;variable&amp;gt;'' value not recognized&lt;br /&gt;
|-&lt;br /&gt;
| 468 || Error creating intended xml response || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 469 || Authhash could not be updated as not found || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 470 || Invalid authorization hash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 500 || Generic Server Error || n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;variable&amp;gt;'' value in the detailed text will be replaced with the parameter name which the error relates to. The ''&amp;lt;value&amp;gt;'' value in the detailed text will be replaced with the parameter value which the error relates to.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API</id>
		<title>SHOUTcast Radio Authhash API</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API"/>
				<updated>2021-11-29T16:25:26Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Update Authorisation Key */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
A key aspect of the SHOUTcast 2.0 system is the usage of authorisation keys to control the listing of stations within the SHOUTcast Radio Directory (otherwise known as the YP).&lt;br /&gt;
&lt;br /&gt;
The API which is documented here is provided as a means for registered developers to be able to obtain and manage any authorisation keys for the station(s) they are providing.&lt;br /&gt;
&lt;br /&gt;
The API works for generating and editing a 20 character v2.x authhash for DNAS v2.5.5 and earlier.&lt;br /&gt;
It will not work for editing the 32 character GUID-style authhash used in DNAS v2.6, although v2.6.0.753 does now accept a v2.5x authhash.&lt;br /&gt;
&lt;br /&gt;
==API Overview==&lt;br /&gt;
&lt;br /&gt;
There are four core parts of the authorisation key APIs (usage details are in [[#API_Usage|section 3]]):&lt;br /&gt;
&lt;br /&gt;
:[[#Create_Authorisation_Key|Create]]&lt;br /&gt;
:[[#Check_Authorisation_Key|Check]]&lt;br /&gt;
:[[#Update_Authorisation_Key|Update]]&lt;br /&gt;
:[[#Remove_Authorisation_Key|Remove]]&lt;br /&gt;
&lt;br /&gt;
The authorisation key APIs are xml based responses which provide information and status details of the provided API methods in a common style to ease implementation and usage.&lt;br /&gt;
&lt;br /&gt;
The API methods are called by passing parameters to the required YP site url.&lt;br /&gt;
&lt;br /&gt;
When the API methods are called then the status code of the method response is set to the status code of the API method so it is easy to detect errors from calling the API method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Successful Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are no issues with the API method call then one of the following responses will be received as the response generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first response is the '''basic''' success response and is provided if there is no extra information to be returned by the API method:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second response is the '''full''' success response and is provided when the API method needs to return additional information such as the authorisation key when a new one is created or the details of the authorisation key when using the ''''check'''' method:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;!-- information is found here --&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Error Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are issues experienced during the API method call then an error response will be received which takes the following form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;440&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Invalid devId&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;!-- the following is optional dependent upon the error --&amp;gt;&lt;br /&gt;
 &amp;lt;statusDetailText&amp;gt;Invalid parameter k&amp;lt;/statusDetailText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In all uses of the API methods, the ''''statusCode'''' and ''''statusText'''' elements are provided when an error occurs. The ''''statusDetailText'''' value is an optional element and is only provided if the internal error handling is able to provide additional information. This will usually be present for errors relating to parameter issues i.e. missing parameters.&lt;br /&gt;
&lt;br /&gt;
See [[#Status_Codes|section 5]] for the status codes and messages returned when using the API methods.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API Usage==&lt;br /&gt;
&lt;br /&gt;
The following sections detail how to use the four authorisation key API methods.&lt;br /&gt;
&lt;br /&gt;
Importantly, once an authorisation key has been created then it will be locked to the Developer ID used so you can only check, update or remove authorisation keys against that Developer ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Create Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will create an authorisation key (authhash) and will return it in the xml response on success.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error will be left at their default values which will be indicated by empty xml elements when using the ''''check'''' API.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/createauthhash?k=[Your Dev ID]&amp;amp;stationname=The Station Name&amp;amp;genre=Rock&amp;amp;[Optional Parameters To Set]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (preferably use Shoutcast RadioManager email, if account exists, though any will suffice)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters (replace non-latin/non-alphanumeric characters with [https://www.degraeve.com/reference/urlencoding.php url-encoded] equivalents, e.g. &amp;amp; = %26)&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* genre2 genre3 genre4 genre5 - specify up to 4 additional genres&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
* admode - determine whether monetization support is enabled for DNAS v2.4.7 and later (0=off, 1=on)&lt;br /&gt;
* callsign - the GUID of station if registered in the Shoutcast RadioManager&lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the new authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;authhash&amp;gt;An_Authorisation_Key&amp;lt;/authhash&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Check Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will return all values for an existing authorisation key.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/checkauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to check&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the found details of the authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;response&amp;gt;&lt;br /&gt;
  &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
  &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
   &amp;lt;stationname&amp;gt;The Station Name&amp;lt;/stationname&amp;gt;&lt;br /&gt;
   &amp;lt;genre&amp;gt;Misc&amp;lt;/genre&amp;gt;&lt;br /&gt;
   &amp;lt;website&amp;gt;www.shoutcast.com&amp;lt;/website&amp;gt;&lt;br /&gt;
   &amp;lt;description&amp;gt;The Best Station Ever...!&amp;lt;/description&amp;gt;&lt;br /&gt;
   &amp;lt;langid&amp;gt;EN&amp;lt;/langid&amp;gt;&lt;br /&gt;
   &amp;lt;countryiso&amp;gt;US&amp;lt;/countryiso&amp;gt;&lt;br /&gt;
   &amp;lt;stateiso&amp;gt;00&amp;lt;/stateiso&amp;gt;&lt;br /&gt;
   &amp;lt;city&amp;gt;&amp;lt;/city&amp;gt;&lt;br /&gt;
   &amp;lt;keywords&amp;gt;Greatest Web Station&amp;lt;/keywords&amp;gt;&lt;br /&gt;
   &amp;lt;private&amp;gt;0&amp;lt;/private&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
 &amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 The &amp;lt;stateiso&amp;gt; element will only be returned if the &amp;lt;countryiso&amp;gt; element is 'US'.&lt;br /&gt;
&lt;br /&gt;
===Update Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will update an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error when making an update are reset to their default value when this completes. Otherwise this acts the same as the ''''create'''' API with the addition of specifying the authorisation key to update.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/updateauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;amp;stationname=The Station Name&amp;amp;genre=Misc&amp;amp;[Other Parameters To Update]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to update&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (this is so we can contact you easily in-case of an issue with your listing or needing to inform you of a required DNAS update)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* genre2 genre3 genre4 genre5 - specify up to 4 additional genres&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
* admode - determine whether monetization support is enabled for DNAS v2.4.7 and later (0=off, 1=on)&lt;br /&gt;
* logo - full url of jpeg or png station logo (limited to 2mb or 800x800 px). Previously used for Radionomy listings.&lt;br /&gt;
* callsign - the GUID of station if registered in the Shoutcast RadioManager &lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
===Remove Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will remove an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/removeauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to remove&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Resources==&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, some additional methods are provided for accessing the supported primary and secondary genres, country, state and language codes. These are provided as a means to check you are using the correct values or to use if creating your own interface around the core authorisation key APIs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These additional methods are accessed via &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/authutil_*&amp;lt;/nowiki&amp;gt; where '''*''' is then replaced with one of the following to get the required information:&lt;br /&gt;
&lt;br /&gt;
* '''country''' - provides provides a html select control containing the ISO 3166-1-alpha-2 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''languages''' - provides provides a html select control containing the ISO 639-1 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''states''' - provides provides a html select control containing the USPO state code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''primarygenre''' - provides a html select control of the primary genres recognised&lt;br /&gt;
&lt;br /&gt;
* '''secondarygenre?primarygenre=&amp;lt;genre&amp;gt;''' - provides a html select control of the secondary genres related to the primary genre passed or an empty response if there are no genres found&lt;br /&gt;
&lt;br /&gt;
* '''parentgenre?genre=&amp;lt;genre&amp;gt;''' - provides the name of the parent genre of the passed genre or an empty response if there is no parent genre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All additional methods (excluding the ''''parentgenre'''' method) provide a fully formed html select control which is filled with relevent values based on the parameter passed to the method (if applicable). These are done like this to allow for ease of insertion into a&lt;br /&gt;
&amp;lt;div&amp;gt; element for example with an interface used to control the APIs.&lt;br /&gt;
&lt;br /&gt;
Calling these additional methods (excluding the ''''parentgenre'''' method) with ''''&amp;amp;raw=1'''' in the url will output the result (if applicable) as plain text instead of as a html select control. The values returned are separated by a comma and each data pair is then placed on a new line. This is provided as a quick way of getting the recognised values if the html select control is not suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===User Interface Versions===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, specifying ''''ui_'''' on the front of the API method e.g. &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/ui_checkauthhash&amp;lt;/nowiki&amp;gt; for the ''''check'''' method provides a pre-built interface pages which can be used as a base point for making your own interface for the authorisation key APIs or to use as is as long as you have the required developer access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Genres===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The genre specified for an authhash can only be a primary genre (e.g. Misc) or it can be a secondary genre related to a chosen primary genre (e.g. House from Electronic). The following lists the supported primary genres and the associated secondary genres to them.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Primary Genre&lt;br /&gt;
!Associated Secondary Genres&lt;br /&gt;
|-&lt;br /&gt;
| Alternative || Adult Alternative, Britpop, Classic Alternative, College, Dancepunk, Dream Pop, Emo, Goth, Grunge, Hardcore, Indie Pop, Indie Rock, Industrial, LoFi, Modern Rock, New Wave, Noise Pop, Post Punk, Power Pop, Punk, Ska, Xtreme&lt;br /&gt;
|-&lt;br /&gt;
| Blues || Acoustic Blues, Cajun and Zydeco, Chicago Blues, Contemporary Blues, Country Blues, Delta Blues, Electric Blues&lt;br /&gt;
|-&lt;br /&gt;
| Classical || Baroque, Chamber, Choral, Classical Period, Early Classical, Impressionist, Modern, Opera, Piano, Romantic, Symphony&lt;br /&gt;
|-&lt;br /&gt;
| Country || Alt Country, Americana, Bluegrass, Classic Country, Contemporary Bluegrass, Contemporary Country, Honky Tonk, Hot Country Hits, Western&lt;br /&gt;
|-&lt;br /&gt;
| Decades || 30s, 40s, 50s, 60s, 70s, 80s, 90s, 00s&lt;br /&gt;
|-&lt;br /&gt;
| Easy Listening || Exotica, Light Rock, Lounge, Orchestral Pop, Polka, Space Age Pop&lt;br /&gt;
|-&lt;br /&gt;
| Electronic || Acid House, Ambient, Big Beat, Breakbeat, Dance, Demo, Disco, Downtempo, Drum and Bass, Dubstep, Electro, Garage, Hard House, House, IDM, Jungle, Progressive, Techno, Trance, Tribal, Trip Hop&lt;br /&gt;
|-&lt;br /&gt;
| Folk || Alternative Folk, Contemporary Folk, Folk Rock, New Acoustic, Old Time, Traditional Folk, World Folk&lt;br /&gt;
|-&lt;br /&gt;
| Inspirational || Christian, Christian Metal, Christian Rap, Christian Rock, Classic Christian, Contemporary Gospel, Gospel, Praise and Worship, Sermons and Services, Southern Gospel, Traditional Gospel&lt;br /&gt;
|-&lt;br /&gt;
| International || African, Afrikaans, Arabic, Asian, Bollywood, Brazilian, Caribbean, Celtic, Chinese, Creole, European, Filipino, French, German, Greek, Hawaiian and Pacific, Hebrew, Hindi, Indian, Islamic, Japanese, Klezmer, Korean, Mediterranean, Middle Eastern, North American, Russian, Soca, South American, Tamil, Turkish, Worldbeat, Zouk&lt;br /&gt;
|-&lt;br /&gt;
| Jazz || Acid Jazz, Avant Garde, Big Band, Bop, Classic Jazz, Cool Jazz, Fusion, Hard Bop, Latin Jazz, Smooth Jazz, Swing, Vocal Jazz, World Fusion&lt;br /&gt;
|-&lt;br /&gt;
| Latin || Bachata, Banda, Bossa Nova, Cumbia, Flamenco, Latin Dance, Latin Pop, Latin Rap and Hip Hop, Latin Rock, Mariachi, Merengue, Ranchera, Reggaeton, Regional Mexican, Salsa, Samba, Tango, Tejano, Tropicalia&lt;br /&gt;
|-&lt;br /&gt;
| Metal || Black Metal, Classic Metal, Death Metal, Extreme Metal, Grindcore, Hair Metal, Heavy Metal, Metalcore, Power Metal, Progressive Metal, Rap Metal, Thrash Metal&lt;br /&gt;
|-&lt;br /&gt;
| New Age || Environmental, Ethnic Fusion, Healing, Meditation, Spiritual&lt;br /&gt;
|-&lt;br /&gt;
| Pop || Adult Contemporary, Barbershop, Bubblegum Pop, Dance Pop, Idols, JPOP, KPOP, Oldies, Soft Rock, Teen Pop, Top 40, World Pop&lt;br /&gt;
|-&lt;br /&gt;
| Public Radio || College, News, Sports, Talk, Weather&lt;br /&gt;
|-&lt;br /&gt;
| R&amp;amp;B and Urban || &lt;br /&gt;
|-&lt;br /&gt;
| Rap || Alternative Rap, Dirty South, East Coast Rap, Freestyle, Gangsta Rap, Hip Hop, Mixtapes, Old School, Turntablism, Underground Hip Hop, West Coast Rap&lt;br /&gt;
|-&lt;br /&gt;
| Reggae || Contemporary Reggae, Dancehall, Dub, Pop Reggae, Ragga, Reggae Roots, Rock Steady&lt;br /&gt;
|-&lt;br /&gt;
| Rock || Adult Album Alternative, British Invasion, Celtic Rock, Classic Rock, Garage Rock, Glam, Hard Rock, Jam Bands, JROCK, Piano Rock, Prog Rock, Psychedelic, Rock &amp;amp; Roll, Rockabilly, Singer and Songwriter, Surf&lt;br /&gt;
|-&lt;br /&gt;
| Seasonal and Holiday || Anniversary, Birthday, Christmas, Halloween, Hanukkah, Honeymoon, Kwanzaa, Valentine, Wedding, Winter&lt;br /&gt;
|-&lt;br /&gt;
| Soundtracks || Anime, Kids, Original Score, Showtunes, Video Game Music&lt;br /&gt;
|-&lt;br /&gt;
| Talk || BlogTalk, Comedy, Community, Educational, Government, News, Old Time Radio, Other Talk, Political, Scanner, Spoken Word, Sports, Technology&lt;br /&gt;
|-&lt;br /&gt;
| Themes || Adult, Best Of, Chill, Eclectic, Experimental, Female, Heartache, Instrumental, LGBT, Love and Romance, Party Mix, Patriotic, Rainy Day Mix, Reality, Se xy ''(remove space for actual word - spam filter display issue)'', Shuffle, Travel Mix, Tribute, Trippy, Work Mix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Illegal Input Values===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following values are not allowed when entered as the stationname (case insensitively) and will cause a 456 error response to be received when an authorisation key is created or updated as they are not easily found when multiple other listings are also using the same stationame.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 127.0.0.1 || admin || auto dj || auto jedi&lt;br /&gt;
|-&lt;br /&gt;
| auto pj || auto-dj || autodj || autopj&lt;br /&gt;
|-&lt;br /&gt;
| demo || dj || internet radio || live&lt;br /&gt;
|-&lt;br /&gt;
| local server || localhost || localserver || music&lt;br /&gt;
|-&lt;br /&gt;
| my radio || my server || my station name || my test server&lt;br /&gt;
|-&lt;br /&gt;
| n/a || pj || playlist || radio&lt;br /&gt;
|-&lt;br /&gt;
| radio station || test || test server || unnamed server&lt;br /&gt;
|-&lt;br /&gt;
| virtual dj || virtualdj || web rdio || web radio&lt;br /&gt;
|-&lt;br /&gt;
| song || teste || default stream || radio stream&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Additionally, stationnames just containing punctuation are not allowed as well as any which specify a name which matches with the supported genres (see [[SHOUTcast_Radio_Authhash_API#Supported_Genres|section 4.2]]).&lt;br /&gt;
&lt;br /&gt;
==Status Codes==&lt;br /&gt;
&lt;br /&gt;
The following status codes are returned on success or error when using the provided APIs:&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Code&lt;br /&gt;
!Status Text&lt;br /&gt;
!Detailed Text (if available)&lt;br /&gt;
|-&lt;br /&gt;
| 200 || Ok || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 400 || Generic Error || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 404 || Page Not Found || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 440 || Invalid devId || Invalid parameter k&lt;br /&gt;
|-&lt;br /&gt;
| 456 || Parameter value not allowed || ''&amp;lt;variable&amp;gt;=&amp;lt;value&amp;gt;'' not allowed&lt;br /&gt;
|-&lt;br /&gt;
| 458 || Building internal value failure || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 459 || Authhash could not be found for reading || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 460 || Missing required parameter || Missing ''&amp;lt;variable&amp;gt;''&lt;br /&gt;
|-&lt;br /&gt;
| 461 || Error while updating authhash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 462 || Parameter error || Invalid parameter &amp;lt;variable&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 463 || Invalid station result returned || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 464 || Authhash could not be found or removed || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 465 || Required parameter missing for registration || ''&amp;lt;variable&amp;gt;'' is a required parameter&lt;br /&gt;
|-&lt;br /&gt;
| 466 || Parameter outside of allowed range || ''&amp;lt;variable&amp;gt;'' parameter too long&lt;br /&gt;
|-&lt;br /&gt;
| 467 || Parameter value not recognized in stored values || ''&amp;lt;variable&amp;gt;'' value not recognized&lt;br /&gt;
|-&lt;br /&gt;
| 468 || Error creating intended xml response || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 469 || Authhash could not be updated as not found || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 470 || Invalid authorization hash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 500 || Generic Server Error || n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;variable&amp;gt;'' value in the detailed text will be replaced with the parameter name which the error relates to. The ''&amp;lt;value&amp;gt;'' value in the detailed text will be replaced with the parameter value which the error relates to.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_Developer</id>
		<title>SHOUTcast Developer</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_Developer"/>
				<updated>2021-11-29T13:39:17Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: Fixed old link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here you can find some of the technical documentation about some of the Shoutcast system from accessing the Shoutcast Radio Directory to the streaming protocol used as well as some legacy information for historical purposes.&lt;br /&gt;
&lt;br /&gt;
::'''[[SHOUTcast_API_License_Agreement|Shoutcast API Usage Restrictions and Logos]]'''&lt;br /&gt;
&lt;br /&gt;
::'''[https://www.shoutcast.com/Partners API Partner Applications (How and Where to Request a DevID Key)]'''&lt;br /&gt;
&lt;br /&gt;
::'''[[SHOUTcast_Radio_Directory_API|Shoutcast Radio Directory Partner API Documentation]]''' - Reference for accessing information from the Radio Directory&lt;br /&gt;
&lt;br /&gt;
::'''[[SHOUTcast_Radio_Authhash_API|Shoutcast Radio Authhash Partner API Documentation]]''' - Reference for accessing the Shoutcast 2 Authhash Management API&lt;br /&gt;
&lt;br /&gt;
::'''[[SHOUTcast_2_%28Ultravox_2.1%29_Protocol_Details|Shoutcast / Ultravox 2.1 Protocol Details]]''' - Reference for anyone wanting to implement clients or servers supporting the Shoutcast 2 protocol&lt;br /&gt;
&lt;br /&gt;
::'''[[SHOUTcast_XML_Metadata_Specification|Shoutcast XML Metadata Specification]]'''&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_API_License_Agreement</id>
		<title>SHOUTcast API License Agreement</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_API_License_Agreement"/>
				<updated>2020-06-06T10:57:50Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Shoutcast API Usage Restrictions'''&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
By using our API, you agree to the following restrictions which are in place to protect the SHOUTcast brand and ServiceMark.&lt;br /&gt;
&lt;br /&gt;
* Please do not hammer the servers. We request reasonable usage and recommend that you utilize local caching.&lt;br /&gt;
&lt;br /&gt;
* Do not copy the shoutcast.com design, make your design as original as possible.&lt;br /&gt;
&lt;br /&gt;
* We reserve the right to revoke access for DevIDs which abuse the system.&lt;br /&gt;
&lt;br /&gt;
* We have included official logos for your usage below (with more to follow later).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''API License Terms'''&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://shoutcast.com/Legal/LicenseAPI https://shoutcast.com/Legal/LicenseAPI]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Shoutcast Logos'''&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Here are the Shoutcast logos which can be used according to the above guidelines&lt;br /&gt;
&lt;br /&gt;
[[File:shoutcast.png|thumb|left|alt=Shoutcast Logo 1]]&lt;br /&gt;
&lt;br /&gt;
[[File:Logo_shoutcast.png|thumb|left|alt=Shoutcast Logo 2]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_API_License_Agreement</id>
		<title>SHOUTcast API License Agreement</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_API_License_Agreement"/>
				<updated>2020-06-06T10:57:23Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''SHOUTcast API Usage Restrictions'''&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
By using our API, you agree to the following restrictions which are in place to protect the SHOUTcast brand and ServiceMark.&lt;br /&gt;
&lt;br /&gt;
* Please do not hammer the servers. We request reasonable usage and recommend that you utilize local caching.&lt;br /&gt;
&lt;br /&gt;
* Do not copy the shoutcast.com design, make your design as original as possible.&lt;br /&gt;
&lt;br /&gt;
* We reserve the right to revoke access for DevIDs which abuse the system.&lt;br /&gt;
&lt;br /&gt;
* We have included official logos for your usage below (with more to follow later).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''API License Terms'''&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://shoutcast.com/Legal/LicenseAPI https://shoutcast.com/Legal/LicenseAPI]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''SHOUTcast Logos'''&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Here are the Shoutcast logos which can be used according to the above guidelines&lt;br /&gt;
&lt;br /&gt;
[[File:shoutcast.png|thumb|left|alt=Shoutcast Logo 1]]&lt;br /&gt;
&lt;br /&gt;
[[File:Logo_shoutcast.png|thumb|left|alt=Shoutcast Logo 2]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API</id>
		<title>SHOUTcast Radio Authhash API</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API"/>
				<updated>2020-05-27T12:14:11Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Supported Genres */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
A key aspect of the SHOUTcast 2.0 system is the usage of authorisation keys to control the listing of stations within the SHOUTcast Radio Directory (otherwise known as the YP).&lt;br /&gt;
&lt;br /&gt;
The API which is documented here is provided as a means for registered developers to be able to obtain and manage any authorisation keys for the station(s) they are providing.&lt;br /&gt;
&lt;br /&gt;
The API works for generating and editing a 20 character v2.x authhash for DNAS v2.5.5 and earlier.&lt;br /&gt;
It will not work for editing the 32 character GUID-style authhash used in DNAS v2.6, although v2.6.0.753 does now accept a v2.5x authhash.&lt;br /&gt;
&lt;br /&gt;
==API Overview==&lt;br /&gt;
&lt;br /&gt;
There are four core parts of the authorisation key APIs (usage details are in [[#API_Usage|section 3]]):&lt;br /&gt;
&lt;br /&gt;
:[[#Create_Authorisation_Key|Create]]&lt;br /&gt;
:[[#Check_Authorisation_Key|Check]]&lt;br /&gt;
:[[#Update_Authorisation_Key|Update]]&lt;br /&gt;
:[[#Remove_Authorisation_Key|Remove]]&lt;br /&gt;
&lt;br /&gt;
The authorisation key APIs are xml based responses which provide information and status details of the provided API methods in a common style to ease implementation and usage.&lt;br /&gt;
&lt;br /&gt;
The API methods are called by passing parameters to the required YP site url.&lt;br /&gt;
&lt;br /&gt;
When the API methods are called then the status code of the method response is set to the status code of the API method so it is easy to detect errors from calling the API method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Successful Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are no issues with the API method call then one of the following responses will be received as the response generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first response is the '''basic''' success response and is provided if there is no extra information to be returned by the API method:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second response is the '''full''' success response and is provided when the API method needs to return additional information such as the authorisation key when a new one is created or the details of the authorisation key when using the ''''check'''' method:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;!-- information is found here --&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Error Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are issues experienced during the API method call then an error response will be received which takes the following form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;440&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Invalid devId&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;!-- the following is optional dependent upon the error --&amp;gt;&lt;br /&gt;
 &amp;lt;statusDetailText&amp;gt;Invalid parameter k&amp;lt;/statusDetailText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In all uses of the API methods, the ''''statusCode'''' and ''''statusText'''' elements are provided when an error occurs. The ''''statusDetailText'''' value is an optional element and is only provided if the internal error handling is able to provide additional information. This will usually be present for errors relating to parameter issues i.e. missing parameters.&lt;br /&gt;
&lt;br /&gt;
See [[#Status_Codes|section 5]] for the status codes and messages returned when using the API methods.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API Usage==&lt;br /&gt;
&lt;br /&gt;
The following sections detail how to use the four authorisation key API methods.&lt;br /&gt;
&lt;br /&gt;
Importantly, once an authorisation key has been created then it will be locked to the Developer ID used so you can only check, update or remove authorisation keys against that Developer ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Create Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will create an authorisation key (authhash) and will return it in the xml response on success.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error will be left at their default values which will be indicated by empty xml elements when using the ''''check'''' API.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/createauthhash?k=[Your Dev ID]&amp;amp;stationname=The Station Name&amp;amp;genre=Rock&amp;amp;[Optional Parameters To Set]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (preferably use Shoutcast RadioManager email, if account exists, though any will suffice)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters (replace non-latin/non-alphanumeric characters with [https://www.degraeve.com/reference/urlencoding.php url-encoded] equivalents, e.g. &amp;amp; = %26)&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* genre2 genre3 genre4 genre5 - specify up to 4 additional genres&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
* admode - determine whether monetization support is enabled for DNAS v2.4.7 and later (0=off, 1=on)&lt;br /&gt;
* callsign - the GUID of station if registered in the Shoutcast RadioManager&lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the new authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;authhash&amp;gt;An_Authorisation_Key&amp;lt;/authhash&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Check Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will return all values for an existing authorisation key.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/checkauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to check&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the found details of the authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;response&amp;gt;&lt;br /&gt;
  &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
  &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
   &amp;lt;stationname&amp;gt;The Station Name&amp;lt;/stationname&amp;gt;&lt;br /&gt;
   &amp;lt;genre&amp;gt;Misc&amp;lt;/genre&amp;gt;&lt;br /&gt;
   &amp;lt;website&amp;gt;www.shoutcast.com&amp;lt;/website&amp;gt;&lt;br /&gt;
   &amp;lt;description&amp;gt;The Best Station Ever...!&amp;lt;/description&amp;gt;&lt;br /&gt;
   &amp;lt;langid&amp;gt;EN&amp;lt;/langid&amp;gt;&lt;br /&gt;
   &amp;lt;countryiso&amp;gt;US&amp;lt;/countryiso&amp;gt;&lt;br /&gt;
   &amp;lt;stateiso&amp;gt;00&amp;lt;/stateiso&amp;gt;&lt;br /&gt;
   &amp;lt;city&amp;gt;&amp;lt;/city&amp;gt;&lt;br /&gt;
   &amp;lt;keywords&amp;gt;Greatest Web Station&amp;lt;/keywords&amp;gt;&lt;br /&gt;
   &amp;lt;private&amp;gt;0&amp;lt;/private&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
 &amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 The &amp;lt;stateiso&amp;gt; element will only be returned if the &amp;lt;countryiso&amp;gt; element is 'US'.&lt;br /&gt;
&lt;br /&gt;
===Update Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will update an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error when making an update are reset to their default value when this completes. Otherwise this acts the same as the ''''create'''' API with the addition of specifying the authorisation key to update.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/updateauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;amp;stationname=The Station Name&amp;amp;genre=Misc&amp;amp;[Other Parameters To Update]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to update&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (this is so we can contact you easily in-case of an issue with your listing or needing to inform you of a required DNAS update)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* genre2 genre3 genre4 genre5 - specify up to 4 additional genres&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
* admode - determine whether monetization support is enabled for DNAS v2.4.7 and later (0=off, 1=on)&lt;br /&gt;
* callsign - the GUID of station if registered in the Shoutcast RadioManager &lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
===Remove Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will remove an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/removeauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to remove&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Resources==&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, some additional methods are provided for accessing the supported primary and secondary genres, country, state and language codes. These are provided as a means to check you are using the correct values or to use if creating your own interface around the core authorisation key APIs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These additional methods are accessed via &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/authutil_*&amp;lt;/nowiki&amp;gt; where '''*''' is then replaced with one of the following to get the required information:&lt;br /&gt;
&lt;br /&gt;
* '''country''' - provides provides a html select control containing the ISO 3166-1-alpha-2 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''languages''' - provides provides a html select control containing the ISO 639-1 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''states''' - provides provides a html select control containing the USPO state code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''primarygenre''' - provides a html select control of the primary genres recognised&lt;br /&gt;
&lt;br /&gt;
* '''secondarygenre?primarygenre=&amp;lt;genre&amp;gt;''' - provides a html select control of the secondary genres related to the primary genre passed or an empty response if there are no genres found&lt;br /&gt;
&lt;br /&gt;
* '''parentgenre?genre=&amp;lt;genre&amp;gt;''' - provides the name of the parent genre of the passed genre or an empty response if there is no parent genre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All additional methods (excluding the ''''parentgenre'''' method) provide a fully formed html select control which is filled with relevent values based on the parameter passed to the method (if applicable). These are done like this to allow for ease of insertion into a&lt;br /&gt;
&amp;lt;div&amp;gt; element for example with an interface used to control the APIs.&lt;br /&gt;
&lt;br /&gt;
Calling these additional methods (excluding the ''''parentgenre'''' method) with ''''&amp;amp;raw=1'''' in the url will output the result (if applicable) as plain text instead of as a html select control. The values returned are separated by a comma and each data pair is then placed on a new line. This is provided as a quick way of getting the recognised values if the html select control is not suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===User Interface Versions===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, specifying ''''ui_'''' on the front of the API method e.g. &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/ui_checkauthhash&amp;lt;/nowiki&amp;gt; for the ''''check'''' method provides a pre-built interface pages which can be used as a base point for making your own interface for the authorisation key APIs or to use as is as long as you have the required developer access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Genres===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The genre specified for an authhash can only be a primary genre (e.g. Misc) or it can be a secondary genre related to a chosen primary genre (e.g. House from Electronic). The following lists the supported primary genres and the associated secondary genres to them.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Primary Genre&lt;br /&gt;
!Associated Secondary Genres&lt;br /&gt;
|-&lt;br /&gt;
| Alternative || Adult Alternative, Britpop, Classic Alternative, College, Dancepunk, Dream Pop, Emo, Goth, Grunge, Hardcore, Indie Pop, Indie Rock, Industrial, LoFi, Modern Rock, New Wave, Noise Pop, Post Punk, Power Pop, Punk, Ska, Xtreme&lt;br /&gt;
|-&lt;br /&gt;
| Blues || Acoustic Blues, Cajun and Zydeco, Chicago Blues, Contemporary Blues, Country Blues, Delta Blues, Electric Blues&lt;br /&gt;
|-&lt;br /&gt;
| Classical || Baroque, Chamber, Choral, Classical Period, Early Classical, Impressionist, Modern, Opera, Piano, Romantic, Symphony&lt;br /&gt;
|-&lt;br /&gt;
| Country || Alt Country, Americana, Bluegrass, Classic Country, Contemporary Bluegrass, Contemporary Country, Honky Tonk, Hot Country Hits, Western&lt;br /&gt;
|-&lt;br /&gt;
| Decades || 30s, 40s, 50s, 60s, 70s, 80s, 90s, 00s&lt;br /&gt;
|-&lt;br /&gt;
| Easy Listening || Exotica, Light Rock, Lounge, Orchestral Pop, Polka, Space Age Pop&lt;br /&gt;
|-&lt;br /&gt;
| Electronic || Acid House, Ambient, Big Beat, Breakbeat, Dance, Demo, Disco, Downtempo, Drum and Bass, Dubstep, Electro, Garage, Hard House, House, IDM, Jungle, Progressive, Techno, Trance, Tribal, Trip Hop&lt;br /&gt;
|-&lt;br /&gt;
| Folk || Alternative Folk, Contemporary Folk, Folk Rock, New Acoustic, Old Time, Traditional Folk, World Folk&lt;br /&gt;
|-&lt;br /&gt;
| Inspirational || Christian, Christian Metal, Christian Rap, Christian Rock, Classic Christian, Contemporary Gospel, Gospel, Praise and Worship, Sermons and Services, Southern Gospel, Traditional Gospel&lt;br /&gt;
|-&lt;br /&gt;
| International || African, Afrikaans, Arabic, Asian, Bollywood, Brazilian, Caribbean, Celtic, Chinese, Creole, European, Filipino, French, German, Greek, Hawaiian and Pacific, Hebrew, Hindi, Indian, Islamic, Japanese, Klezmer, Korean, Mediterranean, Middle Eastern, North American, Russian, Soca, South American, Tamil, Turkish, Worldbeat, Zouk&lt;br /&gt;
|-&lt;br /&gt;
| Jazz || Acid Jazz, Avant Garde, Big Band, Bop, Classic Jazz, Cool Jazz, Fusion, Hard Bop, Latin Jazz, Smooth Jazz, Swing, Vocal Jazz, World Fusion&lt;br /&gt;
|-&lt;br /&gt;
| Latin || Bachata, Banda, Bossa Nova, Cumbia, Flamenco, Latin Dance, Latin Pop, Latin Rap and Hip Hop, Latin Rock, Mariachi, Merengue, Ranchera, Reggaeton, Regional Mexican, Salsa, Samba, Tango, Tejano, Tropicalia&lt;br /&gt;
|-&lt;br /&gt;
| Metal || Black Metal, Classic Metal, Death Metal, Extreme Metal, Grindcore, Hair Metal, Heavy Metal, Metalcore, Power Metal, Progressive Metal, Rap Metal, Thrash Metal&lt;br /&gt;
|-&lt;br /&gt;
| New Age || Environmental, Ethnic Fusion, Healing, Meditation, Spiritual&lt;br /&gt;
|-&lt;br /&gt;
| Pop || Adult Contemporary, Barbershop, Bubblegum Pop, Dance Pop, Idols, JPOP, KPOP, Oldies, Soft Rock, Teen Pop, Top 40, World Pop&lt;br /&gt;
|-&lt;br /&gt;
| Public Radio || College, News, Sports, Talk, Weather&lt;br /&gt;
|-&lt;br /&gt;
| R&amp;amp;B and Urban || &lt;br /&gt;
|-&lt;br /&gt;
| Rap || Alternative Rap, Dirty South, East Coast Rap, Freestyle, Gangsta Rap, Hip Hop, Mixtapes, Old School, Turntablism, Underground Hip Hop, West Coast Rap&lt;br /&gt;
|-&lt;br /&gt;
| Reggae || Contemporary Reggae, Dancehall, Dub, Pop Reggae, Ragga, Reggae Roots, Rock Steady&lt;br /&gt;
|-&lt;br /&gt;
| Rock || Adult Album Alternative, British Invasion, Celtic Rock, Classic Rock, Garage Rock, Glam, Hard Rock, Jam Bands, JROCK, Piano Rock, Prog Rock, Psychedelic, Rock &amp;amp; Roll, Rockabilly, Singer and Songwriter, Surf&lt;br /&gt;
|-&lt;br /&gt;
| Seasonal and Holiday || Anniversary, Birthday, Christmas, Halloween, Hanukkah, Honeymoon, Kwanzaa, Valentine, Wedding, Winter&lt;br /&gt;
|-&lt;br /&gt;
| Soundtracks || Anime, Kids, Original Score, Showtunes, Video Game Music&lt;br /&gt;
|-&lt;br /&gt;
| Talk || BlogTalk, Comedy, Community, Educational, Government, News, Old Time Radio, Other Talk, Political, Scanner, Spoken Word, Sports, Technology&lt;br /&gt;
|-&lt;br /&gt;
| Themes || Adult, Best Of, Chill, Eclectic, Experimental, Female, Heartache, Instrumental, LGBT, Love and Romance, Party Mix, Patriotic, Rainy Day Mix, Reality, Se xy ''(remove space for actual word - spam filter display issue)'', Shuffle, Travel Mix, Tribute, Trippy, Work Mix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Illegal Input Values===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following values are not allowed when entered as the stationname (case insensitively) and will cause a 456 error response to be received when an authorisation key is created or updated as they are not easily found when multiple other listings are also using the same stationame.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 127.0.0.1 || admin || auto dj || auto jedi&lt;br /&gt;
|-&lt;br /&gt;
| auto pj || auto-dj || autodj || autopj&lt;br /&gt;
|-&lt;br /&gt;
| demo || dj || internet radio || live&lt;br /&gt;
|-&lt;br /&gt;
| local server || localhost || localserver || music&lt;br /&gt;
|-&lt;br /&gt;
| my radio || my server || my station name || my test server&lt;br /&gt;
|-&lt;br /&gt;
| n/a || pj || playlist || radio&lt;br /&gt;
|-&lt;br /&gt;
| radio station || test || test server || unnamed server&lt;br /&gt;
|-&lt;br /&gt;
| virtual dj || virtualdj || web rdio || web radio&lt;br /&gt;
|-&lt;br /&gt;
| song || teste || default stream || radio stream&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Additionally, stationnames just containing punctuation are not allowed as well as any which specify a name which matches with the supported genres (see [[SHOUTcast_Radio_Authhash_API#Supported_Genres|section 4.2]]).&lt;br /&gt;
&lt;br /&gt;
==Status Codes==&lt;br /&gt;
&lt;br /&gt;
The following status codes are returned on success or error when using the provided APIs:&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Code&lt;br /&gt;
!Status Text&lt;br /&gt;
!Detailed Text (if available)&lt;br /&gt;
|-&lt;br /&gt;
| 200 || Ok || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 400 || Generic Error || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 404 || Page Not Found || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 440 || Invalid devId || Invalid parameter k&lt;br /&gt;
|-&lt;br /&gt;
| 456 || Parameter value not allowed || ''&amp;lt;variable&amp;gt;=&amp;lt;value&amp;gt;'' not allowed&lt;br /&gt;
|-&lt;br /&gt;
| 458 || Building internal value failure || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 459 || Authhash could not be found for reading || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 460 || Missing required parameter || Missing ''&amp;lt;variable&amp;gt;''&lt;br /&gt;
|-&lt;br /&gt;
| 461 || Error while updating authhash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 462 || Parameter error || Invalid parameter &amp;lt;variable&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 463 || Invalid station result returned || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 464 || Authhash could not be found or removed || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 465 || Required parameter missing for registration || ''&amp;lt;variable&amp;gt;'' is a required parameter&lt;br /&gt;
|-&lt;br /&gt;
| 466 || Parameter outside of allowed range || ''&amp;lt;variable&amp;gt;'' parameter too long&lt;br /&gt;
|-&lt;br /&gt;
| 467 || Parameter value not recognized in stored values || ''&amp;lt;variable&amp;gt;'' value not recognized&lt;br /&gt;
|-&lt;br /&gt;
| 468 || Error creating intended xml response || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 469 || Authhash could not be updated as not found || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 470 || Invalid authorization hash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 500 || Generic Server Error || n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;variable&amp;gt;'' value in the detailed text will be replaced with the parameter name which the error relates to. The ''&amp;lt;value&amp;gt;'' value in the detailed text will be replaced with the parameter value which the error relates to.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API</id>
		<title>SHOUTcast Radio Authhash API</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API"/>
				<updated>2020-05-27T12:13:20Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Additional Resources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
A key aspect of the SHOUTcast 2.0 system is the usage of authorisation keys to control the listing of stations within the SHOUTcast Radio Directory (otherwise known as the YP).&lt;br /&gt;
&lt;br /&gt;
The API which is documented here is provided as a means for registered developers to be able to obtain and manage any authorisation keys for the station(s) they are providing.&lt;br /&gt;
&lt;br /&gt;
The API works for generating and editing a 20 character v2.x authhash for DNAS v2.5.5 and earlier.&lt;br /&gt;
It will not work for editing the 32 character GUID-style authhash used in DNAS v2.6, although v2.6.0.753 does now accept a v2.5x authhash.&lt;br /&gt;
&lt;br /&gt;
==API Overview==&lt;br /&gt;
&lt;br /&gt;
There are four core parts of the authorisation key APIs (usage details are in [[#API_Usage|section 3]]):&lt;br /&gt;
&lt;br /&gt;
:[[#Create_Authorisation_Key|Create]]&lt;br /&gt;
:[[#Check_Authorisation_Key|Check]]&lt;br /&gt;
:[[#Update_Authorisation_Key|Update]]&lt;br /&gt;
:[[#Remove_Authorisation_Key|Remove]]&lt;br /&gt;
&lt;br /&gt;
The authorisation key APIs are xml based responses which provide information and status details of the provided API methods in a common style to ease implementation and usage.&lt;br /&gt;
&lt;br /&gt;
The API methods are called by passing parameters to the required YP site url.&lt;br /&gt;
&lt;br /&gt;
When the API methods are called then the status code of the method response is set to the status code of the API method so it is easy to detect errors from calling the API method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Successful Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are no issues with the API method call then one of the following responses will be received as the response generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first response is the '''basic''' success response and is provided if there is no extra information to be returned by the API method:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second response is the '''full''' success response and is provided when the API method needs to return additional information such as the authorisation key when a new one is created or the details of the authorisation key when using the ''''check'''' method:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;!-- information is found here --&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Error Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are issues experienced during the API method call then an error response will be received which takes the following form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;440&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Invalid devId&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;!-- the following is optional dependent upon the error --&amp;gt;&lt;br /&gt;
 &amp;lt;statusDetailText&amp;gt;Invalid parameter k&amp;lt;/statusDetailText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In all uses of the API methods, the ''''statusCode'''' and ''''statusText'''' elements are provided when an error occurs. The ''''statusDetailText'''' value is an optional element and is only provided if the internal error handling is able to provide additional information. This will usually be present for errors relating to parameter issues i.e. missing parameters.&lt;br /&gt;
&lt;br /&gt;
See [[#Status_Codes|section 5]] for the status codes and messages returned when using the API methods.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API Usage==&lt;br /&gt;
&lt;br /&gt;
The following sections detail how to use the four authorisation key API methods.&lt;br /&gt;
&lt;br /&gt;
Importantly, once an authorisation key has been created then it will be locked to the Developer ID used so you can only check, update or remove authorisation keys against that Developer ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Create Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will create an authorisation key (authhash) and will return it in the xml response on success.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error will be left at their default values which will be indicated by empty xml elements when using the ''''check'''' API.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/createauthhash?k=[Your Dev ID]&amp;amp;stationname=The Station Name&amp;amp;genre=Rock&amp;amp;[Optional Parameters To Set]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (preferably use Shoutcast RadioManager email, if account exists, though any will suffice)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters (replace non-latin/non-alphanumeric characters with [https://www.degraeve.com/reference/urlencoding.php url-encoded] equivalents, e.g. &amp;amp; = %26)&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* genre2 genre3 genre4 genre5 - specify up to 4 additional genres&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
* admode - determine whether monetization support is enabled for DNAS v2.4.7 and later (0=off, 1=on)&lt;br /&gt;
* callsign - the GUID of station if registered in the Shoutcast RadioManager&lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the new authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;authhash&amp;gt;An_Authorisation_Key&amp;lt;/authhash&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Check Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will return all values for an existing authorisation key.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/checkauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to check&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the found details of the authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;response&amp;gt;&lt;br /&gt;
  &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
  &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
   &amp;lt;stationname&amp;gt;The Station Name&amp;lt;/stationname&amp;gt;&lt;br /&gt;
   &amp;lt;genre&amp;gt;Misc&amp;lt;/genre&amp;gt;&lt;br /&gt;
   &amp;lt;website&amp;gt;www.shoutcast.com&amp;lt;/website&amp;gt;&lt;br /&gt;
   &amp;lt;description&amp;gt;The Best Station Ever...!&amp;lt;/description&amp;gt;&lt;br /&gt;
   &amp;lt;langid&amp;gt;EN&amp;lt;/langid&amp;gt;&lt;br /&gt;
   &amp;lt;countryiso&amp;gt;US&amp;lt;/countryiso&amp;gt;&lt;br /&gt;
   &amp;lt;stateiso&amp;gt;00&amp;lt;/stateiso&amp;gt;&lt;br /&gt;
   &amp;lt;city&amp;gt;&amp;lt;/city&amp;gt;&lt;br /&gt;
   &amp;lt;keywords&amp;gt;Greatest Web Station&amp;lt;/keywords&amp;gt;&lt;br /&gt;
   &amp;lt;private&amp;gt;0&amp;lt;/private&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
 &amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 The &amp;lt;stateiso&amp;gt; element will only be returned if the &amp;lt;countryiso&amp;gt; element is 'US'.&lt;br /&gt;
&lt;br /&gt;
===Update Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will update an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error when making an update are reset to their default value when this completes. Otherwise this acts the same as the ''''create'''' API with the addition of specifying the authorisation key to update.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/updateauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;amp;stationname=The Station Name&amp;amp;genre=Misc&amp;amp;[Other Parameters To Update]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to update&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (this is so we can contact you easily in-case of an issue with your listing or needing to inform you of a required DNAS update)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* genre2 genre3 genre4 genre5 - specify up to 4 additional genres&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
* admode - determine whether monetization support is enabled for DNAS v2.4.7 and later (0=off, 1=on)&lt;br /&gt;
* callsign - the GUID of station if registered in the Shoutcast RadioManager &lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
===Remove Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will remove an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/removeauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to remove&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Resources==&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, some additional methods are provided for accessing the supported primary and secondary genres, country, state and language codes. These are provided as a means to check you are using the correct values or to use if creating your own interface around the core authorisation key APIs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These additional methods are accessed via &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/authutil_*&amp;lt;/nowiki&amp;gt; where '''*''' is then replaced with one of the following to get the required information:&lt;br /&gt;
&lt;br /&gt;
* '''country''' - provides provides a html select control containing the ISO 3166-1-alpha-2 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''languages''' - provides provides a html select control containing the ISO 639-1 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''states''' - provides provides a html select control containing the USPO state code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''primarygenre''' - provides a html select control of the primary genres recognised&lt;br /&gt;
&lt;br /&gt;
* '''secondarygenre?primarygenre=&amp;lt;genre&amp;gt;''' - provides a html select control of the secondary genres related to the primary genre passed or an empty response if there are no genres found&lt;br /&gt;
&lt;br /&gt;
* '''parentgenre?genre=&amp;lt;genre&amp;gt;''' - provides the name of the parent genre of the passed genre or an empty response if there is no parent genre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All additional methods (excluding the ''''parentgenre'''' method) provide a fully formed html select control which is filled with relevent values based on the parameter passed to the method (if applicable). These are done like this to allow for ease of insertion into a&lt;br /&gt;
&amp;lt;div&amp;gt; element for example with an interface used to control the APIs.&lt;br /&gt;
&lt;br /&gt;
Calling these additional methods (excluding the ''''parentgenre'''' method) with ''''&amp;amp;raw=1'''' in the url will output the result (if applicable) as plain text instead of as a html select control. The values returned are separated by a comma and each data pair is then placed on a new line. This is provided as a quick way of getting the recognised values if the html select control is not suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===User Interface Versions===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, specifying ''''ui_'''' on the front of the API method e.g. &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/ui_checkauthhash&amp;lt;/nowiki&amp;gt; for the ''''check'''' method provides a pre-built interface pages which can be used as a base point for making your own interface for the authorisation key APIs or to use as is as long as you have the required developer access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Genres===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The genre specified for an authhash can only be a primary genre (e.g. Misc) or it can be a secondary genre related to a chosen primary genre (e.g. House from Electronic). The following lists the supported primary genres and the associated secondary genres to them.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Primary Genre&lt;br /&gt;
!Associated Secondary Genres&lt;br /&gt;
|-&lt;br /&gt;
| Alternative || Adult Alternative, Britpop, Classic Alternative, College, Dancepunk, Dream Pop, Emo, Goth, Grunge, Hardcore, Indie Pop, Indie Rock, Industrial, LoFi, Modern Rock, New Wave, Noise Pop, Post Punk, Power Pop, Punk, Ska, Xtreme&lt;br /&gt;
|-&lt;br /&gt;
| Blues || Acoustic Blues, Cajun and Zydeco, Chicago Blues, Contemporary Blues, Country Blues, Delta Blues, Electric Blues&lt;br /&gt;
|-&lt;br /&gt;
| Classical || Baroque, Chamber, Choral, Classical Period, Early Classical, Impressionist, Modern, Opera, Piano, Romantic, Symphony&lt;br /&gt;
|-&lt;br /&gt;
| Country || Alt Country, Americana, Bluegrass, Classic Country, Contemporary Bluegrass, Contemporary Country, Honky Tonk, Hot Country Hits, Western&lt;br /&gt;
|-&lt;br /&gt;
| Decades || 30s, 40s, 50s, 60s, 70s, 80s, 90s, 00s&lt;br /&gt;
|-&lt;br /&gt;
| Easy Listening || Exotica, Light Rock, Lounge, Orchestral Pop, Polka, Space Age Pop&lt;br /&gt;
|-&lt;br /&gt;
| Electronic || Acid House, Ambient, Big Beat, Breakbeat, Dance, Demo, Disco, Downtempo, Drum and Bass, Dubstep, Electro, Garage, Hard House, House, IDM, Jungle, Progressive, Techno, Trance, Tribal, Trip Hop&lt;br /&gt;
|-&lt;br /&gt;
| Folk || Alternative Folk, Contemporary Folk, Folk Rock, New Acoustic, Old Time, Traditional Folk, World Folk&lt;br /&gt;
|-&lt;br /&gt;
| Inspirational || Christian, Christian Metal, Christian Rap, Christian Rock, Classic Christian, Contemporary Gospel, Gospel, Praise and Worship, Sermons and Services, Southern Gospel, Traditional Gospel&lt;br /&gt;
|-&lt;br /&gt;
| International || African, Afrikaans, Arabic, Asian, Bollywood, Brazilian, Caribbean, Celtic, Chinese, Creole, European, Filipino, French, German, Greek, Hawaiian and Pacific, Hebrew, Hindi, Indian, Islamic, Japanese, Klezmer, Korean, Mediterranean, Middle Eastern, North American, Russian, Soca, South American, Tamil, Turkish, Worldbeat, Zouk&lt;br /&gt;
|-&lt;br /&gt;
| Jazz || Acid Jazz, Avant Garde, Big Band, Bop, Classic Jazz, Cool Jazz, Fusion, Hard Bop, Latin Jazz, Smooth Jazz, Swing, Vocal Jazz, World Fusion&lt;br /&gt;
|-&lt;br /&gt;
| Latin || Bachata, Banda, Bossa Nova, Cumbia, Flamenco, Latin Dance, Latin Pop, Latin Rap and Hip Hop, Latin Rock, Mariachi, Merengue, Ranchera, Reggaeton, Regional Mexican, Salsa, Samba, Tango, Tejano, Tropicalia&lt;br /&gt;
|-&lt;br /&gt;
| Metal || Black Metal, Classic Metal, Death Metal, Extreme Metal, Grindcore, Hair Metal, Heavy Metal, Metalcore, Power Metal, Progressive Metal, Rap Metal, Thrash Metal&lt;br /&gt;
|-&lt;br /&gt;
| Misc || &lt;br /&gt;
|-&lt;br /&gt;
| New Age || Environmental, Ethnic Fusion, Healing, Meditation, Spiritual&lt;br /&gt;
|-&lt;br /&gt;
| Pop || Adult Contemporary, Barbershop, Bubblegum Pop, Dance Pop, Idols, JPOP, KPOP, Oldies, Soft Rock, Teen Pop, Top 40, World Pop&lt;br /&gt;
|-&lt;br /&gt;
| Public Radio || College, News, Sports, Talk, Weather&lt;br /&gt;
|-&lt;br /&gt;
| R&amp;amp;B and Urban || &lt;br /&gt;
|-&lt;br /&gt;
| Rap || Alternative Rap, Dirty South, East Coast Rap, Freestyle, Gangsta Rap, Hip Hop, Mixtapes, Old School, Turntablism, Underground Hip Hop, West Coast Rap&lt;br /&gt;
|-&lt;br /&gt;
| Reggae || Contemporary Reggae, Dancehall, Dub, Pop Reggae, Ragga, Reggae Roots, Rock Steady&lt;br /&gt;
|-&lt;br /&gt;
| Rock || Adult Album Alternative, British Invasion, Celtic Rock, Classic Rock, Garage Rock, Glam, Hard Rock, Jam Bands, JROCK, Piano Rock, Prog Rock, Psychedelic, Rock &amp;amp; Roll, Rockabilly, Singer and Songwriter, Surf&lt;br /&gt;
|-&lt;br /&gt;
| Seasonal and Holiday || Anniversary, Birthday, Christmas, Halloween, Hanukkah, Honeymoon, Kwanzaa, Valentine, Wedding, Winter&lt;br /&gt;
|-&lt;br /&gt;
| Soundtracks || Anime, Kids, Original Score, Showtunes, Video Game Music&lt;br /&gt;
|-&lt;br /&gt;
| Talk || BlogTalk, Comedy, Community, Educational, Government, News, Old Time Radio, Other Talk, Political, Scanner, Spoken Word, Sports, Technology&lt;br /&gt;
|-&lt;br /&gt;
| Themes || Adult, Best Of, Chill, Eclectic, Experimental, Female, Heartache, Instrumental, LGBT, Love and Romance, Party Mix, Patriotic, Rainy Day Mix, Reality, Se xy ''(remove space for actual word - spam filter display issue)'', Shuffle, Travel Mix, Tribute, Trippy, Work Mix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Illegal Input Values===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following values are not allowed when entered as the stationname (case insensitively) and will cause a 456 error response to be received when an authorisation key is created or updated as they are not easily found when multiple other listings are also using the same stationame.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 127.0.0.1 || admin || auto dj || auto jedi&lt;br /&gt;
|-&lt;br /&gt;
| auto pj || auto-dj || autodj || autopj&lt;br /&gt;
|-&lt;br /&gt;
| demo || dj || internet radio || live&lt;br /&gt;
|-&lt;br /&gt;
| local server || localhost || localserver || music&lt;br /&gt;
|-&lt;br /&gt;
| my radio || my server || my station name || my test server&lt;br /&gt;
|-&lt;br /&gt;
| n/a || pj || playlist || radio&lt;br /&gt;
|-&lt;br /&gt;
| radio station || test || test server || unnamed server&lt;br /&gt;
|-&lt;br /&gt;
| virtual dj || virtualdj || web rdio || web radio&lt;br /&gt;
|-&lt;br /&gt;
| song || teste || default stream || radio stream&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Additionally, stationnames just containing punctuation are not allowed as well as any which specify a name which matches with the supported genres (see [[SHOUTcast_Radio_Authhash_API#Supported_Genres|section 4.2]]).&lt;br /&gt;
&lt;br /&gt;
==Status Codes==&lt;br /&gt;
&lt;br /&gt;
The following status codes are returned on success or error when using the provided APIs:&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Code&lt;br /&gt;
!Status Text&lt;br /&gt;
!Detailed Text (if available)&lt;br /&gt;
|-&lt;br /&gt;
| 200 || Ok || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 400 || Generic Error || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 404 || Page Not Found || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 440 || Invalid devId || Invalid parameter k&lt;br /&gt;
|-&lt;br /&gt;
| 456 || Parameter value not allowed || ''&amp;lt;variable&amp;gt;=&amp;lt;value&amp;gt;'' not allowed&lt;br /&gt;
|-&lt;br /&gt;
| 458 || Building internal value failure || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 459 || Authhash could not be found for reading || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 460 || Missing required parameter || Missing ''&amp;lt;variable&amp;gt;''&lt;br /&gt;
|-&lt;br /&gt;
| 461 || Error while updating authhash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 462 || Parameter error || Invalid parameter &amp;lt;variable&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 463 || Invalid station result returned || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 464 || Authhash could not be found or removed || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 465 || Required parameter missing for registration || ''&amp;lt;variable&amp;gt;'' is a required parameter&lt;br /&gt;
|-&lt;br /&gt;
| 466 || Parameter outside of allowed range || ''&amp;lt;variable&amp;gt;'' parameter too long&lt;br /&gt;
|-&lt;br /&gt;
| 467 || Parameter value not recognized in stored values || ''&amp;lt;variable&amp;gt;'' value not recognized&lt;br /&gt;
|-&lt;br /&gt;
| 468 || Error creating intended xml response || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 469 || Authhash could not be updated as not found || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 470 || Invalid authorization hash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 500 || Generic Server Error || n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;variable&amp;gt;'' value in the detailed text will be replaced with the parameter name which the error relates to. The ''&amp;lt;value&amp;gt;'' value in the detailed text will be replaced with the parameter value which the error relates to.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API</id>
		<title>SHOUTcast Radio Authhash API</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API"/>
				<updated>2020-05-27T12:12:23Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Additional Resources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
A key aspect of the SHOUTcast 2.0 system is the usage of authorisation keys to control the listing of stations within the SHOUTcast Radio Directory (otherwise known as the YP).&lt;br /&gt;
&lt;br /&gt;
The API which is documented here is provided as a means for registered developers to be able to obtain and manage any authorisation keys for the station(s) they are providing.&lt;br /&gt;
&lt;br /&gt;
The API works for generating and editing a 20 character v2.x authhash for DNAS v2.5.5 and earlier.&lt;br /&gt;
It will not work for editing the 32 character GUID-style authhash used in DNAS v2.6, although v2.6.0.753 does now accept a v2.5x authhash.&lt;br /&gt;
&lt;br /&gt;
==API Overview==&lt;br /&gt;
&lt;br /&gt;
There are four core parts of the authorisation key APIs (usage details are in [[#API_Usage|section 3]]):&lt;br /&gt;
&lt;br /&gt;
:[[#Create_Authorisation_Key|Create]]&lt;br /&gt;
:[[#Check_Authorisation_Key|Check]]&lt;br /&gt;
:[[#Update_Authorisation_Key|Update]]&lt;br /&gt;
:[[#Remove_Authorisation_Key|Remove]]&lt;br /&gt;
&lt;br /&gt;
The authorisation key APIs are xml based responses which provide information and status details of the provided API methods in a common style to ease implementation and usage.&lt;br /&gt;
&lt;br /&gt;
The API methods are called by passing parameters to the required YP site url.&lt;br /&gt;
&lt;br /&gt;
When the API methods are called then the status code of the method response is set to the status code of the API method so it is easy to detect errors from calling the API method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Successful Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are no issues with the API method call then one of the following responses will be received as the response generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first response is the '''basic''' success response and is provided if there is no extra information to be returned by the API method:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second response is the '''full''' success response and is provided when the API method needs to return additional information such as the authorisation key when a new one is created or the details of the authorisation key when using the ''''check'''' method:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;!-- information is found here --&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Error Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are issues experienced during the API method call then an error response will be received which takes the following form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;440&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Invalid devId&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;!-- the following is optional dependent upon the error --&amp;gt;&lt;br /&gt;
 &amp;lt;statusDetailText&amp;gt;Invalid parameter k&amp;lt;/statusDetailText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In all uses of the API methods, the ''''statusCode'''' and ''''statusText'''' elements are provided when an error occurs. The ''''statusDetailText'''' value is an optional element and is only provided if the internal error handling is able to provide additional information. This will usually be present for errors relating to parameter issues i.e. missing parameters.&lt;br /&gt;
&lt;br /&gt;
See [[#Status_Codes|section 5]] for the status codes and messages returned when using the API methods.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API Usage==&lt;br /&gt;
&lt;br /&gt;
The following sections detail how to use the four authorisation key API methods.&lt;br /&gt;
&lt;br /&gt;
Importantly, once an authorisation key has been created then it will be locked to the Developer ID used so you can only check, update or remove authorisation keys against that Developer ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Create Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will create an authorisation key (authhash) and will return it in the xml response on success.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error will be left at their default values which will be indicated by empty xml elements when using the ''''check'''' API.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/createauthhash?k=[Your Dev ID]&amp;amp;stationname=The Station Name&amp;amp;genre=Rock&amp;amp;[Optional Parameters To Set]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (preferably use Shoutcast RadioManager email, if account exists, though any will suffice)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters (replace non-latin/non-alphanumeric characters with [https://www.degraeve.com/reference/urlencoding.php url-encoded] equivalents, e.g. &amp;amp; = %26)&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* genre2 genre3 genre4 genre5 - specify up to 4 additional genres&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
* admode - determine whether monetization support is enabled for DNAS v2.4.7 and later (0=off, 1=on)&lt;br /&gt;
* callsign - the GUID of station if registered in the Shoutcast RadioManager&lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the new authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;authhash&amp;gt;An_Authorisation_Key&amp;lt;/authhash&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Check Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will return all values for an existing authorisation key.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/checkauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to check&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the found details of the authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;response&amp;gt;&lt;br /&gt;
  &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
  &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
   &amp;lt;stationname&amp;gt;The Station Name&amp;lt;/stationname&amp;gt;&lt;br /&gt;
   &amp;lt;genre&amp;gt;Misc&amp;lt;/genre&amp;gt;&lt;br /&gt;
   &amp;lt;website&amp;gt;www.shoutcast.com&amp;lt;/website&amp;gt;&lt;br /&gt;
   &amp;lt;description&amp;gt;The Best Station Ever...!&amp;lt;/description&amp;gt;&lt;br /&gt;
   &amp;lt;langid&amp;gt;EN&amp;lt;/langid&amp;gt;&lt;br /&gt;
   &amp;lt;countryiso&amp;gt;US&amp;lt;/countryiso&amp;gt;&lt;br /&gt;
   &amp;lt;stateiso&amp;gt;00&amp;lt;/stateiso&amp;gt;&lt;br /&gt;
   &amp;lt;city&amp;gt;&amp;lt;/city&amp;gt;&lt;br /&gt;
   &amp;lt;keywords&amp;gt;Greatest Web Station&amp;lt;/keywords&amp;gt;&lt;br /&gt;
   &amp;lt;private&amp;gt;0&amp;lt;/private&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
 &amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 The &amp;lt;stateiso&amp;gt; element will only be returned if the &amp;lt;countryiso&amp;gt; element is 'US'.&lt;br /&gt;
&lt;br /&gt;
===Update Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will update an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error when making an update are reset to their default value when this completes. Otherwise this acts the same as the ''''create'''' API with the addition of specifying the authorisation key to update.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/updateauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;amp;stationname=The Station Name&amp;amp;genre=Misc&amp;amp;[Other Parameters To Update]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to update&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (this is so we can contact you easily in-case of an issue with your listing or needing to inform you of a required DNAS update)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* genre2 genre3 genre4 genre5 - specify up to 4 additional genres&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
* admode - determine whether monetization support is enabled for DNAS v2.4.7 and later (0=off, 1=on)&lt;br /&gt;
* callsign - the GUID of station if registered in the Shoutcast RadioManager &lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
===Remove Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will remove an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/removeauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to remove&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Resources==&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, some additional methods are provided for accessing the supported primary and secondary genres, country, state and language codes. These are provided as a means to check you are using the correct values or to use if creating your own interface around the core authorisation key APIs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These additional methods are accessed via &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/authutil_*&amp;lt;/nowiki&amp;gt; where '''*''' is then replaced with one of the following to get the required information:&lt;br /&gt;
&lt;br /&gt;
* '''country''' - provides provides a html select control containing the ISO 3166-1-alpha-2 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''languages''' - provides provides a html select control containing the ISO 639-1 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''states''' - provides provides a html select control containing the USPO state code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''primarygenre''' - provides a html select control of the primary genres recognised&lt;br /&gt;
&lt;br /&gt;
* '''secondarygenre?primarygenre=&amp;lt;genre&amp;gt;''' - provides a html select control of the secondary genres related to the primary genre passed or an empty response if there is no genres found&lt;br /&gt;
&lt;br /&gt;
* '''parentgenre?genre=&amp;lt;genre&amp;gt;''' - provides the name of the parent genre of the passed genre or an empty response if there is no parent genre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All additional methods (excluding the ''''parentgenre'''' method) provide a fully formed html select control which is filled with relevent values based on the parameter passed to the method (if applicable). These are done like this to allow for ease of insertion into a&lt;br /&gt;
&amp;lt;div&amp;gt; element for example with an interface used to control the APIs.&lt;br /&gt;
&lt;br /&gt;
Calling these additional methods (excluding the ''''parentgenre'''' method) with ''''&amp;amp;raw=1'''' in the url will output the result (if applicable) as plain text instead of as a html select control. The values returned are separated by a comma and each data pair is then placed on a new line. This is provided as a quick way of getting the recognised values if the html select control is not suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===User Interface Versions===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, specifying ''''ui_'''' on the front of the API method e.g. &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/ui_checkauthhash&amp;lt;/nowiki&amp;gt; for the ''''check'''' method provides a pre-built interface pages which can be used as a base point for making your own interface for the authorisation key APIs or to use as is as long as you have the required developer access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Genres===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The genre specified for an authhash can only be a primary genre (e.g. Misc) or it can be a secondary genre related to a chosen primary genre (e.g. House from Electronic). The following lists the supported primary genres and the associated secondary genres to them.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Primary Genre&lt;br /&gt;
!Associated Secondary Genres&lt;br /&gt;
|-&lt;br /&gt;
| Alternative || Adult Alternative, Britpop, Classic Alternative, College, Dancepunk, Dream Pop, Emo, Goth, Grunge, Hardcore, Indie Pop, Indie Rock, Industrial, LoFi, Modern Rock, New Wave, Noise Pop, Post Punk, Power Pop, Punk, Ska, Xtreme&lt;br /&gt;
|-&lt;br /&gt;
| Blues || Acoustic Blues, Cajun and Zydeco, Chicago Blues, Contemporary Blues, Country Blues, Delta Blues, Electric Blues&lt;br /&gt;
|-&lt;br /&gt;
| Classical || Baroque, Chamber, Choral, Classical Period, Early Classical, Impressionist, Modern, Opera, Piano, Romantic, Symphony&lt;br /&gt;
|-&lt;br /&gt;
| Country || Alt Country, Americana, Bluegrass, Classic Country, Contemporary Bluegrass, Contemporary Country, Honky Tonk, Hot Country Hits, Western&lt;br /&gt;
|-&lt;br /&gt;
| Decades || 30s, 40s, 50s, 60s, 70s, 80s, 90s, 00s&lt;br /&gt;
|-&lt;br /&gt;
| Easy Listening || Exotica, Light Rock, Lounge, Orchestral Pop, Polka, Space Age Pop&lt;br /&gt;
|-&lt;br /&gt;
| Electronic || Acid House, Ambient, Big Beat, Breakbeat, Dance, Demo, Disco, Downtempo, Drum and Bass, Dubstep, Electro, Garage, Hard House, House, IDM, Jungle, Progressive, Techno, Trance, Tribal, Trip Hop&lt;br /&gt;
|-&lt;br /&gt;
| Folk || Alternative Folk, Contemporary Folk, Folk Rock, New Acoustic, Old Time, Traditional Folk, World Folk&lt;br /&gt;
|-&lt;br /&gt;
| Inspirational || Christian, Christian Metal, Christian Rap, Christian Rock, Classic Christian, Contemporary Gospel, Gospel, Praise and Worship, Sermons and Services, Southern Gospel, Traditional Gospel&lt;br /&gt;
|-&lt;br /&gt;
| International || African, Afrikaans, Arabic, Asian, Bollywood, Brazilian, Caribbean, Celtic, Chinese, Creole, European, Filipino, French, German, Greek, Hawaiian and Pacific, Hebrew, Hindi, Indian, Islamic, Japanese, Klezmer, Korean, Mediterranean, Middle Eastern, North American, Russian, Soca, South American, Tamil, Turkish, Worldbeat, Zouk&lt;br /&gt;
|-&lt;br /&gt;
| Jazz || Acid Jazz, Avant Garde, Big Band, Bop, Classic Jazz, Cool Jazz, Fusion, Hard Bop, Latin Jazz, Smooth Jazz, Swing, Vocal Jazz, World Fusion&lt;br /&gt;
|-&lt;br /&gt;
| Latin || Bachata, Banda, Bossa Nova, Cumbia, Flamenco, Latin Dance, Latin Pop, Latin Rap and Hip Hop, Latin Rock, Mariachi, Merengue, Ranchera, Reggaeton, Regional Mexican, Salsa, Samba, Tango, Tejano, Tropicalia&lt;br /&gt;
|-&lt;br /&gt;
| Metal || Black Metal, Classic Metal, Death Metal, Extreme Metal, Grindcore, Hair Metal, Heavy Metal, Metalcore, Power Metal, Progressive Metal, Rap Metal, Thrash Metal&lt;br /&gt;
|-&lt;br /&gt;
| Misc || &lt;br /&gt;
|-&lt;br /&gt;
| New Age || Environmental, Ethnic Fusion, Healing, Meditation, Spiritual&lt;br /&gt;
|-&lt;br /&gt;
| Pop || Adult Contemporary, Barbershop, Bubblegum Pop, Dance Pop, Idols, JPOP, KPOP, Oldies, Soft Rock, Teen Pop, Top 40, World Pop&lt;br /&gt;
|-&lt;br /&gt;
| Public Radio || College, News, Sports, Talk, Weather&lt;br /&gt;
|-&lt;br /&gt;
| R&amp;amp;B and Urban || &lt;br /&gt;
|-&lt;br /&gt;
| Rap || Alternative Rap, Dirty South, East Coast Rap, Freestyle, Gangsta Rap, Hip Hop, Mixtapes, Old School, Turntablism, Underground Hip Hop, West Coast Rap&lt;br /&gt;
|-&lt;br /&gt;
| Reggae || Contemporary Reggae, Dancehall, Dub, Pop Reggae, Ragga, Reggae Roots, Rock Steady&lt;br /&gt;
|-&lt;br /&gt;
| Rock || Adult Album Alternative, British Invasion, Celtic Rock, Classic Rock, Garage Rock, Glam, Hard Rock, Jam Bands, JROCK, Piano Rock, Prog Rock, Psychedelic, Rock &amp;amp; Roll, Rockabilly, Singer and Songwriter, Surf&lt;br /&gt;
|-&lt;br /&gt;
| Seasonal and Holiday || Anniversary, Birthday, Christmas, Halloween, Hanukkah, Honeymoon, Kwanzaa, Valentine, Wedding, Winter&lt;br /&gt;
|-&lt;br /&gt;
| Soundtracks || Anime, Kids, Original Score, Showtunes, Video Game Music&lt;br /&gt;
|-&lt;br /&gt;
| Talk || BlogTalk, Comedy, Community, Educational, Government, News, Old Time Radio, Other Talk, Political, Scanner, Spoken Word, Sports, Technology&lt;br /&gt;
|-&lt;br /&gt;
| Themes || Adult, Best Of, Chill, Eclectic, Experimental, Female, Heartache, Instrumental, LGBT, Love and Romance, Party Mix, Patriotic, Rainy Day Mix, Reality, Se xy ''(remove space for actual word - spam filter display issue)'', Shuffle, Travel Mix, Tribute, Trippy, Work Mix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Illegal Input Values===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following values are not allowed when entered as the stationname (case insensitively) and will cause a 456 error response to be received when an authorisation key is created or updated as they are not easily found when multiple other listings are also using the same stationame.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 127.0.0.1 || admin || auto dj || auto jedi&lt;br /&gt;
|-&lt;br /&gt;
| auto pj || auto-dj || autodj || autopj&lt;br /&gt;
|-&lt;br /&gt;
| demo || dj || internet radio || live&lt;br /&gt;
|-&lt;br /&gt;
| local server || localhost || localserver || music&lt;br /&gt;
|-&lt;br /&gt;
| my radio || my server || my station name || my test server&lt;br /&gt;
|-&lt;br /&gt;
| n/a || pj || playlist || radio&lt;br /&gt;
|-&lt;br /&gt;
| radio station || test || test server || unnamed server&lt;br /&gt;
|-&lt;br /&gt;
| virtual dj || virtualdj || web rdio || web radio&lt;br /&gt;
|-&lt;br /&gt;
| song || teste || default stream || radio stream&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Additionally, stationnames just containing punctuation are not allowed as well as any which specify a name which matches with the supported genres (see [[SHOUTcast_Radio_Authhash_API#Supported_Genres|section 4.2]]).&lt;br /&gt;
&lt;br /&gt;
==Status Codes==&lt;br /&gt;
&lt;br /&gt;
The following status codes are returned on success or error when using the provided APIs:&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Code&lt;br /&gt;
!Status Text&lt;br /&gt;
!Detailed Text (if available)&lt;br /&gt;
|-&lt;br /&gt;
| 200 || Ok || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 400 || Generic Error || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 404 || Page Not Found || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 440 || Invalid devId || Invalid parameter k&lt;br /&gt;
|-&lt;br /&gt;
| 456 || Parameter value not allowed || ''&amp;lt;variable&amp;gt;=&amp;lt;value&amp;gt;'' not allowed&lt;br /&gt;
|-&lt;br /&gt;
| 458 || Building internal value failure || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 459 || Authhash could not be found for reading || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 460 || Missing required parameter || Missing ''&amp;lt;variable&amp;gt;''&lt;br /&gt;
|-&lt;br /&gt;
| 461 || Error while updating authhash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 462 || Parameter error || Invalid parameter &amp;lt;variable&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 463 || Invalid station result returned || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 464 || Authhash could not be found or removed || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 465 || Required parameter missing for registration || ''&amp;lt;variable&amp;gt;'' is a required parameter&lt;br /&gt;
|-&lt;br /&gt;
| 466 || Parameter outside of allowed range || ''&amp;lt;variable&amp;gt;'' parameter too long&lt;br /&gt;
|-&lt;br /&gt;
| 467 || Parameter value not recognized in stored values || ''&amp;lt;variable&amp;gt;'' value not recognized&lt;br /&gt;
|-&lt;br /&gt;
| 468 || Error creating intended xml response || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 469 || Authhash could not be updated as not found || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 470 || Invalid authorization hash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 500 || Generic Server Error || n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;variable&amp;gt;'' value in the detailed text will be replaced with the parameter name which the error relates to. The ''&amp;lt;value&amp;gt;'' value in the detailed text will be replaced with the parameter value which the error relates to.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API</id>
		<title>SHOUTcast Radio Authhash API</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API"/>
				<updated>2020-05-26T14:05:56Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Create Authorisation Key */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
A key aspect of the SHOUTcast 2.0 system is the usage of authorisation keys to control the listing of stations within the SHOUTcast Radio Directory (otherwise known as the YP).&lt;br /&gt;
&lt;br /&gt;
The API which is documented here is provided as a means for registered developers to be able to obtain and manage any authorisation keys for the station(s) they are providing.&lt;br /&gt;
&lt;br /&gt;
The API works for generating and editing a 20 character v2.x authhash for DNAS v2.5.5 and earlier.&lt;br /&gt;
It will not work for editing the 32 character GUID-style authhash used in DNAS v2.6, although v2.6.0.753 does now accept a v2.5x authhash.&lt;br /&gt;
&lt;br /&gt;
==API Overview==&lt;br /&gt;
&lt;br /&gt;
There are four core parts of the authorisation key APIs (usage details are in [[#API_Usage|section 3]]):&lt;br /&gt;
&lt;br /&gt;
:[[#Create_Authorisation_Key|Create]]&lt;br /&gt;
:[[#Check_Authorisation_Key|Check]]&lt;br /&gt;
:[[#Update_Authorisation_Key|Update]]&lt;br /&gt;
:[[#Remove_Authorisation_Key|Remove]]&lt;br /&gt;
&lt;br /&gt;
The authorisation key APIs are xml based responses which provide information and status details of the provided API methods in a common style to ease implementation and usage.&lt;br /&gt;
&lt;br /&gt;
The API methods are called by passing parameters to the required YP site url.&lt;br /&gt;
&lt;br /&gt;
When the API methods are called then the status code of the method response is set to the status code of the API method so it is easy to detect errors from calling the API method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Successful Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are no issues with the API method call then one of the following responses will be received as the response generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first response is the '''basic''' success response and is provided if there is no extra information to be returned by the API method:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second response is the '''full''' success response and is provided when the API method needs to return additional information such as the authorisation key when a new one is created or the details of the authorisation key when using the ''''check'''' method:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;!-- information is found here --&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Error Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are issues experienced during the API method call then an error response will be received which takes the following form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;440&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Invalid devId&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;!-- the following is optional dependent upon the error --&amp;gt;&lt;br /&gt;
 &amp;lt;statusDetailText&amp;gt;Invalid parameter k&amp;lt;/statusDetailText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In all uses of the API methods, the ''''statusCode'''' and ''''statusText'''' elements are provided when an error occurs. The ''''statusDetailText'''' value is an optional element and is only provided if the internal error handling is able to provide additional information. This will usually be present for errors relating to parameter issues i.e. missing parameters.&lt;br /&gt;
&lt;br /&gt;
See [[#Status_Codes|section 5]] for the status codes and messages returned when using the API methods.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API Usage==&lt;br /&gt;
&lt;br /&gt;
The following sections detail how to use the four authorisation key API methods.&lt;br /&gt;
&lt;br /&gt;
Importantly, once an authorisation key has been created then it will be locked to the Developer ID used so you can only check, update or remove authorisation keys against that Developer ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Create Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will create an authorisation key (authhash) and will return it in the xml response on success.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error will be left at their default values which will be indicated by empty xml elements when using the ''''check'''' API.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/createauthhash?k=[Your Dev ID]&amp;amp;stationname=The Station Name&amp;amp;genre=Rock&amp;amp;[Optional Parameters To Set]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (preferably use Shoutcast RadioManager email, if account exists, though any will suffice)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters (replace non-latin/non-alphanumeric characters with [https://www.degraeve.com/reference/urlencoding.php url-encoded] equivalents, e.g. &amp;amp; = %26)&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* genre2 genre3 genre4 genre5 - specify up to 4 additional genres&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
* admode - determine whether monetization support is enabled for DNAS v2.4.7 and later (0=off, 1=on)&lt;br /&gt;
* callsign - the GUID of station if registered in the Shoutcast RadioManager&lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the new authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;authhash&amp;gt;An_Authorisation_Key&amp;lt;/authhash&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Check Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will return all values for an existing authorisation key.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/checkauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to check&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the found details of the authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;response&amp;gt;&lt;br /&gt;
  &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
  &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
   &amp;lt;stationname&amp;gt;The Station Name&amp;lt;/stationname&amp;gt;&lt;br /&gt;
   &amp;lt;genre&amp;gt;Misc&amp;lt;/genre&amp;gt;&lt;br /&gt;
   &amp;lt;website&amp;gt;www.shoutcast.com&amp;lt;/website&amp;gt;&lt;br /&gt;
   &amp;lt;description&amp;gt;The Best Station Ever...!&amp;lt;/description&amp;gt;&lt;br /&gt;
   &amp;lt;langid&amp;gt;EN&amp;lt;/langid&amp;gt;&lt;br /&gt;
   &amp;lt;countryiso&amp;gt;US&amp;lt;/countryiso&amp;gt;&lt;br /&gt;
   &amp;lt;stateiso&amp;gt;00&amp;lt;/stateiso&amp;gt;&lt;br /&gt;
   &amp;lt;city&amp;gt;&amp;lt;/city&amp;gt;&lt;br /&gt;
   &amp;lt;keywords&amp;gt;Greatest Web Station&amp;lt;/keywords&amp;gt;&lt;br /&gt;
   &amp;lt;private&amp;gt;0&amp;lt;/private&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
 &amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 The &amp;lt;stateiso&amp;gt; element will only be returned if the &amp;lt;countryiso&amp;gt; element is 'US'.&lt;br /&gt;
&lt;br /&gt;
===Update Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will update an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error when making an update are reset to their default value when this completes. Otherwise this acts the same as the ''''create'''' API with the addition of specifying the authorisation key to update.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/updateauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;amp;stationname=The Station Name&amp;amp;genre=Misc&amp;amp;[Other Parameters To Update]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to update&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (this is so we can contact you easily in-case of an issue with your listing or needing to inform you of a required DNAS update)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* genre2 genre3 genre4 genre5 - specify up to 4 additional genres&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
* admode - determine whether monetization support is enabled for DNAS v2.4.7 and later (0=off, 1=on)&lt;br /&gt;
* callsign - the GUID of station if registered in the Shoutcast RadioManager &lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
===Remove Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will remove an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/removeauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to remove&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Resources==&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, some additional methods are provided for accessing the supported primary and secondary genres, country, state and language codes. These are provided as a means to check you are using the correct values or to use if creating your own interface around the core authorisation key APIs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These additional methods are accessed via &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/authutil_*&amp;lt;/nowiki&amp;gt; where '''*''' is then replaced with one of the following to get the required information:&lt;br /&gt;
&lt;br /&gt;
* '''country''' - provides provides a html select control containing the ISO 3166-1-alpha-2 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''languages''' - provides provides a html select control containing the ISO 639-1 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''states''' - provides provides a html select control containing the USPO state code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''primarygenre''' - provides a html select control of the primary genre's recognised&lt;br /&gt;
&lt;br /&gt;
* '''secondarygenre?primarygenre=&amp;lt;genre&amp;gt;''' - provides a html select control of the secondary genre's related to the primary genre passed or an empty response if there is no genres found&lt;br /&gt;
&lt;br /&gt;
* '''parentgenre?genre=&amp;lt;genre&amp;gt;''' - provides the name of the parent genre of the passed genre or an empty response if there is no parent genre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All additional methods (excluding the ''''parentgenre'''' method) provide a fully formed html select control which is filled with relevent values based on the parameter passed to the method (if applicable). These are done like this to allow for ease of insertion into a&lt;br /&gt;
&amp;lt;div&amp;gt; element for example with an interface used to control the APIs.&lt;br /&gt;
&lt;br /&gt;
Calling these additional methods (excluding the ''''parentgenre'''' method) with ''''&amp;amp;raw=1'''' in the url will output the result (if applicable) as plain text instead of as a html select control. The values returned are separated by a comma and each data pair is then placed on a new line. This is provided as a quick way of getting the recognised values if the html select control is not suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===User Interface Versions===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, specifying ''''ui_'''' on the front of the API method e.g. &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/ui_checkauthhash&amp;lt;/nowiki&amp;gt; for the ''''check'''' method provides a pre-built interface pages which can be used as a base point for making your own interface for the authorisation key APIs or to use as is as long as you have the required developer access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Genres===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The genre specified for an authhash can only be a primary genre (e.g. Misc) or it can be a secondary genre related to a chosen primary genre (e.g. House from Electronic). The following lists the supported primary genres and the associated secondary genres to them.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Primary Genre&lt;br /&gt;
!Associated Secondary Genres&lt;br /&gt;
|-&lt;br /&gt;
| Alternative || Adult Alternative, Britpop, Classic Alternative, College, Dancepunk, Dream Pop, Emo, Goth, Grunge, Hardcore, Indie Pop, Indie Rock, Industrial, LoFi, Modern Rock, New Wave, Noise Pop, Post Punk, Power Pop, Punk, Ska, Xtreme&lt;br /&gt;
|-&lt;br /&gt;
| Blues || Acoustic Blues, Cajun and Zydeco, Chicago Blues, Contemporary Blues, Country Blues, Delta Blues, Electric Blues&lt;br /&gt;
|-&lt;br /&gt;
| Classical || Baroque, Chamber, Choral, Classical Period, Early Classical, Impressionist, Modern, Opera, Piano, Romantic, Symphony&lt;br /&gt;
|-&lt;br /&gt;
| Country || Alt Country, Americana, Bluegrass, Classic Country, Contemporary Bluegrass, Contemporary Country, Honky Tonk, Hot Country Hits, Western&lt;br /&gt;
|-&lt;br /&gt;
| Decades || 30s, 40s, 50s, 60s, 70s, 80s, 90s, 00s&lt;br /&gt;
|-&lt;br /&gt;
| Easy Listening || Exotica, Light Rock, Lounge, Orchestral Pop, Polka, Space Age Pop&lt;br /&gt;
|-&lt;br /&gt;
| Electronic || Acid House, Ambient, Big Beat, Breakbeat, Dance, Demo, Disco, Downtempo, Drum and Bass, Dubstep, Electro, Garage, Hard House, House, IDM, Jungle, Progressive, Techno, Trance, Tribal, Trip Hop&lt;br /&gt;
|-&lt;br /&gt;
| Folk || Alternative Folk, Contemporary Folk, Folk Rock, New Acoustic, Old Time, Traditional Folk, World Folk&lt;br /&gt;
|-&lt;br /&gt;
| Inspirational || Christian, Christian Metal, Christian Rap, Christian Rock, Classic Christian, Contemporary Gospel, Gospel, Praise and Worship, Sermons and Services, Southern Gospel, Traditional Gospel&lt;br /&gt;
|-&lt;br /&gt;
| International || African, Afrikaans, Arabic, Asian, Bollywood, Brazilian, Caribbean, Celtic, Chinese, Creole, European, Filipino, French, German, Greek, Hawaiian and Pacific, Hebrew, Hindi, Indian, Islamic, Japanese, Klezmer, Korean, Mediterranean, Middle Eastern, North American, Russian, Soca, South American, Tamil, Turkish, Worldbeat, Zouk&lt;br /&gt;
|-&lt;br /&gt;
| Jazz || Acid Jazz, Avant Garde, Big Band, Bop, Classic Jazz, Cool Jazz, Fusion, Hard Bop, Latin Jazz, Smooth Jazz, Swing, Vocal Jazz, World Fusion&lt;br /&gt;
|-&lt;br /&gt;
| Latin || Bachata, Banda, Bossa Nova, Cumbia, Flamenco, Latin Dance, Latin Pop, Latin Rap and Hip Hop, Latin Rock, Mariachi, Merengue, Ranchera, Reggaeton, Regional Mexican, Salsa, Samba, Tango, Tejano, Tropicalia&lt;br /&gt;
|-&lt;br /&gt;
| Metal || Black Metal, Classic Metal, Death Metal, Extreme Metal, Grindcore, Hair Metal, Heavy Metal, Metalcore, Power Metal, Progressive Metal, Rap Metal, Thrash Metal&lt;br /&gt;
|-&lt;br /&gt;
| Misc || &lt;br /&gt;
|-&lt;br /&gt;
| New Age || Environmental, Ethnic Fusion, Healing, Meditation, Spiritual&lt;br /&gt;
|-&lt;br /&gt;
| Pop || Adult Contemporary, Barbershop, Bubblegum Pop, Dance Pop, Idols, JPOP, KPOP, Oldies, Soft Rock, Teen Pop, Top 40, World Pop&lt;br /&gt;
|-&lt;br /&gt;
| Public Radio || College, News, Sports, Talk, Weather&lt;br /&gt;
|-&lt;br /&gt;
| R&amp;amp;B and Urban || &lt;br /&gt;
|-&lt;br /&gt;
| Rap || Alternative Rap, Dirty South, East Coast Rap, Freestyle, Gangsta Rap, Hip Hop, Mixtapes, Old School, Turntablism, Underground Hip Hop, West Coast Rap&lt;br /&gt;
|-&lt;br /&gt;
| Reggae || Contemporary Reggae, Dancehall, Dub, Pop Reggae, Ragga, Reggae Roots, Rock Steady&lt;br /&gt;
|-&lt;br /&gt;
| Rock || Adult Album Alternative, British Invasion, Celtic Rock, Classic Rock, Garage Rock, Glam, Hard Rock, Jam Bands, JROCK, Piano Rock, Prog Rock, Psychedelic, Rock &amp;amp; Roll, Rockabilly, Singer and Songwriter, Surf&lt;br /&gt;
|-&lt;br /&gt;
| Seasonal and Holiday || Anniversary, Birthday, Christmas, Halloween, Hanukkah, Honeymoon, Kwanzaa, Valentine, Wedding, Winter&lt;br /&gt;
|-&lt;br /&gt;
| Soundtracks || Anime, Kids, Original Score, Showtunes, Video Game Music&lt;br /&gt;
|-&lt;br /&gt;
| Talk || BlogTalk, Comedy, Community, Educational, Government, News, Old Time Radio, Other Talk, Political, Scanner, Spoken Word, Sports, Technology&lt;br /&gt;
|-&lt;br /&gt;
| Themes || Adult, Best Of, Chill, Eclectic, Experimental, Female, Heartache, Instrumental, LGBT, Love and Romance, Party Mix, Patriotic, Rainy Day Mix, Reality, Se xy ''(remove space for actual word - spam filter display issue)'', Shuffle, Travel Mix, Tribute, Trippy, Work Mix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Illegal Input Values===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following values are not allowed when entered as the stationname (case insensitively) and will cause a 456 error response to be received when an authorisation key is created or updated as they are not easily found when multiple other listings are also using the same stationame.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 127.0.0.1 || admin || auto dj || auto jedi&lt;br /&gt;
|-&lt;br /&gt;
| auto pj || auto-dj || autodj || autopj&lt;br /&gt;
|-&lt;br /&gt;
| demo || dj || internet radio || live&lt;br /&gt;
|-&lt;br /&gt;
| local server || localhost || localserver || music&lt;br /&gt;
|-&lt;br /&gt;
| my radio || my server || my station name || my test server&lt;br /&gt;
|-&lt;br /&gt;
| n/a || pj || playlist || radio&lt;br /&gt;
|-&lt;br /&gt;
| radio station || test || test server || unnamed server&lt;br /&gt;
|-&lt;br /&gt;
| virtual dj || virtualdj || web rdio || web radio&lt;br /&gt;
|-&lt;br /&gt;
| song || teste || default stream || radio stream&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Additionally, stationnames just containing punctuation are not allowed as well as any which specify a name which matches with the supported genres (see [[SHOUTcast_Radio_Authhash_API#Supported_Genres|section 4.2]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Status Codes==&lt;br /&gt;
&lt;br /&gt;
The following status codes are returned on success or error when using the provided APIs:&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Code&lt;br /&gt;
!Status Text&lt;br /&gt;
!Detailed Text (if available)&lt;br /&gt;
|-&lt;br /&gt;
| 200 || Ok || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 400 || Generic Error || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 404 || Page Not Found || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 440 || Invalid devId || Invalid parameter k&lt;br /&gt;
|-&lt;br /&gt;
| 456 || Parameter value not allowed || ''&amp;lt;variable&amp;gt;=&amp;lt;value&amp;gt;'' not allowed&lt;br /&gt;
|-&lt;br /&gt;
| 458 || Building internal value failure || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 459 || Authhash could not be found for reading || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 460 || Missing required parameter || Missing ''&amp;lt;variable&amp;gt;''&lt;br /&gt;
|-&lt;br /&gt;
| 461 || Error while updating authhash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 462 || Parameter error || Invalid parameter &amp;lt;variable&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 463 || Invalid station result returned || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 464 || Authhash could not be found or removed || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 465 || Required parameter missing for registration || ''&amp;lt;variable&amp;gt;'' is a required parameter&lt;br /&gt;
|-&lt;br /&gt;
| 466 || Parameter outside of allowed range || ''&amp;lt;variable&amp;gt;'' parameter too long&lt;br /&gt;
|-&lt;br /&gt;
| 467 || Parameter value not recognized in stored values || ''&amp;lt;variable&amp;gt;'' value not recognized&lt;br /&gt;
|-&lt;br /&gt;
| 468 || Error creating intended xml response || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 469 || Authhash could not be updated as not found || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 470 || Invalid authorization hash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 500 || Generic Server Error || n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;variable&amp;gt;'' value in the detailed text will be replaced with the parameter name which the error relates to. The ''&amp;lt;value&amp;gt;'' value in the detailed text will be replaced with the parameter value which the error relates to.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API</id>
		<title>SHOUTcast Radio Authhash API</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API"/>
				<updated>2020-04-25T15:29:16Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
A key aspect of the SHOUTcast 2.0 system is the usage of authorisation keys to control the listing of stations within the SHOUTcast Radio Directory (otherwise known as the YP).&lt;br /&gt;
&lt;br /&gt;
The API which is documented here is provided as a means for registered developers to be able to obtain and manage any authorisation keys for the station(s) they are providing.&lt;br /&gt;
&lt;br /&gt;
The API works for generating and editing a 20 character v2.x authhash for DNAS v2.5.5 and earlier.&lt;br /&gt;
It will not work for editing the 32 character GUID-style authhash used in DNAS v2.6, although v2.6.0.753 does now accept a v2.5x authhash.&lt;br /&gt;
&lt;br /&gt;
==API Overview==&lt;br /&gt;
&lt;br /&gt;
There are four core parts of the authorisation key APIs (usage details are in [[#API_Usage|section 3]]):&lt;br /&gt;
&lt;br /&gt;
:[[#Create_Authorisation_Key|Create]]&lt;br /&gt;
:[[#Check_Authorisation_Key|Check]]&lt;br /&gt;
:[[#Update_Authorisation_Key|Update]]&lt;br /&gt;
:[[#Remove_Authorisation_Key|Remove]]&lt;br /&gt;
&lt;br /&gt;
The authorisation key APIs are xml based responses which provide information and status details of the provided API methods in a common style to ease implementation and usage.&lt;br /&gt;
&lt;br /&gt;
The API methods are called by passing parameters to the required YP site url.&lt;br /&gt;
&lt;br /&gt;
When the API methods are called then the status code of the method response is set to the status code of the API method so it is easy to detect errors from calling the API method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Successful Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are no issues with the API method call then one of the following responses will be received as the response generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first response is the '''basic''' success response and is provided if there is no extra information to be returned by the API method:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second response is the '''full''' success response and is provided when the API method needs to return additional information such as the authorisation key when a new one is created or the details of the authorisation key when using the ''''check'''' method:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;!-- information is found here --&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Error Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are issues experienced during the API method call then an error response will be received which takes the following form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;440&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Invalid devId&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;!-- the following is optional dependent upon the error --&amp;gt;&lt;br /&gt;
 &amp;lt;statusDetailText&amp;gt;Invalid parameter k&amp;lt;/statusDetailText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In all uses of the API methods, the ''''statusCode'''' and ''''statusText'''' elements are provided when an error occurs. The ''''statusDetailText'''' value is an optional element and is only provided if the internal error handling is able to provide additional information. This will usually be present for errors relating to parameter issues i.e. missing parameters.&lt;br /&gt;
&lt;br /&gt;
See [[#Status_Codes|section 5]] for the status codes and messages returned when using the API methods.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API Usage==&lt;br /&gt;
&lt;br /&gt;
The following sections detail how to use the four authorisation key API methods.&lt;br /&gt;
&lt;br /&gt;
Importantly, once an authorisation key has been created then it will be locked to the Developer ID used so you can only check, update or remove authorisation keys against that Developer ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Create Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will create an authorisation key (authhash) and will return it in the xml response on success.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error will be left at their default values which will be indicated by empty xml elements when using the ''''check'''' API.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/createauthhash?k=[Your Dev ID]&amp;amp;stationname=The Station Name&amp;amp;genre=Rock&amp;amp;[Optional Parameters To Set]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (preferably use Shoutcast RadioManager email, if account exists, though any will suffice)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters (replace non-latin/non-alphanumeric characters with [https://www.degraeve.com/reference/urlencoding.php url-encoded] equivalents)&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* genre2 genre3 genre4 genre5 - specify up to 4 additional genres&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
* admode - determine whether monetization support is enabled for DNAS v2.4.7 and later (0=off, 1=on)&lt;br /&gt;
* callsign - the GUID of station if registered in the Shoutcast RadioManager&lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the new authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;authhash&amp;gt;An_Authorisation_Key&amp;lt;/authhash&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Check Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will return all values for an existing authorisation key.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/checkauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to check&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the found details of the authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;response&amp;gt;&lt;br /&gt;
  &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
  &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
   &amp;lt;stationname&amp;gt;The Station Name&amp;lt;/stationname&amp;gt;&lt;br /&gt;
   &amp;lt;genre&amp;gt;Misc&amp;lt;/genre&amp;gt;&lt;br /&gt;
   &amp;lt;website&amp;gt;www.shoutcast.com&amp;lt;/website&amp;gt;&lt;br /&gt;
   &amp;lt;description&amp;gt;The Best Station Ever...!&amp;lt;/description&amp;gt;&lt;br /&gt;
   &amp;lt;langid&amp;gt;EN&amp;lt;/langid&amp;gt;&lt;br /&gt;
   &amp;lt;countryiso&amp;gt;US&amp;lt;/countryiso&amp;gt;&lt;br /&gt;
   &amp;lt;stateiso&amp;gt;00&amp;lt;/stateiso&amp;gt;&lt;br /&gt;
   &amp;lt;city&amp;gt;&amp;lt;/city&amp;gt;&lt;br /&gt;
   &amp;lt;keywords&amp;gt;Greatest Web Station&amp;lt;/keywords&amp;gt;&lt;br /&gt;
   &amp;lt;private&amp;gt;0&amp;lt;/private&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
 &amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 The &amp;lt;stateiso&amp;gt; element will only be returned if the &amp;lt;countryiso&amp;gt; element is 'US'.&lt;br /&gt;
&lt;br /&gt;
===Update Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will update an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error when making an update are reset to their default value when this completes. Otherwise this acts the same as the ''''create'''' API with the addition of specifying the authorisation key to update.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/updateauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;amp;stationname=The Station Name&amp;amp;genre=Misc&amp;amp;[Other Parameters To Update]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to update&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (this is so we can contact you easily in-case of an issue with your listing or needing to inform you of a required DNAS update)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* genre2 genre3 genre4 genre5 - specify up to 4 additional genres&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
* admode - determine whether monetization support is enabled for DNAS v2.4.7 and later (0=off, 1=on)&lt;br /&gt;
* callsign - the GUID of station if registered in the Shoutcast RadioManager &lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
===Remove Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will remove an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/removeauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to remove&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Resources==&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, some additional methods are provided for accessing the supported primary and secondary genres, country, state and language codes. These are provided as a means to check you are using the correct values or to use if creating your own interface around the core authorisation key APIs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These additional methods are accessed via &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/authutil_*&amp;lt;/nowiki&amp;gt; where '''*''' is then replaced with one of the following to get the required information:&lt;br /&gt;
&lt;br /&gt;
* '''country''' - provides provides a html select control containing the ISO 3166-1-alpha-2 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''languages''' - provides provides a html select control containing the ISO 639-1 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''states''' - provides provides a html select control containing the USPO state code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''primarygenre''' - provides a html select control of the primary genre's recognised&lt;br /&gt;
&lt;br /&gt;
* '''secondarygenre?primarygenre=&amp;lt;genre&amp;gt;''' - provides a html select control of the secondary genre's related to the primary genre passed or an empty response if there is no genres found&lt;br /&gt;
&lt;br /&gt;
* '''parentgenre?genre=&amp;lt;genre&amp;gt;''' - provides the name of the parent genre of the passed genre or an empty response if there is no parent genre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All additional methods (excluding the ''''parentgenre'''' method) provide a fully formed html select control which is filled with relevent values based on the parameter passed to the method (if applicable). These are done like this to allow for ease of insertion into a&lt;br /&gt;
&amp;lt;div&amp;gt; element for example with an interface used to control the APIs.&lt;br /&gt;
&lt;br /&gt;
Calling these additional methods (excluding the ''''parentgenre'''' method) with ''''&amp;amp;raw=1'''' in the url will output the result (if applicable) as plain text instead of as a html select control. The values returned are separated by a comma and each data pair is then placed on a new line. This is provided as a quick way of getting the recognised values if the html select control is not suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===User Interface Versions===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, specifying ''''ui_'''' on the front of the API method e.g. &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/ui_checkauthhash&amp;lt;/nowiki&amp;gt; for the ''''check'''' method provides a pre-built interface pages which can be used as a base point for making your own interface for the authorisation key APIs or to use as is as long as you have the required developer access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Genres===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The genre specified for an authhash can only be a primary genre (e.g. Misc) or it can be a secondary genre related to a chosen primary genre (e.g. House from Electronic). The following lists the supported primary genres and the associated secondary genres to them.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Primary Genre&lt;br /&gt;
!Associated Secondary Genres&lt;br /&gt;
|-&lt;br /&gt;
| Alternative || Adult Alternative, Britpop, Classic Alternative, College, Dancepunk, Dream Pop, Emo, Goth, Grunge, Hardcore, Indie Pop, Indie Rock, Industrial, LoFi, Modern Rock, New Wave, Noise Pop, Post Punk, Power Pop, Punk, Ska, Xtreme&lt;br /&gt;
|-&lt;br /&gt;
| Blues || Acoustic Blues, Cajun and Zydeco, Chicago Blues, Contemporary Blues, Country Blues, Delta Blues, Electric Blues&lt;br /&gt;
|-&lt;br /&gt;
| Classical || Baroque, Chamber, Choral, Classical Period, Early Classical, Impressionist, Modern, Opera, Piano, Romantic, Symphony&lt;br /&gt;
|-&lt;br /&gt;
| Country || Alt Country, Americana, Bluegrass, Classic Country, Contemporary Bluegrass, Contemporary Country, Honky Tonk, Hot Country Hits, Western&lt;br /&gt;
|-&lt;br /&gt;
| Decades || 30s, 40s, 50s, 60s, 70s, 80s, 90s, 00s&lt;br /&gt;
|-&lt;br /&gt;
| Easy Listening || Exotica, Light Rock, Lounge, Orchestral Pop, Polka, Space Age Pop&lt;br /&gt;
|-&lt;br /&gt;
| Electronic || Acid House, Ambient, Big Beat, Breakbeat, Dance, Demo, Disco, Downtempo, Drum and Bass, Dubstep, Electro, Garage, Hard House, House, IDM, Jungle, Progressive, Techno, Trance, Tribal, Trip Hop&lt;br /&gt;
|-&lt;br /&gt;
| Folk || Alternative Folk, Contemporary Folk, Folk Rock, New Acoustic, Old Time, Traditional Folk, World Folk&lt;br /&gt;
|-&lt;br /&gt;
| Inspirational || Christian, Christian Metal, Christian Rap, Christian Rock, Classic Christian, Contemporary Gospel, Gospel, Praise and Worship, Sermons and Services, Southern Gospel, Traditional Gospel&lt;br /&gt;
|-&lt;br /&gt;
| International || African, Afrikaans, Arabic, Asian, Bollywood, Brazilian, Caribbean, Celtic, Chinese, Creole, European, Filipino, French, German, Greek, Hawaiian and Pacific, Hebrew, Hindi, Indian, Islamic, Japanese, Klezmer, Korean, Mediterranean, Middle Eastern, North American, Russian, Soca, South American, Tamil, Turkish, Worldbeat, Zouk&lt;br /&gt;
|-&lt;br /&gt;
| Jazz || Acid Jazz, Avant Garde, Big Band, Bop, Classic Jazz, Cool Jazz, Fusion, Hard Bop, Latin Jazz, Smooth Jazz, Swing, Vocal Jazz, World Fusion&lt;br /&gt;
|-&lt;br /&gt;
| Latin || Bachata, Banda, Bossa Nova, Cumbia, Flamenco, Latin Dance, Latin Pop, Latin Rap and Hip Hop, Latin Rock, Mariachi, Merengue, Ranchera, Reggaeton, Regional Mexican, Salsa, Samba, Tango, Tejano, Tropicalia&lt;br /&gt;
|-&lt;br /&gt;
| Metal || Black Metal, Classic Metal, Death Metal, Extreme Metal, Grindcore, Hair Metal, Heavy Metal, Metalcore, Power Metal, Progressive Metal, Rap Metal, Thrash Metal&lt;br /&gt;
|-&lt;br /&gt;
| Misc || &lt;br /&gt;
|-&lt;br /&gt;
| New Age || Environmental, Ethnic Fusion, Healing, Meditation, Spiritual&lt;br /&gt;
|-&lt;br /&gt;
| Pop || Adult Contemporary, Barbershop, Bubblegum Pop, Dance Pop, Idols, JPOP, KPOP, Oldies, Soft Rock, Teen Pop, Top 40, World Pop&lt;br /&gt;
|-&lt;br /&gt;
| Public Radio || College, News, Sports, Talk, Weather&lt;br /&gt;
|-&lt;br /&gt;
| R&amp;amp;B and Urban || &lt;br /&gt;
|-&lt;br /&gt;
| Rap || Alternative Rap, Dirty South, East Coast Rap, Freestyle, Gangsta Rap, Hip Hop, Mixtapes, Old School, Turntablism, Underground Hip Hop, West Coast Rap&lt;br /&gt;
|-&lt;br /&gt;
| Reggae || Contemporary Reggae, Dancehall, Dub, Pop Reggae, Ragga, Reggae Roots, Rock Steady&lt;br /&gt;
|-&lt;br /&gt;
| Rock || Adult Album Alternative, British Invasion, Celtic Rock, Classic Rock, Garage Rock, Glam, Hard Rock, Jam Bands, JROCK, Piano Rock, Prog Rock, Psychedelic, Rock &amp;amp; Roll, Rockabilly, Singer and Songwriter, Surf&lt;br /&gt;
|-&lt;br /&gt;
| Seasonal and Holiday || Anniversary, Birthday, Christmas, Halloween, Hanukkah, Honeymoon, Kwanzaa, Valentine, Wedding, Winter&lt;br /&gt;
|-&lt;br /&gt;
| Soundtracks || Anime, Kids, Original Score, Showtunes, Video Game Music&lt;br /&gt;
|-&lt;br /&gt;
| Talk || BlogTalk, Comedy, Community, Educational, Government, News, Old Time Radio, Other Talk, Political, Scanner, Spoken Word, Sports, Technology&lt;br /&gt;
|-&lt;br /&gt;
| Themes || Adult, Best Of, Chill, Eclectic, Experimental, Female, Heartache, Instrumental, LGBT, Love and Romance, Party Mix, Patriotic, Rainy Day Mix, Reality, Se xy ''(remove space for actual word - spam filter display issue)'', Shuffle, Travel Mix, Tribute, Trippy, Work Mix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Illegal Input Values===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following values are not allowed when entered as the stationname (case insensitively) and will cause a 456 error response to be received when an authorisation key is created or updated as they are not easily found when multiple other listings are also using the same stationame.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 127.0.0.1 || admin || auto dj || auto jedi&lt;br /&gt;
|-&lt;br /&gt;
| auto pj || auto-dj || autodj || autopj&lt;br /&gt;
|-&lt;br /&gt;
| demo || dj || internet radio || live&lt;br /&gt;
|-&lt;br /&gt;
| local server || localhost || localserver || music&lt;br /&gt;
|-&lt;br /&gt;
| my radio || my server || my station name || my test server&lt;br /&gt;
|-&lt;br /&gt;
| n/a || pj || playlist || radio&lt;br /&gt;
|-&lt;br /&gt;
| radio station || test || test server || unnamed server&lt;br /&gt;
|-&lt;br /&gt;
| virtual dj || virtualdj || web rdio || web radio&lt;br /&gt;
|-&lt;br /&gt;
| song || teste || default stream || radio stream&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Additionally, stationnames just containing punctuation are not allowed as well as any which specify a name which matches with the supported genres (see [[SHOUTcast_Radio_Authhash_API#Supported_Genres|section 4.2]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Status Codes==&lt;br /&gt;
&lt;br /&gt;
The following status codes are returned on success or error when using the provided APIs:&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Code&lt;br /&gt;
!Status Text&lt;br /&gt;
!Detailed Text (if available)&lt;br /&gt;
|-&lt;br /&gt;
| 200 || Ok || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 400 || Generic Error || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 404 || Page Not Found || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 440 || Invalid devId || Invalid parameter k&lt;br /&gt;
|-&lt;br /&gt;
| 456 || Parameter value not allowed || ''&amp;lt;variable&amp;gt;=&amp;lt;value&amp;gt;'' not allowed&lt;br /&gt;
|-&lt;br /&gt;
| 458 || Building internal value failure || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 459 || Authhash could not be found for reading || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 460 || Missing required parameter || Missing ''&amp;lt;variable&amp;gt;''&lt;br /&gt;
|-&lt;br /&gt;
| 461 || Error while updating authhash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 462 || Parameter error || Invalid parameter &amp;lt;variable&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 463 || Invalid station result returned || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 464 || Authhash could not be found or removed || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 465 || Required parameter missing for registration || ''&amp;lt;variable&amp;gt;'' is a required parameter&lt;br /&gt;
|-&lt;br /&gt;
| 466 || Parameter outside of allowed range || ''&amp;lt;variable&amp;gt;'' parameter too long&lt;br /&gt;
|-&lt;br /&gt;
| 467 || Parameter value not recognized in stored values || ''&amp;lt;variable&amp;gt;'' value not recognized&lt;br /&gt;
|-&lt;br /&gt;
| 468 || Error creating intended xml response || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 469 || Authhash could not be updated as not found || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 470 || Invalid authorization hash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 500 || Generic Server Error || n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;variable&amp;gt;'' value in the detailed text will be replaced with the parameter name which the error relates to. The ''&amp;lt;value&amp;gt;'' value in the detailed text will be replaced with the parameter value which the error relates to.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API</id>
		<title>SHOUTcast Radio Authhash API</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API"/>
				<updated>2020-04-24T12:23:33Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Update Authorisation Key */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
A key aspect of the SHOUTcast 2.0 system is the usage of authorisation keys to control the listing of stations within the SHOUTcast Radio Directory (otherwise known as the YP).&lt;br /&gt;
&lt;br /&gt;
The API which is documented here is provided as a means for registered developers to be able to obtain and manage any authorisation keys for the station(s) they are providing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API Overview==&lt;br /&gt;
&lt;br /&gt;
There are four core parts of the authorisation key APIs (usage details are in [[#API_Usage|section 3]]):&lt;br /&gt;
&lt;br /&gt;
:[[#Create_Authorisation_Key|Create]]&lt;br /&gt;
:[[#Check_Authorisation_Key|Check]]&lt;br /&gt;
:[[#Update_Authorisation_Key|Update]]&lt;br /&gt;
:[[#Remove_Authorisation_Key|Remove]]&lt;br /&gt;
&lt;br /&gt;
The authorisation key APIs are xml based responses which provide information and status details of the provided API methods in a common style to ease implementation and usage.&lt;br /&gt;
&lt;br /&gt;
The API methods are called by passing parameters to the required YP site url.&lt;br /&gt;
&lt;br /&gt;
When the API methods are called then the status code of the method response is set to the status code of the API method so it is easy to detect errors from calling the API method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Successful Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are no issues with the API method call then one of the following responses will be received as the response generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first response is the '''basic''' success response and is provided if there is no extra information to be returned by the API method:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second response is the '''full''' success response and is provided when the API method needs to return additional information such as the authorisation key when a new one is created or the details of the authorisation key when using the ''''check'''' method:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;!-- information is found here --&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Error Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are issues experienced during the API method call then an error response will be received which takes the following form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;440&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Invalid devId&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;!-- the following is optional dependent upon the error --&amp;gt;&lt;br /&gt;
 &amp;lt;statusDetailText&amp;gt;Invalid parameter k&amp;lt;/statusDetailText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In all uses of the API methods, the ''''statusCode'''' and ''''statusText'''' elements are provided when an error occurs. The ''''statusDetailText'''' value is an optional element and is only provided if the internal error handling is able to provide additional information. This will usually be present for errors relating to parameter issues i.e. missing parameters.&lt;br /&gt;
&lt;br /&gt;
See [[#Status_Codes|section 5]] for the status codes and messages returned when using the API methods.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API Usage==&lt;br /&gt;
&lt;br /&gt;
The following sections detail how to use the four authorisation key API methods.&lt;br /&gt;
&lt;br /&gt;
Importantly, once an authorisation key has been created then it will be locked to the Developer ID used so you can only check, update or remove authorisation keys against that Developer ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Create Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will create an authorisation key (authhash) and will return it in the xml response on success.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error will be left at their default values which will be indicated by empty xml elements when using the ''''check'''' API.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/createauthhash?k=[Your Dev ID]&amp;amp;stationname=The Station Name&amp;amp;genre=Rock&amp;amp;[Optional Parameters To Set]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (preferably use Shoutcast RadioManager email, if account exists, though any will suffice)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters (replace non-latin/non-alphanumeric characters with [https://www.degraeve.com/reference/urlencoding.php url-encoded] equivalents)&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* genre2 genre3 genre4 genre5 - specify up to 4 additional genres&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
* admode - determine whether monetization support is enabled for DNAS v2.4.7 and later (0=off, 1=on)&lt;br /&gt;
* callsign - the GUID of station if registered in the Shoutcast RadioManager&lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the new authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;authhash&amp;gt;An_Authorisation_Key&amp;lt;/authhash&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Check Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will return all values for an existing authorisation key.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/checkauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to check&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the found details of the authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;response&amp;gt;&lt;br /&gt;
  &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
  &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
   &amp;lt;stationname&amp;gt;The Station Name&amp;lt;/stationname&amp;gt;&lt;br /&gt;
   &amp;lt;genre&amp;gt;Misc&amp;lt;/genre&amp;gt;&lt;br /&gt;
   &amp;lt;website&amp;gt;www.shoutcast.com&amp;lt;/website&amp;gt;&lt;br /&gt;
   &amp;lt;description&amp;gt;The Best Station Ever...!&amp;lt;/description&amp;gt;&lt;br /&gt;
   &amp;lt;langid&amp;gt;EN&amp;lt;/langid&amp;gt;&lt;br /&gt;
   &amp;lt;countryiso&amp;gt;US&amp;lt;/countryiso&amp;gt;&lt;br /&gt;
   &amp;lt;stateiso&amp;gt;00&amp;lt;/stateiso&amp;gt;&lt;br /&gt;
   &amp;lt;city&amp;gt;&amp;lt;/city&amp;gt;&lt;br /&gt;
   &amp;lt;keywords&amp;gt;Greatest Web Station&amp;lt;/keywords&amp;gt;&lt;br /&gt;
   &amp;lt;private&amp;gt;0&amp;lt;/private&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
 &amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 The &amp;lt;stateiso&amp;gt; element will only be returned if the &amp;lt;countryiso&amp;gt; element is 'US'.&lt;br /&gt;
&lt;br /&gt;
===Update Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will update an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error when making an update are reset to their default value when this completes. Otherwise this acts the same as the ''''create'''' API with the addition of specifying the authorisation key to update.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/updateauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;amp;stationname=The Station Name&amp;amp;genre=Misc&amp;amp;[Other Parameters To Update]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to update&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (this is so we can contact you easily in-case of an issue with your listing or needing to inform you of a required DNAS update)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* genre2 genre3 genre4 genre5 - specify up to 4 additional genres&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
* admode - determine whether monetization support is enabled for DNAS v2.4.7 and later (0=off, 1=on)&lt;br /&gt;
* callsign - the GUID of station if registered in the Shoutcast RadioManager &lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
===Remove Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will remove an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/removeauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to remove&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Resources==&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, some additional methods are provided for accessing the supported primary and secondary genres, country, state and language codes. These are provided as a means to check you are using the correct values or to use if creating your own interface around the core authorisation key APIs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These additional methods are accessed via &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/authutil_*&amp;lt;/nowiki&amp;gt; where '''*''' is then replaced with one of the following to get the required information:&lt;br /&gt;
&lt;br /&gt;
* '''country''' - provides provides a html select control containing the ISO 3166-1-alpha-2 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''languages''' - provides provides a html select control containing the ISO 639-1 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''states''' - provides provides a html select control containing the USPO state code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''primarygenre''' - provides a html select control of the primary genre's recognised&lt;br /&gt;
&lt;br /&gt;
* '''secondarygenre?primarygenre=&amp;lt;genre&amp;gt;''' - provides a html select control of the secondary genre's related to the primary genre passed or an empty response if there is no genres found&lt;br /&gt;
&lt;br /&gt;
* '''parentgenre?genre=&amp;lt;genre&amp;gt;''' - provides the name of the parent genre of the passed genre or an empty response if there is no parent genre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All additional methods (excluding the ''''parentgenre'''' method) provide a fully formed html select control which is filled with relevent values based on the parameter passed to the method (if applicable). These are done like this to allow for ease of insertion into a&lt;br /&gt;
&amp;lt;div&amp;gt; element for example with an interface used to control the APIs.&lt;br /&gt;
&lt;br /&gt;
Calling these additional methods (excluding the ''''parentgenre'''' method) with ''''&amp;amp;raw=1'''' in the url will output the result (if applicable) as plain text instead of as a html select control. The values returned are separated by a comma and each data pair is then placed on a new line. This is provided as a quick way of getting the recognised values if the html select control is not suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===User Interface Versions===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, specifying ''''ui_'''' on the front of the API method e.g. &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/ui_checkauthhash&amp;lt;/nowiki&amp;gt; for the ''''check'''' method provides a pre-built interface pages which can be used as a base point for making your own interface for the authorisation key APIs or to use as is as long as you have the required developer access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Genres===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The genre specified for an authhash can only be a primary genre (e.g. Misc) or it can be a secondary genre related to a chosen primary genre (e.g. House from Electronic). The following lists the supported primary genres and the associated secondary genres to them.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Primary Genre&lt;br /&gt;
!Associated Secondary Genres&lt;br /&gt;
|-&lt;br /&gt;
| Alternative || Adult Alternative, Britpop, Classic Alternative, College, Dancepunk, Dream Pop, Emo, Goth, Grunge, Hardcore, Indie Pop, Indie Rock, Industrial, LoFi, Modern Rock, New Wave, Noise Pop, Post Punk, Power Pop, Punk, Ska, Xtreme&lt;br /&gt;
|-&lt;br /&gt;
| Blues || Acoustic Blues, Cajun and Zydeco, Chicago Blues, Contemporary Blues, Country Blues, Delta Blues, Electric Blues&lt;br /&gt;
|-&lt;br /&gt;
| Classical || Baroque, Chamber, Choral, Classical Period, Early Classical, Impressionist, Modern, Opera, Piano, Romantic, Symphony&lt;br /&gt;
|-&lt;br /&gt;
| Country || Alt Country, Americana, Bluegrass, Classic Country, Contemporary Bluegrass, Contemporary Country, Honky Tonk, Hot Country Hits, Western&lt;br /&gt;
|-&lt;br /&gt;
| Decades || 30s, 40s, 50s, 60s, 70s, 80s, 90s, 00s&lt;br /&gt;
|-&lt;br /&gt;
| Easy Listening || Exotica, Light Rock, Lounge, Orchestral Pop, Polka, Space Age Pop&lt;br /&gt;
|-&lt;br /&gt;
| Electronic || Acid House, Ambient, Big Beat, Breakbeat, Dance, Demo, Disco, Downtempo, Drum and Bass, Dubstep, Electro, Garage, Hard House, House, IDM, Jungle, Progressive, Techno, Trance, Tribal, Trip Hop&lt;br /&gt;
|-&lt;br /&gt;
| Folk || Alternative Folk, Contemporary Folk, Folk Rock, New Acoustic, Old Time, Traditional Folk, World Folk&lt;br /&gt;
|-&lt;br /&gt;
| Inspirational || Christian, Christian Metal, Christian Rap, Christian Rock, Classic Christian, Contemporary Gospel, Gospel, Praise and Worship, Sermons and Services, Southern Gospel, Traditional Gospel&lt;br /&gt;
|-&lt;br /&gt;
| International || African, Afrikaans, Arabic, Asian, Bollywood, Brazilian, Caribbean, Celtic, Chinese, Creole, European, Filipino, French, German, Greek, Hawaiian and Pacific, Hebrew, Hindi, Indian, Islamic, Japanese, Klezmer, Korean, Mediterranean, Middle Eastern, North American, Russian, Soca, South American, Tamil, Turkish, Worldbeat, Zouk&lt;br /&gt;
|-&lt;br /&gt;
| Jazz || Acid Jazz, Avant Garde, Big Band, Bop, Classic Jazz, Cool Jazz, Fusion, Hard Bop, Latin Jazz, Smooth Jazz, Swing, Vocal Jazz, World Fusion&lt;br /&gt;
|-&lt;br /&gt;
| Latin || Bachata, Banda, Bossa Nova, Cumbia, Flamenco, Latin Dance, Latin Pop, Latin Rap and Hip Hop, Latin Rock, Mariachi, Merengue, Ranchera, Reggaeton, Regional Mexican, Salsa, Samba, Tango, Tejano, Tropicalia&lt;br /&gt;
|-&lt;br /&gt;
| Metal || Black Metal, Classic Metal, Death Metal, Extreme Metal, Grindcore, Hair Metal, Heavy Metal, Metalcore, Power Metal, Progressive Metal, Rap Metal, Thrash Metal&lt;br /&gt;
|-&lt;br /&gt;
| Misc || &lt;br /&gt;
|-&lt;br /&gt;
| New Age || Environmental, Ethnic Fusion, Healing, Meditation, Spiritual&lt;br /&gt;
|-&lt;br /&gt;
| Pop || Adult Contemporary, Barbershop, Bubblegum Pop, Dance Pop, Idols, JPOP, KPOP, Oldies, Soft Rock, Teen Pop, Top 40, World Pop&lt;br /&gt;
|-&lt;br /&gt;
| Public Radio || College, News, Sports, Talk, Weather&lt;br /&gt;
|-&lt;br /&gt;
| R&amp;amp;B and Urban || &lt;br /&gt;
|-&lt;br /&gt;
| Rap || Alternative Rap, Dirty South, East Coast Rap, Freestyle, Gangsta Rap, Hip Hop, Mixtapes, Old School, Turntablism, Underground Hip Hop, West Coast Rap&lt;br /&gt;
|-&lt;br /&gt;
| Reggae || Contemporary Reggae, Dancehall, Dub, Pop Reggae, Ragga, Reggae Roots, Rock Steady&lt;br /&gt;
|-&lt;br /&gt;
| Rock || Adult Album Alternative, British Invasion, Celtic Rock, Classic Rock, Garage Rock, Glam, Hard Rock, Jam Bands, JROCK, Piano Rock, Prog Rock, Psychedelic, Rock &amp;amp; Roll, Rockabilly, Singer and Songwriter, Surf&lt;br /&gt;
|-&lt;br /&gt;
| Seasonal and Holiday || Anniversary, Birthday, Christmas, Halloween, Hanukkah, Honeymoon, Kwanzaa, Valentine, Wedding, Winter&lt;br /&gt;
|-&lt;br /&gt;
| Soundtracks || Anime, Kids, Original Score, Showtunes, Video Game Music&lt;br /&gt;
|-&lt;br /&gt;
| Talk || BlogTalk, Comedy, Community, Educational, Government, News, Old Time Radio, Other Talk, Political, Scanner, Spoken Word, Sports, Technology&lt;br /&gt;
|-&lt;br /&gt;
| Themes || Adult, Best Of, Chill, Eclectic, Experimental, Female, Heartache, Instrumental, LGBT, Love and Romance, Party Mix, Patriotic, Rainy Day Mix, Reality, Se xy ''(remove space for actual word - spam filter display issue)'', Shuffle, Travel Mix, Tribute, Trippy, Work Mix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Illegal Input Values===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following values are not allowed when entered as the stationname (case insensitively) and will cause a 456 error response to be received when an authorisation key is created or updated as they are not easily found when multiple other listings are also using the same stationame.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 127.0.0.1 || admin || auto dj || auto jedi&lt;br /&gt;
|-&lt;br /&gt;
| auto pj || auto-dj || autodj || autopj&lt;br /&gt;
|-&lt;br /&gt;
| demo || dj || internet radio || live&lt;br /&gt;
|-&lt;br /&gt;
| local server || localhost || localserver || music&lt;br /&gt;
|-&lt;br /&gt;
| my radio || my server || my station name || my test server&lt;br /&gt;
|-&lt;br /&gt;
| n/a || pj || playlist || radio&lt;br /&gt;
|-&lt;br /&gt;
| radio station || test || test server || unnamed server&lt;br /&gt;
|-&lt;br /&gt;
| virtual dj || virtualdj || web rdio || web radio&lt;br /&gt;
|-&lt;br /&gt;
| song || teste || default stream || radio stream&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Additionally, stationnames just containing punctuation are not allowed as well as any which specify a name which matches with the supported genres (see [[SHOUTcast_Radio_Authhash_API#Supported_Genres|section 4.2]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Status Codes==&lt;br /&gt;
&lt;br /&gt;
The following status codes are returned on success or error when using the provided APIs:&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Code&lt;br /&gt;
!Status Text&lt;br /&gt;
!Detailed Text (if available)&lt;br /&gt;
|-&lt;br /&gt;
| 200 || Ok || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 400 || Generic Error || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 404 || Page Not Found || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 440 || Invalid devId || Invalid parameter k&lt;br /&gt;
|-&lt;br /&gt;
| 456 || Parameter value not allowed || ''&amp;lt;variable&amp;gt;=&amp;lt;value&amp;gt;'' not allowed&lt;br /&gt;
|-&lt;br /&gt;
| 458 || Building internal value failure || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 459 || Authhash could not be found for reading || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 460 || Missing required parameter || Missing ''&amp;lt;variable&amp;gt;''&lt;br /&gt;
|-&lt;br /&gt;
| 461 || Error while updating authhash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 462 || Parameter error || Invalid parameter &amp;lt;variable&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 463 || Invalid station result returned || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 464 || Authhash could not be found or removed || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 465 || Required parameter missing for registration || ''&amp;lt;variable&amp;gt;'' is a required parameter&lt;br /&gt;
|-&lt;br /&gt;
| 466 || Parameter outside of allowed range || ''&amp;lt;variable&amp;gt;'' parameter too long&lt;br /&gt;
|-&lt;br /&gt;
| 467 || Parameter value not recognized in stored values || ''&amp;lt;variable&amp;gt;'' value not recognized&lt;br /&gt;
|-&lt;br /&gt;
| 468 || Error creating intended xml response || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 469 || Authhash could not be updated as not found || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 470 || Invalid authorization hash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 500 || Generic Server Error || n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;variable&amp;gt;'' value in the detailed text will be replaced with the parameter name which the error relates to. The ''&amp;lt;value&amp;gt;'' value in the detailed text will be replaced with the parameter value which the error relates to.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API</id>
		<title>SHOUTcast Radio Authhash API</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API"/>
				<updated>2020-04-24T12:21:43Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Check Authorisation Key */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
A key aspect of the SHOUTcast 2.0 system is the usage of authorisation keys to control the listing of stations within the SHOUTcast Radio Directory (otherwise known as the YP).&lt;br /&gt;
&lt;br /&gt;
The API which is documented here is provided as a means for registered developers to be able to obtain and manage any authorisation keys for the station(s) they are providing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API Overview==&lt;br /&gt;
&lt;br /&gt;
There are four core parts of the authorisation key APIs (usage details are in [[#API_Usage|section 3]]):&lt;br /&gt;
&lt;br /&gt;
:[[#Create_Authorisation_Key|Create]]&lt;br /&gt;
:[[#Check_Authorisation_Key|Check]]&lt;br /&gt;
:[[#Update_Authorisation_Key|Update]]&lt;br /&gt;
:[[#Remove_Authorisation_Key|Remove]]&lt;br /&gt;
&lt;br /&gt;
The authorisation key APIs are xml based responses which provide information and status details of the provided API methods in a common style to ease implementation and usage.&lt;br /&gt;
&lt;br /&gt;
The API methods are called by passing parameters to the required YP site url.&lt;br /&gt;
&lt;br /&gt;
When the API methods are called then the status code of the method response is set to the status code of the API method so it is easy to detect errors from calling the API method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Successful Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are no issues with the API method call then one of the following responses will be received as the response generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first response is the '''basic''' success response and is provided if there is no extra information to be returned by the API method:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second response is the '''full''' success response and is provided when the API method needs to return additional information such as the authorisation key when a new one is created or the details of the authorisation key when using the ''''check'''' method:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;!-- information is found here --&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Error Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are issues experienced during the API method call then an error response will be received which takes the following form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;440&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Invalid devId&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;!-- the following is optional dependent upon the error --&amp;gt;&lt;br /&gt;
 &amp;lt;statusDetailText&amp;gt;Invalid parameter k&amp;lt;/statusDetailText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In all uses of the API methods, the ''''statusCode'''' and ''''statusText'''' elements are provided when an error occurs. The ''''statusDetailText'''' value is an optional element and is only provided if the internal error handling is able to provide additional information. This will usually be present for errors relating to parameter issues i.e. missing parameters.&lt;br /&gt;
&lt;br /&gt;
See [[#Status_Codes|section 5]] for the status codes and messages returned when using the API methods.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API Usage==&lt;br /&gt;
&lt;br /&gt;
The following sections detail how to use the four authorisation key API methods.&lt;br /&gt;
&lt;br /&gt;
Importantly, once an authorisation key has been created then it will be locked to the Developer ID used so you can only check, update or remove authorisation keys against that Developer ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Create Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will create an authorisation key (authhash) and will return it in the xml response on success.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error will be left at their default values which will be indicated by empty xml elements when using the ''''check'''' API.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/createauthhash?k=[Your Dev ID]&amp;amp;stationname=The Station Name&amp;amp;genre=Rock&amp;amp;[Optional Parameters To Set]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (preferably use Shoutcast RadioManager email, if account exists, though any will suffice)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters (replace non-latin/non-alphanumeric characters with [https://www.degraeve.com/reference/urlencoding.php url-encoded] equivalents)&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* genre2 genre3 genre4 genre5 - specify up to 4 additional genres&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
* admode - determine whether monetization support is enabled for DNAS v2.4.7 and later (0=off, 1=on)&lt;br /&gt;
* callsign - the GUID of station if registered in the Shoutcast RadioManager&lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the new authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;authhash&amp;gt;An_Authorisation_Key&amp;lt;/authhash&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Check Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will return all values for an existing authorisation key.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/checkauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to check&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the found details of the authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;response&amp;gt;&lt;br /&gt;
  &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
  &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
   &amp;lt;stationname&amp;gt;The Station Name&amp;lt;/stationname&amp;gt;&lt;br /&gt;
   &amp;lt;genre&amp;gt;Misc&amp;lt;/genre&amp;gt;&lt;br /&gt;
   &amp;lt;website&amp;gt;www.shoutcast.com&amp;lt;/website&amp;gt;&lt;br /&gt;
   &amp;lt;description&amp;gt;The Best Station Ever...!&amp;lt;/description&amp;gt;&lt;br /&gt;
   &amp;lt;langid&amp;gt;EN&amp;lt;/langid&amp;gt;&lt;br /&gt;
   &amp;lt;countryiso&amp;gt;US&amp;lt;/countryiso&amp;gt;&lt;br /&gt;
   &amp;lt;stateiso&amp;gt;00&amp;lt;/stateiso&amp;gt;&lt;br /&gt;
   &amp;lt;city&amp;gt;&amp;lt;/city&amp;gt;&lt;br /&gt;
   &amp;lt;keywords&amp;gt;Greatest Web Station&amp;lt;/keywords&amp;gt;&lt;br /&gt;
   &amp;lt;private&amp;gt;0&amp;lt;/private&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
 &amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 The &amp;lt;stateiso&amp;gt; element will only be returned if the &amp;lt;countryiso&amp;gt; element is 'US'.&lt;br /&gt;
&lt;br /&gt;
===Update Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will update an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error when making an update are reset to their default value when this completes. Otherwise this acts the same as the ''''create'''' API with the addition of specifying the authorisation key to update.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/updateauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;amp;stationname=The Station Name&amp;amp;genre=Misc&amp;amp;[Other Parameters To Update]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to update&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (this is so we can contact you easily in-case of an issue with your listing or needing to inform you of a required DNAS update)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Remove Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will remove an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/removeauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to remove&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Resources==&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, some additional methods are provided for accessing the supported primary and secondary genres, country, state and language codes. These are provided as a means to check you are using the correct values or to use if creating your own interface around the core authorisation key APIs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These additional methods are accessed via &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/authutil_*&amp;lt;/nowiki&amp;gt; where '''*''' is then replaced with one of the following to get the required information:&lt;br /&gt;
&lt;br /&gt;
* '''country''' - provides provides a html select control containing the ISO 3166-1-alpha-2 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''languages''' - provides provides a html select control containing the ISO 639-1 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''states''' - provides provides a html select control containing the USPO state code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''primarygenre''' - provides a html select control of the primary genre's recognised&lt;br /&gt;
&lt;br /&gt;
* '''secondarygenre?primarygenre=&amp;lt;genre&amp;gt;''' - provides a html select control of the secondary genre's related to the primary genre passed or an empty response if there is no genres found&lt;br /&gt;
&lt;br /&gt;
* '''parentgenre?genre=&amp;lt;genre&amp;gt;''' - provides the name of the parent genre of the passed genre or an empty response if there is no parent genre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All additional methods (excluding the ''''parentgenre'''' method) provide a fully formed html select control which is filled with relevent values based on the parameter passed to the method (if applicable). These are done like this to allow for ease of insertion into a&lt;br /&gt;
&amp;lt;div&amp;gt; element for example with an interface used to control the APIs.&lt;br /&gt;
&lt;br /&gt;
Calling these additional methods (excluding the ''''parentgenre'''' method) with ''''&amp;amp;raw=1'''' in the url will output the result (if applicable) as plain text instead of as a html select control. The values returned are separated by a comma and each data pair is then placed on a new line. This is provided as a quick way of getting the recognised values if the html select control is not suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===User Interface Versions===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, specifying ''''ui_'''' on the front of the API method e.g. &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/ui_checkauthhash&amp;lt;/nowiki&amp;gt; for the ''''check'''' method provides a pre-built interface pages which can be used as a base point for making your own interface for the authorisation key APIs or to use as is as long as you have the required developer access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Genres===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The genre specified for an authhash can only be a primary genre (e.g. Misc) or it can be a secondary genre related to a chosen primary genre (e.g. House from Electronic). The following lists the supported primary genres and the associated secondary genres to them.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Primary Genre&lt;br /&gt;
!Associated Secondary Genres&lt;br /&gt;
|-&lt;br /&gt;
| Alternative || Adult Alternative, Britpop, Classic Alternative, College, Dancepunk, Dream Pop, Emo, Goth, Grunge, Hardcore, Indie Pop, Indie Rock, Industrial, LoFi, Modern Rock, New Wave, Noise Pop, Post Punk, Power Pop, Punk, Ska, Xtreme&lt;br /&gt;
|-&lt;br /&gt;
| Blues || Acoustic Blues, Cajun and Zydeco, Chicago Blues, Contemporary Blues, Country Blues, Delta Blues, Electric Blues&lt;br /&gt;
|-&lt;br /&gt;
| Classical || Baroque, Chamber, Choral, Classical Period, Early Classical, Impressionist, Modern, Opera, Piano, Romantic, Symphony&lt;br /&gt;
|-&lt;br /&gt;
| Country || Alt Country, Americana, Bluegrass, Classic Country, Contemporary Bluegrass, Contemporary Country, Honky Tonk, Hot Country Hits, Western&lt;br /&gt;
|-&lt;br /&gt;
| Decades || 30s, 40s, 50s, 60s, 70s, 80s, 90s, 00s&lt;br /&gt;
|-&lt;br /&gt;
| Easy Listening || Exotica, Light Rock, Lounge, Orchestral Pop, Polka, Space Age Pop&lt;br /&gt;
|-&lt;br /&gt;
| Electronic || Acid House, Ambient, Big Beat, Breakbeat, Dance, Demo, Disco, Downtempo, Drum and Bass, Dubstep, Electro, Garage, Hard House, House, IDM, Jungle, Progressive, Techno, Trance, Tribal, Trip Hop&lt;br /&gt;
|-&lt;br /&gt;
| Folk || Alternative Folk, Contemporary Folk, Folk Rock, New Acoustic, Old Time, Traditional Folk, World Folk&lt;br /&gt;
|-&lt;br /&gt;
| Inspirational || Christian, Christian Metal, Christian Rap, Christian Rock, Classic Christian, Contemporary Gospel, Gospel, Praise and Worship, Sermons and Services, Southern Gospel, Traditional Gospel&lt;br /&gt;
|-&lt;br /&gt;
| International || African, Afrikaans, Arabic, Asian, Bollywood, Brazilian, Caribbean, Celtic, Chinese, Creole, European, Filipino, French, German, Greek, Hawaiian and Pacific, Hebrew, Hindi, Indian, Islamic, Japanese, Klezmer, Korean, Mediterranean, Middle Eastern, North American, Russian, Soca, South American, Tamil, Turkish, Worldbeat, Zouk&lt;br /&gt;
|-&lt;br /&gt;
| Jazz || Acid Jazz, Avant Garde, Big Band, Bop, Classic Jazz, Cool Jazz, Fusion, Hard Bop, Latin Jazz, Smooth Jazz, Swing, Vocal Jazz, World Fusion&lt;br /&gt;
|-&lt;br /&gt;
| Latin || Bachata, Banda, Bossa Nova, Cumbia, Flamenco, Latin Dance, Latin Pop, Latin Rap and Hip Hop, Latin Rock, Mariachi, Merengue, Ranchera, Reggaeton, Regional Mexican, Salsa, Samba, Tango, Tejano, Tropicalia&lt;br /&gt;
|-&lt;br /&gt;
| Metal || Black Metal, Classic Metal, Death Metal, Extreme Metal, Grindcore, Hair Metal, Heavy Metal, Metalcore, Power Metal, Progressive Metal, Rap Metal, Thrash Metal&lt;br /&gt;
|-&lt;br /&gt;
| Misc || &lt;br /&gt;
|-&lt;br /&gt;
| New Age || Environmental, Ethnic Fusion, Healing, Meditation, Spiritual&lt;br /&gt;
|-&lt;br /&gt;
| Pop || Adult Contemporary, Barbershop, Bubblegum Pop, Dance Pop, Idols, JPOP, KPOP, Oldies, Soft Rock, Teen Pop, Top 40, World Pop&lt;br /&gt;
|-&lt;br /&gt;
| Public Radio || College, News, Sports, Talk, Weather&lt;br /&gt;
|-&lt;br /&gt;
| R&amp;amp;B and Urban || &lt;br /&gt;
|-&lt;br /&gt;
| Rap || Alternative Rap, Dirty South, East Coast Rap, Freestyle, Gangsta Rap, Hip Hop, Mixtapes, Old School, Turntablism, Underground Hip Hop, West Coast Rap&lt;br /&gt;
|-&lt;br /&gt;
| Reggae || Contemporary Reggae, Dancehall, Dub, Pop Reggae, Ragga, Reggae Roots, Rock Steady&lt;br /&gt;
|-&lt;br /&gt;
| Rock || Adult Album Alternative, British Invasion, Celtic Rock, Classic Rock, Garage Rock, Glam, Hard Rock, Jam Bands, JROCK, Piano Rock, Prog Rock, Psychedelic, Rock &amp;amp; Roll, Rockabilly, Singer and Songwriter, Surf&lt;br /&gt;
|-&lt;br /&gt;
| Seasonal and Holiday || Anniversary, Birthday, Christmas, Halloween, Hanukkah, Honeymoon, Kwanzaa, Valentine, Wedding, Winter&lt;br /&gt;
|-&lt;br /&gt;
| Soundtracks || Anime, Kids, Original Score, Showtunes, Video Game Music&lt;br /&gt;
|-&lt;br /&gt;
| Talk || BlogTalk, Comedy, Community, Educational, Government, News, Old Time Radio, Other Talk, Political, Scanner, Spoken Word, Sports, Technology&lt;br /&gt;
|-&lt;br /&gt;
| Themes || Adult, Best Of, Chill, Eclectic, Experimental, Female, Heartache, Instrumental, LGBT, Love and Romance, Party Mix, Patriotic, Rainy Day Mix, Reality, Se xy ''(remove space for actual word - spam filter display issue)'', Shuffle, Travel Mix, Tribute, Trippy, Work Mix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Illegal Input Values===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following values are not allowed when entered as the stationname (case insensitively) and will cause a 456 error response to be received when an authorisation key is created or updated as they are not easily found when multiple other listings are also using the same stationame.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 127.0.0.1 || admin || auto dj || auto jedi&lt;br /&gt;
|-&lt;br /&gt;
| auto pj || auto-dj || autodj || autopj&lt;br /&gt;
|-&lt;br /&gt;
| demo || dj || internet radio || live&lt;br /&gt;
|-&lt;br /&gt;
| local server || localhost || localserver || music&lt;br /&gt;
|-&lt;br /&gt;
| my radio || my server || my station name || my test server&lt;br /&gt;
|-&lt;br /&gt;
| n/a || pj || playlist || radio&lt;br /&gt;
|-&lt;br /&gt;
| radio station || test || test server || unnamed server&lt;br /&gt;
|-&lt;br /&gt;
| virtual dj || virtualdj || web rdio || web radio&lt;br /&gt;
|-&lt;br /&gt;
| song || teste || default stream || radio stream&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Additionally, stationnames just containing punctuation are not allowed as well as any which specify a name which matches with the supported genres (see [[SHOUTcast_Radio_Authhash_API#Supported_Genres|section 4.2]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Status Codes==&lt;br /&gt;
&lt;br /&gt;
The following status codes are returned on success or error when using the provided APIs:&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Code&lt;br /&gt;
!Status Text&lt;br /&gt;
!Detailed Text (if available)&lt;br /&gt;
|-&lt;br /&gt;
| 200 || Ok || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 400 || Generic Error || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 404 || Page Not Found || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 440 || Invalid devId || Invalid parameter k&lt;br /&gt;
|-&lt;br /&gt;
| 456 || Parameter value not allowed || ''&amp;lt;variable&amp;gt;=&amp;lt;value&amp;gt;'' not allowed&lt;br /&gt;
|-&lt;br /&gt;
| 458 || Building internal value failure || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 459 || Authhash could not be found for reading || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 460 || Missing required parameter || Missing ''&amp;lt;variable&amp;gt;''&lt;br /&gt;
|-&lt;br /&gt;
| 461 || Error while updating authhash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 462 || Parameter error || Invalid parameter &amp;lt;variable&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 463 || Invalid station result returned || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 464 || Authhash could not be found or removed || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 465 || Required parameter missing for registration || ''&amp;lt;variable&amp;gt;'' is a required parameter&lt;br /&gt;
|-&lt;br /&gt;
| 466 || Parameter outside of allowed range || ''&amp;lt;variable&amp;gt;'' parameter too long&lt;br /&gt;
|-&lt;br /&gt;
| 467 || Parameter value not recognized in stored values || ''&amp;lt;variable&amp;gt;'' value not recognized&lt;br /&gt;
|-&lt;br /&gt;
| 468 || Error creating intended xml response || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 469 || Authhash could not be updated as not found || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 470 || Invalid authorization hash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 500 || Generic Server Error || n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;variable&amp;gt;'' value in the detailed text will be replaced with the parameter name which the error relates to. The ''&amp;lt;value&amp;gt;'' value in the detailed text will be replaced with the parameter value which the error relates to.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API</id>
		<title>SHOUTcast Radio Authhash API</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API"/>
				<updated>2020-04-24T12:17:22Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Create Authorisation Key */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
A key aspect of the SHOUTcast 2.0 system is the usage of authorisation keys to control the listing of stations within the SHOUTcast Radio Directory (otherwise known as the YP).&lt;br /&gt;
&lt;br /&gt;
The API which is documented here is provided as a means for registered developers to be able to obtain and manage any authorisation keys for the station(s) they are providing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API Overview==&lt;br /&gt;
&lt;br /&gt;
There are four core parts of the authorisation key APIs (usage details are in [[#API_Usage|section 3]]):&lt;br /&gt;
&lt;br /&gt;
:[[#Create_Authorisation_Key|Create]]&lt;br /&gt;
:[[#Check_Authorisation_Key|Check]]&lt;br /&gt;
:[[#Update_Authorisation_Key|Update]]&lt;br /&gt;
:[[#Remove_Authorisation_Key|Remove]]&lt;br /&gt;
&lt;br /&gt;
The authorisation key APIs are xml based responses which provide information and status details of the provided API methods in a common style to ease implementation and usage.&lt;br /&gt;
&lt;br /&gt;
The API methods are called by passing parameters to the required YP site url.&lt;br /&gt;
&lt;br /&gt;
When the API methods are called then the status code of the method response is set to the status code of the API method so it is easy to detect errors from calling the API method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Successful Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are no issues with the API method call then one of the following responses will be received as the response generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first response is the '''basic''' success response and is provided if there is no extra information to be returned by the API method:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second response is the '''full''' success response and is provided when the API method needs to return additional information such as the authorisation key when a new one is created or the details of the authorisation key when using the ''''check'''' method:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;!-- information is found here --&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Error Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are issues experienced during the API method call then an error response will be received which takes the following form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;440&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Invalid devId&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;!-- the following is optional dependent upon the error --&amp;gt;&lt;br /&gt;
 &amp;lt;statusDetailText&amp;gt;Invalid parameter k&amp;lt;/statusDetailText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In all uses of the API methods, the ''''statusCode'''' and ''''statusText'''' elements are provided when an error occurs. The ''''statusDetailText'''' value is an optional element and is only provided if the internal error handling is able to provide additional information. This will usually be present for errors relating to parameter issues i.e. missing parameters.&lt;br /&gt;
&lt;br /&gt;
See [[#Status_Codes|section 5]] for the status codes and messages returned when using the API methods.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API Usage==&lt;br /&gt;
&lt;br /&gt;
The following sections detail how to use the four authorisation key API methods.&lt;br /&gt;
&lt;br /&gt;
Importantly, once an authorisation key has been created then it will be locked to the Developer ID used so you can only check, update or remove authorisation keys against that Developer ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Create Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will create an authorisation key (authhash) and will return it in the xml response on success.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error will be left at their default values which will be indicated by empty xml elements when using the ''''check'''' API.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/createauthhash?k=[Your Dev ID]&amp;amp;stationname=The Station Name&amp;amp;genre=Rock&amp;amp;[Optional Parameters To Set]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (preferably use Shoutcast RadioManager email, if account exists, though any will suffice)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters (replace non-latin/non-alphanumeric characters with [https://www.degraeve.com/reference/urlencoding.php url-encoded] equivalents)&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* genre2 genre3 genre4 genre5 - specify up to 4 additional genres&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
* admode - determine whether monetization support is enabled for DNAS v2.4.7 and later (0=off, 1=on)&lt;br /&gt;
* callsign - the GUID of station if registered in the Shoutcast RadioManager&lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the new authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;authhash&amp;gt;An_Authorisation_Key&amp;lt;/authhash&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Check Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will remove an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/checkauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to check&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the found details of the authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;response&amp;gt;&lt;br /&gt;
  &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
  &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
   &amp;lt;stationname&amp;gt;The Station Name&amp;lt;/stationname&amp;gt;&lt;br /&gt;
   &amp;lt;genre&amp;gt;Misc&amp;lt;/genre&amp;gt;&lt;br /&gt;
   &amp;lt;website&amp;gt;www.shoutcast.com&amp;lt;/website&amp;gt;&lt;br /&gt;
   &amp;lt;description&amp;gt;The Best Station Ever...!&amp;lt;/description&amp;gt;&lt;br /&gt;
   &amp;lt;langid&amp;gt;EN&amp;lt;/langid&amp;gt;&lt;br /&gt;
   &amp;lt;countryiso&amp;gt;US&amp;lt;/countryiso&amp;gt;&lt;br /&gt;
   &amp;lt;stateiso&amp;gt;00&amp;lt;/stateiso&amp;gt;&lt;br /&gt;
   &amp;lt;city&amp;gt;&amp;lt;/city&amp;gt;&lt;br /&gt;
   &amp;lt;keywords&amp;gt;Greatest Web Station&amp;lt;/keywords&amp;gt;&lt;br /&gt;
   &amp;lt;private&amp;gt;0&amp;lt;/private&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
 &amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 The &amp;lt;stateiso&amp;gt; element will only be returned if the &amp;lt;countryiso&amp;gt; element is 'US'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Update Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will update an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error when making an update are reset to their default value when this completes. Otherwise this acts the same as the ''''create'''' API with the addition of specifying the authorisation key to update.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/updateauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;amp;stationname=The Station Name&amp;amp;genre=Misc&amp;amp;[Other Parameters To Update]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to update&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (this is so we can contact you easily in-case of an issue with your listing or needing to inform you of a required DNAS update)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Remove Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will remove an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/removeauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to remove&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Resources==&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, some additional methods are provided for accessing the supported primary and secondary genres, country, state and language codes. These are provided as a means to check you are using the correct values or to use if creating your own interface around the core authorisation key APIs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These additional methods are accessed via &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/authutil_*&amp;lt;/nowiki&amp;gt; where '''*''' is then replaced with one of the following to get the required information:&lt;br /&gt;
&lt;br /&gt;
* '''country''' - provides provides a html select control containing the ISO 3166-1-alpha-2 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''languages''' - provides provides a html select control containing the ISO 639-1 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''states''' - provides provides a html select control containing the USPO state code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''primarygenre''' - provides a html select control of the primary genre's recognised&lt;br /&gt;
&lt;br /&gt;
* '''secondarygenre?primarygenre=&amp;lt;genre&amp;gt;''' - provides a html select control of the secondary genre's related to the primary genre passed or an empty response if there is no genres found&lt;br /&gt;
&lt;br /&gt;
* '''parentgenre?genre=&amp;lt;genre&amp;gt;''' - provides the name of the parent genre of the passed genre or an empty response if there is no parent genre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All additional methods (excluding the ''''parentgenre'''' method) provide a fully formed html select control which is filled with relevent values based on the parameter passed to the method (if applicable). These are done like this to allow for ease of insertion into a&lt;br /&gt;
&amp;lt;div&amp;gt; element for example with an interface used to control the APIs.&lt;br /&gt;
&lt;br /&gt;
Calling these additional methods (excluding the ''''parentgenre'''' method) with ''''&amp;amp;raw=1'''' in the url will output the result (if applicable) as plain text instead of as a html select control. The values returned are separated by a comma and each data pair is then placed on a new line. This is provided as a quick way of getting the recognised values if the html select control is not suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===User Interface Versions===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, specifying ''''ui_'''' on the front of the API method e.g. &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/ui_checkauthhash&amp;lt;/nowiki&amp;gt; for the ''''check'''' method provides a pre-built interface pages which can be used as a base point for making your own interface for the authorisation key APIs or to use as is as long as you have the required developer access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Genres===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The genre specified for an authhash can only be a primary genre (e.g. Misc) or it can be a secondary genre related to a chosen primary genre (e.g. House from Electronic). The following lists the supported primary genres and the associated secondary genres to them.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Primary Genre&lt;br /&gt;
!Associated Secondary Genres&lt;br /&gt;
|-&lt;br /&gt;
| Alternative || Adult Alternative, Britpop, Classic Alternative, College, Dancepunk, Dream Pop, Emo, Goth, Grunge, Hardcore, Indie Pop, Indie Rock, Industrial, LoFi, Modern Rock, New Wave, Noise Pop, Post Punk, Power Pop, Punk, Ska, Xtreme&lt;br /&gt;
|-&lt;br /&gt;
| Blues || Acoustic Blues, Cajun and Zydeco, Chicago Blues, Contemporary Blues, Country Blues, Delta Blues, Electric Blues&lt;br /&gt;
|-&lt;br /&gt;
| Classical || Baroque, Chamber, Choral, Classical Period, Early Classical, Impressionist, Modern, Opera, Piano, Romantic, Symphony&lt;br /&gt;
|-&lt;br /&gt;
| Country || Alt Country, Americana, Bluegrass, Classic Country, Contemporary Bluegrass, Contemporary Country, Honky Tonk, Hot Country Hits, Western&lt;br /&gt;
|-&lt;br /&gt;
| Decades || 30s, 40s, 50s, 60s, 70s, 80s, 90s, 00s&lt;br /&gt;
|-&lt;br /&gt;
| Easy Listening || Exotica, Light Rock, Lounge, Orchestral Pop, Polka, Space Age Pop&lt;br /&gt;
|-&lt;br /&gt;
| Electronic || Acid House, Ambient, Big Beat, Breakbeat, Dance, Demo, Disco, Downtempo, Drum and Bass, Dubstep, Electro, Garage, Hard House, House, IDM, Jungle, Progressive, Techno, Trance, Tribal, Trip Hop&lt;br /&gt;
|-&lt;br /&gt;
| Folk || Alternative Folk, Contemporary Folk, Folk Rock, New Acoustic, Old Time, Traditional Folk, World Folk&lt;br /&gt;
|-&lt;br /&gt;
| Inspirational || Christian, Christian Metal, Christian Rap, Christian Rock, Classic Christian, Contemporary Gospel, Gospel, Praise and Worship, Sermons and Services, Southern Gospel, Traditional Gospel&lt;br /&gt;
|-&lt;br /&gt;
| International || African, Afrikaans, Arabic, Asian, Bollywood, Brazilian, Caribbean, Celtic, Chinese, Creole, European, Filipino, French, German, Greek, Hawaiian and Pacific, Hebrew, Hindi, Indian, Islamic, Japanese, Klezmer, Korean, Mediterranean, Middle Eastern, North American, Russian, Soca, South American, Tamil, Turkish, Worldbeat, Zouk&lt;br /&gt;
|-&lt;br /&gt;
| Jazz || Acid Jazz, Avant Garde, Big Band, Bop, Classic Jazz, Cool Jazz, Fusion, Hard Bop, Latin Jazz, Smooth Jazz, Swing, Vocal Jazz, World Fusion&lt;br /&gt;
|-&lt;br /&gt;
| Latin || Bachata, Banda, Bossa Nova, Cumbia, Flamenco, Latin Dance, Latin Pop, Latin Rap and Hip Hop, Latin Rock, Mariachi, Merengue, Ranchera, Reggaeton, Regional Mexican, Salsa, Samba, Tango, Tejano, Tropicalia&lt;br /&gt;
|-&lt;br /&gt;
| Metal || Black Metal, Classic Metal, Death Metal, Extreme Metal, Grindcore, Hair Metal, Heavy Metal, Metalcore, Power Metal, Progressive Metal, Rap Metal, Thrash Metal&lt;br /&gt;
|-&lt;br /&gt;
| Misc || &lt;br /&gt;
|-&lt;br /&gt;
| New Age || Environmental, Ethnic Fusion, Healing, Meditation, Spiritual&lt;br /&gt;
|-&lt;br /&gt;
| Pop || Adult Contemporary, Barbershop, Bubblegum Pop, Dance Pop, Idols, JPOP, KPOP, Oldies, Soft Rock, Teen Pop, Top 40, World Pop&lt;br /&gt;
|-&lt;br /&gt;
| Public Radio || College, News, Sports, Talk, Weather&lt;br /&gt;
|-&lt;br /&gt;
| R&amp;amp;B and Urban || &lt;br /&gt;
|-&lt;br /&gt;
| Rap || Alternative Rap, Dirty South, East Coast Rap, Freestyle, Gangsta Rap, Hip Hop, Mixtapes, Old School, Turntablism, Underground Hip Hop, West Coast Rap&lt;br /&gt;
|-&lt;br /&gt;
| Reggae || Contemporary Reggae, Dancehall, Dub, Pop Reggae, Ragga, Reggae Roots, Rock Steady&lt;br /&gt;
|-&lt;br /&gt;
| Rock || Adult Album Alternative, British Invasion, Celtic Rock, Classic Rock, Garage Rock, Glam, Hard Rock, Jam Bands, JROCK, Piano Rock, Prog Rock, Psychedelic, Rock &amp;amp; Roll, Rockabilly, Singer and Songwriter, Surf&lt;br /&gt;
|-&lt;br /&gt;
| Seasonal and Holiday || Anniversary, Birthday, Christmas, Halloween, Hanukkah, Honeymoon, Kwanzaa, Valentine, Wedding, Winter&lt;br /&gt;
|-&lt;br /&gt;
| Soundtracks || Anime, Kids, Original Score, Showtunes, Video Game Music&lt;br /&gt;
|-&lt;br /&gt;
| Talk || BlogTalk, Comedy, Community, Educational, Government, News, Old Time Radio, Other Talk, Political, Scanner, Spoken Word, Sports, Technology&lt;br /&gt;
|-&lt;br /&gt;
| Themes || Adult, Best Of, Chill, Eclectic, Experimental, Female, Heartache, Instrumental, LGBT, Love and Romance, Party Mix, Patriotic, Rainy Day Mix, Reality, Se xy ''(remove space for actual word - spam filter display issue)'', Shuffle, Travel Mix, Tribute, Trippy, Work Mix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Illegal Input Values===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following values are not allowed when entered as the stationname (case insensitively) and will cause a 456 error response to be received when an authorisation key is created or updated as they are not easily found when multiple other listings are also using the same stationame.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 127.0.0.1 || admin || auto dj || auto jedi&lt;br /&gt;
|-&lt;br /&gt;
| auto pj || auto-dj || autodj || autopj&lt;br /&gt;
|-&lt;br /&gt;
| demo || dj || internet radio || live&lt;br /&gt;
|-&lt;br /&gt;
| local server || localhost || localserver || music&lt;br /&gt;
|-&lt;br /&gt;
| my radio || my server || my station name || my test server&lt;br /&gt;
|-&lt;br /&gt;
| n/a || pj || playlist || radio&lt;br /&gt;
|-&lt;br /&gt;
| radio station || test || test server || unnamed server&lt;br /&gt;
|-&lt;br /&gt;
| virtual dj || virtualdj || web rdio || web radio&lt;br /&gt;
|-&lt;br /&gt;
| song || teste || default stream || radio stream&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Additionally, stationnames just containing punctuation are not allowed as well as any which specify a name which matches with the supported genres (see [[SHOUTcast_Radio_Authhash_API#Supported_Genres|section 4.2]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Status Codes==&lt;br /&gt;
&lt;br /&gt;
The following status codes are returned on success or error when using the provided APIs:&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Code&lt;br /&gt;
!Status Text&lt;br /&gt;
!Detailed Text (if available)&lt;br /&gt;
|-&lt;br /&gt;
| 200 || Ok || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 400 || Generic Error || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 404 || Page Not Found || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 440 || Invalid devId || Invalid parameter k&lt;br /&gt;
|-&lt;br /&gt;
| 456 || Parameter value not allowed || ''&amp;lt;variable&amp;gt;=&amp;lt;value&amp;gt;'' not allowed&lt;br /&gt;
|-&lt;br /&gt;
| 458 || Building internal value failure || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 459 || Authhash could not be found for reading || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 460 || Missing required parameter || Missing ''&amp;lt;variable&amp;gt;''&lt;br /&gt;
|-&lt;br /&gt;
| 461 || Error while updating authhash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 462 || Parameter error || Invalid parameter &amp;lt;variable&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 463 || Invalid station result returned || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 464 || Authhash could not be found or removed || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 465 || Required parameter missing for registration || ''&amp;lt;variable&amp;gt;'' is a required parameter&lt;br /&gt;
|-&lt;br /&gt;
| 466 || Parameter outside of allowed range || ''&amp;lt;variable&amp;gt;'' parameter too long&lt;br /&gt;
|-&lt;br /&gt;
| 467 || Parameter value not recognized in stored values || ''&amp;lt;variable&amp;gt;'' value not recognized&lt;br /&gt;
|-&lt;br /&gt;
| 468 || Error creating intended xml response || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 469 || Authhash could not be updated as not found || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 470 || Invalid authorization hash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 500 || Generic Server Error || n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;variable&amp;gt;'' value in the detailed text will be replaced with the parameter name which the error relates to. The ''&amp;lt;value&amp;gt;'' value in the detailed text will be replaced with the parameter value which the error relates to.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API</id>
		<title>SHOUTcast Radio Authhash API</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API"/>
				<updated>2020-04-24T12:01:28Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Create Authorisation Key */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
A key aspect of the SHOUTcast 2.0 system is the usage of authorisation keys to control the listing of stations within the SHOUTcast Radio Directory (otherwise known as the YP).&lt;br /&gt;
&lt;br /&gt;
The API which is documented here is provided as a means for registered developers to be able to obtain and manage any authorisation keys for the station(s) they are providing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API Overview==&lt;br /&gt;
&lt;br /&gt;
There are four core parts of the authorisation key APIs (usage details are in [[#API_Usage|section 3]]):&lt;br /&gt;
&lt;br /&gt;
:[[#Create_Authorisation_Key|Create]]&lt;br /&gt;
:[[#Check_Authorisation_Key|Check]]&lt;br /&gt;
:[[#Update_Authorisation_Key|Update]]&lt;br /&gt;
:[[#Remove_Authorisation_Key|Remove]]&lt;br /&gt;
&lt;br /&gt;
The authorisation key APIs are xml based responses which provide information and status details of the provided API methods in a common style to ease implementation and usage.&lt;br /&gt;
&lt;br /&gt;
The API methods are called by passing parameters to the required YP site url.&lt;br /&gt;
&lt;br /&gt;
When the API methods are called then the status code of the method response is set to the status code of the API method so it is easy to detect errors from calling the API method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Successful Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are no issues with the API method call then one of the following responses will be received as the response generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first response is the '''basic''' success response and is provided if there is no extra information to be returned by the API method:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second response is the '''full''' success response and is provided when the API method needs to return additional information such as the authorisation key when a new one is created or the details of the authorisation key when using the ''''check'''' method:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;!-- information is found here --&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Error Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are issues experienced during the API method call then an error response will be received which takes the following form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;440&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Invalid devId&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;!-- the following is optional dependent upon the error --&amp;gt;&lt;br /&gt;
 &amp;lt;statusDetailText&amp;gt;Invalid parameter k&amp;lt;/statusDetailText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In all uses of the API methods, the ''''statusCode'''' and ''''statusText'''' elements are provided when an error occurs. The ''''statusDetailText'''' value is an optional element and is only provided if the internal error handling is able to provide additional information. This will usually be present for errors relating to parameter issues i.e. missing parameters.&lt;br /&gt;
&lt;br /&gt;
See [[#Status_Codes|section 5]] for the status codes and messages returned when using the API methods.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API Usage==&lt;br /&gt;
&lt;br /&gt;
The following sections detail how to use the four authorisation key API methods.&lt;br /&gt;
&lt;br /&gt;
Importantly, once an authorisation key has been created then it will be locked to the Developer ID used so you can only check, update or remove authorisation keys against that Developer ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Create Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will create an authorisation key and will return it in the xml response on success.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error will be left at their default values which will be indicated by empty xml elements when using the ''''check'''' API.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/createauthhash?k=[Your Dev ID]&amp;amp;stationname=The Station Name&amp;amp;genre=Rock&amp;amp;[Optional Parameters To Set]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (preferably use Shoutcast RadioManager email, if account exists, though any will suffice)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters (replace non-latin/non-alphanumeric characters with [https://www.degraeve.com/reference/urlencoding.php url-encoded] equivalents)&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* genre2 genre3 genre4 genre5 - specify up to 4 additional genres&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
* admode - determine whether monetization support is enabled for DNAS v2.4.7 and later (0=off, 1=on)&lt;br /&gt;
* callsign - the GUID of station if registered in the Shoutcast RadioManager&lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the new authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;authhash&amp;gt;An_Authorisation_Key&amp;lt;/authhash&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Check Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will remove an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/checkauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to check&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the found details of the authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;response&amp;gt;&lt;br /&gt;
  &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
  &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
   &amp;lt;stationname&amp;gt;The Station Name&amp;lt;/stationname&amp;gt;&lt;br /&gt;
   &amp;lt;genre&amp;gt;Misc&amp;lt;/genre&amp;gt;&lt;br /&gt;
   &amp;lt;website&amp;gt;www.shoutcast.com&amp;lt;/website&amp;gt;&lt;br /&gt;
   &amp;lt;description&amp;gt;The Best Station Ever...!&amp;lt;/description&amp;gt;&lt;br /&gt;
   &amp;lt;langid&amp;gt;EN&amp;lt;/langid&amp;gt;&lt;br /&gt;
   &amp;lt;countryiso&amp;gt;US&amp;lt;/countryiso&amp;gt;&lt;br /&gt;
   &amp;lt;stateiso&amp;gt;00&amp;lt;/stateiso&amp;gt;&lt;br /&gt;
   &amp;lt;city&amp;gt;&amp;lt;/city&amp;gt;&lt;br /&gt;
   &amp;lt;keywords&amp;gt;Greatest Web Station&amp;lt;/keywords&amp;gt;&lt;br /&gt;
   &amp;lt;private&amp;gt;0&amp;lt;/private&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
 &amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 The &amp;lt;stateiso&amp;gt; element will only be returned if the &amp;lt;countryiso&amp;gt; element is 'US'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Update Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will update an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error when making an update are reset to their default value when this completes. Otherwise this acts the same as the ''''create'''' API with the addition of specifying the authorisation key to update.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/updateauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;amp;stationname=The Station Name&amp;amp;genre=Misc&amp;amp;[Other Parameters To Update]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to update&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (this is so we can contact you easily in-case of an issue with your listing or needing to inform you of a required DNAS update)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Remove Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will remove an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/removeauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to remove&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Resources==&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, some additional methods are provided for accessing the supported primary and secondary genres, country, state and language codes. These are provided as a means to check you are using the correct values or to use if creating your own interface around the core authorisation key APIs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These additional methods are accessed via &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/authutil_*&amp;lt;/nowiki&amp;gt; where '''*''' is then replaced with one of the following to get the required information:&lt;br /&gt;
&lt;br /&gt;
* '''country''' - provides provides a html select control containing the ISO 3166-1-alpha-2 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''languages''' - provides provides a html select control containing the ISO 639-1 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''states''' - provides provides a html select control containing the USPO state code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''primarygenre''' - provides a html select control of the primary genre's recognised&lt;br /&gt;
&lt;br /&gt;
* '''secondarygenre?primarygenre=&amp;lt;genre&amp;gt;''' - provides a html select control of the secondary genre's related to the primary genre passed or an empty response if there is no genres found&lt;br /&gt;
&lt;br /&gt;
* '''parentgenre?genre=&amp;lt;genre&amp;gt;''' - provides the name of the parent genre of the passed genre or an empty response if there is no parent genre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All additional methods (excluding the ''''parentgenre'''' method) provide a fully formed html select control which is filled with relevent values based on the parameter passed to the method (if applicable). These are done like this to allow for ease of insertion into a&lt;br /&gt;
&amp;lt;div&amp;gt; element for example with an interface used to control the APIs.&lt;br /&gt;
&lt;br /&gt;
Calling these additional methods (excluding the ''''parentgenre'''' method) with ''''&amp;amp;raw=1'''' in the url will output the result (if applicable) as plain text instead of as a html select control. The values returned are separated by a comma and each data pair is then placed on a new line. This is provided as a quick way of getting the recognised values if the html select control is not suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===User Interface Versions===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, specifying ''''ui_'''' on the front of the API method e.g. &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/ui_checkauthhash&amp;lt;/nowiki&amp;gt; for the ''''check'''' method provides a pre-built interface pages which can be used as a base point for making your own interface for the authorisation key APIs or to use as is as long as you have the required developer access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Genres===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The genre specified for an authhash can only be a primary genre (e.g. Misc) or it can be a secondary genre related to a chosen primary genre (e.g. House from Electronic). The following lists the supported primary genres and the associated secondary genres to them.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Primary Genre&lt;br /&gt;
!Associated Secondary Genres&lt;br /&gt;
|-&lt;br /&gt;
| Alternative || Adult Alternative, Britpop, Classic Alternative, College, Dancepunk, Dream Pop, Emo, Goth, Grunge, Hardcore, Indie Pop, Indie Rock, Industrial, LoFi, Modern Rock, New Wave, Noise Pop, Post Punk, Power Pop, Punk, Ska, Xtreme&lt;br /&gt;
|-&lt;br /&gt;
| Blues || Acoustic Blues, Cajun and Zydeco, Chicago Blues, Contemporary Blues, Country Blues, Delta Blues, Electric Blues&lt;br /&gt;
|-&lt;br /&gt;
| Classical || Baroque, Chamber, Choral, Classical Period, Early Classical, Impressionist, Modern, Opera, Piano, Romantic, Symphony&lt;br /&gt;
|-&lt;br /&gt;
| Country || Alt Country, Americana, Bluegrass, Classic Country, Contemporary Bluegrass, Contemporary Country, Honky Tonk, Hot Country Hits, Western&lt;br /&gt;
|-&lt;br /&gt;
| Decades || 30s, 40s, 50s, 60s, 70s, 80s, 90s, 00s&lt;br /&gt;
|-&lt;br /&gt;
| Easy Listening || Exotica, Light Rock, Lounge, Orchestral Pop, Polka, Space Age Pop&lt;br /&gt;
|-&lt;br /&gt;
| Electronic || Acid House, Ambient, Big Beat, Breakbeat, Dance, Demo, Disco, Downtempo, Drum and Bass, Dubstep, Electro, Garage, Hard House, House, IDM, Jungle, Progressive, Techno, Trance, Tribal, Trip Hop&lt;br /&gt;
|-&lt;br /&gt;
| Folk || Alternative Folk, Contemporary Folk, Folk Rock, New Acoustic, Old Time, Traditional Folk, World Folk&lt;br /&gt;
|-&lt;br /&gt;
| Inspirational || Christian, Christian Metal, Christian Rap, Christian Rock, Classic Christian, Contemporary Gospel, Gospel, Praise and Worship, Sermons and Services, Southern Gospel, Traditional Gospel&lt;br /&gt;
|-&lt;br /&gt;
| International || African, Afrikaans, Arabic, Asian, Bollywood, Brazilian, Caribbean, Celtic, Chinese, Creole, European, Filipino, French, German, Greek, Hawaiian and Pacific, Hebrew, Hindi, Indian, Islamic, Japanese, Klezmer, Korean, Mediterranean, Middle Eastern, North American, Russian, Soca, South American, Tamil, Turkish, Worldbeat, Zouk&lt;br /&gt;
|-&lt;br /&gt;
| Jazz || Acid Jazz, Avant Garde, Big Band, Bop, Classic Jazz, Cool Jazz, Fusion, Hard Bop, Latin Jazz, Smooth Jazz, Swing, Vocal Jazz, World Fusion&lt;br /&gt;
|-&lt;br /&gt;
| Latin || Bachata, Banda, Bossa Nova, Cumbia, Flamenco, Latin Dance, Latin Pop, Latin Rap and Hip Hop, Latin Rock, Mariachi, Merengue, Ranchera, Reggaeton, Regional Mexican, Salsa, Samba, Tango, Tejano, Tropicalia&lt;br /&gt;
|-&lt;br /&gt;
| Metal || Black Metal, Classic Metal, Death Metal, Extreme Metal, Grindcore, Hair Metal, Heavy Metal, Metalcore, Power Metal, Progressive Metal, Rap Metal, Thrash Metal&lt;br /&gt;
|-&lt;br /&gt;
| Misc || &lt;br /&gt;
|-&lt;br /&gt;
| New Age || Environmental, Ethnic Fusion, Healing, Meditation, Spiritual&lt;br /&gt;
|-&lt;br /&gt;
| Pop || Adult Contemporary, Barbershop, Bubblegum Pop, Dance Pop, Idols, JPOP, KPOP, Oldies, Soft Rock, Teen Pop, Top 40, World Pop&lt;br /&gt;
|-&lt;br /&gt;
| Public Radio || College, News, Sports, Talk, Weather&lt;br /&gt;
|-&lt;br /&gt;
| R&amp;amp;B and Urban || &lt;br /&gt;
|-&lt;br /&gt;
| Rap || Alternative Rap, Dirty South, East Coast Rap, Freestyle, Gangsta Rap, Hip Hop, Mixtapes, Old School, Turntablism, Underground Hip Hop, West Coast Rap&lt;br /&gt;
|-&lt;br /&gt;
| Reggae || Contemporary Reggae, Dancehall, Dub, Pop Reggae, Ragga, Reggae Roots, Rock Steady&lt;br /&gt;
|-&lt;br /&gt;
| Rock || Adult Album Alternative, British Invasion, Celtic Rock, Classic Rock, Garage Rock, Glam, Hard Rock, Jam Bands, JROCK, Piano Rock, Prog Rock, Psychedelic, Rock &amp;amp; Roll, Rockabilly, Singer and Songwriter, Surf&lt;br /&gt;
|-&lt;br /&gt;
| Seasonal and Holiday || Anniversary, Birthday, Christmas, Halloween, Hanukkah, Honeymoon, Kwanzaa, Valentine, Wedding, Winter&lt;br /&gt;
|-&lt;br /&gt;
| Soundtracks || Anime, Kids, Original Score, Showtunes, Video Game Music&lt;br /&gt;
|-&lt;br /&gt;
| Talk || BlogTalk, Comedy, Community, Educational, Government, News, Old Time Radio, Other Talk, Political, Scanner, Spoken Word, Sports, Technology&lt;br /&gt;
|-&lt;br /&gt;
| Themes || Adult, Best Of, Chill, Eclectic, Experimental, Female, Heartache, Instrumental, LGBT, Love and Romance, Party Mix, Patriotic, Rainy Day Mix, Reality, Se xy ''(remove space for actual word - spam filter display issue)'', Shuffle, Travel Mix, Tribute, Trippy, Work Mix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Illegal Input Values===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following values are not allowed when entered as the stationname (case insensitively) and will cause a 456 error response to be received when an authorisation key is created or updated as they are not easily found when multiple other listings are also using the same stationame.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 127.0.0.1 || admin || auto dj || auto jedi&lt;br /&gt;
|-&lt;br /&gt;
| auto pj || auto-dj || autodj || autopj&lt;br /&gt;
|-&lt;br /&gt;
| demo || dj || internet radio || live&lt;br /&gt;
|-&lt;br /&gt;
| local server || localhost || localserver || music&lt;br /&gt;
|-&lt;br /&gt;
| my radio || my server || my station name || my test server&lt;br /&gt;
|-&lt;br /&gt;
| n/a || pj || playlist || radio&lt;br /&gt;
|-&lt;br /&gt;
| radio station || test || test server || unnamed server&lt;br /&gt;
|-&lt;br /&gt;
| virtual dj || virtualdj || web rdio || web radio&lt;br /&gt;
|-&lt;br /&gt;
| song || teste || default stream || radio stream&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Additionally, stationnames just containing punctuation are not allowed as well as any which specify a name which matches with the supported genres (see [[SHOUTcast_Radio_Authhash_API#Supported_Genres|section 4.2]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Status Codes==&lt;br /&gt;
&lt;br /&gt;
The following status codes are returned on success or error when using the provided APIs:&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Code&lt;br /&gt;
!Status Text&lt;br /&gt;
!Detailed Text (if available)&lt;br /&gt;
|-&lt;br /&gt;
| 200 || Ok || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 400 || Generic Error || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 404 || Page Not Found || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 440 || Invalid devId || Invalid parameter k&lt;br /&gt;
|-&lt;br /&gt;
| 456 || Parameter value not allowed || ''&amp;lt;variable&amp;gt;=&amp;lt;value&amp;gt;'' not allowed&lt;br /&gt;
|-&lt;br /&gt;
| 458 || Building internal value failure || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 459 || Authhash could not be found for reading || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 460 || Missing required parameter || Missing ''&amp;lt;variable&amp;gt;''&lt;br /&gt;
|-&lt;br /&gt;
| 461 || Error while updating authhash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 462 || Parameter error || Invalid parameter &amp;lt;variable&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 463 || Invalid station result returned || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 464 || Authhash could not be found or removed || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 465 || Required parameter missing for registration || ''&amp;lt;variable&amp;gt;'' is a required parameter&lt;br /&gt;
|-&lt;br /&gt;
| 466 || Parameter outside of allowed range || ''&amp;lt;variable&amp;gt;'' parameter too long&lt;br /&gt;
|-&lt;br /&gt;
| 467 || Parameter value not recognized in stored values || ''&amp;lt;variable&amp;gt;'' value not recognized&lt;br /&gt;
|-&lt;br /&gt;
| 468 || Error creating intended xml response || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 469 || Authhash could not be updated as not found || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 470 || Invalid authorization hash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 500 || Generic Server Error || n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;variable&amp;gt;'' value in the detailed text will be replaced with the parameter name which the error relates to. The ''&amp;lt;value&amp;gt;'' value in the detailed text will be replaced with the parameter value which the error relates to.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API</id>
		<title>SHOUTcast Radio Authhash API</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API"/>
				<updated>2020-04-24T11:58:12Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Create Authorisation Key */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
A key aspect of the SHOUTcast 2.0 system is the usage of authorisation keys to control the listing of stations within the SHOUTcast Radio Directory (otherwise known as the YP).&lt;br /&gt;
&lt;br /&gt;
The API which is documented here is provided as a means for registered developers to be able to obtain and manage any authorisation keys for the station(s) they are providing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API Overview==&lt;br /&gt;
&lt;br /&gt;
There are four core parts of the authorisation key APIs (usage details are in [[#API_Usage|section 3]]):&lt;br /&gt;
&lt;br /&gt;
:[[#Create_Authorisation_Key|Create]]&lt;br /&gt;
:[[#Check_Authorisation_Key|Check]]&lt;br /&gt;
:[[#Update_Authorisation_Key|Update]]&lt;br /&gt;
:[[#Remove_Authorisation_Key|Remove]]&lt;br /&gt;
&lt;br /&gt;
The authorisation key APIs are xml based responses which provide information and status details of the provided API methods in a common style to ease implementation and usage.&lt;br /&gt;
&lt;br /&gt;
The API methods are called by passing parameters to the required YP site url.&lt;br /&gt;
&lt;br /&gt;
When the API methods are called then the status code of the method response is set to the status code of the API method so it is easy to detect errors from calling the API method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Successful Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are no issues with the API method call then one of the following responses will be received as the response generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first response is the '''basic''' success response and is provided if there is no extra information to be returned by the API method:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second response is the '''full''' success response and is provided when the API method needs to return additional information such as the authorisation key when a new one is created or the details of the authorisation key when using the ''''check'''' method:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;!-- information is found here --&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Error Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are issues experienced during the API method call then an error response will be received which takes the following form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;440&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Invalid devId&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;!-- the following is optional dependent upon the error --&amp;gt;&lt;br /&gt;
 &amp;lt;statusDetailText&amp;gt;Invalid parameter k&amp;lt;/statusDetailText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In all uses of the API methods, the ''''statusCode'''' and ''''statusText'''' elements are provided when an error occurs. The ''''statusDetailText'''' value is an optional element and is only provided if the internal error handling is able to provide additional information. This will usually be present for errors relating to parameter issues i.e. missing parameters.&lt;br /&gt;
&lt;br /&gt;
See [[#Status_Codes|section 5]] for the status codes and messages returned when using the API methods.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API Usage==&lt;br /&gt;
&lt;br /&gt;
The following sections detail how to use the four authorisation key API methods.&lt;br /&gt;
&lt;br /&gt;
Importantly, once an authorisation key has been created then it will be locked to the Developer ID used so you can only check, update or remove authorisation keys against that Developer ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Create Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will create an authorisation key and will return it in the xml response on success.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error will be left at their default values which will be indicated by empty xml elements when using the ''''check'''' API.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/createauthhash?k=[Your Dev ID]&amp;amp;stationname=The Station Name&amp;amp;genre=Rock&amp;amp;[Optional Parameters To Set]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (preferably use Shoutcast RadioManager email, if account exists, though any will suffice)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* genre2 genre3 genre4 genre5 - specify up to 4 additional genres&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
* admode - determine whether monetization support is enabled for DNAS v2.4.7 and later (0=off, 1=on)&lt;br /&gt;
* callsign - the GUID of station if registered in the Shoutcast RadioManager&lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the new authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;authhash&amp;gt;An_Authorisation_Key&amp;lt;/authhash&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Check Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will remove an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/checkauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to check&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the found details of the authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;response&amp;gt;&lt;br /&gt;
  &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
  &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
   &amp;lt;stationname&amp;gt;The Station Name&amp;lt;/stationname&amp;gt;&lt;br /&gt;
   &amp;lt;genre&amp;gt;Misc&amp;lt;/genre&amp;gt;&lt;br /&gt;
   &amp;lt;website&amp;gt;www.shoutcast.com&amp;lt;/website&amp;gt;&lt;br /&gt;
   &amp;lt;description&amp;gt;The Best Station Ever...!&amp;lt;/description&amp;gt;&lt;br /&gt;
   &amp;lt;langid&amp;gt;EN&amp;lt;/langid&amp;gt;&lt;br /&gt;
   &amp;lt;countryiso&amp;gt;US&amp;lt;/countryiso&amp;gt;&lt;br /&gt;
   &amp;lt;stateiso&amp;gt;00&amp;lt;/stateiso&amp;gt;&lt;br /&gt;
   &amp;lt;city&amp;gt;&amp;lt;/city&amp;gt;&lt;br /&gt;
   &amp;lt;keywords&amp;gt;Greatest Web Station&amp;lt;/keywords&amp;gt;&lt;br /&gt;
   &amp;lt;private&amp;gt;0&amp;lt;/private&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
 &amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 The &amp;lt;stateiso&amp;gt; element will only be returned if the &amp;lt;countryiso&amp;gt; element is 'US'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Update Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will update an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error when making an update are reset to their default value when this completes. Otherwise this acts the same as the ''''create'''' API with the addition of specifying the authorisation key to update.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/updateauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;amp;stationname=The Station Name&amp;amp;genre=Misc&amp;amp;[Other Parameters To Update]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to update&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (this is so we can contact you easily in-case of an issue with your listing or needing to inform you of a required DNAS update)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Remove Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will remove an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/removeauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to remove&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Resources==&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, some additional methods are provided for accessing the supported primary and secondary genres, country, state and language codes. These are provided as a means to check you are using the correct values or to use if creating your own interface around the core authorisation key APIs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These additional methods are accessed via &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/authutil_*&amp;lt;/nowiki&amp;gt; where '''*''' is then replaced with one of the following to get the required information:&lt;br /&gt;
&lt;br /&gt;
* '''country''' - provides provides a html select control containing the ISO 3166-1-alpha-2 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''languages''' - provides provides a html select control containing the ISO 639-1 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''states''' - provides provides a html select control containing the USPO state code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''primarygenre''' - provides a html select control of the primary genre's recognised&lt;br /&gt;
&lt;br /&gt;
* '''secondarygenre?primarygenre=&amp;lt;genre&amp;gt;''' - provides a html select control of the secondary genre's related to the primary genre passed or an empty response if there is no genres found&lt;br /&gt;
&lt;br /&gt;
* '''parentgenre?genre=&amp;lt;genre&amp;gt;''' - provides the name of the parent genre of the passed genre or an empty response if there is no parent genre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All additional methods (excluding the ''''parentgenre'''' method) provide a fully formed html select control which is filled with relevent values based on the parameter passed to the method (if applicable). These are done like this to allow for ease of insertion into a&lt;br /&gt;
&amp;lt;div&amp;gt; element for example with an interface used to control the APIs.&lt;br /&gt;
&lt;br /&gt;
Calling these additional methods (excluding the ''''parentgenre'''' method) with ''''&amp;amp;raw=1'''' in the url will output the result (if applicable) as plain text instead of as a html select control. The values returned are separated by a comma and each data pair is then placed on a new line. This is provided as a quick way of getting the recognised values if the html select control is not suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===User Interface Versions===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, specifying ''''ui_'''' on the front of the API method e.g. &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/ui_checkauthhash&amp;lt;/nowiki&amp;gt; for the ''''check'''' method provides a pre-built interface pages which can be used as a base point for making your own interface for the authorisation key APIs or to use as is as long as you have the required developer access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Genres===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The genre specified for an authhash can only be a primary genre (e.g. Misc) or it can be a secondary genre related to a chosen primary genre (e.g. House from Electronic). The following lists the supported primary genres and the associated secondary genres to them.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Primary Genre&lt;br /&gt;
!Associated Secondary Genres&lt;br /&gt;
|-&lt;br /&gt;
| Alternative || Adult Alternative, Britpop, Classic Alternative, College, Dancepunk, Dream Pop, Emo, Goth, Grunge, Hardcore, Indie Pop, Indie Rock, Industrial, LoFi, Modern Rock, New Wave, Noise Pop, Post Punk, Power Pop, Punk, Ska, Xtreme&lt;br /&gt;
|-&lt;br /&gt;
| Blues || Acoustic Blues, Cajun and Zydeco, Chicago Blues, Contemporary Blues, Country Blues, Delta Blues, Electric Blues&lt;br /&gt;
|-&lt;br /&gt;
| Classical || Baroque, Chamber, Choral, Classical Period, Early Classical, Impressionist, Modern, Opera, Piano, Romantic, Symphony&lt;br /&gt;
|-&lt;br /&gt;
| Country || Alt Country, Americana, Bluegrass, Classic Country, Contemporary Bluegrass, Contemporary Country, Honky Tonk, Hot Country Hits, Western&lt;br /&gt;
|-&lt;br /&gt;
| Decades || 30s, 40s, 50s, 60s, 70s, 80s, 90s, 00s&lt;br /&gt;
|-&lt;br /&gt;
| Easy Listening || Exotica, Light Rock, Lounge, Orchestral Pop, Polka, Space Age Pop&lt;br /&gt;
|-&lt;br /&gt;
| Electronic || Acid House, Ambient, Big Beat, Breakbeat, Dance, Demo, Disco, Downtempo, Drum and Bass, Dubstep, Electro, Garage, Hard House, House, IDM, Jungle, Progressive, Techno, Trance, Tribal, Trip Hop&lt;br /&gt;
|-&lt;br /&gt;
| Folk || Alternative Folk, Contemporary Folk, Folk Rock, New Acoustic, Old Time, Traditional Folk, World Folk&lt;br /&gt;
|-&lt;br /&gt;
| Inspirational || Christian, Christian Metal, Christian Rap, Christian Rock, Classic Christian, Contemporary Gospel, Gospel, Praise and Worship, Sermons and Services, Southern Gospel, Traditional Gospel&lt;br /&gt;
|-&lt;br /&gt;
| International || African, Afrikaans, Arabic, Asian, Bollywood, Brazilian, Caribbean, Celtic, Chinese, Creole, European, Filipino, French, German, Greek, Hawaiian and Pacific, Hebrew, Hindi, Indian, Islamic, Japanese, Klezmer, Korean, Mediterranean, Middle Eastern, North American, Russian, Soca, South American, Tamil, Turkish, Worldbeat, Zouk&lt;br /&gt;
|-&lt;br /&gt;
| Jazz || Acid Jazz, Avant Garde, Big Band, Bop, Classic Jazz, Cool Jazz, Fusion, Hard Bop, Latin Jazz, Smooth Jazz, Swing, Vocal Jazz, World Fusion&lt;br /&gt;
|-&lt;br /&gt;
| Latin || Bachata, Banda, Bossa Nova, Cumbia, Flamenco, Latin Dance, Latin Pop, Latin Rap and Hip Hop, Latin Rock, Mariachi, Merengue, Ranchera, Reggaeton, Regional Mexican, Salsa, Samba, Tango, Tejano, Tropicalia&lt;br /&gt;
|-&lt;br /&gt;
| Metal || Black Metal, Classic Metal, Death Metal, Extreme Metal, Grindcore, Hair Metal, Heavy Metal, Metalcore, Power Metal, Progressive Metal, Rap Metal, Thrash Metal&lt;br /&gt;
|-&lt;br /&gt;
| Misc || &lt;br /&gt;
|-&lt;br /&gt;
| New Age || Environmental, Ethnic Fusion, Healing, Meditation, Spiritual&lt;br /&gt;
|-&lt;br /&gt;
| Pop || Adult Contemporary, Barbershop, Bubblegum Pop, Dance Pop, Idols, JPOP, KPOP, Oldies, Soft Rock, Teen Pop, Top 40, World Pop&lt;br /&gt;
|-&lt;br /&gt;
| Public Radio || College, News, Sports, Talk, Weather&lt;br /&gt;
|-&lt;br /&gt;
| R&amp;amp;B and Urban || &lt;br /&gt;
|-&lt;br /&gt;
| Rap || Alternative Rap, Dirty South, East Coast Rap, Freestyle, Gangsta Rap, Hip Hop, Mixtapes, Old School, Turntablism, Underground Hip Hop, West Coast Rap&lt;br /&gt;
|-&lt;br /&gt;
| Reggae || Contemporary Reggae, Dancehall, Dub, Pop Reggae, Ragga, Reggae Roots, Rock Steady&lt;br /&gt;
|-&lt;br /&gt;
| Rock || Adult Album Alternative, British Invasion, Celtic Rock, Classic Rock, Garage Rock, Glam, Hard Rock, Jam Bands, JROCK, Piano Rock, Prog Rock, Psychedelic, Rock &amp;amp; Roll, Rockabilly, Singer and Songwriter, Surf&lt;br /&gt;
|-&lt;br /&gt;
| Seasonal and Holiday || Anniversary, Birthday, Christmas, Halloween, Hanukkah, Honeymoon, Kwanzaa, Valentine, Wedding, Winter&lt;br /&gt;
|-&lt;br /&gt;
| Soundtracks || Anime, Kids, Original Score, Showtunes, Video Game Music&lt;br /&gt;
|-&lt;br /&gt;
| Talk || BlogTalk, Comedy, Community, Educational, Government, News, Old Time Radio, Other Talk, Political, Scanner, Spoken Word, Sports, Technology&lt;br /&gt;
|-&lt;br /&gt;
| Themes || Adult, Best Of, Chill, Eclectic, Experimental, Female, Heartache, Instrumental, LGBT, Love and Romance, Party Mix, Patriotic, Rainy Day Mix, Reality, Se xy ''(remove space for actual word - spam filter display issue)'', Shuffle, Travel Mix, Tribute, Trippy, Work Mix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Illegal Input Values===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following values are not allowed when entered as the stationname (case insensitively) and will cause a 456 error response to be received when an authorisation key is created or updated as they are not easily found when multiple other listings are also using the same stationame.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 127.0.0.1 || admin || auto dj || auto jedi&lt;br /&gt;
|-&lt;br /&gt;
| auto pj || auto-dj || autodj || autopj&lt;br /&gt;
|-&lt;br /&gt;
| demo || dj || internet radio || live&lt;br /&gt;
|-&lt;br /&gt;
| local server || localhost || localserver || music&lt;br /&gt;
|-&lt;br /&gt;
| my radio || my server || my station name || my test server&lt;br /&gt;
|-&lt;br /&gt;
| n/a || pj || playlist || radio&lt;br /&gt;
|-&lt;br /&gt;
| radio station || test || test server || unnamed server&lt;br /&gt;
|-&lt;br /&gt;
| virtual dj || virtualdj || web rdio || web radio&lt;br /&gt;
|-&lt;br /&gt;
| song || teste || default stream || radio stream&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Additionally, stationnames just containing punctuation are not allowed as well as any which specify a name which matches with the supported genres (see [[SHOUTcast_Radio_Authhash_API#Supported_Genres|section 4.2]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Status Codes==&lt;br /&gt;
&lt;br /&gt;
The following status codes are returned on success or error when using the provided APIs:&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Code&lt;br /&gt;
!Status Text&lt;br /&gt;
!Detailed Text (if available)&lt;br /&gt;
|-&lt;br /&gt;
| 200 || Ok || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 400 || Generic Error || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 404 || Page Not Found || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 440 || Invalid devId || Invalid parameter k&lt;br /&gt;
|-&lt;br /&gt;
| 456 || Parameter value not allowed || ''&amp;lt;variable&amp;gt;=&amp;lt;value&amp;gt;'' not allowed&lt;br /&gt;
|-&lt;br /&gt;
| 458 || Building internal value failure || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 459 || Authhash could not be found for reading || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 460 || Missing required parameter || Missing ''&amp;lt;variable&amp;gt;''&lt;br /&gt;
|-&lt;br /&gt;
| 461 || Error while updating authhash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 462 || Parameter error || Invalid parameter &amp;lt;variable&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 463 || Invalid station result returned || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 464 || Authhash could not be found or removed || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 465 || Required parameter missing for registration || ''&amp;lt;variable&amp;gt;'' is a required parameter&lt;br /&gt;
|-&lt;br /&gt;
| 466 || Parameter outside of allowed range || ''&amp;lt;variable&amp;gt;'' parameter too long&lt;br /&gt;
|-&lt;br /&gt;
| 467 || Parameter value not recognized in stored values || ''&amp;lt;variable&amp;gt;'' value not recognized&lt;br /&gt;
|-&lt;br /&gt;
| 468 || Error creating intended xml response || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 469 || Authhash could not be updated as not found || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 470 || Invalid authorization hash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 500 || Generic Server Error || n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;variable&amp;gt;'' value in the detailed text will be replaced with the parameter name which the error relates to. The ''&amp;lt;value&amp;gt;'' value in the detailed text will be replaced with the parameter value which the error relates to.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API</id>
		<title>SHOUTcast Radio Authhash API</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API"/>
				<updated>2020-04-24T11:56:15Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Create Authorisation Key */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
A key aspect of the SHOUTcast 2.0 system is the usage of authorisation keys to control the listing of stations within the SHOUTcast Radio Directory (otherwise known as the YP).&lt;br /&gt;
&lt;br /&gt;
The API which is documented here is provided as a means for registered developers to be able to obtain and manage any authorisation keys for the station(s) they are providing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API Overview==&lt;br /&gt;
&lt;br /&gt;
There are four core parts of the authorisation key APIs (usage details are in [[#API_Usage|section 3]]):&lt;br /&gt;
&lt;br /&gt;
:[[#Create_Authorisation_Key|Create]]&lt;br /&gt;
:[[#Check_Authorisation_Key|Check]]&lt;br /&gt;
:[[#Update_Authorisation_Key|Update]]&lt;br /&gt;
:[[#Remove_Authorisation_Key|Remove]]&lt;br /&gt;
&lt;br /&gt;
The authorisation key APIs are xml based responses which provide information and status details of the provided API methods in a common style to ease implementation and usage.&lt;br /&gt;
&lt;br /&gt;
The API methods are called by passing parameters to the required YP site url.&lt;br /&gt;
&lt;br /&gt;
When the API methods are called then the status code of the method response is set to the status code of the API method so it is easy to detect errors from calling the API method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Successful Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are no issues with the API method call then one of the following responses will be received as the response generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first response is the '''basic''' success response and is provided if there is no extra information to be returned by the API method:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second response is the '''full''' success response and is provided when the API method needs to return additional information such as the authorisation key when a new one is created or the details of the authorisation key when using the ''''check'''' method:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;!-- information is found here --&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Error Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are issues experienced during the API method call then an error response will be received which takes the following form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;440&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Invalid devId&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;!-- the following is optional dependent upon the error --&amp;gt;&lt;br /&gt;
 &amp;lt;statusDetailText&amp;gt;Invalid parameter k&amp;lt;/statusDetailText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In all uses of the API methods, the ''''statusCode'''' and ''''statusText'''' elements are provided when an error occurs. The ''''statusDetailText'''' value is an optional element and is only provided if the internal error handling is able to provide additional information. This will usually be present for errors relating to parameter issues i.e. missing parameters.&lt;br /&gt;
&lt;br /&gt;
See [[#Status_Codes|section 5]] for the status codes and messages returned when using the API methods.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API Usage==&lt;br /&gt;
&lt;br /&gt;
The following sections detail how to use the four authorisation key API methods.&lt;br /&gt;
&lt;br /&gt;
Importantly, once an authorisation key has been created then it will be locked to the Developer ID used so you can only check, update or remove authorisation keys against that Developer ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Create Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will create an authorisation key and will return it in the xml response on success.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error will be left at their default values which will be indicated by empty xml elements when using the ''''check'''' API.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/createauthhash?k=[Your Dev ID]&amp;amp;stationname=The Station Name&amp;amp;genre=Rock&amp;amp;[Optional Parameters To Set]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (this is so we can contact you easily in-case of an issue with your listing or needing to inform you of a required DNAS update)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* genre2 genre3 genre4 genre5 - specify up to 4 additional genres&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
* admode - determine whether monetization support is enabled for DNAS v2.4.7 and later (0=off, 1=on)&lt;br /&gt;
* callsign - the GUID of station if registered in the Shoutcast RadioManager&lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the new authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;authhash&amp;gt;An_Authorisation_Key&amp;lt;/authhash&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Check Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will remove an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/checkauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to check&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the found details of the authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;response&amp;gt;&lt;br /&gt;
  &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
  &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
   &amp;lt;stationname&amp;gt;The Station Name&amp;lt;/stationname&amp;gt;&lt;br /&gt;
   &amp;lt;genre&amp;gt;Misc&amp;lt;/genre&amp;gt;&lt;br /&gt;
   &amp;lt;website&amp;gt;www.shoutcast.com&amp;lt;/website&amp;gt;&lt;br /&gt;
   &amp;lt;description&amp;gt;The Best Station Ever...!&amp;lt;/description&amp;gt;&lt;br /&gt;
   &amp;lt;langid&amp;gt;EN&amp;lt;/langid&amp;gt;&lt;br /&gt;
   &amp;lt;countryiso&amp;gt;US&amp;lt;/countryiso&amp;gt;&lt;br /&gt;
   &amp;lt;stateiso&amp;gt;00&amp;lt;/stateiso&amp;gt;&lt;br /&gt;
   &amp;lt;city&amp;gt;&amp;lt;/city&amp;gt;&lt;br /&gt;
   &amp;lt;keywords&amp;gt;Greatest Web Station&amp;lt;/keywords&amp;gt;&lt;br /&gt;
   &amp;lt;private&amp;gt;0&amp;lt;/private&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
 &amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 The &amp;lt;stateiso&amp;gt; element will only be returned if the &amp;lt;countryiso&amp;gt; element is 'US'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Update Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will update an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error when making an update are reset to their default value when this completes. Otherwise this acts the same as the ''''create'''' API with the addition of specifying the authorisation key to update.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/updateauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;amp;stationname=The Station Name&amp;amp;genre=Misc&amp;amp;[Other Parameters To Update]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to update&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (this is so we can contact you easily in-case of an issue with your listing or needing to inform you of a required DNAS update)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Remove Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will remove an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/removeauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to remove&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Resources==&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, some additional methods are provided for accessing the supported primary and secondary genres, country, state and language codes. These are provided as a means to check you are using the correct values or to use if creating your own interface around the core authorisation key APIs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These additional methods are accessed via &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/authutil_*&amp;lt;/nowiki&amp;gt; where '''*''' is then replaced with one of the following to get the required information:&lt;br /&gt;
&lt;br /&gt;
* '''country''' - provides provides a html select control containing the ISO 3166-1-alpha-2 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''languages''' - provides provides a html select control containing the ISO 639-1 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''states''' - provides provides a html select control containing the USPO state code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''primarygenre''' - provides a html select control of the primary genre's recognised&lt;br /&gt;
&lt;br /&gt;
* '''secondarygenre?primarygenre=&amp;lt;genre&amp;gt;''' - provides a html select control of the secondary genre's related to the primary genre passed or an empty response if there is no genres found&lt;br /&gt;
&lt;br /&gt;
* '''parentgenre?genre=&amp;lt;genre&amp;gt;''' - provides the name of the parent genre of the passed genre or an empty response if there is no parent genre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All additional methods (excluding the ''''parentgenre'''' method) provide a fully formed html select control which is filled with relevent values based on the parameter passed to the method (if applicable). These are done like this to allow for ease of insertion into a&lt;br /&gt;
&amp;lt;div&amp;gt; element for example with an interface used to control the APIs.&lt;br /&gt;
&lt;br /&gt;
Calling these additional methods (excluding the ''''parentgenre'''' method) with ''''&amp;amp;raw=1'''' in the url will output the result (if applicable) as plain text instead of as a html select control. The values returned are separated by a comma and each data pair is then placed on a new line. This is provided as a quick way of getting the recognised values if the html select control is not suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===User Interface Versions===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, specifying ''''ui_'''' on the front of the API method e.g. &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/ui_checkauthhash&amp;lt;/nowiki&amp;gt; for the ''''check'''' method provides a pre-built interface pages which can be used as a base point for making your own interface for the authorisation key APIs or to use as is as long as you have the required developer access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Genres===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The genre specified for an authhash can only be a primary genre (e.g. Misc) or it can be a secondary genre related to a chosen primary genre (e.g. House from Electronic). The following lists the supported primary genres and the associated secondary genres to them.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Primary Genre&lt;br /&gt;
!Associated Secondary Genres&lt;br /&gt;
|-&lt;br /&gt;
| Alternative || Adult Alternative, Britpop, Classic Alternative, College, Dancepunk, Dream Pop, Emo, Goth, Grunge, Hardcore, Indie Pop, Indie Rock, Industrial, LoFi, Modern Rock, New Wave, Noise Pop, Post Punk, Power Pop, Punk, Ska, Xtreme&lt;br /&gt;
|-&lt;br /&gt;
| Blues || Acoustic Blues, Cajun and Zydeco, Chicago Blues, Contemporary Blues, Country Blues, Delta Blues, Electric Blues&lt;br /&gt;
|-&lt;br /&gt;
| Classical || Baroque, Chamber, Choral, Classical Period, Early Classical, Impressionist, Modern, Opera, Piano, Romantic, Symphony&lt;br /&gt;
|-&lt;br /&gt;
| Country || Alt Country, Americana, Bluegrass, Classic Country, Contemporary Bluegrass, Contemporary Country, Honky Tonk, Hot Country Hits, Western&lt;br /&gt;
|-&lt;br /&gt;
| Decades || 30s, 40s, 50s, 60s, 70s, 80s, 90s, 00s&lt;br /&gt;
|-&lt;br /&gt;
| Easy Listening || Exotica, Light Rock, Lounge, Orchestral Pop, Polka, Space Age Pop&lt;br /&gt;
|-&lt;br /&gt;
| Electronic || Acid House, Ambient, Big Beat, Breakbeat, Dance, Demo, Disco, Downtempo, Drum and Bass, Dubstep, Electro, Garage, Hard House, House, IDM, Jungle, Progressive, Techno, Trance, Tribal, Trip Hop&lt;br /&gt;
|-&lt;br /&gt;
| Folk || Alternative Folk, Contemporary Folk, Folk Rock, New Acoustic, Old Time, Traditional Folk, World Folk&lt;br /&gt;
|-&lt;br /&gt;
| Inspirational || Christian, Christian Metal, Christian Rap, Christian Rock, Classic Christian, Contemporary Gospel, Gospel, Praise and Worship, Sermons and Services, Southern Gospel, Traditional Gospel&lt;br /&gt;
|-&lt;br /&gt;
| International || African, Afrikaans, Arabic, Asian, Bollywood, Brazilian, Caribbean, Celtic, Chinese, Creole, European, Filipino, French, German, Greek, Hawaiian and Pacific, Hebrew, Hindi, Indian, Islamic, Japanese, Klezmer, Korean, Mediterranean, Middle Eastern, North American, Russian, Soca, South American, Tamil, Turkish, Worldbeat, Zouk&lt;br /&gt;
|-&lt;br /&gt;
| Jazz || Acid Jazz, Avant Garde, Big Band, Bop, Classic Jazz, Cool Jazz, Fusion, Hard Bop, Latin Jazz, Smooth Jazz, Swing, Vocal Jazz, World Fusion&lt;br /&gt;
|-&lt;br /&gt;
| Latin || Bachata, Banda, Bossa Nova, Cumbia, Flamenco, Latin Dance, Latin Pop, Latin Rap and Hip Hop, Latin Rock, Mariachi, Merengue, Ranchera, Reggaeton, Regional Mexican, Salsa, Samba, Tango, Tejano, Tropicalia&lt;br /&gt;
|-&lt;br /&gt;
| Metal || Black Metal, Classic Metal, Death Metal, Extreme Metal, Grindcore, Hair Metal, Heavy Metal, Metalcore, Power Metal, Progressive Metal, Rap Metal, Thrash Metal&lt;br /&gt;
|-&lt;br /&gt;
| Misc || &lt;br /&gt;
|-&lt;br /&gt;
| New Age || Environmental, Ethnic Fusion, Healing, Meditation, Spiritual&lt;br /&gt;
|-&lt;br /&gt;
| Pop || Adult Contemporary, Barbershop, Bubblegum Pop, Dance Pop, Idols, JPOP, KPOP, Oldies, Soft Rock, Teen Pop, Top 40, World Pop&lt;br /&gt;
|-&lt;br /&gt;
| Public Radio || College, News, Sports, Talk, Weather&lt;br /&gt;
|-&lt;br /&gt;
| R&amp;amp;B and Urban || &lt;br /&gt;
|-&lt;br /&gt;
| Rap || Alternative Rap, Dirty South, East Coast Rap, Freestyle, Gangsta Rap, Hip Hop, Mixtapes, Old School, Turntablism, Underground Hip Hop, West Coast Rap&lt;br /&gt;
|-&lt;br /&gt;
| Reggae || Contemporary Reggae, Dancehall, Dub, Pop Reggae, Ragga, Reggae Roots, Rock Steady&lt;br /&gt;
|-&lt;br /&gt;
| Rock || Adult Album Alternative, British Invasion, Celtic Rock, Classic Rock, Garage Rock, Glam, Hard Rock, Jam Bands, JROCK, Piano Rock, Prog Rock, Psychedelic, Rock &amp;amp; Roll, Rockabilly, Singer and Songwriter, Surf&lt;br /&gt;
|-&lt;br /&gt;
| Seasonal and Holiday || Anniversary, Birthday, Christmas, Halloween, Hanukkah, Honeymoon, Kwanzaa, Valentine, Wedding, Winter&lt;br /&gt;
|-&lt;br /&gt;
| Soundtracks || Anime, Kids, Original Score, Showtunes, Video Game Music&lt;br /&gt;
|-&lt;br /&gt;
| Talk || BlogTalk, Comedy, Community, Educational, Government, News, Old Time Radio, Other Talk, Political, Scanner, Spoken Word, Sports, Technology&lt;br /&gt;
|-&lt;br /&gt;
| Themes || Adult, Best Of, Chill, Eclectic, Experimental, Female, Heartache, Instrumental, LGBT, Love and Romance, Party Mix, Patriotic, Rainy Day Mix, Reality, Se xy ''(remove space for actual word - spam filter display issue)'', Shuffle, Travel Mix, Tribute, Trippy, Work Mix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Illegal Input Values===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following values are not allowed when entered as the stationname (case insensitively) and will cause a 456 error response to be received when an authorisation key is created or updated as they are not easily found when multiple other listings are also using the same stationame.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 127.0.0.1 || admin || auto dj || auto jedi&lt;br /&gt;
|-&lt;br /&gt;
| auto pj || auto-dj || autodj || autopj&lt;br /&gt;
|-&lt;br /&gt;
| demo || dj || internet radio || live&lt;br /&gt;
|-&lt;br /&gt;
| local server || localhost || localserver || music&lt;br /&gt;
|-&lt;br /&gt;
| my radio || my server || my station name || my test server&lt;br /&gt;
|-&lt;br /&gt;
| n/a || pj || playlist || radio&lt;br /&gt;
|-&lt;br /&gt;
| radio station || test || test server || unnamed server&lt;br /&gt;
|-&lt;br /&gt;
| virtual dj || virtualdj || web rdio || web radio&lt;br /&gt;
|-&lt;br /&gt;
| song || teste || default stream || radio stream&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Additionally, stationnames just containing punctuation are not allowed as well as any which specify a name which matches with the supported genres (see [[SHOUTcast_Radio_Authhash_API#Supported_Genres|section 4.2]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Status Codes==&lt;br /&gt;
&lt;br /&gt;
The following status codes are returned on success or error when using the provided APIs:&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Code&lt;br /&gt;
!Status Text&lt;br /&gt;
!Detailed Text (if available)&lt;br /&gt;
|-&lt;br /&gt;
| 200 || Ok || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 400 || Generic Error || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 404 || Page Not Found || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 440 || Invalid devId || Invalid parameter k&lt;br /&gt;
|-&lt;br /&gt;
| 456 || Parameter value not allowed || ''&amp;lt;variable&amp;gt;=&amp;lt;value&amp;gt;'' not allowed&lt;br /&gt;
|-&lt;br /&gt;
| 458 || Building internal value failure || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 459 || Authhash could not be found for reading || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 460 || Missing required parameter || Missing ''&amp;lt;variable&amp;gt;''&lt;br /&gt;
|-&lt;br /&gt;
| 461 || Error while updating authhash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 462 || Parameter error || Invalid parameter &amp;lt;variable&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 463 || Invalid station result returned || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 464 || Authhash could not be found or removed || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 465 || Required parameter missing for registration || ''&amp;lt;variable&amp;gt;'' is a required parameter&lt;br /&gt;
|-&lt;br /&gt;
| 466 || Parameter outside of allowed range || ''&amp;lt;variable&amp;gt;'' parameter too long&lt;br /&gt;
|-&lt;br /&gt;
| 467 || Parameter value not recognized in stored values || ''&amp;lt;variable&amp;gt;'' value not recognized&lt;br /&gt;
|-&lt;br /&gt;
| 468 || Error creating intended xml response || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 469 || Authhash could not be updated as not found || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 470 || Invalid authorization hash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 500 || Generic Server Error || n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;variable&amp;gt;'' value in the detailed text will be replaced with the parameter name which the error relates to. The ''&amp;lt;value&amp;gt;'' value in the detailed text will be replaced with the parameter value which the error relates to.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API</id>
		<title>SHOUTcast Radio Authhash API</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API"/>
				<updated>2020-04-24T11:55:40Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Create Authorisation Key */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
A key aspect of the SHOUTcast 2.0 system is the usage of authorisation keys to control the listing of stations within the SHOUTcast Radio Directory (otherwise known as the YP).&lt;br /&gt;
&lt;br /&gt;
The API which is documented here is provided as a means for registered developers to be able to obtain and manage any authorisation keys for the station(s) they are providing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API Overview==&lt;br /&gt;
&lt;br /&gt;
There are four core parts of the authorisation key APIs (usage details are in [[#API_Usage|section 3]]):&lt;br /&gt;
&lt;br /&gt;
:[[#Create_Authorisation_Key|Create]]&lt;br /&gt;
:[[#Check_Authorisation_Key|Check]]&lt;br /&gt;
:[[#Update_Authorisation_Key|Update]]&lt;br /&gt;
:[[#Remove_Authorisation_Key|Remove]]&lt;br /&gt;
&lt;br /&gt;
The authorisation key APIs are xml based responses which provide information and status details of the provided API methods in a common style to ease implementation and usage.&lt;br /&gt;
&lt;br /&gt;
The API methods are called by passing parameters to the required YP site url.&lt;br /&gt;
&lt;br /&gt;
When the API methods are called then the status code of the method response is set to the status code of the API method so it is easy to detect errors from calling the API method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Successful Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are no issues with the API method call then one of the following responses will be received as the response generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first response is the '''basic''' success response and is provided if there is no extra information to be returned by the API method:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second response is the '''full''' success response and is provided when the API method needs to return additional information such as the authorisation key when a new one is created or the details of the authorisation key when using the ''''check'''' method:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;!-- information is found here --&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Error Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are issues experienced during the API method call then an error response will be received which takes the following form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;440&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Invalid devId&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;!-- the following is optional dependent upon the error --&amp;gt;&lt;br /&gt;
 &amp;lt;statusDetailText&amp;gt;Invalid parameter k&amp;lt;/statusDetailText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In all uses of the API methods, the ''''statusCode'''' and ''''statusText'''' elements are provided when an error occurs. The ''''statusDetailText'''' value is an optional element and is only provided if the internal error handling is able to provide additional information. This will usually be present for errors relating to parameter issues i.e. missing parameters.&lt;br /&gt;
&lt;br /&gt;
See [[#Status_Codes|section 5]] for the status codes and messages returned when using the API methods.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API Usage==&lt;br /&gt;
&lt;br /&gt;
The following sections detail how to use the four authorisation key API methods.&lt;br /&gt;
&lt;br /&gt;
Importantly, once an authorisation key has been created then it will be locked to the Developer ID used so you can only check, update or remove authorisation keys against that Developer ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Create Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will create an authorisation key and will return it in the xml response on success.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error will be left at their default values which will be indicated by empty xml elements when using the ''''check'''' API.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/createauthhash?k=[Your Dev ID]&amp;amp;stationname=The Station Name&amp;amp;genre=Misc&amp;amp;[Optional Parameters To Set]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (this is so we can contact you easily in-case of an issue with your listing or needing to inform you of a required DNAS update)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* genre2 genre3 genre4 genre5 - specify up to 4 additional genres&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
* admode - determine whether monetization support is enabled for DNAS v2.4.7 and later (0=off, 1=on)&lt;br /&gt;
* callsign - the GUID of station if registered in the Shoutcast RadioManager&lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the new authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;authhash&amp;gt;An_Authorisation_Key&amp;lt;/authhash&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Check Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will remove an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/checkauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to check&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the found details of the authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;response&amp;gt;&lt;br /&gt;
  &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
  &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
   &amp;lt;stationname&amp;gt;The Station Name&amp;lt;/stationname&amp;gt;&lt;br /&gt;
   &amp;lt;genre&amp;gt;Misc&amp;lt;/genre&amp;gt;&lt;br /&gt;
   &amp;lt;website&amp;gt;www.shoutcast.com&amp;lt;/website&amp;gt;&lt;br /&gt;
   &amp;lt;description&amp;gt;The Best Station Ever...!&amp;lt;/description&amp;gt;&lt;br /&gt;
   &amp;lt;langid&amp;gt;EN&amp;lt;/langid&amp;gt;&lt;br /&gt;
   &amp;lt;countryiso&amp;gt;US&amp;lt;/countryiso&amp;gt;&lt;br /&gt;
   &amp;lt;stateiso&amp;gt;00&amp;lt;/stateiso&amp;gt;&lt;br /&gt;
   &amp;lt;city&amp;gt;&amp;lt;/city&amp;gt;&lt;br /&gt;
   &amp;lt;keywords&amp;gt;Greatest Web Station&amp;lt;/keywords&amp;gt;&lt;br /&gt;
   &amp;lt;private&amp;gt;0&amp;lt;/private&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
 &amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 The &amp;lt;stateiso&amp;gt; element will only be returned if the &amp;lt;countryiso&amp;gt; element is 'US'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Update Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will update an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error when making an update are reset to their default value when this completes. Otherwise this acts the same as the ''''create'''' API with the addition of specifying the authorisation key to update.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/updateauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;amp;stationname=The Station Name&amp;amp;genre=Misc&amp;amp;[Other Parameters To Update]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to update&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (this is so we can contact you easily in-case of an issue with your listing or needing to inform you of a required DNAS update)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Remove Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will remove an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/removeauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to remove&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Resources==&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, some additional methods are provided for accessing the supported primary and secondary genres, country, state and language codes. These are provided as a means to check you are using the correct values or to use if creating your own interface around the core authorisation key APIs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These additional methods are accessed via &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/authutil_*&amp;lt;/nowiki&amp;gt; where '''*''' is then replaced with one of the following to get the required information:&lt;br /&gt;
&lt;br /&gt;
* '''country''' - provides provides a html select control containing the ISO 3166-1-alpha-2 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''languages''' - provides provides a html select control containing the ISO 639-1 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''states''' - provides provides a html select control containing the USPO state code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''primarygenre''' - provides a html select control of the primary genre's recognised&lt;br /&gt;
&lt;br /&gt;
* '''secondarygenre?primarygenre=&amp;lt;genre&amp;gt;''' - provides a html select control of the secondary genre's related to the primary genre passed or an empty response if there is no genres found&lt;br /&gt;
&lt;br /&gt;
* '''parentgenre?genre=&amp;lt;genre&amp;gt;''' - provides the name of the parent genre of the passed genre or an empty response if there is no parent genre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All additional methods (excluding the ''''parentgenre'''' method) provide a fully formed html select control which is filled with relevent values based on the parameter passed to the method (if applicable). These are done like this to allow for ease of insertion into a&lt;br /&gt;
&amp;lt;div&amp;gt; element for example with an interface used to control the APIs.&lt;br /&gt;
&lt;br /&gt;
Calling these additional methods (excluding the ''''parentgenre'''' method) with ''''&amp;amp;raw=1'''' in the url will output the result (if applicable) as plain text instead of as a html select control. The values returned are separated by a comma and each data pair is then placed on a new line. This is provided as a quick way of getting the recognised values if the html select control is not suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===User Interface Versions===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, specifying ''''ui_'''' on the front of the API method e.g. &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/ui_checkauthhash&amp;lt;/nowiki&amp;gt; for the ''''check'''' method provides a pre-built interface pages which can be used as a base point for making your own interface for the authorisation key APIs or to use as is as long as you have the required developer access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Genres===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The genre specified for an authhash can only be a primary genre (e.g. Misc) or it can be a secondary genre related to a chosen primary genre (e.g. House from Electronic). The following lists the supported primary genres and the associated secondary genres to them.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Primary Genre&lt;br /&gt;
!Associated Secondary Genres&lt;br /&gt;
|-&lt;br /&gt;
| Alternative || Adult Alternative, Britpop, Classic Alternative, College, Dancepunk, Dream Pop, Emo, Goth, Grunge, Hardcore, Indie Pop, Indie Rock, Industrial, LoFi, Modern Rock, New Wave, Noise Pop, Post Punk, Power Pop, Punk, Ska, Xtreme&lt;br /&gt;
|-&lt;br /&gt;
| Blues || Acoustic Blues, Cajun and Zydeco, Chicago Blues, Contemporary Blues, Country Blues, Delta Blues, Electric Blues&lt;br /&gt;
|-&lt;br /&gt;
| Classical || Baroque, Chamber, Choral, Classical Period, Early Classical, Impressionist, Modern, Opera, Piano, Romantic, Symphony&lt;br /&gt;
|-&lt;br /&gt;
| Country || Alt Country, Americana, Bluegrass, Classic Country, Contemporary Bluegrass, Contemporary Country, Honky Tonk, Hot Country Hits, Western&lt;br /&gt;
|-&lt;br /&gt;
| Decades || 30s, 40s, 50s, 60s, 70s, 80s, 90s, 00s&lt;br /&gt;
|-&lt;br /&gt;
| Easy Listening || Exotica, Light Rock, Lounge, Orchestral Pop, Polka, Space Age Pop&lt;br /&gt;
|-&lt;br /&gt;
| Electronic || Acid House, Ambient, Big Beat, Breakbeat, Dance, Demo, Disco, Downtempo, Drum and Bass, Dubstep, Electro, Garage, Hard House, House, IDM, Jungle, Progressive, Techno, Trance, Tribal, Trip Hop&lt;br /&gt;
|-&lt;br /&gt;
| Folk || Alternative Folk, Contemporary Folk, Folk Rock, New Acoustic, Old Time, Traditional Folk, World Folk&lt;br /&gt;
|-&lt;br /&gt;
| Inspirational || Christian, Christian Metal, Christian Rap, Christian Rock, Classic Christian, Contemporary Gospel, Gospel, Praise and Worship, Sermons and Services, Southern Gospel, Traditional Gospel&lt;br /&gt;
|-&lt;br /&gt;
| International || African, Afrikaans, Arabic, Asian, Bollywood, Brazilian, Caribbean, Celtic, Chinese, Creole, European, Filipino, French, German, Greek, Hawaiian and Pacific, Hebrew, Hindi, Indian, Islamic, Japanese, Klezmer, Korean, Mediterranean, Middle Eastern, North American, Russian, Soca, South American, Tamil, Turkish, Worldbeat, Zouk&lt;br /&gt;
|-&lt;br /&gt;
| Jazz || Acid Jazz, Avant Garde, Big Band, Bop, Classic Jazz, Cool Jazz, Fusion, Hard Bop, Latin Jazz, Smooth Jazz, Swing, Vocal Jazz, World Fusion&lt;br /&gt;
|-&lt;br /&gt;
| Latin || Bachata, Banda, Bossa Nova, Cumbia, Flamenco, Latin Dance, Latin Pop, Latin Rap and Hip Hop, Latin Rock, Mariachi, Merengue, Ranchera, Reggaeton, Regional Mexican, Salsa, Samba, Tango, Tejano, Tropicalia&lt;br /&gt;
|-&lt;br /&gt;
| Metal || Black Metal, Classic Metal, Death Metal, Extreme Metal, Grindcore, Hair Metal, Heavy Metal, Metalcore, Power Metal, Progressive Metal, Rap Metal, Thrash Metal&lt;br /&gt;
|-&lt;br /&gt;
| Misc || &lt;br /&gt;
|-&lt;br /&gt;
| New Age || Environmental, Ethnic Fusion, Healing, Meditation, Spiritual&lt;br /&gt;
|-&lt;br /&gt;
| Pop || Adult Contemporary, Barbershop, Bubblegum Pop, Dance Pop, Idols, JPOP, KPOP, Oldies, Soft Rock, Teen Pop, Top 40, World Pop&lt;br /&gt;
|-&lt;br /&gt;
| Public Radio || College, News, Sports, Talk, Weather&lt;br /&gt;
|-&lt;br /&gt;
| R&amp;amp;B and Urban || &lt;br /&gt;
|-&lt;br /&gt;
| Rap || Alternative Rap, Dirty South, East Coast Rap, Freestyle, Gangsta Rap, Hip Hop, Mixtapes, Old School, Turntablism, Underground Hip Hop, West Coast Rap&lt;br /&gt;
|-&lt;br /&gt;
| Reggae || Contemporary Reggae, Dancehall, Dub, Pop Reggae, Ragga, Reggae Roots, Rock Steady&lt;br /&gt;
|-&lt;br /&gt;
| Rock || Adult Album Alternative, British Invasion, Celtic Rock, Classic Rock, Garage Rock, Glam, Hard Rock, Jam Bands, JROCK, Piano Rock, Prog Rock, Psychedelic, Rock &amp;amp; Roll, Rockabilly, Singer and Songwriter, Surf&lt;br /&gt;
|-&lt;br /&gt;
| Seasonal and Holiday || Anniversary, Birthday, Christmas, Halloween, Hanukkah, Honeymoon, Kwanzaa, Valentine, Wedding, Winter&lt;br /&gt;
|-&lt;br /&gt;
| Soundtracks || Anime, Kids, Original Score, Showtunes, Video Game Music&lt;br /&gt;
|-&lt;br /&gt;
| Talk || BlogTalk, Comedy, Community, Educational, Government, News, Old Time Radio, Other Talk, Political, Scanner, Spoken Word, Sports, Technology&lt;br /&gt;
|-&lt;br /&gt;
| Themes || Adult, Best Of, Chill, Eclectic, Experimental, Female, Heartache, Instrumental, LGBT, Love and Romance, Party Mix, Patriotic, Rainy Day Mix, Reality, Se xy ''(remove space for actual word - spam filter display issue)'', Shuffle, Travel Mix, Tribute, Trippy, Work Mix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Illegal Input Values===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following values are not allowed when entered as the stationname (case insensitively) and will cause a 456 error response to be received when an authorisation key is created or updated as they are not easily found when multiple other listings are also using the same stationame.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 127.0.0.1 || admin || auto dj || auto jedi&lt;br /&gt;
|-&lt;br /&gt;
| auto pj || auto-dj || autodj || autopj&lt;br /&gt;
|-&lt;br /&gt;
| demo || dj || internet radio || live&lt;br /&gt;
|-&lt;br /&gt;
| local server || localhost || localserver || music&lt;br /&gt;
|-&lt;br /&gt;
| my radio || my server || my station name || my test server&lt;br /&gt;
|-&lt;br /&gt;
| n/a || pj || playlist || radio&lt;br /&gt;
|-&lt;br /&gt;
| radio station || test || test server || unnamed server&lt;br /&gt;
|-&lt;br /&gt;
| virtual dj || virtualdj || web rdio || web radio&lt;br /&gt;
|-&lt;br /&gt;
| song || teste || default stream || radio stream&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Additionally, stationnames just containing punctuation are not allowed as well as any which specify a name which matches with the supported genres (see [[SHOUTcast_Radio_Authhash_API#Supported_Genres|section 4.2]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Status Codes==&lt;br /&gt;
&lt;br /&gt;
The following status codes are returned on success or error when using the provided APIs:&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Code&lt;br /&gt;
!Status Text&lt;br /&gt;
!Detailed Text (if available)&lt;br /&gt;
|-&lt;br /&gt;
| 200 || Ok || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 400 || Generic Error || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 404 || Page Not Found || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 440 || Invalid devId || Invalid parameter k&lt;br /&gt;
|-&lt;br /&gt;
| 456 || Parameter value not allowed || ''&amp;lt;variable&amp;gt;=&amp;lt;value&amp;gt;'' not allowed&lt;br /&gt;
|-&lt;br /&gt;
| 458 || Building internal value failure || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 459 || Authhash could not be found for reading || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 460 || Missing required parameter || Missing ''&amp;lt;variable&amp;gt;''&lt;br /&gt;
|-&lt;br /&gt;
| 461 || Error while updating authhash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 462 || Parameter error || Invalid parameter &amp;lt;variable&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 463 || Invalid station result returned || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 464 || Authhash could not be found or removed || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 465 || Required parameter missing for registration || ''&amp;lt;variable&amp;gt;'' is a required parameter&lt;br /&gt;
|-&lt;br /&gt;
| 466 || Parameter outside of allowed range || ''&amp;lt;variable&amp;gt;'' parameter too long&lt;br /&gt;
|-&lt;br /&gt;
| 467 || Parameter value not recognized in stored values || ''&amp;lt;variable&amp;gt;'' value not recognized&lt;br /&gt;
|-&lt;br /&gt;
| 468 || Error creating intended xml response || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 469 || Authhash could not be updated as not found || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 470 || Invalid authorization hash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 500 || Generic Server Error || n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;variable&amp;gt;'' value in the detailed text will be replaced with the parameter name which the error relates to. The ''&amp;lt;value&amp;gt;'' value in the detailed text will be replaced with the parameter value which the error relates to.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API</id>
		<title>SHOUTcast Radio Authhash API</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_Radio_Authhash_API"/>
				<updated>2020-04-24T11:55:23Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Create Authorisation Key */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
A key aspect of the SHOUTcast 2.0 system is the usage of authorisation keys to control the listing of stations within the SHOUTcast Radio Directory (otherwise known as the YP).&lt;br /&gt;
&lt;br /&gt;
The API which is documented here is provided as a means for registered developers to be able to obtain and manage any authorisation keys for the station(s) they are providing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API Overview==&lt;br /&gt;
&lt;br /&gt;
There are four core parts of the authorisation key APIs (usage details are in [[#API_Usage|section 3]]):&lt;br /&gt;
&lt;br /&gt;
:[[#Create_Authorisation_Key|Create]]&lt;br /&gt;
:[[#Check_Authorisation_Key|Check]]&lt;br /&gt;
:[[#Update_Authorisation_Key|Update]]&lt;br /&gt;
:[[#Remove_Authorisation_Key|Remove]]&lt;br /&gt;
&lt;br /&gt;
The authorisation key APIs are xml based responses which provide information and status details of the provided API methods in a common style to ease implementation and usage.&lt;br /&gt;
&lt;br /&gt;
The API methods are called by passing parameters to the required YP site url.&lt;br /&gt;
&lt;br /&gt;
When the API methods are called then the status code of the method response is set to the status code of the API method so it is easy to detect errors from calling the API method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Successful Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are no issues with the API method call then one of the following responses will be received as the response generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first response is the '''basic''' success response and is provided if there is no extra information to be returned by the API method:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second response is the '''full''' success response and is provided when the API method needs to return additional information such as the authorisation key when a new one is created or the details of the authorisation key when using the ''''check'''' method:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;!-- information is found here --&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Error Response===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If there are issues experienced during the API method call then an error response will be received which takes the following form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;440&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Invalid devId&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;!-- the following is optional dependent upon the error --&amp;gt;&lt;br /&gt;
 &amp;lt;statusDetailText&amp;gt;Invalid parameter k&amp;lt;/statusDetailText&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In all uses of the API methods, the ''''statusCode'''' and ''''statusText'''' elements are provided when an error occurs. The ''''statusDetailText'''' value is an optional element and is only provided if the internal error handling is able to provide additional information. This will usually be present for errors relating to parameter issues i.e. missing parameters.&lt;br /&gt;
&lt;br /&gt;
See [[#Status_Codes|section 5]] for the status codes and messages returned when using the API methods.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==API Usage==&lt;br /&gt;
&lt;br /&gt;
The following sections detail how to use the four authorisation key API methods.&lt;br /&gt;
&lt;br /&gt;
Importantly, once an authorisation key has been created then it will be locked to the Developer ID used so you can only check, update or remove authorisation keys against that Developer ID.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Create Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will create an authorisation key and will return it in the xml response on success.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error will be left at their default values which will be indicated by empty xml elements when using the ''''check'''' API.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/createauthhash?k=[Your Dev ID]&amp;amp;stationname=The Station Name&amp;amp;genre=Misc&amp;amp;[Optional Parameters To Set]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (this is so we can contact you easily in-case of an issue with your listing or needing to inform you of a required DNAS update)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
&amp;amp; genre2 genre3 genre4 genre5 - specify up to 4 additional genres&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
* admode - determine whether monetization support is enabled for DNAS v2.4.7 and later (0=off, 1=on)&lt;br /&gt;
* callsign - the GUID of station if registered in the Shoutcast RadioManager&lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the new authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
 &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
 &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
 &amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;authhash&amp;gt;An_Authorisation_Key&amp;lt;/authhash&amp;gt;&lt;br /&gt;
 &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Check Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will remove an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/checkauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to check&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''full''' success response containing the found details of the authorisation key or the standard error response.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Example Response&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;response&amp;gt;&lt;br /&gt;
  &amp;lt;statusCode&amp;gt;200&amp;lt;/statusCode&amp;gt;&lt;br /&gt;
  &amp;lt;statusText&amp;gt;Ok&amp;lt;/statusText&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
   &amp;lt;stationname&amp;gt;The Station Name&amp;lt;/stationname&amp;gt;&lt;br /&gt;
   &amp;lt;genre&amp;gt;Misc&amp;lt;/genre&amp;gt;&lt;br /&gt;
   &amp;lt;website&amp;gt;www.shoutcast.com&amp;lt;/website&amp;gt;&lt;br /&gt;
   &amp;lt;description&amp;gt;The Best Station Ever...!&amp;lt;/description&amp;gt;&lt;br /&gt;
   &amp;lt;langid&amp;gt;EN&amp;lt;/langid&amp;gt;&lt;br /&gt;
   &amp;lt;countryiso&amp;gt;US&amp;lt;/countryiso&amp;gt;&lt;br /&gt;
   &amp;lt;stateiso&amp;gt;00&amp;lt;/stateiso&amp;gt;&lt;br /&gt;
   &amp;lt;city&amp;gt;&amp;lt;/city&amp;gt;&lt;br /&gt;
   &amp;lt;keywords&amp;gt;Greatest Web Station&amp;lt;/keywords&amp;gt;&lt;br /&gt;
   &amp;lt;private&amp;gt;0&amp;lt;/private&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
 &amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 The &amp;lt;stateiso&amp;gt; element will only be returned if the &amp;lt;countryiso&amp;gt; element is 'US'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Update Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will update an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
Any parameters which are not specified and do not cause an error when making an update are reset to their default value when this completes. Otherwise this acts the same as the ''''create'''' API with the addition of specifying the authorisation key to update.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/updateauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;amp;stationname=The Station Name&amp;amp;genre=Misc&amp;amp;[Other Parameters To Update]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to update&lt;br /&gt;
* stationname - name of the station as listed in the YP listings up to 100 characters&lt;br /&gt;
* genre - genre describing the station (see [[#Additional_Resources|section 4.0]] for getting supported genres or [[#Supported_Genres|section 4.2]] for list of supported genre values)&lt;br /&gt;
* email - contact address for the station up to 255 characters (this is so we can contact you easily in-case of an issue with your listing or needing to inform you of a required DNAS update)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Recommended Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
''(These are marked as optional but are likely to be made required in a future update)''&lt;br /&gt;
&lt;br /&gt;
* langid - ISO 639-1 code of the language the station mainly broadcasts e.g. English would be EN (defaults to EN)&lt;br /&gt;
* countryiso - ISO 3166-1-alpha-2 code of the country the station is run e.g. United Kingdom would be GB (defaults to US)&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Optional Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* website - related url for station up to 128 characters&lt;br /&gt;
* description - brief description about the station up to 65535 characters&lt;br /&gt;
* stateiso - USPO state code (only used if countryiso = US) and defaults to 00 (general)&lt;br /&gt;
* city - more specific place where the stream is based or related up to 128 characters&lt;br /&gt;
* keywords - separated tag words about the stream up to 120 characters&lt;br /&gt;
* private - determine if the primary server should be public (0 - default) or not (1)&lt;br /&gt;
&lt;br /&gt;
 It is recommended to fill in as many of these optional details where possible&lt;br /&gt;
 to improve usability with any future YP features which may be introduced.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Remove Authorisation Key===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This will remove an authorisation key as long as it was created by the Developer ID used.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;URL:&amp;lt;/span&amp;gt;''' &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/removeauthhash?k=[Your Dev ID]&amp;amp;authhash=[An_Authorisation_Key]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Required Parameters:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
* k - Developer ID for accessing the API&lt;br /&gt;
* authhash - Authorisation Key to remove&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color:#FF6600;&amp;quot;&amp;gt;Response:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Returns a '''basic''' success response or the standard error response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Additional Resources==&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, some additional methods are provided for accessing the supported primary and secondary genres, country, state and language codes. These are provided as a means to check you are using the correct values or to use if creating your own interface around the core authorisation key APIs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These additional methods are accessed via &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/authutil_*&amp;lt;/nowiki&amp;gt; where '''*''' is then replaced with one of the following to get the required information:&lt;br /&gt;
&lt;br /&gt;
* '''country''' - provides provides a html select control containing the ISO 3166-1-alpha-2 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''languages''' - provides provides a html select control containing the ISO 639-1 code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''states''' - provides provides a html select control containing the USPO state code and a displayable string for each option in the control&lt;br /&gt;
&lt;br /&gt;
* '''primarygenre''' - provides a html select control of the primary genre's recognised&lt;br /&gt;
&lt;br /&gt;
* '''secondarygenre?primarygenre=&amp;lt;genre&amp;gt;''' - provides a html select control of the secondary genre's related to the primary genre passed or an empty response if there is no genres found&lt;br /&gt;
&lt;br /&gt;
* '''parentgenre?genre=&amp;lt;genre&amp;gt;''' - provides the name of the parent genre of the passed genre or an empty response if there is no parent genre&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All additional methods (excluding the ''''parentgenre'''' method) provide a fully formed html select control which is filled with relevent values based on the parameter passed to the method (if applicable). These are done like this to allow for ease of insertion into a&lt;br /&gt;
&amp;lt;div&amp;gt; element for example with an interface used to control the APIs.&lt;br /&gt;
&lt;br /&gt;
Calling these additional methods (excluding the ''''parentgenre'''' method) with ''''&amp;amp;raw=1'''' in the url will output the result (if applicable) as plain text instead of as a html select control. The values returned are separated by a comma and each data pair is then placed on a new line. This is provided as a quick way of getting the recognised values if the html select control is not suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===User Interface Versions===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In addition to the core API methods, specifying ''''ui_'''' on the front of the API method e.g. &amp;lt;nowiki&amp;gt;http://yp.shoutcast.com/ui_checkauthhash&amp;lt;/nowiki&amp;gt; for the ''''check'''' method provides a pre-built interface pages which can be used as a base point for making your own interface for the authorisation key APIs or to use as is as long as you have the required developer access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Supported Genres===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The genre specified for an authhash can only be a primary genre (e.g. Misc) or it can be a secondary genre related to a chosen primary genre (e.g. House from Electronic). The following lists the supported primary genres and the associated secondary genres to them.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Primary Genre&lt;br /&gt;
!Associated Secondary Genres&lt;br /&gt;
|-&lt;br /&gt;
| Alternative || Adult Alternative, Britpop, Classic Alternative, College, Dancepunk, Dream Pop, Emo, Goth, Grunge, Hardcore, Indie Pop, Indie Rock, Industrial, LoFi, Modern Rock, New Wave, Noise Pop, Post Punk, Power Pop, Punk, Ska, Xtreme&lt;br /&gt;
|-&lt;br /&gt;
| Blues || Acoustic Blues, Cajun and Zydeco, Chicago Blues, Contemporary Blues, Country Blues, Delta Blues, Electric Blues&lt;br /&gt;
|-&lt;br /&gt;
| Classical || Baroque, Chamber, Choral, Classical Period, Early Classical, Impressionist, Modern, Opera, Piano, Romantic, Symphony&lt;br /&gt;
|-&lt;br /&gt;
| Country || Alt Country, Americana, Bluegrass, Classic Country, Contemporary Bluegrass, Contemporary Country, Honky Tonk, Hot Country Hits, Western&lt;br /&gt;
|-&lt;br /&gt;
| Decades || 30s, 40s, 50s, 60s, 70s, 80s, 90s, 00s&lt;br /&gt;
|-&lt;br /&gt;
| Easy Listening || Exotica, Light Rock, Lounge, Orchestral Pop, Polka, Space Age Pop&lt;br /&gt;
|-&lt;br /&gt;
| Electronic || Acid House, Ambient, Big Beat, Breakbeat, Dance, Demo, Disco, Downtempo, Drum and Bass, Dubstep, Electro, Garage, Hard House, House, IDM, Jungle, Progressive, Techno, Trance, Tribal, Trip Hop&lt;br /&gt;
|-&lt;br /&gt;
| Folk || Alternative Folk, Contemporary Folk, Folk Rock, New Acoustic, Old Time, Traditional Folk, World Folk&lt;br /&gt;
|-&lt;br /&gt;
| Inspirational || Christian, Christian Metal, Christian Rap, Christian Rock, Classic Christian, Contemporary Gospel, Gospel, Praise and Worship, Sermons and Services, Southern Gospel, Traditional Gospel&lt;br /&gt;
|-&lt;br /&gt;
| International || African, Afrikaans, Arabic, Asian, Bollywood, Brazilian, Caribbean, Celtic, Chinese, Creole, European, Filipino, French, German, Greek, Hawaiian and Pacific, Hebrew, Hindi, Indian, Islamic, Japanese, Klezmer, Korean, Mediterranean, Middle Eastern, North American, Russian, Soca, South American, Tamil, Turkish, Worldbeat, Zouk&lt;br /&gt;
|-&lt;br /&gt;
| Jazz || Acid Jazz, Avant Garde, Big Band, Bop, Classic Jazz, Cool Jazz, Fusion, Hard Bop, Latin Jazz, Smooth Jazz, Swing, Vocal Jazz, World Fusion&lt;br /&gt;
|-&lt;br /&gt;
| Latin || Bachata, Banda, Bossa Nova, Cumbia, Flamenco, Latin Dance, Latin Pop, Latin Rap and Hip Hop, Latin Rock, Mariachi, Merengue, Ranchera, Reggaeton, Regional Mexican, Salsa, Samba, Tango, Tejano, Tropicalia&lt;br /&gt;
|-&lt;br /&gt;
| Metal || Black Metal, Classic Metal, Death Metal, Extreme Metal, Grindcore, Hair Metal, Heavy Metal, Metalcore, Power Metal, Progressive Metal, Rap Metal, Thrash Metal&lt;br /&gt;
|-&lt;br /&gt;
| Misc || &lt;br /&gt;
|-&lt;br /&gt;
| New Age || Environmental, Ethnic Fusion, Healing, Meditation, Spiritual&lt;br /&gt;
|-&lt;br /&gt;
| Pop || Adult Contemporary, Barbershop, Bubblegum Pop, Dance Pop, Idols, JPOP, KPOP, Oldies, Soft Rock, Teen Pop, Top 40, World Pop&lt;br /&gt;
|-&lt;br /&gt;
| Public Radio || College, News, Sports, Talk, Weather&lt;br /&gt;
|-&lt;br /&gt;
| R&amp;amp;B and Urban || &lt;br /&gt;
|-&lt;br /&gt;
| Rap || Alternative Rap, Dirty South, East Coast Rap, Freestyle, Gangsta Rap, Hip Hop, Mixtapes, Old School, Turntablism, Underground Hip Hop, West Coast Rap&lt;br /&gt;
|-&lt;br /&gt;
| Reggae || Contemporary Reggae, Dancehall, Dub, Pop Reggae, Ragga, Reggae Roots, Rock Steady&lt;br /&gt;
|-&lt;br /&gt;
| Rock || Adult Album Alternative, British Invasion, Celtic Rock, Classic Rock, Garage Rock, Glam, Hard Rock, Jam Bands, JROCK, Piano Rock, Prog Rock, Psychedelic, Rock &amp;amp; Roll, Rockabilly, Singer and Songwriter, Surf&lt;br /&gt;
|-&lt;br /&gt;
| Seasonal and Holiday || Anniversary, Birthday, Christmas, Halloween, Hanukkah, Honeymoon, Kwanzaa, Valentine, Wedding, Winter&lt;br /&gt;
|-&lt;br /&gt;
| Soundtracks || Anime, Kids, Original Score, Showtunes, Video Game Music&lt;br /&gt;
|-&lt;br /&gt;
| Talk || BlogTalk, Comedy, Community, Educational, Government, News, Old Time Radio, Other Talk, Political, Scanner, Spoken Word, Sports, Technology&lt;br /&gt;
|-&lt;br /&gt;
| Themes || Adult, Best Of, Chill, Eclectic, Experimental, Female, Heartache, Instrumental, LGBT, Love and Romance, Party Mix, Patriotic, Rainy Day Mix, Reality, Se xy ''(remove space for actual word - spam filter display issue)'', Shuffle, Travel Mix, Tribute, Trippy, Work Mix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Illegal Input Values===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following values are not allowed when entered as the stationname (case insensitively) and will cause a 456 error response to be received when an authorisation key is created or updated as they are not easily found when multiple other listings are also using the same stationame.&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 127.0.0.1 || admin || auto dj || auto jedi&lt;br /&gt;
|-&lt;br /&gt;
| auto pj || auto-dj || autodj || autopj&lt;br /&gt;
|-&lt;br /&gt;
| demo || dj || internet radio || live&lt;br /&gt;
|-&lt;br /&gt;
| local server || localhost || localserver || music&lt;br /&gt;
|-&lt;br /&gt;
| my radio || my server || my station name || my test server&lt;br /&gt;
|-&lt;br /&gt;
| n/a || pj || playlist || radio&lt;br /&gt;
|-&lt;br /&gt;
| radio station || test || test server || unnamed server&lt;br /&gt;
|-&lt;br /&gt;
| virtual dj || virtualdj || web rdio || web radio&lt;br /&gt;
|-&lt;br /&gt;
| song || teste || default stream || radio stream&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Additionally, stationnames just containing punctuation are not allowed as well as any which specify a name which matches with the supported genres (see [[SHOUTcast_Radio_Authhash_API#Supported_Genres|section 4.2]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Status Codes==&lt;br /&gt;
&lt;br /&gt;
The following status codes are returned on success or error when using the provided APIs:&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Code&lt;br /&gt;
!Status Text&lt;br /&gt;
!Detailed Text (if available)&lt;br /&gt;
|-&lt;br /&gt;
| 200 || Ok || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 400 || Generic Error || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 404 || Page Not Found || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 440 || Invalid devId || Invalid parameter k&lt;br /&gt;
|-&lt;br /&gt;
| 456 || Parameter value not allowed || ''&amp;lt;variable&amp;gt;=&amp;lt;value&amp;gt;'' not allowed&lt;br /&gt;
|-&lt;br /&gt;
| 458 || Building internal value failure || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 459 || Authhash could not be found for reading || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 460 || Missing required parameter || Missing ''&amp;lt;variable&amp;gt;''&lt;br /&gt;
|-&lt;br /&gt;
| 461 || Error while updating authhash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 462 || Parameter error || Invalid parameter &amp;lt;variable&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 463 || Invalid station result returned || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 464 || Authhash could not be found or removed || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 465 || Required parameter missing for registration || ''&amp;lt;variable&amp;gt;'' is a required parameter&lt;br /&gt;
|-&lt;br /&gt;
| 466 || Parameter outside of allowed range || ''&amp;lt;variable&amp;gt;'' parameter too long&lt;br /&gt;
|-&lt;br /&gt;
| 467 || Parameter value not recognized in stored values || ''&amp;lt;variable&amp;gt;'' value not recognized&lt;br /&gt;
|-&lt;br /&gt;
| 468 || Error creating intended xml response || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 469 || Authhash could not be updated as not found || Authhash does not exist or was not created by this 'devID'&lt;br /&gt;
|-&lt;br /&gt;
| 470 || Invalid authorization hash || n/a&lt;br /&gt;
|-&lt;br /&gt;
| 500 || Generic Server Error || n/a&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;variable&amp;gt;'' value in the detailed text will be replaced with the parameter name which the error relates to. The ''&amp;lt;value&amp;gt;'' value in the detailed text will be replaced with the parameter value which the error relates to.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Server_2</id>
		<title>SHOUTcast DNAS Server 2</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Server_2"/>
				<updated>2020-03-12T12:45:08Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Stream Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
The purpose of this document is to show you the different configuration options supported by sc_serv along with basic and more advanced example configurations to enable you to get started with using sc_serv and the features it can offer.&lt;br /&gt;
&lt;br /&gt;
The aim of sc_serv is to provide enhanced serving features and also access to the new YP2 infrastructure whilst maintaining as much backward compatibility with previous versions of sc_serv as possible. The new features introduced include:&lt;br /&gt;
&lt;br /&gt;
# Serving multiple streams from a single server instance&lt;br /&gt;
# Relaying multiple streams from a single server instance&lt;br /&gt;
# Multiplexing all server activity through a single IP port&lt;br /&gt;
# SHOUTcast 2 wire protocol support for sources, relays and clients&lt;br /&gt;
# Repackaging of SHOUTcast 1 and SHOUTcast 2 data as needed for connected clients&lt;br /&gt;
# YP2 infrastructure support&lt;br /&gt;
# Real-time metadata and statistic reporting&lt;br /&gt;
# Static station id support&lt;br /&gt;
# In-stream metadata in standardised xml files&lt;br /&gt;
# UTF-8 and international character encoding&lt;br /&gt;
# Improved server and stream security&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview of Features==&lt;br /&gt;
&lt;br /&gt;
To take full advantage of the newer features provided as part of the SHOUTcast 2 and YP2 systems then you will need to ensure you are using a compatible version of sc_serv (any version 2 will work) and that you have the required authorisation key to register as a broadcaster on the YP2 directory (see [[#Getting_Started|section 3.0]]).&lt;br /&gt;
&lt;br /&gt;
If you were intending on taking full advantage of the multiplexing and multiple stream support offered as part of sc_serv then you would need to make sure you enable the SHOUTcast 2 options (this is enabled by default with server builds from the end of 2010 if the 'yp2' option in the configuration file is not specified [see [[#YP_Server_Behaviour|section 4.14]] ). The reason for needing to enable this support is if you try to do it with the original SHOUTcast 1 protocol then it will not work as the original protocol has no means of expressing multiple streams from a single port due to the lack of an identifier provided for them.&lt;br /&gt;
&lt;br /&gt;
If you are planning on connecting multiple sc_trans instances to sc_serv then you must use the SHOUTcast 2 protocol support so that each sc_trans instance can have a unique identifier which allows for multiple streams to then be provided from a single server. It is still possible for an older source to connect to the server with a number of config options available to support this though functionality will be limited compared to what can be done with a fully supporting SHOUTcast 2 source.&lt;br /&gt;
&lt;br /&gt;
Finally clients connecting to your server do not need to directly support SHOUTcast 2 as sc_serv will repackage the stream data and any related metadata into the correct format the client requests (typically based on the user agent detected by the server).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
&lt;br /&gt;
One of the key aspects of the new YP2 directory infrastructure is an authorisation key which is used to validate your server when it tries to connect to the YP2 infrastructure for any of the station(s) you run. Once this key is obtained, it will be valid for all root servers of the station being broadcast.&lt;br /&gt;
&lt;br /&gt;
This can be done by going to the [[SHOUTcast_Authhash_Management|SHOUTcast Authhash Management]] page which shows how to do this via the 'Administation Summary' page as long as a valid source has been connected to the server. This process automatically updates your configuration file(s) with the new authhash and if the stream is set to be public then will attempt to get the stream listed in the SHOUTcast Radio Directory.&lt;br /&gt;
&lt;br /&gt;
When using an older SHOUTcast 1 server then you do not need to do this registration and the server will still be able to be listed on the directory but there is not the same level of protection over the stream as is the case with registering it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Running the Server===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The server is able to be run either as a console application or it can be run as service (Windows) or daemon (Linux / Mac OS X / BSD). Detailed below is how to get the server running on the different operating systems supported by it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The Windows version of sc_serv is designed to run on fully updated and patched versions of Windows 2000, XP, Vista and Windows 7, 8 &amp;amp; 10.&lt;br /&gt;
&lt;br /&gt;
Please note that the Windows versions of sc_serv are built with a dependency against the Microsoft Visual C++ 2008 SP1 Redistributable Package. If sc_serv is unable to start due to a dependency issue then you will need to install the correct version of the package so it can run which depends on the version of sc_serv you are attempting to run:&lt;br /&gt;
&lt;br /&gt;
32-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&lt;br /&gt;
&lt;br /&gt;
64-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ba9257ca-337f-4b40-8c14-157cfdffee4e&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Install as a Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe install &amp;lt;servicename&amp;gt; &amp;lt;username&amp;gt; &amp;lt;password&amp;gt; &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service&lt;br /&gt;
 Typically enter this as 'sc_serv' though you can use a different name but you will need&lt;br /&gt;
 to remember it as it is required to be the same when using the 'uninstall' mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;username&amp;gt; - User under which to run the service as or '0' for the local system&lt;br /&gt;
&lt;br /&gt;
&amp;lt;password&amp;gt; - Password for user or '0' for the local system or with no password&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
When run as a service there is not a good sense of a current working directory so requires all paths in the configuration and playlist files to be fully qualified otherwise lookups will fail when sc_serv is run.&lt;br /&gt;
&lt;br /&gt;
To run sc_serv with a configuration file in the same folder as the server as the current system user account you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_serv.exe install sc_serv 0 0 sc_serv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Uninstall the Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe uninstall &amp;lt;servicename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service as used when the service was registered&lt;br /&gt;
&lt;br /&gt;
To uninstall sc_serv assuming it was installed as detailed in the install section above then you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_serv.exe uninstall sc_serv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Service in the Console====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
===Linux / Mac OS X / BSD===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Remember to enable the required access on the sc_trans file by doing 'chmod a+x sc_trans' after extracting it from the distribution file otherwise the OS is likely to not run it and show the error message './sc_serv: Permission denied'.&lt;br /&gt;
&lt;br /&gt;
====Run as a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_serv daemon &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (required in all cases)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
'''e.g.'''&lt;br /&gt;
 ./sc_serv daemon ./sc_serv.conf&lt;br /&gt;
&lt;br /&gt;
When run this should output the following:&lt;br /&gt;
&lt;br /&gt;
'sc_serv going daemon with PID [XXXX]' where XXXX is the &amp;lt;pid&amp;gt; of the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====End a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
kill -SIGTERM &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -15 &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -s TERM &amp;lt;pid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pid&amp;gt; - The PID of the daemon instance (reported when the daemon started or can be found with 'ps ax | grep sc_serv' as long as sc_serv was the file run otherwise you can just use 'ps ax' if the filename isn't known). Additionally the PID of sc_serv is listed in the log file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_serv &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Additional Signals===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
When run on Linux / Mac OS X / BSD then some additional signals are supported to allow for additional control over the running daemon instance of sc_serv.&lt;br /&gt;
&lt;br /&gt;
The following signals can be used with the 'kill' command (in the manner of your choosing for using the kill command) along with the &amp;lt;pid&amp;gt; of the daemon instance to do one of the following actions:&lt;br /&gt;
&lt;br /&gt;
    SIGKILL   -  Stops sc_trans (also SIGTERM, SIGINT and SIGQUIT will work)&lt;br /&gt;
    SIGHUP    -  Rotates logfile, w3clog and streamw3clog&lt;br /&gt;
&lt;br /&gt;
The result of SIGHUP is that the current log file contents will be moved into &amp;lt;logfile&amp;gt;_1 e.g. sc_serv_1.log, &amp;lt;logfile&amp;gt;_1 will be moved into &amp;lt;logfile&amp;gt;_2 e.g. sc_serv_2.log and so on for all log files which can be found which match the current log file's name. This is useful if timed to have it create day specific log files.&lt;br /&gt;
&lt;br /&gt;
 These signals are not supported by the Windows version of sc_serv which will only&lt;br /&gt;
 respond to the Ctrl + C / Ctrl + Break / console close commands the OS provides.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration File==&lt;br /&gt;
&lt;br /&gt;
Here you can find a complete list of all of the configuration options which are provided by sc_serv which ranges from logging to networking configuration and control over the media being used when streaming via the server.&lt;br /&gt;
&lt;br /&gt;
Configuration entries labelled as ''&amp;lt;MULTI&amp;gt;'' can be used to set up simultaneous connections to the server or allow for multiple connections from various sources. These are specified by adding _# to the end of the option's name as shown below where # begins with one. If you are only working with a single instance then you do not need to add the _# part as any instances of a configuration option will assume it is for _1.&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;MULTI&amp;gt;'' system is not hierarchical and all values beyond the default must be specified for all connections. So for example, if you wanted to connect to two servers on the same port you must do:&lt;br /&gt;
&lt;br /&gt;
    portbase_1=8080&lt;br /&gt;
    portbase_2=8080&lt;br /&gt;
    destip_1=stream.server1.com&lt;br /&gt;
    destip_2=stream.server2.com&lt;br /&gt;
&lt;br /&gt;
Note that you CANNOT do it like this as it leads to not all values being set:&lt;br /&gt;
&lt;br /&gt;
    portbase=8080&lt;br /&gt;
    destip_1=stream.server1.com&lt;br /&gt;
    destip_2=stream.server2.com&lt;br /&gt;
&lt;br /&gt;
The configuration files also allow for comments/notes or options to be disabled by the use of a semi-colon (''';''') or a left bracket ('''[''') or the hash / pound symbol ('''#''') at the start of a line which can be seen in all of the configuration examples.&lt;br /&gt;
&lt;br /&gt;
Known options in the configuration files are recognised irrespective of the case they are entered in the configuration file so maxuser and MaXuSer will be handled the same way.&lt;br /&gt;
&lt;br /&gt;
Any items found in the configuration file which are not known (as detailed in following sections) or is not processed as a comment will be reported in the following manner:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;date + time&amp;gt; W msg:[CONFIG] Invalid item on line XX&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;date + time&amp;gt; is the date and time the event happens at and XX is the line in the configuration file where the error has been found to occur at.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Banning===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''banfile''' : File to store the list of banned IP addresses    ''[Default = sc_serv.ban]''&lt;br /&gt;
&lt;br /&gt;
'''savebanlistonexit''' : Re-write the 'banfile' on server exit    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the file into then you need to ensure that the&lt;br /&gt;
 folder already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Client Behaviour===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''maxuser''' : Specify the maximum number of clients allowed to connect to the server    ''[Default = 32]''&lt;br /&gt;
 This is used in conjunction with 'streammaxuser' (see [[#Stream_Configuration|section 4.12]]) to control the&lt;br /&gt;
 maximum limit on the number of client connections allowed to connect to the server instance.&lt;br /&gt;
&lt;br /&gt;
'''listenertime''' : Specify the maximum time in minutes a client can listen to the stream    ''[Default = 0]''&lt;br /&gt;
 A value of zero means there will be no time limit.&lt;br /&gt;
&lt;br /&gt;
'''autodumpusers''' : Enable to allow the server to disconnect clients if the source disconnects    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''srcip''' : Specify the server side binding address for sources to connect on    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''dstip''' or '''destip''' or '''publicip''' : Specify the server side binding address for clients    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
 If 'any' or no value is specified then sc_serv listens to all addresses.&lt;br /&gt;
&lt;br /&gt;
If you specify a value for 'dstip / destip' then this will be used by the listen feature on the Administration Pages (see section 5.1) so it can provide a valid stream url in the generated playlist. If 'dstip / destip' is not specified then the server will attempt to auto-generate the IP required for the client to be able to connect. If this fails the generated playlist is likely to return a stream url like &amp;lt;nowiki&amp;gt;http://0.0.0.0:&amp;lt;portbase&amp;gt;/&amp;lt;path&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The IP provided needs to be in a valid format like &amp;lt;nowiki&amp;gt;http://&amp;lt;my-ip&amp;gt;&amp;lt;/nowiki&amp;gt; or an address which can be resolved to an IP otherwise the internal lookups done are likely to fail (depends upon the server configuration and OS being used). Also you cannot set srcip and dstip / destip to be the same IP value and if this happens then the server will close. Closing of the server will also happen if the IP cannot be resolved or correctly bound to i.e. server is not there or an invalid value was entered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''titleformat''' : Specify a string to be used in-place of the default icy-name string being used    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''urlformat''' : Specify a string to be used in-place of the default icy-url string being used    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''  '''&lt;br /&gt;
'''  '''&lt;br /&gt;
&lt;br /&gt;
===Debugging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In all cases, the default value is for no debug logging for the options listed below.&lt;br /&gt;
&lt;br /&gt;
'''yp1debug''' : Enable debug logging of YP connections&lt;br /&gt;
&lt;br /&gt;
'''yp2debug''' : Enable debug logging of YP2 connections&lt;br /&gt;
&lt;br /&gt;
'''shoutcastsourcedebug''' : Enable debug logging of SHOUTcast source connections&lt;br /&gt;
&lt;br /&gt;
'''uvox2sourcedebug''' : Enable debug logging of SHOUTcast 2 source connections&lt;br /&gt;
&lt;br /&gt;
'''shoutcast1clientdebug''' : Enable debug logging of SHOUTcast streaming clients&lt;br /&gt;
&lt;br /&gt;
'''shoutcast2clientdebug''' : Enable debug logging of SHOUTcast 2 streaming clients&lt;br /&gt;
&lt;br /&gt;
'''relayshoutcastdebug''' : Enable debug logging for SHOUTcast relays&lt;br /&gt;
&lt;br /&gt;
'''relayuvoxdebug''' : Enable debug logging for SHOUTcast 2 relays&lt;br /&gt;
&lt;br /&gt;
'''relaydebug''' : Enable debug logging of common relay code&lt;br /&gt;
&lt;br /&gt;
'''streamdatadebug''' : Enable debug logging of common streaming code&lt;br /&gt;
&lt;br /&gt;
'''httpstyledebug''' : Enable debug logging of http style requests&lt;br /&gt;
&lt;br /&gt;
'''statsdebug''' : Enable debug logging of statistics&lt;br /&gt;
&lt;br /&gt;
'''microserverdebug''' : Enable debug logging of common server activity&lt;br /&gt;
&lt;br /&gt;
'''threadrunnerdebug''' : Enable debug logging of the thread manager&lt;br /&gt;
&lt;br /&gt;
'''rtmpclientdebug''' : Enable debug logging of rtmp clients&lt;br /&gt;
&lt;br /&gt;
'''admetricsdebug''' : Enable debug logging of ad metrics (v2.5 and newer)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' '''&lt;br /&gt;
''' '''&lt;br /&gt;
&lt;br /&gt;
===Flash Security===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''flashpolicyfile''' : Name of file containing flash crossdomain policies on the server    ''[Default = crossdomain.xml]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Introduction and Backup Files===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Note that intro and backup audio files must precisely match the format and bitrate for the stream! If they do not match, there will be a break in the stream and the listener will be disconnected. &lt;br /&gt;
&lt;br /&gt;
'''introfile''' : File to play when a client first connects to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: This is used globally and also is default for stream #1 on DNAS versions greater than 2.0. To apply a specific intro file to a stream, use streamintrofile_X. &lt;br /&gt;
&lt;br /&gt;
'''streamintrofile_X''' : File to play when a client first connects to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''backupfile''' : File to play if the source disconnects from the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: This is used globally and also is default for stream #1 on DNAS versions greater than 2.0. To apply a specific backup file to a stream, use streambackupfile_X. &lt;br /&gt;
&lt;br /&gt;
'''streambackupfile_X''' : assigns a specific backup file to a streamID X [Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''streambackupurl_X''' : assigns a specific backup stream to a streamID X (v2.6 Premium feature)''&lt;br /&gt;
&lt;br /&gt;
'''specialfiletmpdir''' : place to store intro and backup files uploaded by sc_trans    ''[Default = /tmp/ (*nix only)]''&lt;br /&gt;
&lt;br /&gt;
'''maxspecialfilesize''' : Change the maximum size in bytes of the backup and intro files    ''[Default = 30000000]''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''log''' : Enable logging of the servers output    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''screenlog''' :  Enable logging of servers output to the console    ''[Default = 1]''&lt;br /&gt;
 If log=0 then this option is ignored due to no logging happening.&lt;br /&gt;
&lt;br /&gt;
'''logfile''' : Specify a different logfile to save the logs into ''[Default = %temp%\sc_serv.log or /tmp/sc_serv.log]''&lt;br /&gt;
&lt;br /&gt;
'''logclients''' : Enable logging of details about client connections and disconnections made ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the logs into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''configrewrite''' :  Re-write the 'config file' on server exit    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''songhistory''' : Specify the maximum song history to preserve    ''[Default = 10]''&lt;br /&gt;
&lt;br /&gt;
'''cpucount''' : Specify the number of cpu's present instead of the calculated number if non-zero    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''unique''' : Specify a substitution string for the '$' character to be used when processing filenames which if specified will set any occurences of '$' to the value set. This will be used in the processing of the following filenames: '''logfile''', '''introfile''', '''streamintrofile''', '''backupfile''', '''streambackupfile''', '''banfile''', '''streambanfile''', '''ripfile''', '''streamripfile''', '''include''', '''w3clog''', '''streamw3clog'''&lt;br /&gt;
&lt;br /&gt;
 So when 'unique' is changed from '$' to say 'test' then the following happens if 'logfile' is&lt;br /&gt;
 set to '/usr/local/shoutcast/$.log' then this would be converted to '/usr/local/shoutcast/test.log'&lt;br /&gt;
&lt;br /&gt;
'''include''' : Specify an additional include file containing settings to be processed from the current point in the main configuration file    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
You can do multiple calls of this allowing for a basic configuration file with then 'specific' stream configurations set in individual conf files though you need to ensure not to include a reference to the same file in itself.&lt;br /&gt;
&lt;br /&gt;
You can also specify a path with a wildcard for sc_serv to use to find multiple configuration files to include '''e.g.''' 'include=stream/*.conf'.  This can then be used along with the multiple stream configurations (see section 4.12) and the admin command 'admin.cgi?mode=reload' (see section 5.1) to add / remove / update stream configurations without having to close the server to apply them.&lt;br /&gt;
&lt;br /&gt;
'''admincssfile''' : Specify the css styling to be used on the index.html and admin pages    ''[Default = v2]''&lt;br /&gt;
&lt;br /&gt;
This can accept the following parameters:&lt;br /&gt;
&lt;br /&gt;
:admincssfile='''v1'''  -  Uses the v1 DNAS style&lt;br /&gt;
:admincssfile='''v2'''  -  Uses the newer SHOUTcast 2 style&lt;br /&gt;
:admincssfile='''path_to_local_css_file'''  e.g. my_index.css&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 If using a custom css file, if it does not exist on the first try to load it the server will revert to&lt;br /&gt;
 the default css style. As well the style is cached once loaded so changes require a restart of sc_serv.&lt;br /&gt;
&lt;br /&gt;
'''faviconfile''' : Specify the file to be returned as the favicon.ico when the administration pages are being queried by the client's browser    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
The default behaviour is to use a SHOUTcast themed built-in icon file and support / handling the update of this will entirely depend on the browser.&lt;br /&gt;
&lt;br /&gt;
'''faviconmimetype''' : Specify the mime type for actual file to be served in the favicon.ico response    ''[Default = image/x-icon]''&lt;br /&gt;
&lt;br /&gt;
Ensure this is correct for the type of image being used so it is valid.&lt;br /&gt;
&lt;br /&gt;
'''hidestats''' : Specify if the publically accessible stats?sid=# page can be accessed or if it is only available via the private administration pages   ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''robotstxtfile''' : Specify the file to be returned as the robots.txt when queried by search engines, etc to attempt to prevent incorrect access to the server's pages which may cause invalid client connections    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
The default behaviour is to return a robots.txt reponse indicating not to look at any of the server's pages i.e.&lt;br /&gt;
::User-agent:*&lt;br /&gt;
::Disallow:/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Networking===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''namelookups''' : Enable to allow reverse DNS look-ups on incoming IP addresses    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''portbase''' : Specify the port which clients and sources need to use to connect to the server    ''[Default = 8000]''&lt;br /&gt;
 SHOUTcast 1 sources are only able to connect to 'portbase + 1'.&lt;br /&gt;
&lt;br /&gt;
'''autodumpsourcetime''' : Specify how long before an idle source is dumped from the server (in seconds)    ''[Default: 30]''&lt;br /&gt;
 A value of zero means there is no timeout of an idle source.&lt;br /&gt;
 Also if you set this too low then it is likely that valid sources will&lt;br /&gt;
 fail to connect during the initial stages of a source connection.&lt;br /&gt;
&lt;br /&gt;
'''maxheaderlinesize''' : Specify the maximum size of an HTTP header line    ''[Default = 2048]''&lt;br /&gt;
&lt;br /&gt;
'''maxheaderlinecount''' : Specify the maximum header lines in an HTTP style exchange    ''[Default = 100]''&lt;br /&gt;
&lt;br /&gt;
'''adminpassword''' : Specify the administrator password for accessing the remote server features    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''password''' : Specify the password for broadcasters when connecting to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
 This matches the 'uvoxauth' value in the sc_trans configuration file (see [[SHOUTcast_DNAS_Transcoder_2#Network_Options|sc_trans.txt - section 3.11]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Network Buffers===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''buffertype''' : Specify whether the buffer size is fixed [0] or adaptive [1]    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''adaptivebuffersize''' : Specify the buffer size in seconds if buffer is set to adaptive    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''fixedbuffersize''' : Specify the buffer size in bytes if the buffer is set to fixed    ''[Default = 1048576]''&lt;br /&gt;
&lt;br /&gt;
'''bufferhardlimit''' : Specify the maximum buffer size in bytes which it can never go above    ''[Default = 16777216]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Relaying===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''allowrelay''' : Enable to allow a relay to connect to the server    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''allowpublicrelay''' : Enable to allow relays to list themselves in the YP directory    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''relayreconnecttime''' : Specify how many seconds to wait to reconnect on a relay failure    ''[Default = 30]''&lt;br /&gt;
 Setting this to 0 will disable attempts for the relay to reconnect.&lt;br /&gt;
&lt;br /&gt;
'''relayconnectretries''' : Specify the number of times relays are attempted to be connected to if it is initially unable to connect    ''[Default = 3]''&lt;br /&gt;
 This generally applies only to YP1 connections and is related to the&lt;br /&gt;
 actual attempts to make and get a http response from the YP server.&lt;br /&gt;
&lt;br /&gt;
'''maxhttpredirects''' : Specify the maximum number of times we can redirect when relaying    ''[Default = 5]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;Legacy Options&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
'''relayport''' : Port of the source to use for the relay    ''[Default: 80]''&lt;br /&gt;
&lt;br /&gt;
'''relayserver''' : Url of the source to relay    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
 Using the stream configuration options (see [[#Stream_Configuration|section 4.12]]) is the preferred method&lt;br /&gt;
 of setting up a relay. These options are only provided as a means for loading&lt;br /&gt;
 legacy configuration files. If found then these are mapped to 'streamrelayurl_1'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Reserved List===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''ripfile''' : File to store the list of reserved IP addresses    ''[Default = sc_serv.rip]''&lt;br /&gt;
&lt;br /&gt;
'''saveriplistonexist''' : Re-write the 'ripfile' on server exit    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''riponly''' : Only allow connections to be made from reserved IP addresses    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the file into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Stream Configuration===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Important Note:''' If you do not specify an identifier (_#) on the end of the above options then it will be treated like _1 (effectively acting like SHOUTcast 1). Additionally, _0 is not a supported identifier and will be mapped to _1.&lt;br /&gt;
&lt;br /&gt;
'''requirestreamconfigs''' : Only allow sources to connect if a stream configuration has been set in your configuration file    ''[Default = 0]''&lt;br /&gt;
 With this enabled, you will need to ensure that any sources have their configuration details&lt;br /&gt;
 setup to match those in sc_trans's configuration, in particular the 'uvoxstreamid' value with&lt;br /&gt;
 sc_trans (see [[SHOUTcast_DNAS_Transcoder_2#Network_Options|sc_trans.txt - section 3.11]]).&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each stream configuration):&lt;br /&gt;
&lt;br /&gt;
'''streamid''' : Specify the numerical identifier of the stream for control or referencing the stream configuration. This can only be a numeric value from 1 to 2147483647.&lt;br /&gt;
&lt;br /&gt;
 If you use multiple stream configurations then you will need to ensure the _X&lt;br /&gt;
 part is specified and correct for each stream configuration group&lt;br /&gt;
 e.g.&lt;br /&gt;
   streamid=1&lt;br /&gt;
   streampath=/live&lt;br /&gt;
     or&lt;br /&gt;
   streamid_1=1&lt;br /&gt;
   streampath_1=/random_mountpoint&lt;br /&gt;
   streamid_2=2&lt;br /&gt;
   streampath_2=/another_mountpoint&lt;br /&gt;
&lt;br /&gt;
'''streamauthhash''' : The authorisation key needed for YP2 directory registration.&lt;br /&gt;
 This is a requirement for using the YP2 system and without it you will not be able to&lt;br /&gt;
 successfully connect to the YP2 directory (see [[#Getting_Started|section 3.0]]).&lt;br /&gt;
 &lt;br /&gt;
 This can be used for multiple streams you are providing or can be different (as long&lt;br /&gt;
 as valid) so you can infact provide multiple stations from the same server if desired.&lt;br /&gt;
&lt;br /&gt;
'''streampath''' : Specify the path clients need to use to access the stream&lt;br /&gt;
 If a / is not specified on the start of the string then the server will add&lt;br /&gt;
 it to the generated path in playlist entries or other places as required so&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://&amp;lt;serverurl&amp;gt;/&amp;lt;streampath&amp;gt;&amp;lt;/nowiki&amp;gt; will work so clients are able to connect.&lt;br /&gt;
 &lt;br /&gt;
 If this is not specified then &amp;lt;nowiki&amp;gt;http://&amp;lt;serverurl&amp;gt;/stream/&amp;lt;streamid&amp;gt;/&amp;lt;/nowiki&amp;gt; will be&lt;br /&gt;
 used for client access and in generated playlist entries so that it will&lt;br /&gt;
 always be possible for clients to connect to the server somehow. &lt;br /&gt;
 See [[SHOUTcast_DNAS_Server_2#Stream_Addresses|section 6.0]] for more information on the server's stream address support.&lt;br /&gt;
&lt;br /&gt;
 Note: streampath is the mountpoint, e.g. streampath_1=/mystation would result in ip:port/mystation&lt;br /&gt;
 Do NOT specify a streamurl as streampath as this will result in an error.&lt;br /&gt;
&lt;br /&gt;
'''streamrelayurl''' : Specify the full url of source to relay (if this is a relay).&lt;br /&gt;
 Make sure if you use this that the full url is entered and that it is&lt;br /&gt;
 the url which clients would connect to for the stream to be relayed.&lt;br /&gt;
&lt;br /&gt;
'''streammaxuser''' : Specify the maximum number of clients allowed to connect to the stream    ''[Default = 0]''&lt;br /&gt;
If set to zero, not specified or higher than 'maxuser' then the value set for 'maxuser' (see [[#Client_Behaviour|section 4.2]]) will be used for all known streams.&lt;br /&gt;
&lt;br /&gt;
Changing this to a value between zero and 'maxuser' will enforce the user connection limit for the specified value in the stream configuration '''e.g.'''&lt;br /&gt;
 streammaxuser_1 = 8&lt;br /&gt;
 maxuser = 32&lt;br /&gt;
&lt;br /&gt;
This allows a total of 32 connections to the server but specifies the maximum number of connections to the first stream configuration is 8.&lt;br /&gt;
&lt;br /&gt;
With the following stream configuration&lt;br /&gt;
 streammaxuser_1 = 64&lt;br /&gt;
 maxuser = 32&lt;br /&gt;
&lt;br /&gt;
This allows a total of 32 connections to the server but with a per stream limit above the maximum means the maximum number of connections to the first stream group will be 32. However this also depends upon any other stream configurations and their limits as to whether 32 clients will be able to connect to this stream configuration.&lt;br /&gt;
&lt;br /&gt;
Finally unless a valid stream configuration is specified then this value will only be applied to the first stream configuration found i.e. there is a need to specify a streamid_XXX for streammaxuser_XXX (where XXX is the stream identifier of the stream configuration group.&lt;br /&gt;
&lt;br /&gt;
'''streamadminpassword''' : Specify the administrator password for accessing the remote server features for the specified stream configuration group. If this is not specified then 'adminpassword' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streampassword''' : Specify the password for broadcasters when connecting to the server for the specified stream configuration group. If this is not specified then 'password' will be used.&lt;br /&gt;
 This matches the 'uvoxauth' value in the sc_trans configuration file (see sc_trans.txt - section 3.11).&lt;br /&gt;
&lt;br /&gt;
'''streampublicserver''' : This allows you to override the public flag received from the source when a connection is being made to the YP directory. If this is not specified or is set to empty then 'publicserver' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamallowrelay''' : Enable to allow a relay to connect to the server. If this is not specified then 'allowrelay' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamallowpublicrelay''' : Enable to allow relays to list themselves in the YP directory. If this is not specified then 'allowpublicrelay' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamriponly''' : Enable to only allow connections to be made from reserved IP addresses. If this is not specified then 'riponly' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamautodumpsourcetime''' : Specify how long before an idle source will be dumped from the server (in seconds). A value of zero means there is no timeout of an idle source. If not specified then 'autodumpsourcetime' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamautodumpusers''' : Enable to allow the server to disconnect clients if the source disconnects. If not specified then 'autodumpusers' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamlistenertime''' : Specify the maximum time in minutes a client is allowed to listen to the stream. A value of zero means there will be no time limit. If not specified then 'listenertime' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamintrofile''' : File to play when a client first connects to the server. If this is not specified then 'introfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streambackupfile''' : File to play if the source disconnects from the server. If this is not specified then 'backupfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streammovedurl_X''' : redirects a permanently stopped or moved stream to a different working stream url.&lt;br /&gt;
&lt;br /&gt;
'''streambanfile''' : File to store the list of banned IP addresses. If this is not specified then 'banfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamripfile''' : File to store the list of banned IP addresses. If this is not specified then 'ripfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamw3clog''' : File to store the web connections logs into. If this is not specified then 'w3clog' will be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''DNAS v2.6 and newer'''&lt;br /&gt;
&lt;br /&gt;
'''sslCertificateFile''' : For https:// streams, specify .crt file e.g. sslCertificateFile=/path/to/ssl.crt&lt;br /&gt;
&lt;br /&gt;
'''sslCertificateKeyFile''' : specify key file, e.g. sslCertificateKeyFile=/path/to/key.pem&lt;br /&gt;
&lt;br /&gt;
 Put the whole certificate chain in the .crt file, and only the key in the .key file&lt;br /&gt;
 Note: Requires Premium subscription to unlock Premium features.&lt;br /&gt;
 SSL Cert needs to be assigned to a DNS e.g. stream.mysite.com&lt;br /&gt;
 Be sure to also add destip=stream.mysite.com and/or publicip= and alternateports=443 lines to DNAS config file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' '''&lt;br /&gt;
&lt;br /&gt;
===Web Connection (W3C) Logging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''w3cenable''' : Enable logging of web connections to describe the duration a client has listened to a specific title    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''w3clog''' : File to store the web connections logs into    ''[Default = sc_w3c.log]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the log into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
'''webclientdebug''' : Enable logging of web client connections    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===YP Server Behaviour===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''uvoxcipherkey''' : Specify the key used to obfuscate the initial handshaking with the source    ''[Default = foobar]''&lt;br /&gt;
 This is a SHOUTcast 2 only feature and it matches the 'djcipher' value in the sc_trans&lt;br /&gt;
 configuration file (see [[SHOUTcast_DNAS_Transcoder_2#DJ_Support|sc_trans.txt - section 3.3]]).&lt;br /&gt;
&lt;br /&gt;
Only change this if you really need to do so as not all SHOUTcast 2 clients will allow you to edit this value from the default value. If using the Source DSP plug-in then see [[Source_DSP_Plug-in#SHOUTcast_2_Cipher_Key|dsp_sc.txt - section 5.0]] for details on how to change the plug-in to use a differnet value.&lt;br /&gt;
&lt;br /&gt;
'''metainterval''' : Specify the metadata transmission interval in bytes    ''[Default = 8192]''&lt;br /&gt;
 YP1 only&lt;br /&gt;
&lt;br /&gt;
'''yp2''' : Enable to use the SHOUTcast 2 protocol and related server features for access to the YP2 directory    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
If this is enabled and not all of the required values are set then the server will throw an error and will abort from its start-up attempt. It should be indicated what needs to be set to allow the server to start with this set.&lt;br /&gt;
&lt;br /&gt;
Additionally if there is an issue then the server will report an error in its log ouput of 'Connection attempt failed. YP2 error code is XXX (&amp;lt;message&amp;gt;)' where XXX is one of the following error codes and &amp;lt;message&amp;gt; is a message set in the error response to indicate a bit more what the error relates to. All current error codes can be found [[#YP_Server_Errors|here]].&lt;br /&gt;
&lt;br /&gt;
'''ypaddr''' : Allows you to specify a different YP server if required    ''[Default = yp.shoutcast.com]''&lt;br /&gt;
&lt;br /&gt;
'''ypport''' : Allows you to specify the port of the YP server if required    ''[Default = 80]''&lt;br /&gt;
&lt;br /&gt;
'''ypPath''' : Allows you to specify the path to YP2 services on the server    ''[Default = /yp2]''&lt;br /&gt;
&lt;br /&gt;
'''ypTimeout''' : Specify the timeout interval in seconds for requests made to the YP server    ''[Default = 60]''&lt;br /&gt;
&lt;br /&gt;
'''ypmaxretries''' : Specify the maximum number of times a YP request will be attempted    ''[Default = 10]''&lt;br /&gt;
 This generally applies only to YP1 connections and is related to the&lt;br /&gt;
 actual attempts to make and get a http response from the YP server.&lt;br /&gt;
&lt;br /&gt;
'''ypreportinterval''' : Specify the maximum time in which the YP must have contacted our server in seconds    ''[Default = 300]''&lt;br /&gt;
&lt;br /&gt;
'''ypminreportinterval''' : Specify the minimum time in which the YP can contact our server in seconds    ''[Default = 10]''&lt;br /&gt;
&lt;br /&gt;
'''publicserver''' : This allows you to override the public flag from the connected source when a connection is being made to the YP directory    ''[Default = default]''&lt;br /&gt;
This can be one of the following values:&lt;br /&gt;
 '''default''' - use the flag provided by the source&lt;br /&gt;
 '''always''' - force the source to be public&lt;br /&gt;
 '''never''' - never allow the use the flag provided by the source&lt;br /&gt;
&lt;br /&gt;
When using sc_trans this would match with the 'public' value (see [[SHOUTcast_DNAS_Transcoder_2#Metadata_Control|sc_trans.txt - section 3.8]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===YP Server Errors===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If not all of the required values are set for a public listing then the DNAS server will throw an error and will abort its attempt to be listed in the Directory. It should be indicated the error is with one of the error codes provided below so it can be resolved.&lt;br /&gt;
&lt;br /&gt;
Additionally if there is an issue during Directory updates or removals, then the server will report an error in its log ouput as one of the following error codes and &amp;lt;message&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status Code&lt;br /&gt;
! Status Message&lt;br /&gt;
|-&lt;br /&gt;
| 400 || Generic error ''(covers all other cases usually from internal failures)''&lt;br /&gt;
|-&lt;br /&gt;
| 457 || Unrecoverable error while updating station information - DNAS restart required.&lt;br /&gt;
|-&lt;br /&gt;
| 470 || Invalid authorization hash&lt;br /&gt;
|-&lt;br /&gt;
| 471 || Invalid stream type (could be a bad bitrate or mime type)&lt;br /&gt;
|-&lt;br /&gt;
| 472 || Missing or invalid stream url&lt;br /&gt;
|-&lt;br /&gt;
| 473 || Server unreachable by YP&lt;br /&gt;
|-&lt;br /&gt;
| 474 || Relay url does not exist&lt;br /&gt;
|-&lt;br /&gt;
| 475 || Invalid server ID&lt;br /&gt;
|-&lt;br /&gt;
| 476 || Invalid max clients (value out of range or missing)&lt;br /&gt;
|-&lt;br /&gt;
| 477 || Terms of Service violator.  You are being reported.&lt;br /&gt;
|-&lt;br /&gt;
| 478 || Incompatible protocol.&lt;br /&gt;
|-&lt;br /&gt;
| 479 || Streams requiring authorization are not public and cannot list here.&lt;br /&gt;
|-&lt;br /&gt;
| 480 || Cannot see your station/computer (URL: &amp;lt;streamurl&amp;gt;) from the Internet, disable Internet Sharing/NAT/firewall/ISP cache.&lt;br /&gt;
|-&lt;br /&gt;
| 481 || Cannot verify server since all listener slots are full.  Please wait.&lt;br /&gt;
|-&lt;br /&gt;
| 482 || This network has been permanently banned due to a previous violation of the SHOUTcast directory terms of service&lt;br /&gt;
|-&lt;br /&gt;
| 483 || Invalid listeners (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 484 || Invalid avglistentime (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 485 || Invalid newsessions (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 486 || Invalid connects (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 487 || Request &amp;amp; Response objects are null&lt;br /&gt;
|-&lt;br /&gt;
| 488 || Request xml is null&lt;br /&gt;
|-&lt;br /&gt;
| 489 || YP command not specified&lt;br /&gt;
|-&lt;br /&gt;
| 490 || Generic error, while doing xml parsing&lt;br /&gt;
|-&lt;br /&gt;
| 491 || Generic error, while reading xml request&lt;br /&gt;
|-&lt;br /&gt;
| 492 || Error closing buffer / HTTP connection&lt;br /&gt;
|-&lt;br /&gt;
| 493 || Internal error - unable to acquire data source&lt;br /&gt;
|-&lt;br /&gt;
| 494 || Error updating information - DNAS restart required&lt;br /&gt;
|-&lt;br /&gt;
| 495 || Error acquiring station ID - DNAS restart required&lt;br /&gt;
|-&lt;br /&gt;
| 496 || Error converting data type&lt;br /&gt;
|-&lt;br /&gt;
| 497 || Inconsistent stream behaviour&lt;br /&gt;
|-&lt;br /&gt;
| 498 || Invalid Request (Invalid request received)&lt;br /&gt;
|-&lt;br /&gt;
| 499 || Error while getting information&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Administration==&lt;br /&gt;
&lt;br /&gt;
With sc_serv there are administration pages available for accessing and controlling the server remotely which allows you to monitor and control clients connected to the stream (or not if banning them). These pages can now be accessed through a summary page at /index.html which will show a link to any active stream(s) or you explicitly access them via the /index.html?sid=# path where # is the ID of the stream (see [[#Stream_Configuration|section 4.12]] for more about using 'streamid') '''e.g.'''&lt;br /&gt;
 &amp;lt;streamurl&amp;gt;/index.html?sid=1&lt;br /&gt;
&lt;br /&gt;
If no sid or an invalid sid is passed then you will be taken to the summary /index.html and this will be applied even if you were on a page with a known ID and then enter an invalid sid or remove it purposefully.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Administration Pages===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
As part of the administrative features provided there are the following pages where # is the streamid you want to use). This is not a complete list but should cover all of the pages which allow for a direct http url to be entered to get an administation action to work. The ban and reserve IP actions require input fields and do not map to direct sends.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Public Pages====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''index.html'''  -  Shows a summary page with links to get to any active stream(s)&lt;br /&gt;
&lt;br /&gt;
'''currentsong?sid=#'''  -  Returns the current song title or a null response&lt;br /&gt;
&lt;br /&gt;
'''nextsong?sid=#'''  -  Returns the next song title (if known) or a null response&lt;br /&gt;
 currentsong and nextsong both provide a UTF-8 encoded string of the song title&lt;br /&gt;
 otherwise it will return effectively no response (ignoring the http header).&lt;br /&gt;
&lt;br /&gt;
'''nextsongs?sid=#'''  -  Returns in an xml format the next song title(s) (if known) to be played when using a compatible v2 stream source. See [[#XML_Responses|section 5.2]] for more details on the format of the xml returned).&lt;br /&gt;
&lt;br /&gt;
'''index.html?sid=#'''  -  Shows current status of the specified stream&lt;br /&gt;
&lt;br /&gt;
'''played.html?sid=#'''  -  Song history of specified playing history&lt;br /&gt;
:or&lt;br /&gt;
'''played?sid=#'''&lt;br /&gt;
&lt;br /&gt;
'''listen.pls?sid=#'''  -  Provides a PLS for file clients to use to connect to the stream.&lt;br /&gt;
:or&lt;br /&gt;
'''listen?sid=#'''&lt;br /&gt;
&lt;br /&gt;
'''listen.m3u?sid=#'''  -  Provides a M3U file for clients to use to connect to the stream.&lt;br /&gt;
&lt;br /&gt;
'''listen.asx?sid=#'''  -  Provides a ASX file for clients to use to connect to the stream.&lt;br /&gt;
&lt;br /&gt;
 With the listen pages you either need to have specified an IP with 'dstip / destip'&lt;br /&gt;
 (see section 4.2) or leave empty and allow the server to attempt to auto-generate&lt;br /&gt;
 the IP required for the client to be able to connect. If this fails the generated&lt;br /&gt;
 playlist is likely to return a stream url like &amp;lt;nowiki&amp;gt;http://0.0.0.0:&amp;lt;portbase&amp;gt;/&amp;lt;path&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''home.html?sid=#''' or '''home?sid=#'''  -  Opens in a new window or tab (depending on the client browser) the 'streamurl' as specified by the stream source. If this is not set then the client will be redirected to the shoutcast.com main page.&lt;br /&gt;
&lt;br /&gt;
'''stats?sid=#'''  -  Provides an xml response for public accessibility which matches the private version from admin.cgi?sid=#&amp;amp;mode=viewxml&amp;amp;page=1. This is the modern version of the 7.html page as provided by the legacy v1 servers. See [[#XML_Responses|section 5.2]] for information on what is provided in the xml response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Private Pages====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 By passing &amp;amp;pass=password where password is the 'adminpassword' (see section [[#Networking|4.8]]) then it is possible&lt;br /&gt;
 to directly access the administration page(s) required. As well the base64 encoded version of the password&lt;br /&gt;
 can be passed as long as it is prefixed with ''YWRtaW46''&lt;br /&gt;
 e.g.&lt;br /&gt;
     &amp;amp;pass=changeme is the same as &amp;amp;pass=YWRtaW46Y2hhbmdlbWU=&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi'''  -  Shows the an overal summary admin page for the streams provided by the server including direct links to certain information pages (see notes about the 'admin.cgi?sid=#&amp;amp;mode=viewxml' command for more info)&lt;br /&gt;
:or&lt;br /&gt;
'''admin.cgi?sid=0'''&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#'''  -  Shows the base admin page for the stream and information&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=updinfo&amp;amp;song=title'''           &lt;br /&gt;
:or&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=updinfo&amp;amp;type=xml&amp;amp;song=xml'''    &lt;br /&gt;
 If 'title' is not empty then it will be set as the current song title for the stream&lt;br /&gt;
 specified until the next use of this action or the next title update is received from&lt;br /&gt;
 the source. Specifying '&amp;amp;type=xml' will process the value of 'song' as [[SHOUTcast_XML_Metadata_Specification|v2 XML metadata]]&lt;br /&gt;
 instead of a v1 title.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewlog'''  -  View logfile&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewlog&amp;amp;viewlog=tail'''  -  View logfile (tailing)&lt;br /&gt;
&lt;br /&gt;
 The tailing option keeps adding additional log entries to the end of the view whilst the view is active.&lt;br /&gt;
 As well any html or xml data in the log will not be shown correctly in the view as &amp;lt; &amp;gt; &amp;amp; are not escaped&lt;br /&gt;
 to their html entities. See [[#Logging|section 4.6]] for more information on the log file.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewban'''  -  Ban view which matches the ban file and allows you to ban a single IP or an IP range from it (see [[#Banning|section 4.1]] for more info on the file)&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewrip'''  -  Reserved IP list that matches the rip file (see [[#Reserved_IP_.28RIP.29|section 4.11]] for more info on the file)&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=art''' or '''admin.cgi?sid=#&amp;amp;mode=art&amp;amp;art=playing'''  -  Displays the artwork SHOUTcast v2 compatible clients may be able to display if the SHOUTcast v2 source does provide it.&lt;br /&gt;
  &lt;br /&gt;
 The artwork mode is primarily intended as a debugging option to make it possible&lt;br /&gt;
 to see what (if anything) has been provided by the SHOUTcast v2 source.&lt;br /&gt;
 &lt;br /&gt;
 If no '&amp;amp;art=' is specified or not a matching option then the stream artwork (if&lt;br /&gt;
 available) will be shown. If no '&amp;amp;art=playing' is specified then this will show&lt;br /&gt;
 the playing file's artwork (if available).&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewxml''' or '''admin.cgi?sid=#&amp;amp;mode=viewxml&amp;amp;page=#'''  -  Returns an xml output of the current stream information&lt;br /&gt;
&lt;br /&gt;
 If page is not set or is outside of the range zero to 6 then this will output all of the&lt;br /&gt;
 information as the standard viewxml action does. Otherwise this only display information&lt;br /&gt;
 depending on the value assigned to page which can be from 1 to 6 which maps as follows:&lt;br /&gt;
 &lt;br /&gt;
     1 - Server Summary (this is the same as using the public stats?sid=# action)&lt;br /&gt;
     2 - Not used (previously used for Webdata Stats but not in current builds)&lt;br /&gt;
     3 - Listener Stats&lt;br /&gt;
     4 - Song History&lt;br /&gt;
     5 - Stream Metadata        (if supported by the source otherwise can just be title)&lt;br /&gt;
     6 - Stream Configurations  (displays all of the known stream configurations though this is only available on admin.cgi)&lt;br /&gt;
 &lt;br /&gt;
 If accessing the standard viewxml or the listener stats (page = 3), you can also send&lt;br /&gt;
 '&amp;amp;iponly=1' which will filter the listener information (if there are any) to just output&lt;br /&gt;
 the IP instead of the additional information provided normally.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=resetxml&amp;amp;sid=#'''  -  Will flush the held stream information to refresh it&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=kicksrc'''  -  Will allow you to kick the currently connected source for the specified stream.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unripdst&amp;amp;ripdst=&amp;lt;IP&amp;gt;'''  -  Where &amp;lt;IP&amp;gt; is the IP to reserve (see [[#Reserved_IP_.28RIP.29|section 4.11]] for more information).&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unbandst&amp;amp;bandst=&amp;lt;IP&amp;gt;.0&amp;amp;banmsk=0'''  -  Where &amp;lt;IP&amp;gt; is the first 3 parts of a subnet IP to unban.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unbandst&amp;amp;bandst=&amp;lt;IP&amp;gt;&amp;amp;banmsk=255'''  -  Where &amp;lt;IP&amp;gt; is that of a single IP to unban.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=rotate''' or '''admin.cgi?mode=rotate&amp;amp;files=log|w3c'''  -  This will rotate the log files set via the 'logfile', 'w3clog' and 'streamw3clog' options.&lt;br /&gt;
 If &amp;amp;files is specified then passing log or w3c will allow you to only&lt;br /&gt;
 rotate one type of file otherwise both will be rotated by this command.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=reload''' or '''admin.cgi?mode=reload&amp;amp;force=1'''  -  This reloads the stream configuration details in the main configuration file the server used when started and is only available on the admin summary page and so can only be run by the master administrator password.&lt;br /&gt;
&lt;br /&gt;
 This command works on the server as a whole (hence no sid parameter) and it will add or&lt;br /&gt;
 remove or update any stream configuration as applicable which will cause any connected&lt;br /&gt;
 sources and clients to be kicked as applicable (usually if a stream configuration was removed).&lt;br /&gt;
 &lt;br /&gt;
 This will recognise any configurations included via 'include' entries so you can have 'include=stream/*.conf'&lt;br /&gt;
 in your main configuration file which the server can then use to detect different stream configurations.&lt;br /&gt;
 &lt;br /&gt;
 If '&amp;amp;force=1' is passed then the reload will treat the updating of active stream configurations in the&lt;br /&gt;
 same manner as a stream configuration removal instead of trying to update compatible stream configuration&lt;br /&gt;
 details without resetting the stream '''e.g.''' not increasing the 'streammaxuser' when it could be increased.&lt;br /&gt;
 &lt;br /&gt;
 The following configuration options are updated when using this command:&lt;br /&gt;
 &lt;br /&gt;
     password or streampassword (*)            streamadminpassword (#)&lt;br /&gt;
     requirestreamconfigs                      streamid&lt;br /&gt;
     streamauthhash                            streampath&lt;br /&gt;
     streamrelayurl                            streammaxuser&lt;br /&gt;
     streampublicserver                        streamallowrelay&lt;br /&gt;
     streamallowpublicrelay                    streamriponly&lt;br /&gt;
     streamautodumpsourcetime                  streamautodumpusers&lt;br /&gt;
     streamlistenertime                        streamintrofile&lt;br /&gt;
     streambackupfile                          streambanfile&lt;br /&gt;
     streamripfile&lt;br /&gt;
 &lt;br /&gt;
 (*) This will depend upon the current values versus the new configuration values&lt;br /&gt;
 (#) The master 'adminpassword' can only be changed after a restart of the server&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XML Responses===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
As detailed in the previous sections, some of the administration actions will provide the information in an xml response. For information on what is actually returned in these xml responses see [[SHOUTcast_DNAS_Server_2_XML_Reponses|sc_serv2_xml_responses.txt]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stream Addresses==&lt;br /&gt;
&lt;br /&gt;
Clients connecting to the streams provided by sc_serv are able to so in a number of ways depending upon how the streams have been configured and also depending upon the number of streams you have available.&lt;br /&gt;
&lt;br /&gt;
The two main ways for a client to connect to a stream are as follows:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;serverurl&amp;gt;/stream/&amp;lt;streamid&amp;gt;/&lt;br /&gt;
or&lt;br /&gt;
 &amp;lt;serverurl&amp;gt;/&amp;lt;streampath&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;serverurl&amp;gt; is typically formed as &amp;lt;nowiki&amp;gt;http://dstip:portbase&amp;lt;/nowiki&amp;gt; (see sections [[#Client_Behaviour|4.2]] and [[#Networking|4.8]])&lt;br /&gt;
 &amp;lt;streamid&amp;gt; is the 'streamid' set from the stream configuration (see [[#Stream_Configuration|section 4.12]])&lt;br /&gt;
 &amp;lt;streampath&amp;gt; is the 'streampath' set from the stream configuration (see [[#Stream_Configuration|section 4.12]])&lt;br /&gt;
&lt;br /&gt;
If the client attempting to connect to the server instance does not specify &amp;lt;streampath&amp;gt; or &amp;lt;streamid&amp;gt; in the stream url it attempts to access or if only one stream is provided then the server will usually default to the first stream it knows about and will allow the client to make a valid connection (though this is not guaranteed to happen).&lt;br /&gt;
&lt;br /&gt;
This handling of the stream addresses provided is something to keep in mind especially if you are providing multiple streams as this will allow you to provide different addresses for certain clients to be able to use a specific stream '''e.g.''' if you wanted to have mobile clients connect to a lower bandwidth stream then you could direct them to '&amp;lt;serverurl&amp;gt;/mobile'&lt;br /&gt;
&lt;br /&gt;
The server options available for controlling how the stream's path is specified can be seen in [[#Stream_Configuration|section 4.12]] which also details the equivalent values needing to be set in the sc_trans configuration if you use sc_trans to provide a source to sc_serv.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Locale Error (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
If you receive the following error then you have a locale related issues:&lt;br /&gt;
&lt;br /&gt;
 terminate called after throwing an instance of 'std::runtime_error'&lt;br /&gt;
 what():  locale::facet::_S_create_c_locale name not valid&lt;br /&gt;
 Abort trap&lt;br /&gt;
&lt;br /&gt;
If this happens then you need to set the 'POSIX' locale in your terminal's environment values. If this does not happen then everything is fine or you are using a newer version of sc_serv from the end of 2010 which should no longer exhibit this issue.&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
BSD:&lt;br /&gt;
 setenv LC_ALL POSIX&lt;br /&gt;
&lt;br /&gt;
Mac OS X:&lt;br /&gt;
 export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
You can test to see if this has worked by checking the shell command &amp;quot;locale&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 LANG=&lt;br /&gt;
 LC_COLLATE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_CTYPE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_MESSAGES=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_MONETARY=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_NUMERIC=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_TIME=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_ALL=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Virtual Memory Footprint (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
Due to how sc_serv works it will create a large number of threads which may become an issue due to the default virtual memory stack allocation per thread potentially being large (typically 10MB per thread). For most people this should not be an issue as the memory is not really allocated unless it is used. If however if you have a resource constrained system or if you plan on running many copies of sc_trans then you could potentially run out of virtual memory.&lt;br /&gt;
&lt;br /&gt;
The default thread allocation can be reduced by issuing a &amp;quot;ulimit&amp;quot; command before running sc_trans and in the example reduces it to 512KB per-thread '''e.g.'''   ulimit -s 512&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Maximum Client Connection Limits==&lt;br /&gt;
&lt;br /&gt;
In general, there are inherent limits on the maximum number of client connections which may be made to a running instances of sc_serv which can either be set by configuration limits e.g. 'maxuser', Operating System limits or bandwidth limits being reached.&lt;br /&gt;
&lt;br /&gt;
The first two are easy to resolve whereas the last (bandwidth limits) is something which will usually require obtaining additional hosting or paying for more available bandwidth.&lt;br /&gt;
&lt;br /&gt;
If reaching the Operating System limit, this is usually indicated by the maximum number of clients never going above a fixed value even if there is the bandwidth and the server has been configured to go higher. This usually appears as around 1016 maximum connections (though this can vary a bit)&lt;br /&gt;
&lt;br /&gt;
If using a non-Windows Operating System then you can use the 'ulimit -n xxxx' command to change the upper limit from what is already set which can be found from just 'ulimit -n' e.g. to change the limit to 4096 connections you would run ulimit -n 4096&lt;br /&gt;
&lt;br /&gt;
If using a Windows Operating System then there isn't any real way to change such things due to the OS hopefully being configured with limits that will not be reached when using sc_serv. If in doubt then consult the Microsoft support documentation for the OS used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Configurations==&lt;br /&gt;
&lt;br /&gt;
Include as part of the sc_serv installation are a number of example configurations to get things started with using some of the features of the server. The provided examples are:&lt;br /&gt;
&lt;br /&gt;
 sc_serv_basic.conf&lt;br /&gt;
 sc_serv_public.conf&lt;br /&gt;
 sc_serv_relay.conf&lt;br /&gt;
 sc_serv_simple.conf&lt;br /&gt;
&lt;br /&gt;
All of the configuration examples are documented and will relate back to details in this file appropriately. You will need to change some details in these example files or to obtain any applicable authorisation keys for the setup you are making ([[#Getting_Started|see section 3.0]]). In all cases the examples are designed to work from the same install folder as sc_serv.&lt;br /&gt;
&lt;br /&gt;
Remember these examples are a way to get you up and running faster though you are still likely to have to adjust things depending upon the systems you are using and how you want to manage your sources and server connections which are covered in previous sections.&lt;br /&gt;
&lt;br /&gt;
Additionally if you are not happy with editing the files or find it still too confusing then you can use the configuration builder which (if installed) can be found in the 'config_builder'. Open 'config_builder.html' in your browser and then use this graphical tool to setup a configuration file for the server (and additionally the transcoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_basic===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This is the base configuration from which the other configuration examples are based and this will get a sc_serv instance running as a local setup with no connection made to the YP directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_public===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_serv_basic configuration to get a sc_serv instance running as a public setup with a connection made to the YP for listing the stream in the directory. This shows the use of the 'include' option (see section [[#Miscellaneous|4.7]]) and how specifying a configuration option twice uses the last value found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_relay===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_serv_public configuration to get a sc_serv instance running as a public setup with a source coming in from a relay server providing a SHOUTcast 2 stream.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_debug===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file can be included in any other configuration files to allow you to get debug logging output when trying to investigate any issues you may be experiencing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_simple===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Use this if you just need to get a very basic server running or are impatient&lt;br /&gt;
 or are struggling to get it running despite the previous example configurations.&lt;br /&gt;
&lt;br /&gt;
This configuration file is designed to be used just as is and is the simplest form of the configuration file you can have which will allow you to get a running server to appear on the YP. This works on using the default settings of the server though does change some of the file paths inorder to fit in with the existing setup as used in the other examples.&lt;br /&gt;
&lt;br /&gt;
All you need to do when using this configuration file is to enter your authorisation key in the 'streamauthhash' line '''e.g.''' if your authorisation key is '''123456789''' then you change ''streamauthhash=&amp;lt;enter_your_auth_key_here&amp;gt;'' to ''streamauthhash='''123456789''''' and save the file.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Server_2</id>
		<title>SHOUTcast DNAS Server 2</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Server_2"/>
				<updated>2020-03-12T12:31:37Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Stream Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
The purpose of this document is to show you the different configuration options supported by sc_serv along with basic and more advanced example configurations to enable you to get started with using sc_serv and the features it can offer.&lt;br /&gt;
&lt;br /&gt;
The aim of sc_serv is to provide enhanced serving features and also access to the new YP2 infrastructure whilst maintaining as much backward compatibility with previous versions of sc_serv as possible. The new features introduced include:&lt;br /&gt;
&lt;br /&gt;
# Serving multiple streams from a single server instance&lt;br /&gt;
# Relaying multiple streams from a single server instance&lt;br /&gt;
# Multiplexing all server activity through a single IP port&lt;br /&gt;
# SHOUTcast 2 wire protocol support for sources, relays and clients&lt;br /&gt;
# Repackaging of SHOUTcast 1 and SHOUTcast 2 data as needed for connected clients&lt;br /&gt;
# YP2 infrastructure support&lt;br /&gt;
# Real-time metadata and statistic reporting&lt;br /&gt;
# Static station id support&lt;br /&gt;
# In-stream metadata in standardised xml files&lt;br /&gt;
# UTF-8 and international character encoding&lt;br /&gt;
# Improved server and stream security&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview of Features==&lt;br /&gt;
&lt;br /&gt;
To take full advantage of the newer features provided as part of the SHOUTcast 2 and YP2 systems then you will need to ensure you are using a compatible version of sc_serv (any version 2 will work) and that you have the required authorisation key to register as a broadcaster on the YP2 directory (see [[#Getting_Started|section 3.0]]).&lt;br /&gt;
&lt;br /&gt;
If you were intending on taking full advantage of the multiplexing and multiple stream support offered as part of sc_serv then you would need to make sure you enable the SHOUTcast 2 options (this is enabled by default with server builds from the end of 2010 if the 'yp2' option in the configuration file is not specified [see [[#YP_Server_Behaviour|section 4.14]] ). The reason for needing to enable this support is if you try to do it with the original SHOUTcast 1 protocol then it will not work as the original protocol has no means of expressing multiple streams from a single port due to the lack of an identifier provided for them.&lt;br /&gt;
&lt;br /&gt;
If you are planning on connecting multiple sc_trans instances to sc_serv then you must use the SHOUTcast 2 protocol support so that each sc_trans instance can have a unique identifier which allows for multiple streams to then be provided from a single server. It is still possible for an older source to connect to the server with a number of config options available to support this though functionality will be limited compared to what can be done with a fully supporting SHOUTcast 2 source.&lt;br /&gt;
&lt;br /&gt;
Finally clients connecting to your server do not need to directly support SHOUTcast 2 as sc_serv will repackage the stream data and any related metadata into the correct format the client requests (typically based on the user agent detected by the server).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
&lt;br /&gt;
One of the key aspects of the new YP2 directory infrastructure is an authorisation key which is used to validate your server when it tries to connect to the YP2 infrastructure for any of the station(s) you run. Once this key is obtained, it will be valid for all root servers of the station being broadcast.&lt;br /&gt;
&lt;br /&gt;
This can be done by going to the [[SHOUTcast_Authhash_Management|SHOUTcast Authhash Management]] page which shows how to do this via the 'Administation Summary' page as long as a valid source has been connected to the server. This process automatically updates your configuration file(s) with the new authhash and if the stream is set to be public then will attempt to get the stream listed in the SHOUTcast Radio Directory.&lt;br /&gt;
&lt;br /&gt;
When using an older SHOUTcast 1 server then you do not need to do this registration and the server will still be able to be listed on the directory but there is not the same level of protection over the stream as is the case with registering it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Running the Server===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The server is able to be run either as a console application or it can be run as service (Windows) or daemon (Linux / Mac OS X / BSD). Detailed below is how to get the server running on the different operating systems supported by it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The Windows version of sc_serv is designed to run on fully updated and patched versions of Windows 2000, XP, Vista and Windows 7, 8 &amp;amp; 10.&lt;br /&gt;
&lt;br /&gt;
Please note that the Windows versions of sc_serv are built with a dependency against the Microsoft Visual C++ 2008 SP1 Redistributable Package. If sc_serv is unable to start due to a dependency issue then you will need to install the correct version of the package so it can run which depends on the version of sc_serv you are attempting to run:&lt;br /&gt;
&lt;br /&gt;
32-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&lt;br /&gt;
&lt;br /&gt;
64-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ba9257ca-337f-4b40-8c14-157cfdffee4e&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Install as a Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe install &amp;lt;servicename&amp;gt; &amp;lt;username&amp;gt; &amp;lt;password&amp;gt; &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service&lt;br /&gt;
 Typically enter this as 'sc_serv' though you can use a different name but you will need&lt;br /&gt;
 to remember it as it is required to be the same when using the 'uninstall' mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;username&amp;gt; - User under which to run the service as or '0' for the local system&lt;br /&gt;
&lt;br /&gt;
&amp;lt;password&amp;gt; - Password for user or '0' for the local system or with no password&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
When run as a service there is not a good sense of a current working directory so requires all paths in the configuration and playlist files to be fully qualified otherwise lookups will fail when sc_serv is run.&lt;br /&gt;
&lt;br /&gt;
To run sc_serv with a configuration file in the same folder as the server as the current system user account you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_serv.exe install sc_serv 0 0 sc_serv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Uninstall the Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe uninstall &amp;lt;servicename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service as used when the service was registered&lt;br /&gt;
&lt;br /&gt;
To uninstall sc_serv assuming it was installed as detailed in the install section above then you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_serv.exe uninstall sc_serv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Service in the Console====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
===Linux / Mac OS X / BSD===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Remember to enable the required access on the sc_trans file by doing 'chmod a+x sc_trans' after extracting it from the distribution file otherwise the OS is likely to not run it and show the error message './sc_serv: Permission denied'.&lt;br /&gt;
&lt;br /&gt;
====Run as a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_serv daemon &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (required in all cases)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
'''e.g.'''&lt;br /&gt;
 ./sc_serv daemon ./sc_serv.conf&lt;br /&gt;
&lt;br /&gt;
When run this should output the following:&lt;br /&gt;
&lt;br /&gt;
'sc_serv going daemon with PID [XXXX]' where XXXX is the &amp;lt;pid&amp;gt; of the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====End a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
kill -SIGTERM &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -15 &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -s TERM &amp;lt;pid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pid&amp;gt; - The PID of the daemon instance (reported when the daemon started or can be found with 'ps ax | grep sc_serv' as long as sc_serv was the file run otherwise you can just use 'ps ax' if the filename isn't known). Additionally the PID of sc_serv is listed in the log file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_serv &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Additional Signals===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
When run on Linux / Mac OS X / BSD then some additional signals are supported to allow for additional control over the running daemon instance of sc_serv.&lt;br /&gt;
&lt;br /&gt;
The following signals can be used with the 'kill' command (in the manner of your choosing for using the kill command) along with the &amp;lt;pid&amp;gt; of the daemon instance to do one of the following actions:&lt;br /&gt;
&lt;br /&gt;
    SIGKILL   -  Stops sc_trans (also SIGTERM, SIGINT and SIGQUIT will work)&lt;br /&gt;
    SIGHUP    -  Rotates logfile, w3clog and streamw3clog&lt;br /&gt;
&lt;br /&gt;
The result of SIGHUP is that the current log file contents will be moved into &amp;lt;logfile&amp;gt;_1 e.g. sc_serv_1.log, &amp;lt;logfile&amp;gt;_1 will be moved into &amp;lt;logfile&amp;gt;_2 e.g. sc_serv_2.log and so on for all log files which can be found which match the current log file's name. This is useful if timed to have it create day specific log files.&lt;br /&gt;
&lt;br /&gt;
 These signals are not supported by the Windows version of sc_serv which will only&lt;br /&gt;
 respond to the Ctrl + C / Ctrl + Break / console close commands the OS provides.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration File==&lt;br /&gt;
&lt;br /&gt;
Here you can find a complete list of all of the configuration options which are provided by sc_serv which ranges from logging to networking configuration and control over the media being used when streaming via the server.&lt;br /&gt;
&lt;br /&gt;
Configuration entries labelled as ''&amp;lt;MULTI&amp;gt;'' can be used to set up simultaneous connections to the server or allow for multiple connections from various sources. These are specified by adding _# to the end of the option's name as shown below where # begins with one. If you are only working with a single instance then you do not need to add the _# part as any instances of a configuration option will assume it is for _1.&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;MULTI&amp;gt;'' system is not hierarchical and all values beyond the default must be specified for all connections. So for example, if you wanted to connect to two servers on the same port you must do:&lt;br /&gt;
&lt;br /&gt;
    portbase_1=8080&lt;br /&gt;
    portbase_2=8080&lt;br /&gt;
    destip_1=stream.server1.com&lt;br /&gt;
    destip_2=stream.server2.com&lt;br /&gt;
&lt;br /&gt;
Note that you CANNOT do it like this as it leads to not all values being set:&lt;br /&gt;
&lt;br /&gt;
    portbase=8080&lt;br /&gt;
    destip_1=stream.server1.com&lt;br /&gt;
    destip_2=stream.server2.com&lt;br /&gt;
&lt;br /&gt;
The configuration files also allow for comments/notes or options to be disabled by the use of a semi-colon (''';''') or a left bracket ('''[''') or the hash / pound symbol ('''#''') at the start of a line which can be seen in all of the configuration examples.&lt;br /&gt;
&lt;br /&gt;
Known options in the configuration files are recognised irrespective of the case they are entered in the configuration file so maxuser and MaXuSer will be handled the same way.&lt;br /&gt;
&lt;br /&gt;
Any items found in the configuration file which are not known (as detailed in following sections) or is not processed as a comment will be reported in the following manner:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;date + time&amp;gt; W msg:[CONFIG] Invalid item on line XX&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;date + time&amp;gt; is the date and time the event happens at and XX is the line in the configuration file where the error has been found to occur at.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Banning===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''banfile''' : File to store the list of banned IP addresses    ''[Default = sc_serv.ban]''&lt;br /&gt;
&lt;br /&gt;
'''savebanlistonexit''' : Re-write the 'banfile' on server exit    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the file into then you need to ensure that the&lt;br /&gt;
 folder already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Client Behaviour===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''maxuser''' : Specify the maximum number of clients allowed to connect to the server    ''[Default = 32]''&lt;br /&gt;
 This is used in conjunction with 'streammaxuser' (see [[#Stream_Configuration|section 4.12]]) to control the&lt;br /&gt;
 maximum limit on the number of client connections allowed to connect to the server instance.&lt;br /&gt;
&lt;br /&gt;
'''listenertime''' : Specify the maximum time in minutes a client can listen to the stream    ''[Default = 0]''&lt;br /&gt;
 A value of zero means there will be no time limit.&lt;br /&gt;
&lt;br /&gt;
'''autodumpusers''' : Enable to allow the server to disconnect clients if the source disconnects    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''srcip''' : Specify the server side binding address for sources to connect on    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''dstip''' or '''destip''' or '''publicip''' : Specify the server side binding address for clients    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
 If 'any' or no value is specified then sc_serv listens to all addresses.&lt;br /&gt;
&lt;br /&gt;
If you specify a value for 'dstip / destip' then this will be used by the listen feature on the Administration Pages (see section 5.1) so it can provide a valid stream url in the generated playlist. If 'dstip / destip' is not specified then the server will attempt to auto-generate the IP required for the client to be able to connect. If this fails the generated playlist is likely to return a stream url like &amp;lt;nowiki&amp;gt;http://0.0.0.0:&amp;lt;portbase&amp;gt;/&amp;lt;path&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The IP provided needs to be in a valid format like &amp;lt;nowiki&amp;gt;http://&amp;lt;my-ip&amp;gt;&amp;lt;/nowiki&amp;gt; or an address which can be resolved to an IP otherwise the internal lookups done are likely to fail (depends upon the server configuration and OS being used). Also you cannot set srcip and dstip / destip to be the same IP value and if this happens then the server will close. Closing of the server will also happen if the IP cannot be resolved or correctly bound to i.e. server is not there or an invalid value was entered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''titleformat''' : Specify a string to be used in-place of the default icy-name string being used    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''urlformat''' : Specify a string to be used in-place of the default icy-url string being used    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''  '''&lt;br /&gt;
'''  '''&lt;br /&gt;
&lt;br /&gt;
===Debugging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In all cases, the default value is for no debug logging for the options listed below.&lt;br /&gt;
&lt;br /&gt;
'''yp1debug''' : Enable debug logging of YP connections&lt;br /&gt;
&lt;br /&gt;
'''yp2debug''' : Enable debug logging of YP2 connections&lt;br /&gt;
&lt;br /&gt;
'''shoutcastsourcedebug''' : Enable debug logging of SHOUTcast source connections&lt;br /&gt;
&lt;br /&gt;
'''uvox2sourcedebug''' : Enable debug logging of SHOUTcast 2 source connections&lt;br /&gt;
&lt;br /&gt;
'''shoutcast1clientdebug''' : Enable debug logging of SHOUTcast streaming clients&lt;br /&gt;
&lt;br /&gt;
'''shoutcast2clientdebug''' : Enable debug logging of SHOUTcast 2 streaming clients&lt;br /&gt;
&lt;br /&gt;
'''relayshoutcastdebug''' : Enable debug logging for SHOUTcast relays&lt;br /&gt;
&lt;br /&gt;
'''relayuvoxdebug''' : Enable debug logging for SHOUTcast 2 relays&lt;br /&gt;
&lt;br /&gt;
'''relaydebug''' : Enable debug logging of common relay code&lt;br /&gt;
&lt;br /&gt;
'''streamdatadebug''' : Enable debug logging of common streaming code&lt;br /&gt;
&lt;br /&gt;
'''httpstyledebug''' : Enable debug logging of http style requests&lt;br /&gt;
&lt;br /&gt;
'''statsdebug''' : Enable debug logging of statistics&lt;br /&gt;
&lt;br /&gt;
'''microserverdebug''' : Enable debug logging of common server activity&lt;br /&gt;
&lt;br /&gt;
'''threadrunnerdebug''' : Enable debug logging of the thread manager&lt;br /&gt;
&lt;br /&gt;
'''rtmpclientdebug''' : Enable debug logging of rtmp clients&lt;br /&gt;
&lt;br /&gt;
'''admetricsdebug''' : Enable debug logging of ad metrics (v2.5 and newer)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' '''&lt;br /&gt;
''' '''&lt;br /&gt;
&lt;br /&gt;
===Flash Security===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''flashpolicyfile''' : Name of file containing flash crossdomain policies on the server    ''[Default = crossdomain.xml]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Introduction and Backup Files===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Note that intro and backup audio files must precisely match the format and bitrate for the stream! If they do not match, there will be a break in the stream and the listener will be disconnected. &lt;br /&gt;
&lt;br /&gt;
'''introfile''' : File to play when a client first connects to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: This is used globally and also is default for stream #1 on DNAS versions greater than 2.0. To apply a specific intro file to a stream, use streamintrofile_X. &lt;br /&gt;
&lt;br /&gt;
'''streamintrofile_X''' : File to play when a client first connects to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''backupfile''' : File to play if the source disconnects from the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: This is used globally and also is default for stream #1 on DNAS versions greater than 2.0. To apply a specific backup file to a stream, use streambackupfile_X. &lt;br /&gt;
&lt;br /&gt;
'''streambackupfile_X''' : assigns a specific backup file to a streamID X [Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''streambackupurl_X''' : assigns a specific backup stream to a streamID X (v2.6 Premium feature)''&lt;br /&gt;
&lt;br /&gt;
'''specialfiletmpdir''' : place to store intro and backup files uploaded by sc_trans    ''[Default = /tmp/ (*nix only)]''&lt;br /&gt;
&lt;br /&gt;
'''maxspecialfilesize''' : Change the maximum size in bytes of the backup and intro files    ''[Default = 30000000]''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''log''' : Enable logging of the servers output    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''screenlog''' :  Enable logging of servers output to the console    ''[Default = 1]''&lt;br /&gt;
 If log=0 then this option is ignored due to no logging happening.&lt;br /&gt;
&lt;br /&gt;
'''logfile''' : Specify a different logfile to save the logs into ''[Default = %temp%\sc_serv.log or /tmp/sc_serv.log]''&lt;br /&gt;
&lt;br /&gt;
'''logclients''' : Enable logging of details about client connections and disconnections made ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the logs into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''configrewrite''' :  Re-write the 'config file' on server exit    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''songhistory''' : Specify the maximum song history to preserve    ''[Default = 10]''&lt;br /&gt;
&lt;br /&gt;
'''cpucount''' : Specify the number of cpu's present instead of the calculated number if non-zero    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''unique''' : Specify a substitution string for the '$' character to be used when processing filenames which if specified will set any occurences of '$' to the value set. This will be used in the processing of the following filenames: '''logfile''', '''introfile''', '''streamintrofile''', '''backupfile''', '''streambackupfile''', '''banfile''', '''streambanfile''', '''ripfile''', '''streamripfile''', '''include''', '''w3clog''', '''streamw3clog'''&lt;br /&gt;
&lt;br /&gt;
 So when 'unique' is changed from '$' to say 'test' then the following happens if 'logfile' is&lt;br /&gt;
 set to '/usr/local/shoutcast/$.log' then this would be converted to '/usr/local/shoutcast/test.log'&lt;br /&gt;
&lt;br /&gt;
'''include''' : Specify an additional include file containing settings to be processed from the current point in the main configuration file    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
You can do multiple calls of this allowing for a basic configuration file with then 'specific' stream configurations set in individual conf files though you need to ensure not to include a reference to the same file in itself.&lt;br /&gt;
&lt;br /&gt;
You can also specify a path with a wildcard for sc_serv to use to find multiple configuration files to include '''e.g.''' 'include=stream/*.conf'.  This can then be used along with the multiple stream configurations (see section 4.12) and the admin command 'admin.cgi?mode=reload' (see section 5.1) to add / remove / update stream configurations without having to close the server to apply them.&lt;br /&gt;
&lt;br /&gt;
'''admincssfile''' : Specify the css styling to be used on the index.html and admin pages    ''[Default = v2]''&lt;br /&gt;
&lt;br /&gt;
This can accept the following parameters:&lt;br /&gt;
&lt;br /&gt;
:admincssfile='''v1'''  -  Uses the v1 DNAS style&lt;br /&gt;
:admincssfile='''v2'''  -  Uses the newer SHOUTcast 2 style&lt;br /&gt;
:admincssfile='''path_to_local_css_file'''  e.g. my_index.css&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 If using a custom css file, if it does not exist on the first try to load it the server will revert to&lt;br /&gt;
 the default css style. As well the style is cached once loaded so changes require a restart of sc_serv.&lt;br /&gt;
&lt;br /&gt;
'''faviconfile''' : Specify the file to be returned as the favicon.ico when the administration pages are being queried by the client's browser    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
The default behaviour is to use a SHOUTcast themed built-in icon file and support / handling the update of this will entirely depend on the browser.&lt;br /&gt;
&lt;br /&gt;
'''faviconmimetype''' : Specify the mime type for actual file to be served in the favicon.ico response    ''[Default = image/x-icon]''&lt;br /&gt;
&lt;br /&gt;
Ensure this is correct for the type of image being used so it is valid.&lt;br /&gt;
&lt;br /&gt;
'''hidestats''' : Specify if the publically accessible stats?sid=# page can be accessed or if it is only available via the private administration pages   ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''robotstxtfile''' : Specify the file to be returned as the robots.txt when queried by search engines, etc to attempt to prevent incorrect access to the server's pages which may cause invalid client connections    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
The default behaviour is to return a robots.txt reponse indicating not to look at any of the server's pages i.e.&lt;br /&gt;
::User-agent:*&lt;br /&gt;
::Disallow:/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Networking===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''namelookups''' : Enable to allow reverse DNS look-ups on incoming IP addresses    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''portbase''' : Specify the port which clients and sources need to use to connect to the server    ''[Default = 8000]''&lt;br /&gt;
 SHOUTcast 1 sources are only able to connect to 'portbase + 1'.&lt;br /&gt;
&lt;br /&gt;
'''autodumpsourcetime''' : Specify how long before an idle source is dumped from the server (in seconds)    ''[Default: 30]''&lt;br /&gt;
 A value of zero means there is no timeout of an idle source.&lt;br /&gt;
 Also if you set this too low then it is likely that valid sources will&lt;br /&gt;
 fail to connect during the initial stages of a source connection.&lt;br /&gt;
&lt;br /&gt;
'''maxheaderlinesize''' : Specify the maximum size of an HTTP header line    ''[Default = 2048]''&lt;br /&gt;
&lt;br /&gt;
'''maxheaderlinecount''' : Specify the maximum header lines in an HTTP style exchange    ''[Default = 100]''&lt;br /&gt;
&lt;br /&gt;
'''adminpassword''' : Specify the administrator password for accessing the remote server features    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''password''' : Specify the password for broadcasters when connecting to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
 This matches the 'uvoxauth' value in the sc_trans configuration file (see [[SHOUTcast_DNAS_Transcoder_2#Network_Options|sc_trans.txt - section 3.11]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Network Buffers===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''buffertype''' : Specify whether the buffer size is fixed [0] or adaptive [1]    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''adaptivebuffersize''' : Specify the buffer size in seconds if buffer is set to adaptive    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''fixedbuffersize''' : Specify the buffer size in bytes if the buffer is set to fixed    ''[Default = 1048576]''&lt;br /&gt;
&lt;br /&gt;
'''bufferhardlimit''' : Specify the maximum buffer size in bytes which it can never go above    ''[Default = 16777216]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Relaying===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''allowrelay''' : Enable to allow a relay to connect to the server    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''allowpublicrelay''' : Enable to allow relays to list themselves in the YP directory    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''relayreconnecttime''' : Specify how many seconds to wait to reconnect on a relay failure    ''[Default = 30]''&lt;br /&gt;
 Setting this to 0 will disable attempts for the relay to reconnect.&lt;br /&gt;
&lt;br /&gt;
'''relayconnectretries''' : Specify the number of times relays are attempted to be connected to if it is initially unable to connect    ''[Default = 3]''&lt;br /&gt;
 This generally applies only to YP1 connections and is related to the&lt;br /&gt;
 actual attempts to make and get a http response from the YP server.&lt;br /&gt;
&lt;br /&gt;
'''maxhttpredirects''' : Specify the maximum number of times we can redirect when relaying    ''[Default = 5]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;Legacy Options&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
'''relayport''' : Port of the source to use for the relay    ''[Default: 80]''&lt;br /&gt;
&lt;br /&gt;
'''relayserver''' : Url of the source to relay    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
 Using the stream configuration options (see [[#Stream_Configuration|section 4.12]]) is the preferred method&lt;br /&gt;
 of setting up a relay. These options are only provided as a means for loading&lt;br /&gt;
 legacy configuration files. If found then these are mapped to 'streamrelayurl_1'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Reserved List===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''ripfile''' : File to store the list of reserved IP addresses    ''[Default = sc_serv.rip]''&lt;br /&gt;
&lt;br /&gt;
'''saveriplistonexist''' : Re-write the 'ripfile' on server exit    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''riponly''' : Only allow connections to be made from reserved IP addresses    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the file into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Stream Configuration===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Important Note:''' If you do not specify an identifier (_#) on the end of the above options then it will be treated like _1 (effectively acting like SHOUTcast 1). Additionally, _0 is not a supported identifier and will be mapped to _1.&lt;br /&gt;
&lt;br /&gt;
'''requirestreamconfigs''' : Only allow sources to connect if a stream configuration has been set in your configuration file    ''[Default = 0]''&lt;br /&gt;
 With this enabled, you will need to ensure that any sources have their configuration details&lt;br /&gt;
 setup to match those in sc_trans's configuration, in particular the 'uvoxstreamid' value with&lt;br /&gt;
 sc_trans (see [[SHOUTcast_DNAS_Transcoder_2#Network_Options|sc_trans.txt - section 3.11]]).&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each stream configuration):&lt;br /&gt;
&lt;br /&gt;
'''streamid''' : Specify the numerical identifier of the stream for control or referencing the stream configuration. This can only be a numeric value from 1 to 2147483647.&lt;br /&gt;
&lt;br /&gt;
 If you use multiple stream configurations then you will need to ensure the _X&lt;br /&gt;
 part is specified and correct for each stream configuration group&lt;br /&gt;
 e.g.&lt;br /&gt;
   streamid=1&lt;br /&gt;
   streampath=/live&lt;br /&gt;
     or&lt;br /&gt;
   streamid_1=1&lt;br /&gt;
   streampath_1=/random_mountpoint&lt;br /&gt;
   streamid_2=2&lt;br /&gt;
   streampath_2=/another_mountpoint&lt;br /&gt;
&lt;br /&gt;
'''streamauthhash''' : The authorisation key needed for YP2 directory registration.&lt;br /&gt;
 This is a requirement for using the YP2 system and without it you will not be able to&lt;br /&gt;
 successfully connect to the YP2 directory (see [[#Getting_Started|section 3.0]]).&lt;br /&gt;
 &lt;br /&gt;
 This can be used for multiple streams you are providing or can be different (as long&lt;br /&gt;
 as valid) so you can infact provide multiple stations from the same server if desired.&lt;br /&gt;
&lt;br /&gt;
'''streampath''' : Specify the path clients need to use to access the stream&lt;br /&gt;
 If a / is not specified on the start of the string then the server will add&lt;br /&gt;
 it to the generated path in playlist entries or other places as required so&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://&amp;lt;serverurl&amp;gt;/&amp;lt;streampath&amp;gt;&amp;lt;/nowiki&amp;gt; will work so clients are able to connect.&lt;br /&gt;
 streampath is the mountpoint, e.g. streampath_1=/mystation would result in ip:port/mystation&lt;br /&gt;
 &lt;br /&gt;
 If this is not specified then &amp;lt;nowiki&amp;gt;http://&amp;lt;serverurl&amp;gt;/stream/&amp;lt;streamid&amp;gt;/&amp;lt;/nowiki&amp;gt; will be&lt;br /&gt;
 used for client access and in generated playlist entries so that it will&lt;br /&gt;
 always be possible for clients to connect to the server somehow. See [[SHOUTcast_DNAS_Server_2#Stream_Addresses|section 6.0]] for more information on the&lt;br /&gt;
 server's stream address support.&lt;br /&gt;
&lt;br /&gt;
'''streamrelayurl''' : Specify the full url of source to relay (if this is a relay).&lt;br /&gt;
 Make sure if you use this that the full url is entered and that it is&lt;br /&gt;
 the url which clients would connect to for the stream to be relayed.&lt;br /&gt;
&lt;br /&gt;
'''streammaxuser''' : Specify the maximum number of clients allowed to connect to the stream    ''[Default = 0]''&lt;br /&gt;
If set to zero, not specified or higher than 'maxuser' then the value set for 'maxuser' (see [[#Client_Behaviour|section 4.2]]) will be used for all known streams.&lt;br /&gt;
&lt;br /&gt;
Changing this to a value between zero and 'maxuser' will enforce the user connection limit for the specified value in the stream configuration '''e.g.'''&lt;br /&gt;
 streammaxuser_1 = 8&lt;br /&gt;
 maxuser = 32&lt;br /&gt;
&lt;br /&gt;
This allows a total of 32 connections to the server but specifies the maximum number of connections to the first stream configuration is 8.&lt;br /&gt;
&lt;br /&gt;
With the following stream configuration&lt;br /&gt;
 streammaxuser_1 = 64&lt;br /&gt;
 maxuser = 32&lt;br /&gt;
&lt;br /&gt;
This allows a total of 32 connections to the server but with a per stream limit above the maximum means the maximum number of connections to the first stream group will be 32. However this also depends upon any other stream configurations and their limits as to whether 32 clients will be able to connect to this stream configuration.&lt;br /&gt;
&lt;br /&gt;
Finally unless a valid stream configuration is specified then this value will only be applied to the first stream configuration found i.e. there is a need to specify a streamid_XXX for streammaxuser_XXX (where XXX is the stream identifier of the stream configuration group.&lt;br /&gt;
&lt;br /&gt;
'''streamadminpassword''' : Specify the administrator password for accessing the remote server features for the specified stream configuration group. If this is not specified then 'adminpassword' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streampassword''' : Specify the password for broadcasters when connecting to the server for the specified stream configuration group. If this is not specified then 'password' will be used.&lt;br /&gt;
 This matches the 'uvoxauth' value in the sc_trans configuration file (see sc_trans.txt - section 3.11).&lt;br /&gt;
&lt;br /&gt;
'''streampublicserver''' : This allows you to override the public flag received from the source when a connection is being made to the YP directory. If this is not specified or is set to empty then 'publicserver' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamallowrelay''' : Enable to allow a relay to connect to the server. If this is not specified then 'allowrelay' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamallowpublicrelay''' : Enable to allow relays to list themselves in the YP directory. If this is not specified then 'allowpublicrelay' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamriponly''' : Enable to only allow connections to be made from reserved IP addresses. If this is not specified then 'riponly' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamautodumpsourcetime''' : Specify how long before an idle source will be dumped from the server (in seconds). A value of zero means there is no timeout of an idle source. If not specified then 'autodumpsourcetime' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamautodumpusers''' : Enable to allow the server to disconnect clients if the source disconnects. If not specified then 'autodumpusers' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamlistenertime''' : Specify the maximum time in minutes a client is allowed to listen to the stream. A value of zero means there will be no time limit. If not specified then 'listenertime' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamintrofile''' : File to play when a client first connects to the server. If this is not specified then 'introfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streambackupfile''' : File to play if the source disconnects from the server. If this is not specified then 'backupfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streammovedurl_X''' : redirects a permanently stopped or moved stream to a different working stream url.&lt;br /&gt;
&lt;br /&gt;
'''streambanfile''' : File to store the list of banned IP addresses. If this is not specified then 'banfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamripfile''' : File to store the list of banned IP addresses. If this is not specified then 'ripfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamw3clog''' : File to store the web connections logs into. If this is not specified then 'w3clog' will be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''DNAS v2.6 and newer'''&lt;br /&gt;
&lt;br /&gt;
'''sslCertificateFile''' : For https:// streams, specify .crt file e.g. sslCertificateFile=/path/to/ssl.crt&lt;br /&gt;
&lt;br /&gt;
'''sslCertificateKeyFile''' : specify key file, e.g. sslCertificateKeyFile=/path/to/key.pem&lt;br /&gt;
&lt;br /&gt;
 Put the whole certificate chain in the .crt file, and only the key in the .key file&lt;br /&gt;
 Note: Requires Premium subscription to unlock Premium features.&lt;br /&gt;
 SSL Cert needs to be assigned to a DNS e.g. stream.mysite.com&lt;br /&gt;
 Be sure to also add destip=stream.mysite.com and/or publicip= and alternateports=443 lines to DNAS config file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' '''&lt;br /&gt;
&lt;br /&gt;
===Web Connection (W3C) Logging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''w3cenable''' : Enable logging of web connections to describe the duration a client has listened to a specific title    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''w3clog''' : File to store the web connections logs into    ''[Default = sc_w3c.log]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the log into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
'''webclientdebug''' : Enable logging of web client connections    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===YP Server Behaviour===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''uvoxcipherkey''' : Specify the key used to obfuscate the initial handshaking with the source    ''[Default = foobar]''&lt;br /&gt;
 This is a SHOUTcast 2 only feature and it matches the 'djcipher' value in the sc_trans&lt;br /&gt;
 configuration file (see [[SHOUTcast_DNAS_Transcoder_2#DJ_Support|sc_trans.txt - section 3.3]]).&lt;br /&gt;
&lt;br /&gt;
Only change this if you really need to do so as not all SHOUTcast 2 clients will allow you to edit this value from the default value. If using the Source DSP plug-in then see [[Source_DSP_Plug-in#SHOUTcast_2_Cipher_Key|dsp_sc.txt - section 5.0]] for details on how to change the plug-in to use a differnet value.&lt;br /&gt;
&lt;br /&gt;
'''metainterval''' : Specify the metadata transmission interval in bytes    ''[Default = 8192]''&lt;br /&gt;
 YP1 only&lt;br /&gt;
&lt;br /&gt;
'''yp2''' : Enable to use the SHOUTcast 2 protocol and related server features for access to the YP2 directory    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
If this is enabled and not all of the required values are set then the server will throw an error and will abort from its start-up attempt. It should be indicated what needs to be set to allow the server to start with this set.&lt;br /&gt;
&lt;br /&gt;
Additionally if there is an issue then the server will report an error in its log ouput of 'Connection attempt failed. YP2 error code is XXX (&amp;lt;message&amp;gt;)' where XXX is one of the following error codes and &amp;lt;message&amp;gt; is a message set in the error response to indicate a bit more what the error relates to. All current error codes can be found [[#YP_Server_Errors|here]].&lt;br /&gt;
&lt;br /&gt;
'''ypaddr''' : Allows you to specify a different YP server if required    ''[Default = yp.shoutcast.com]''&lt;br /&gt;
&lt;br /&gt;
'''ypport''' : Allows you to specify the port of the YP server if required    ''[Default = 80]''&lt;br /&gt;
&lt;br /&gt;
'''ypPath''' : Allows you to specify the path to YP2 services on the server    ''[Default = /yp2]''&lt;br /&gt;
&lt;br /&gt;
'''ypTimeout''' : Specify the timeout interval in seconds for requests made to the YP server    ''[Default = 60]''&lt;br /&gt;
&lt;br /&gt;
'''ypmaxretries''' : Specify the maximum number of times a YP request will be attempted    ''[Default = 10]''&lt;br /&gt;
 This generally applies only to YP1 connections and is related to the&lt;br /&gt;
 actual attempts to make and get a http response from the YP server.&lt;br /&gt;
&lt;br /&gt;
'''ypreportinterval''' : Specify the maximum time in which the YP must have contacted our server in seconds    ''[Default = 300]''&lt;br /&gt;
&lt;br /&gt;
'''ypminreportinterval''' : Specify the minimum time in which the YP can contact our server in seconds    ''[Default = 10]''&lt;br /&gt;
&lt;br /&gt;
'''publicserver''' : This allows you to override the public flag from the connected source when a connection is being made to the YP directory    ''[Default = default]''&lt;br /&gt;
This can be one of the following values:&lt;br /&gt;
 '''default''' - use the flag provided by the source&lt;br /&gt;
 '''always''' - force the source to be public&lt;br /&gt;
 '''never''' - never allow the use the flag provided by the source&lt;br /&gt;
&lt;br /&gt;
When using sc_trans this would match with the 'public' value (see [[SHOUTcast_DNAS_Transcoder_2#Metadata_Control|sc_trans.txt - section 3.8]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===YP Server Errors===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If not all of the required values are set for a public listing then the DNAS server will throw an error and will abort its attempt to be listed in the Directory. It should be indicated the error is with one of the error codes provided below so it can be resolved.&lt;br /&gt;
&lt;br /&gt;
Additionally if there is an issue during Directory updates or removals, then the server will report an error in its log ouput as one of the following error codes and &amp;lt;message&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status Code&lt;br /&gt;
! Status Message&lt;br /&gt;
|-&lt;br /&gt;
| 400 || Generic error ''(covers all other cases usually from internal failures)''&lt;br /&gt;
|-&lt;br /&gt;
| 457 || Unrecoverable error while updating station information - DNAS restart required.&lt;br /&gt;
|-&lt;br /&gt;
| 470 || Invalid authorization hash&lt;br /&gt;
|-&lt;br /&gt;
| 471 || Invalid stream type (could be a bad bitrate or mime type)&lt;br /&gt;
|-&lt;br /&gt;
| 472 || Missing or invalid stream url&lt;br /&gt;
|-&lt;br /&gt;
| 473 || Server unreachable by YP&lt;br /&gt;
|-&lt;br /&gt;
| 474 || Relay url does not exist&lt;br /&gt;
|-&lt;br /&gt;
| 475 || Invalid server ID&lt;br /&gt;
|-&lt;br /&gt;
| 476 || Invalid max clients (value out of range or missing)&lt;br /&gt;
|-&lt;br /&gt;
| 477 || Terms of Service violator.  You are being reported.&lt;br /&gt;
|-&lt;br /&gt;
| 478 || Incompatible protocol.&lt;br /&gt;
|-&lt;br /&gt;
| 479 || Streams requiring authorization are not public and cannot list here.&lt;br /&gt;
|-&lt;br /&gt;
| 480 || Cannot see your station/computer (URL: &amp;lt;streamurl&amp;gt;) from the Internet, disable Internet Sharing/NAT/firewall/ISP cache.&lt;br /&gt;
|-&lt;br /&gt;
| 481 || Cannot verify server since all listener slots are full.  Please wait.&lt;br /&gt;
|-&lt;br /&gt;
| 482 || This network has been permanently banned due to a previous violation of the SHOUTcast directory terms of service&lt;br /&gt;
|-&lt;br /&gt;
| 483 || Invalid listeners (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 484 || Invalid avglistentime (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 485 || Invalid newsessions (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 486 || Invalid connects (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 487 || Request &amp;amp; Response objects are null&lt;br /&gt;
|-&lt;br /&gt;
| 488 || Request xml is null&lt;br /&gt;
|-&lt;br /&gt;
| 489 || YP command not specified&lt;br /&gt;
|-&lt;br /&gt;
| 490 || Generic error, while doing xml parsing&lt;br /&gt;
|-&lt;br /&gt;
| 491 || Generic error, while reading xml request&lt;br /&gt;
|-&lt;br /&gt;
| 492 || Error closing buffer / HTTP connection&lt;br /&gt;
|-&lt;br /&gt;
| 493 || Internal error - unable to acquire data source&lt;br /&gt;
|-&lt;br /&gt;
| 494 || Error updating information - DNAS restart required&lt;br /&gt;
|-&lt;br /&gt;
| 495 || Error acquiring station ID - DNAS restart required&lt;br /&gt;
|-&lt;br /&gt;
| 496 || Error converting data type&lt;br /&gt;
|-&lt;br /&gt;
| 497 || Inconsistent stream behaviour&lt;br /&gt;
|-&lt;br /&gt;
| 498 || Invalid Request (Invalid request received)&lt;br /&gt;
|-&lt;br /&gt;
| 499 || Error while getting information&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Administration==&lt;br /&gt;
&lt;br /&gt;
With sc_serv there are administration pages available for accessing and controlling the server remotely which allows you to monitor and control clients connected to the stream (or not if banning them). These pages can now be accessed through a summary page at /index.html which will show a link to any active stream(s) or you explicitly access them via the /index.html?sid=# path where # is the ID of the stream (see [[#Stream_Configuration|section 4.12]] for more about using 'streamid') '''e.g.'''&lt;br /&gt;
 &amp;lt;streamurl&amp;gt;/index.html?sid=1&lt;br /&gt;
&lt;br /&gt;
If no sid or an invalid sid is passed then you will be taken to the summary /index.html and this will be applied even if you were on a page with a known ID and then enter an invalid sid or remove it purposefully.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Administration Pages===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
As part of the administrative features provided there are the following pages where # is the streamid you want to use). This is not a complete list but should cover all of the pages which allow for a direct http url to be entered to get an administation action to work. The ban and reserve IP actions require input fields and do not map to direct sends.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Public Pages====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''index.html'''  -  Shows a summary page with links to get to any active stream(s)&lt;br /&gt;
&lt;br /&gt;
'''currentsong?sid=#'''  -  Returns the current song title or a null response&lt;br /&gt;
&lt;br /&gt;
'''nextsong?sid=#'''  -  Returns the next song title (if known) or a null response&lt;br /&gt;
 currentsong and nextsong both provide a UTF-8 encoded string of the song title&lt;br /&gt;
 otherwise it will return effectively no response (ignoring the http header).&lt;br /&gt;
&lt;br /&gt;
'''nextsongs?sid=#'''  -  Returns in an xml format the next song title(s) (if known) to be played when using a compatible v2 stream source. See [[#XML_Responses|section 5.2]] for more details on the format of the xml returned).&lt;br /&gt;
&lt;br /&gt;
'''index.html?sid=#'''  -  Shows current status of the specified stream&lt;br /&gt;
&lt;br /&gt;
'''played.html?sid=#'''  -  Song history of specified playing history&lt;br /&gt;
:or&lt;br /&gt;
'''played?sid=#'''&lt;br /&gt;
&lt;br /&gt;
'''listen.pls?sid=#'''  -  Provides a PLS for file clients to use to connect to the stream.&lt;br /&gt;
:or&lt;br /&gt;
'''listen?sid=#'''&lt;br /&gt;
&lt;br /&gt;
'''listen.m3u?sid=#'''  -  Provides a M3U file for clients to use to connect to the stream.&lt;br /&gt;
&lt;br /&gt;
'''listen.asx?sid=#'''  -  Provides a ASX file for clients to use to connect to the stream.&lt;br /&gt;
&lt;br /&gt;
 With the listen pages you either need to have specified an IP with 'dstip / destip'&lt;br /&gt;
 (see section 4.2) or leave empty and allow the server to attempt to auto-generate&lt;br /&gt;
 the IP required for the client to be able to connect. If this fails the generated&lt;br /&gt;
 playlist is likely to return a stream url like &amp;lt;nowiki&amp;gt;http://0.0.0.0:&amp;lt;portbase&amp;gt;/&amp;lt;path&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''home.html?sid=#''' or '''home?sid=#'''  -  Opens in a new window or tab (depending on the client browser) the 'streamurl' as specified by the stream source. If this is not set then the client will be redirected to the shoutcast.com main page.&lt;br /&gt;
&lt;br /&gt;
'''stats?sid=#'''  -  Provides an xml response for public accessibility which matches the private version from admin.cgi?sid=#&amp;amp;mode=viewxml&amp;amp;page=1. This is the modern version of the 7.html page as provided by the legacy v1 servers. See [[#XML_Responses|section 5.2]] for information on what is provided in the xml response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Private Pages====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 By passing &amp;amp;pass=password where password is the 'adminpassword' (see section [[#Networking|4.8]]) then it is possible&lt;br /&gt;
 to directly access the administration page(s) required. As well the base64 encoded version of the password&lt;br /&gt;
 can be passed as long as it is prefixed with ''YWRtaW46''&lt;br /&gt;
 e.g.&lt;br /&gt;
     &amp;amp;pass=changeme is the same as &amp;amp;pass=YWRtaW46Y2hhbmdlbWU=&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi'''  -  Shows the an overal summary admin page for the streams provided by the server including direct links to certain information pages (see notes about the 'admin.cgi?sid=#&amp;amp;mode=viewxml' command for more info)&lt;br /&gt;
:or&lt;br /&gt;
'''admin.cgi?sid=0'''&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#'''  -  Shows the base admin page for the stream and information&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=updinfo&amp;amp;song=title'''           &lt;br /&gt;
:or&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=updinfo&amp;amp;type=xml&amp;amp;song=xml'''    &lt;br /&gt;
 If 'title' is not empty then it will be set as the current song title for the stream&lt;br /&gt;
 specified until the next use of this action or the next title update is received from&lt;br /&gt;
 the source. Specifying '&amp;amp;type=xml' will process the value of 'song' as [[SHOUTcast_XML_Metadata_Specification|v2 XML metadata]]&lt;br /&gt;
 instead of a v1 title.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewlog'''  -  View logfile&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewlog&amp;amp;viewlog=tail'''  -  View logfile (tailing)&lt;br /&gt;
&lt;br /&gt;
 The tailing option keeps adding additional log entries to the end of the view whilst the view is active.&lt;br /&gt;
 As well any html or xml data in the log will not be shown correctly in the view as &amp;lt; &amp;gt; &amp;amp; are not escaped&lt;br /&gt;
 to their html entities. See [[#Logging|section 4.6]] for more information on the log file.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewban'''  -  Ban view which matches the ban file and allows you to ban a single IP or an IP range from it (see [[#Banning|section 4.1]] for more info on the file)&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewrip'''  -  Reserved IP list that matches the rip file (see [[#Reserved_IP_.28RIP.29|section 4.11]] for more info on the file)&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=art''' or '''admin.cgi?sid=#&amp;amp;mode=art&amp;amp;art=playing'''  -  Displays the artwork SHOUTcast v2 compatible clients may be able to display if the SHOUTcast v2 source does provide it.&lt;br /&gt;
  &lt;br /&gt;
 The artwork mode is primarily intended as a debugging option to make it possible&lt;br /&gt;
 to see what (if anything) has been provided by the SHOUTcast v2 source.&lt;br /&gt;
 &lt;br /&gt;
 If no '&amp;amp;art=' is specified or not a matching option then the stream artwork (if&lt;br /&gt;
 available) will be shown. If no '&amp;amp;art=playing' is specified then this will show&lt;br /&gt;
 the playing file's artwork (if available).&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewxml''' or '''admin.cgi?sid=#&amp;amp;mode=viewxml&amp;amp;page=#'''  -  Returns an xml output of the current stream information&lt;br /&gt;
&lt;br /&gt;
 If page is not set or is outside of the range zero to 6 then this will output all of the&lt;br /&gt;
 information as the standard viewxml action does. Otherwise this only display information&lt;br /&gt;
 depending on the value assigned to page which can be from 1 to 6 which maps as follows:&lt;br /&gt;
 &lt;br /&gt;
     1 - Server Summary (this is the same as using the public stats?sid=# action)&lt;br /&gt;
     2 - Not used (previously used for Webdata Stats but not in current builds)&lt;br /&gt;
     3 - Listener Stats&lt;br /&gt;
     4 - Song History&lt;br /&gt;
     5 - Stream Metadata        (if supported by the source otherwise can just be title)&lt;br /&gt;
     6 - Stream Configurations  (displays all of the known stream configurations though this is only available on admin.cgi)&lt;br /&gt;
 &lt;br /&gt;
 If accessing the standard viewxml or the listener stats (page = 3), you can also send&lt;br /&gt;
 '&amp;amp;iponly=1' which will filter the listener information (if there are any) to just output&lt;br /&gt;
 the IP instead of the additional information provided normally.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=resetxml&amp;amp;sid=#'''  -  Will flush the held stream information to refresh it&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=kicksrc'''  -  Will allow you to kick the currently connected source for the specified stream.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unripdst&amp;amp;ripdst=&amp;lt;IP&amp;gt;'''  -  Where &amp;lt;IP&amp;gt; is the IP to reserve (see [[#Reserved_IP_.28RIP.29|section 4.11]] for more information).&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unbandst&amp;amp;bandst=&amp;lt;IP&amp;gt;.0&amp;amp;banmsk=0'''  -  Where &amp;lt;IP&amp;gt; is the first 3 parts of a subnet IP to unban.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unbandst&amp;amp;bandst=&amp;lt;IP&amp;gt;&amp;amp;banmsk=255'''  -  Where &amp;lt;IP&amp;gt; is that of a single IP to unban.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=rotate''' or '''admin.cgi?mode=rotate&amp;amp;files=log|w3c'''  -  This will rotate the log files set via the 'logfile', 'w3clog' and 'streamw3clog' options.&lt;br /&gt;
 If &amp;amp;files is specified then passing log or w3c will allow you to only&lt;br /&gt;
 rotate one type of file otherwise both will be rotated by this command.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=reload''' or '''admin.cgi?mode=reload&amp;amp;force=1'''  -  This reloads the stream configuration details in the main configuration file the server used when started and is only available on the admin summary page and so can only be run by the master administrator password.&lt;br /&gt;
&lt;br /&gt;
 This command works on the server as a whole (hence no sid parameter) and it will add or&lt;br /&gt;
 remove or update any stream configuration as applicable which will cause any connected&lt;br /&gt;
 sources and clients to be kicked as applicable (usually if a stream configuration was removed).&lt;br /&gt;
 &lt;br /&gt;
 This will recognise any configurations included via 'include' entries so you can have 'include=stream/*.conf'&lt;br /&gt;
 in your main configuration file which the server can then use to detect different stream configurations.&lt;br /&gt;
 &lt;br /&gt;
 If '&amp;amp;force=1' is passed then the reload will treat the updating of active stream configurations in the&lt;br /&gt;
 same manner as a stream configuration removal instead of trying to update compatible stream configuration&lt;br /&gt;
 details without resetting the stream '''e.g.''' not increasing the 'streammaxuser' when it could be increased.&lt;br /&gt;
 &lt;br /&gt;
 The following configuration options are updated when using this command:&lt;br /&gt;
 &lt;br /&gt;
     password or streampassword (*)            streamadminpassword (#)&lt;br /&gt;
     requirestreamconfigs                      streamid&lt;br /&gt;
     streamauthhash                            streampath&lt;br /&gt;
     streamrelayurl                            streammaxuser&lt;br /&gt;
     streampublicserver                        streamallowrelay&lt;br /&gt;
     streamallowpublicrelay                    streamriponly&lt;br /&gt;
     streamautodumpsourcetime                  streamautodumpusers&lt;br /&gt;
     streamlistenertime                        streamintrofile&lt;br /&gt;
     streambackupfile                          streambanfile&lt;br /&gt;
     streamripfile&lt;br /&gt;
 &lt;br /&gt;
 (*) This will depend upon the current values versus the new configuration values&lt;br /&gt;
 (#) The master 'adminpassword' can only be changed after a restart of the server&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XML Responses===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
As detailed in the previous sections, some of the administration actions will provide the information in an xml response. For information on what is actually returned in these xml responses see [[SHOUTcast_DNAS_Server_2_XML_Reponses|sc_serv2_xml_responses.txt]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stream Addresses==&lt;br /&gt;
&lt;br /&gt;
Clients connecting to the streams provided by sc_serv are able to so in a number of ways depending upon how the streams have been configured and also depending upon the number of streams you have available.&lt;br /&gt;
&lt;br /&gt;
The two main ways for a client to connect to a stream are as follows:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;serverurl&amp;gt;/stream/&amp;lt;streamid&amp;gt;/&lt;br /&gt;
or&lt;br /&gt;
 &amp;lt;serverurl&amp;gt;/&amp;lt;streampath&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;serverurl&amp;gt; is typically formed as &amp;lt;nowiki&amp;gt;http://dstip:portbase&amp;lt;/nowiki&amp;gt; (see sections [[#Client_Behaviour|4.2]] and [[#Networking|4.8]])&lt;br /&gt;
 &amp;lt;streamid&amp;gt; is the 'streamid' set from the stream configuration (see [[#Stream_Configuration|section 4.12]])&lt;br /&gt;
 &amp;lt;streampath&amp;gt; is the 'streampath' set from the stream configuration (see [[#Stream_Configuration|section 4.12]])&lt;br /&gt;
&lt;br /&gt;
If the client attempting to connect to the server instance does not specify &amp;lt;streampath&amp;gt; or &amp;lt;streamid&amp;gt; in the stream url it attempts to access or if only one stream is provided then the server will usually default to the first stream it knows about and will allow the client to make a valid connection (though this is not guaranteed to happen).&lt;br /&gt;
&lt;br /&gt;
This handling of the stream addresses provided is something to keep in mind especially if you are providing multiple streams as this will allow you to provide different addresses for certain clients to be able to use a specific stream '''e.g.''' if you wanted to have mobile clients connect to a lower bandwidth stream then you could direct them to '&amp;lt;serverurl&amp;gt;/mobile'&lt;br /&gt;
&lt;br /&gt;
The server options available for controlling how the stream's path is specified can be seen in [[#Stream_Configuration|section 4.12]] which also details the equivalent values needing to be set in the sc_trans configuration if you use sc_trans to provide a source to sc_serv.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Locale Error (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
If you receive the following error then you have a locale related issues:&lt;br /&gt;
&lt;br /&gt;
 terminate called after throwing an instance of 'std::runtime_error'&lt;br /&gt;
 what():  locale::facet::_S_create_c_locale name not valid&lt;br /&gt;
 Abort trap&lt;br /&gt;
&lt;br /&gt;
If this happens then you need to set the 'POSIX' locale in your terminal's environment values. If this does not happen then everything is fine or you are using a newer version of sc_serv from the end of 2010 which should no longer exhibit this issue.&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
BSD:&lt;br /&gt;
 setenv LC_ALL POSIX&lt;br /&gt;
&lt;br /&gt;
Mac OS X:&lt;br /&gt;
 export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
You can test to see if this has worked by checking the shell command &amp;quot;locale&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 LANG=&lt;br /&gt;
 LC_COLLATE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_CTYPE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_MESSAGES=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_MONETARY=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_NUMERIC=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_TIME=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_ALL=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Virtual Memory Footprint (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
Due to how sc_serv works it will create a large number of threads which may become an issue due to the default virtual memory stack allocation per thread potentially being large (typically 10MB per thread). For most people this should not be an issue as the memory is not really allocated unless it is used. If however if you have a resource constrained system or if you plan on running many copies of sc_trans then you could potentially run out of virtual memory.&lt;br /&gt;
&lt;br /&gt;
The default thread allocation can be reduced by issuing a &amp;quot;ulimit&amp;quot; command before running sc_trans and in the example reduces it to 512KB per-thread '''e.g.'''   ulimit -s 512&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Maximum Client Connection Limits==&lt;br /&gt;
&lt;br /&gt;
In general, there are inherent limits on the maximum number of client connections which may be made to a running instances of sc_serv which can either be set by configuration limits e.g. 'maxuser', Operating System limits or bandwidth limits being reached.&lt;br /&gt;
&lt;br /&gt;
The first two are easy to resolve whereas the last (bandwidth limits) is something which will usually require obtaining additional hosting or paying for more available bandwidth.&lt;br /&gt;
&lt;br /&gt;
If reaching the Operating System limit, this is usually indicated by the maximum number of clients never going above a fixed value even if there is the bandwidth and the server has been configured to go higher. This usually appears as around 1016 maximum connections (though this can vary a bit)&lt;br /&gt;
&lt;br /&gt;
If using a non-Windows Operating System then you can use the 'ulimit -n xxxx' command to change the upper limit from what is already set which can be found from just 'ulimit -n' e.g. to change the limit to 4096 connections you would run ulimit -n 4096&lt;br /&gt;
&lt;br /&gt;
If using a Windows Operating System then there isn't any real way to change such things due to the OS hopefully being configured with limits that will not be reached when using sc_serv. If in doubt then consult the Microsoft support documentation for the OS used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Configurations==&lt;br /&gt;
&lt;br /&gt;
Include as part of the sc_serv installation are a number of example configurations to get things started with using some of the features of the server. The provided examples are:&lt;br /&gt;
&lt;br /&gt;
 sc_serv_basic.conf&lt;br /&gt;
 sc_serv_public.conf&lt;br /&gt;
 sc_serv_relay.conf&lt;br /&gt;
 sc_serv_simple.conf&lt;br /&gt;
&lt;br /&gt;
All of the configuration examples are documented and will relate back to details in this file appropriately. You will need to change some details in these example files or to obtain any applicable authorisation keys for the setup you are making ([[#Getting_Started|see section 3.0]]). In all cases the examples are designed to work from the same install folder as sc_serv.&lt;br /&gt;
&lt;br /&gt;
Remember these examples are a way to get you up and running faster though you are still likely to have to adjust things depending upon the systems you are using and how you want to manage your sources and server connections which are covered in previous sections.&lt;br /&gt;
&lt;br /&gt;
Additionally if you are not happy with editing the files or find it still too confusing then you can use the configuration builder which (if installed) can be found in the 'config_builder'. Open 'config_builder.html' in your browser and then use this graphical tool to setup a configuration file for the server (and additionally the transcoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_basic===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This is the base configuration from which the other configuration examples are based and this will get a sc_serv instance running as a local setup with no connection made to the YP directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_public===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_serv_basic configuration to get a sc_serv instance running as a public setup with a connection made to the YP for listing the stream in the directory. This shows the use of the 'include' option (see section [[#Miscellaneous|4.7]]) and how specifying a configuration option twice uses the last value found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_relay===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_serv_public configuration to get a sc_serv instance running as a public setup with a source coming in from a relay server providing a SHOUTcast 2 stream.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_debug===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file can be included in any other configuration files to allow you to get debug logging output when trying to investigate any issues you may be experiencing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_simple===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Use this if you just need to get a very basic server running or are impatient&lt;br /&gt;
 or are struggling to get it running despite the previous example configurations.&lt;br /&gt;
&lt;br /&gt;
This configuration file is designed to be used just as is and is the simplest form of the configuration file you can have which will allow you to get a running server to appear on the YP. This works on using the default settings of the server though does change some of the file paths inorder to fit in with the existing setup as used in the other examples.&lt;br /&gt;
&lt;br /&gt;
All you need to do when using this configuration file is to enter your authorisation key in the 'streamauthhash' line '''e.g.''' if your authorisation key is '''123456789''' then you change ''streamauthhash=&amp;lt;enter_your_auth_key_here&amp;gt;'' to ''streamauthhash='''123456789''''' and save the file.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Server_2</id>
		<title>SHOUTcast DNAS Server 2</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Server_2"/>
				<updated>2020-03-12T12:28:26Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Configuration File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
The purpose of this document is to show you the different configuration options supported by sc_serv along with basic and more advanced example configurations to enable you to get started with using sc_serv and the features it can offer.&lt;br /&gt;
&lt;br /&gt;
The aim of sc_serv is to provide enhanced serving features and also access to the new YP2 infrastructure whilst maintaining as much backward compatibility with previous versions of sc_serv as possible. The new features introduced include:&lt;br /&gt;
&lt;br /&gt;
# Serving multiple streams from a single server instance&lt;br /&gt;
# Relaying multiple streams from a single server instance&lt;br /&gt;
# Multiplexing all server activity through a single IP port&lt;br /&gt;
# SHOUTcast 2 wire protocol support for sources, relays and clients&lt;br /&gt;
# Repackaging of SHOUTcast 1 and SHOUTcast 2 data as needed for connected clients&lt;br /&gt;
# YP2 infrastructure support&lt;br /&gt;
# Real-time metadata and statistic reporting&lt;br /&gt;
# Static station id support&lt;br /&gt;
# In-stream metadata in standardised xml files&lt;br /&gt;
# UTF-8 and international character encoding&lt;br /&gt;
# Improved server and stream security&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview of Features==&lt;br /&gt;
&lt;br /&gt;
To take full advantage of the newer features provided as part of the SHOUTcast 2 and YP2 systems then you will need to ensure you are using a compatible version of sc_serv (any version 2 will work) and that you have the required authorisation key to register as a broadcaster on the YP2 directory (see [[#Getting_Started|section 3.0]]).&lt;br /&gt;
&lt;br /&gt;
If you were intending on taking full advantage of the multiplexing and multiple stream support offered as part of sc_serv then you would need to make sure you enable the SHOUTcast 2 options (this is enabled by default with server builds from the end of 2010 if the 'yp2' option in the configuration file is not specified [see [[#YP_Server_Behaviour|section 4.14]] ). The reason for needing to enable this support is if you try to do it with the original SHOUTcast 1 protocol then it will not work as the original protocol has no means of expressing multiple streams from a single port due to the lack of an identifier provided for them.&lt;br /&gt;
&lt;br /&gt;
If you are planning on connecting multiple sc_trans instances to sc_serv then you must use the SHOUTcast 2 protocol support so that each sc_trans instance can have a unique identifier which allows for multiple streams to then be provided from a single server. It is still possible for an older source to connect to the server with a number of config options available to support this though functionality will be limited compared to what can be done with a fully supporting SHOUTcast 2 source.&lt;br /&gt;
&lt;br /&gt;
Finally clients connecting to your server do not need to directly support SHOUTcast 2 as sc_serv will repackage the stream data and any related metadata into the correct format the client requests (typically based on the user agent detected by the server).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
&lt;br /&gt;
One of the key aspects of the new YP2 directory infrastructure is an authorisation key which is used to validate your server when it tries to connect to the YP2 infrastructure for any of the station(s) you run. Once this key is obtained, it will be valid for all root servers of the station being broadcast.&lt;br /&gt;
&lt;br /&gt;
This can be done by going to the [[SHOUTcast_Authhash_Management|SHOUTcast Authhash Management]] page which shows how to do this via the 'Administation Summary' page as long as a valid source has been connected to the server. This process automatically updates your configuration file(s) with the new authhash and if the stream is set to be public then will attempt to get the stream listed in the SHOUTcast Radio Directory.&lt;br /&gt;
&lt;br /&gt;
When using an older SHOUTcast 1 server then you do not need to do this registration and the server will still be able to be listed on the directory but there is not the same level of protection over the stream as is the case with registering it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Running the Server===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The server is able to be run either as a console application or it can be run as service (Windows) or daemon (Linux / Mac OS X / BSD). Detailed below is how to get the server running on the different operating systems supported by it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The Windows version of sc_serv is designed to run on fully updated and patched versions of Windows 2000, XP, Vista and Windows 7, 8 &amp;amp; 10.&lt;br /&gt;
&lt;br /&gt;
Please note that the Windows versions of sc_serv are built with a dependency against the Microsoft Visual C++ 2008 SP1 Redistributable Package. If sc_serv is unable to start due to a dependency issue then you will need to install the correct version of the package so it can run which depends on the version of sc_serv you are attempting to run:&lt;br /&gt;
&lt;br /&gt;
32-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&lt;br /&gt;
&lt;br /&gt;
64-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ba9257ca-337f-4b40-8c14-157cfdffee4e&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Install as a Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe install &amp;lt;servicename&amp;gt; &amp;lt;username&amp;gt; &amp;lt;password&amp;gt; &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service&lt;br /&gt;
 Typically enter this as 'sc_serv' though you can use a different name but you will need&lt;br /&gt;
 to remember it as it is required to be the same when using the 'uninstall' mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;username&amp;gt; - User under which to run the service as or '0' for the local system&lt;br /&gt;
&lt;br /&gt;
&amp;lt;password&amp;gt; - Password for user or '0' for the local system or with no password&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
When run as a service there is not a good sense of a current working directory so requires all paths in the configuration and playlist files to be fully qualified otherwise lookups will fail when sc_serv is run.&lt;br /&gt;
&lt;br /&gt;
To run sc_serv with a configuration file in the same folder as the server as the current system user account you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_serv.exe install sc_serv 0 0 sc_serv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Uninstall the Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe uninstall &amp;lt;servicename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service as used when the service was registered&lt;br /&gt;
&lt;br /&gt;
To uninstall sc_serv assuming it was installed as detailed in the install section above then you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_serv.exe uninstall sc_serv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Service in the Console====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
===Linux / Mac OS X / BSD===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Remember to enable the required access on the sc_trans file by doing 'chmod a+x sc_trans' after extracting it from the distribution file otherwise the OS is likely to not run it and show the error message './sc_serv: Permission denied'.&lt;br /&gt;
&lt;br /&gt;
====Run as a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_serv daemon &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (required in all cases)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
'''e.g.'''&lt;br /&gt;
 ./sc_serv daemon ./sc_serv.conf&lt;br /&gt;
&lt;br /&gt;
When run this should output the following:&lt;br /&gt;
&lt;br /&gt;
'sc_serv going daemon with PID [XXXX]' where XXXX is the &amp;lt;pid&amp;gt; of the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====End a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
kill -SIGTERM &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -15 &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -s TERM &amp;lt;pid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pid&amp;gt; - The PID of the daemon instance (reported when the daemon started or can be found with 'ps ax | grep sc_serv' as long as sc_serv was the file run otherwise you can just use 'ps ax' if the filename isn't known). Additionally the PID of sc_serv is listed in the log file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_serv &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Additional Signals===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
When run on Linux / Mac OS X / BSD then some additional signals are supported to allow for additional control over the running daemon instance of sc_serv.&lt;br /&gt;
&lt;br /&gt;
The following signals can be used with the 'kill' command (in the manner of your choosing for using the kill command) along with the &amp;lt;pid&amp;gt; of the daemon instance to do one of the following actions:&lt;br /&gt;
&lt;br /&gt;
    SIGKILL   -  Stops sc_trans (also SIGTERM, SIGINT and SIGQUIT will work)&lt;br /&gt;
    SIGHUP    -  Rotates logfile, w3clog and streamw3clog&lt;br /&gt;
&lt;br /&gt;
The result of SIGHUP is that the current log file contents will be moved into &amp;lt;logfile&amp;gt;_1 e.g. sc_serv_1.log, &amp;lt;logfile&amp;gt;_1 will be moved into &amp;lt;logfile&amp;gt;_2 e.g. sc_serv_2.log and so on for all log files which can be found which match the current log file's name. This is useful if timed to have it create day specific log files.&lt;br /&gt;
&lt;br /&gt;
 These signals are not supported by the Windows version of sc_serv which will only&lt;br /&gt;
 respond to the Ctrl + C / Ctrl + Break / console close commands the OS provides.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration File==&lt;br /&gt;
&lt;br /&gt;
Here you can find a complete list of all of the configuration options which are provided by sc_serv which ranges from logging to networking configuration and control over the media being used when streaming via the server.&lt;br /&gt;
&lt;br /&gt;
Configuration entries labelled as ''&amp;lt;MULTI&amp;gt;'' can be used to set up simultaneous connections to the server or allow for multiple connections from various sources. These are specified by adding _# to the end of the option's name as shown below where # begins with one. If you are only working with a single instance then you do not need to add the _# part as any instances of a configuration option will assume it is for _1.&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;MULTI&amp;gt;'' system is not hierarchical and all values beyond the default must be specified for all connections. So for example, if you wanted to connect to two servers on the same port you must do:&lt;br /&gt;
&lt;br /&gt;
    portbase_1=8080&lt;br /&gt;
    portbase_2=8080&lt;br /&gt;
    destip_1=stream.server1.com&lt;br /&gt;
    destip_2=stream.server2.com&lt;br /&gt;
&lt;br /&gt;
Note that you CANNOT do it like this as it leads to not all values being set:&lt;br /&gt;
&lt;br /&gt;
    portbase=8080&lt;br /&gt;
    destip_1=stream.server1.com&lt;br /&gt;
    destip_2=stream.server2.com&lt;br /&gt;
&lt;br /&gt;
The configuration files also allow for comments/notes or options to be disabled by the use of a semi-colon (''';''') or a left bracket ('''[''') or the hash / pound symbol ('''#''') at the start of a line which can be seen in all of the configuration examples.&lt;br /&gt;
&lt;br /&gt;
Known options in the configuration files are recognised irrespective of the case they are entered in the configuration file so maxuser and MaXuSer will be handled the same way.&lt;br /&gt;
&lt;br /&gt;
Any items found in the configuration file which are not known (as detailed in following sections) or is not processed as a comment will be reported in the following manner:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;date + time&amp;gt; W msg:[CONFIG] Invalid item on line XX&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;date + time&amp;gt; is the date and time the event happens at and XX is the line in the configuration file where the error has been found to occur at.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Banning===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''banfile''' : File to store the list of banned IP addresses    ''[Default = sc_serv.ban]''&lt;br /&gt;
&lt;br /&gt;
'''savebanlistonexit''' : Re-write the 'banfile' on server exit    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the file into then you need to ensure that the&lt;br /&gt;
 folder already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Client Behaviour===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''maxuser''' : Specify the maximum number of clients allowed to connect to the server    ''[Default = 32]''&lt;br /&gt;
 This is used in conjunction with 'streammaxuser' (see [[#Stream_Configuration|section 4.12]]) to control the&lt;br /&gt;
 maximum limit on the number of client connections allowed to connect to the server instance.&lt;br /&gt;
&lt;br /&gt;
'''listenertime''' : Specify the maximum time in minutes a client can listen to the stream    ''[Default = 0]''&lt;br /&gt;
 A value of zero means there will be no time limit.&lt;br /&gt;
&lt;br /&gt;
'''autodumpusers''' : Enable to allow the server to disconnect clients if the source disconnects    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''srcip''' : Specify the server side binding address for sources to connect on    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''dstip''' or '''destip''' or '''publicip''' : Specify the server side binding address for clients    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
 If 'any' or no value is specified then sc_serv listens to all addresses.&lt;br /&gt;
&lt;br /&gt;
If you specify a value for 'dstip / destip' then this will be used by the listen feature on the Administration Pages (see section 5.1) so it can provide a valid stream url in the generated playlist. If 'dstip / destip' is not specified then the server will attempt to auto-generate the IP required for the client to be able to connect. If this fails the generated playlist is likely to return a stream url like &amp;lt;nowiki&amp;gt;http://0.0.0.0:&amp;lt;portbase&amp;gt;/&amp;lt;path&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The IP provided needs to be in a valid format like &amp;lt;nowiki&amp;gt;http://&amp;lt;my-ip&amp;gt;&amp;lt;/nowiki&amp;gt; or an address which can be resolved to an IP otherwise the internal lookups done are likely to fail (depends upon the server configuration and OS being used). Also you cannot set srcip and dstip / destip to be the same IP value and if this happens then the server will close. Closing of the server will also happen if the IP cannot be resolved or correctly bound to i.e. server is not there or an invalid value was entered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''titleformat''' : Specify a string to be used in-place of the default icy-name string being used    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''urlformat''' : Specify a string to be used in-place of the default icy-url string being used    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''  '''&lt;br /&gt;
'''  '''&lt;br /&gt;
&lt;br /&gt;
===Debugging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In all cases, the default value is for no debug logging for the options listed below.&lt;br /&gt;
&lt;br /&gt;
'''yp1debug''' : Enable debug logging of YP connections&lt;br /&gt;
&lt;br /&gt;
'''yp2debug''' : Enable debug logging of YP2 connections&lt;br /&gt;
&lt;br /&gt;
'''shoutcastsourcedebug''' : Enable debug logging of SHOUTcast source connections&lt;br /&gt;
&lt;br /&gt;
'''uvox2sourcedebug''' : Enable debug logging of SHOUTcast 2 source connections&lt;br /&gt;
&lt;br /&gt;
'''shoutcast1clientdebug''' : Enable debug logging of SHOUTcast streaming clients&lt;br /&gt;
&lt;br /&gt;
'''shoutcast2clientdebug''' : Enable debug logging of SHOUTcast 2 streaming clients&lt;br /&gt;
&lt;br /&gt;
'''relayshoutcastdebug''' : Enable debug logging for SHOUTcast relays&lt;br /&gt;
&lt;br /&gt;
'''relayuvoxdebug''' : Enable debug logging for SHOUTcast 2 relays&lt;br /&gt;
&lt;br /&gt;
'''relaydebug''' : Enable debug logging of common relay code&lt;br /&gt;
&lt;br /&gt;
'''streamdatadebug''' : Enable debug logging of common streaming code&lt;br /&gt;
&lt;br /&gt;
'''httpstyledebug''' : Enable debug logging of http style requests&lt;br /&gt;
&lt;br /&gt;
'''statsdebug''' : Enable debug logging of statistics&lt;br /&gt;
&lt;br /&gt;
'''microserverdebug''' : Enable debug logging of common server activity&lt;br /&gt;
&lt;br /&gt;
'''threadrunnerdebug''' : Enable debug logging of the thread manager&lt;br /&gt;
&lt;br /&gt;
'''rtmpclientdebug''' : Enable debug logging of rtmp clients&lt;br /&gt;
&lt;br /&gt;
'''admetricsdebug''' : Enable debug logging of ad metrics (v2.5 and newer)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' '''&lt;br /&gt;
''' '''&lt;br /&gt;
&lt;br /&gt;
===Flash Security===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''flashpolicyfile''' : Name of file containing flash crossdomain policies on the server    ''[Default = crossdomain.xml]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Introduction and Backup Files===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Note that intro and backup audio files must precisely match the format and bitrate for the stream! If they do not match, there will be a break in the stream and the listener will be disconnected. &lt;br /&gt;
&lt;br /&gt;
'''introfile''' : File to play when a client first connects to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: This is used globally and also is default for stream #1 on DNAS versions greater than 2.0. To apply a specific intro file to a stream, use streamintrofile_X. &lt;br /&gt;
&lt;br /&gt;
'''streamintrofile_X''' : File to play when a client first connects to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''backupfile''' : File to play if the source disconnects from the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: This is used globally and also is default for stream #1 on DNAS versions greater than 2.0. To apply a specific backup file to a stream, use streambackupfile_X. &lt;br /&gt;
&lt;br /&gt;
'''streambackupfile_X''' : assigns a specific backup file to a streamID X [Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''streambackupurl_X''' : assigns a specific backup stream to a streamID X (v2.6 Premium feature)''&lt;br /&gt;
&lt;br /&gt;
'''specialfiletmpdir''' : place to store intro and backup files uploaded by sc_trans    ''[Default = /tmp/ (*nix only)]''&lt;br /&gt;
&lt;br /&gt;
'''maxspecialfilesize''' : Change the maximum size in bytes of the backup and intro files    ''[Default = 30000000]''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''log''' : Enable logging of the servers output    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''screenlog''' :  Enable logging of servers output to the console    ''[Default = 1]''&lt;br /&gt;
 If log=0 then this option is ignored due to no logging happening.&lt;br /&gt;
&lt;br /&gt;
'''logfile''' : Specify a different logfile to save the logs into ''[Default = %temp%\sc_serv.log or /tmp/sc_serv.log]''&lt;br /&gt;
&lt;br /&gt;
'''logclients''' : Enable logging of details about client connections and disconnections made ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the logs into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''configrewrite''' :  Re-write the 'config file' on server exit    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''songhistory''' : Specify the maximum song history to preserve    ''[Default = 10]''&lt;br /&gt;
&lt;br /&gt;
'''cpucount''' : Specify the number of cpu's present instead of the calculated number if non-zero    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''unique''' : Specify a substitution string for the '$' character to be used when processing filenames which if specified will set any occurences of '$' to the value set. This will be used in the processing of the following filenames: '''logfile''', '''introfile''', '''streamintrofile''', '''backupfile''', '''streambackupfile''', '''banfile''', '''streambanfile''', '''ripfile''', '''streamripfile''', '''include''', '''w3clog''', '''streamw3clog'''&lt;br /&gt;
&lt;br /&gt;
 So when 'unique' is changed from '$' to say 'test' then the following happens if 'logfile' is&lt;br /&gt;
 set to '/usr/local/shoutcast/$.log' then this would be converted to '/usr/local/shoutcast/test.log'&lt;br /&gt;
&lt;br /&gt;
'''include''' : Specify an additional include file containing settings to be processed from the current point in the main configuration file    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
You can do multiple calls of this allowing for a basic configuration file with then 'specific' stream configurations set in individual conf files though you need to ensure not to include a reference to the same file in itself.&lt;br /&gt;
&lt;br /&gt;
You can also specify a path with a wildcard for sc_serv to use to find multiple configuration files to include '''e.g.''' 'include=stream/*.conf'.  This can then be used along with the multiple stream configurations (see section 4.12) and the admin command 'admin.cgi?mode=reload' (see section 5.1) to add / remove / update stream configurations without having to close the server to apply them.&lt;br /&gt;
&lt;br /&gt;
'''admincssfile''' : Specify the css styling to be used on the index.html and admin pages    ''[Default = v2]''&lt;br /&gt;
&lt;br /&gt;
This can accept the following parameters:&lt;br /&gt;
&lt;br /&gt;
:admincssfile='''v1'''  -  Uses the v1 DNAS style&lt;br /&gt;
:admincssfile='''v2'''  -  Uses the newer SHOUTcast 2 style&lt;br /&gt;
:admincssfile='''path_to_local_css_file'''  e.g. my_index.css&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 If using a custom css file, if it does not exist on the first try to load it the server will revert to&lt;br /&gt;
 the default css style. As well the style is cached once loaded so changes require a restart of sc_serv.&lt;br /&gt;
&lt;br /&gt;
'''faviconfile''' : Specify the file to be returned as the favicon.ico when the administration pages are being queried by the client's browser    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
The default behaviour is to use a SHOUTcast themed built-in icon file and support / handling the update of this will entirely depend on the browser.&lt;br /&gt;
&lt;br /&gt;
'''faviconmimetype''' : Specify the mime type for actual file to be served in the favicon.ico response    ''[Default = image/x-icon]''&lt;br /&gt;
&lt;br /&gt;
Ensure this is correct for the type of image being used so it is valid.&lt;br /&gt;
&lt;br /&gt;
'''hidestats''' : Specify if the publically accessible stats?sid=# page can be accessed or if it is only available via the private administration pages   ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''robotstxtfile''' : Specify the file to be returned as the robots.txt when queried by search engines, etc to attempt to prevent incorrect access to the server's pages which may cause invalid client connections    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
The default behaviour is to return a robots.txt reponse indicating not to look at any of the server's pages i.e.&lt;br /&gt;
::User-agent:*&lt;br /&gt;
::Disallow:/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Networking===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''namelookups''' : Enable to allow reverse DNS look-ups on incoming IP addresses    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''portbase''' : Specify the port which clients and sources need to use to connect to the server    ''[Default = 8000]''&lt;br /&gt;
 SHOUTcast 1 sources are only able to connect to 'portbase + 1'.&lt;br /&gt;
&lt;br /&gt;
'''autodumpsourcetime''' : Specify how long before an idle source is dumped from the server (in seconds)    ''[Default: 30]''&lt;br /&gt;
 A value of zero means there is no timeout of an idle source.&lt;br /&gt;
 Also if you set this too low then it is likely that valid sources will&lt;br /&gt;
 fail to connect during the initial stages of a source connection.&lt;br /&gt;
&lt;br /&gt;
'''maxheaderlinesize''' : Specify the maximum size of an HTTP header line    ''[Default = 2048]''&lt;br /&gt;
&lt;br /&gt;
'''maxheaderlinecount''' : Specify the maximum header lines in an HTTP style exchange    ''[Default = 100]''&lt;br /&gt;
&lt;br /&gt;
'''adminpassword''' : Specify the administrator password for accessing the remote server features    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''password''' : Specify the password for broadcasters when connecting to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
 This matches the 'uvoxauth' value in the sc_trans configuration file (see [[SHOUTcast_DNAS_Transcoder_2#Network_Options|sc_trans.txt - section 3.11]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Network Buffers===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''buffertype''' : Specify whether the buffer size is fixed [0] or adaptive [1]    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''adaptivebuffersize''' : Specify the buffer size in seconds if buffer is set to adaptive    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''fixedbuffersize''' : Specify the buffer size in bytes if the buffer is set to fixed    ''[Default = 1048576]''&lt;br /&gt;
&lt;br /&gt;
'''bufferhardlimit''' : Specify the maximum buffer size in bytes which it can never go above    ''[Default = 16777216]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Relaying===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''allowrelay''' : Enable to allow a relay to connect to the server    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''allowpublicrelay''' : Enable to allow relays to list themselves in the YP directory    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''relayreconnecttime''' : Specify how many seconds to wait to reconnect on a relay failure    ''[Default = 30]''&lt;br /&gt;
 Setting this to 0 will disable attempts for the relay to reconnect.&lt;br /&gt;
&lt;br /&gt;
'''relayconnectretries''' : Specify the number of times relays are attempted to be connected to if it is initially unable to connect    ''[Default = 3]''&lt;br /&gt;
 This generally applies only to YP1 connections and is related to the&lt;br /&gt;
 actual attempts to make and get a http response from the YP server.&lt;br /&gt;
&lt;br /&gt;
'''maxhttpredirects''' : Specify the maximum number of times we can redirect when relaying    ''[Default = 5]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;Legacy Options&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
'''relayport''' : Port of the source to use for the relay    ''[Default: 80]''&lt;br /&gt;
&lt;br /&gt;
'''relayserver''' : Url of the source to relay    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
 Using the stream configuration options (see [[#Stream_Configuration|section 4.12]]) is the preferred method&lt;br /&gt;
 of setting up a relay. These options are only provided as a means for loading&lt;br /&gt;
 legacy configuration files. If found then these are mapped to 'streamrelayurl_1'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Reserved List===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''ripfile''' : File to store the list of reserved IP addresses    ''[Default = sc_serv.rip]''&lt;br /&gt;
&lt;br /&gt;
'''saveriplistonexist''' : Re-write the 'ripfile' on server exit    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''riponly''' : Only allow connections to be made from reserved IP addresses    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the file into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Stream Configuration===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Important Note:''' If you do not specify an identifier (_#) on the end of the above options then it will be treated like _1 (effectively acting like SHOUTcast 1). Additionally, _0 is not a supported identifier and will be mapped to _1.&lt;br /&gt;
&lt;br /&gt;
'''requirestreamconfigs''' : Only allow sources to connect if a stream configuration has been set in your configuration file    ''[Default = 0]''&lt;br /&gt;
 With this enabled, you will need to ensure that any sources have their configuration details&lt;br /&gt;
 setup to match those in sc_trans's configuration, in particular the 'uvoxstreamid' value with&lt;br /&gt;
 sc_trans (see [[SHOUTcast_DNAS_Transcoder_2#Network_Options|sc_trans.txt - section 3.11]]).&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each stream configuration):&lt;br /&gt;
&lt;br /&gt;
'''streamid''' : Specify the numerical identifier of the stream for control or referencing the stream configuration. This can only be a numeric value from 1 to 2147483647.&lt;br /&gt;
&lt;br /&gt;
 If you use multiple stream configurations then you will need to ensure the _X&lt;br /&gt;
 part is specified and correct for each stream configuration group&lt;br /&gt;
 e.g.&lt;br /&gt;
   streamid=1&lt;br /&gt;
   streampath=random&lt;br /&gt;
     or&lt;br /&gt;
   streamid_1=1&lt;br /&gt;
   streampath_1=random_stream_path&lt;br /&gt;
   streamid_2=2&lt;br /&gt;
   streampath_2=another_stream_path&lt;br /&gt;
&lt;br /&gt;
'''streamauthhash''' : The authorisation key needed for YP2 directory registration.&lt;br /&gt;
 This is a requirement for using the YP2 system and without it you will not be able to&lt;br /&gt;
 successfully connect to the YP2 directory (see [[#Getting_Started|section 3.0]]).&lt;br /&gt;
 &lt;br /&gt;
 This can be used for multiple streams you are providing or can be different (as long&lt;br /&gt;
 as valid) so you can infact provide multiple stations from the same server if desired.&lt;br /&gt;
&lt;br /&gt;
'''streampath''' : Specify the path clients need to use to access the stream&lt;br /&gt;
 If a / is not specified on the start of the string then the server will add&lt;br /&gt;
 it to the generated path in playlist entries or other places as required so&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://&amp;lt;serverurl&amp;gt;/&amp;lt;streampath&amp;gt;&amp;lt;/nowiki&amp;gt; will work so clients are able to connect.&lt;br /&gt;
 streampath is the mountpoint, e.g. streampath_1=mystation would result in ip:port/mystation&lt;br /&gt;
 &lt;br /&gt;
 If this is not specified then &amp;lt;nowiki&amp;gt;http://&amp;lt;serverurl&amp;gt;/stream/&amp;lt;streamid&amp;gt;/&amp;lt;/nowiki&amp;gt; will be&lt;br /&gt;
 used for client access and in generated playlist entries so that it will&lt;br /&gt;
 always be possible for clients to connect to the server somehow. See [[SHOUTcast_DNAS_Server_2#Stream_Addresses|section 6.0]] for more information on the&lt;br /&gt;
 server's stream address support.&lt;br /&gt;
&lt;br /&gt;
'''streamrelayurl''' : Specify the full url of source to relay (if this is a relay).&lt;br /&gt;
 Make sure if you use this that the full url is entered and that it is&lt;br /&gt;
 the url which clients would connect to for the stream to be relayed.&lt;br /&gt;
&lt;br /&gt;
'''streammaxuser''' : Specify the maximum number of clients allowed to connect to the stream    ''[Default = 0]''&lt;br /&gt;
If set to zero, not specified or higher than 'maxuser' then the value set for 'maxuser' (see [[#Client_Behaviour|section 4.2]]) will be used for all known streams.&lt;br /&gt;
&lt;br /&gt;
Changing this to a value between zero and 'maxuser' will enforce the user connection limit for the specified value in the stream configuration '''e.g.'''&lt;br /&gt;
 streammaxuser_1 = 8&lt;br /&gt;
 maxuser = 32&lt;br /&gt;
&lt;br /&gt;
This allows a total of 32 connections to the server but specifies the maximum number of connections to the first stream configuration is 8.&lt;br /&gt;
&lt;br /&gt;
With the following stream configuration&lt;br /&gt;
 streammaxuser_1 = 64&lt;br /&gt;
 maxuser = 32&lt;br /&gt;
&lt;br /&gt;
This allows a total of 32 connections to the server but with a per stream limit above the maximum means the maximum number of connections to the first stream group will be 32. However this also depends upon any other stream configurations and their limits as to whether 32 clients will be able to connect to this stream configuration.&lt;br /&gt;
&lt;br /&gt;
Finally unless a valid stream configuration is specified then this value will only be applied to the first stream configuration found i.e. there is a need to specify a streamid_XXX for streammaxuser_XXX (where XXX is the stream identifier of the stream configuration group.&lt;br /&gt;
&lt;br /&gt;
'''streamadminpassword''' : Specify the administrator password for accessing the remote server features for the specified stream configuration group. If this is not specified then 'adminpassword' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streampassword''' : Specify the password for broadcasters when connecting to the server for the specified stream configuration group. If this is not specified then 'password' will be used.&lt;br /&gt;
 This matches the 'uvoxauth' value in the sc_trans configuration file (see sc_trans.txt - section 3.11).&lt;br /&gt;
&lt;br /&gt;
'''streampublicserver''' : This allows you to override the public flag received from the source when a connection is being made to the YP directory. If this is not specified or is set to empty then 'publicserver' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamallowrelay''' : Enable to allow a relay to connect to the server. If this is not specified then 'allowrelay' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamallowpublicrelay''' : Enable to allow relays to list themselves in the YP directory. If this is not specified then 'allowpublicrelay' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamriponly''' : Enable to only allow connections to be made from reserved IP addresses. If this is not specified then 'riponly' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamautodumpsourcetime''' : Specify how long before an idle source will be dumped from the server (in seconds). A value of zero means there is no timeout of an idle source. If not specified then 'autodumpsourcetime' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamautodumpusers''' : Enable to allow the server to disconnect clients if the source disconnects. If not specified then 'autodumpusers' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamlistenertime''' : Specify the maximum time in minutes a client is allowed to listen to the stream. A value of zero means there will be no time limit. If not specified then 'listenertime' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamintrofile''' : File to play when a client first connects to the server. If this is not specified then 'introfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streambackupfile''' : File to play if the source disconnects from the server. If this is not specified then 'backupfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streammovedurl_X''' : redirects a permanently stopped or moved stream to a different working stream url.&lt;br /&gt;
&lt;br /&gt;
'''streambanfile''' : File to store the list of banned IP addresses. If this is not specified then 'banfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamripfile''' : File to store the list of banned IP addresses. If this is not specified then 'ripfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamw3clog''' : File to store the web connections logs into. If this is not specified then 'w3clog' will be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''DNAS v2.6 and newer'''&lt;br /&gt;
&lt;br /&gt;
'''sslCertificateFile''' : For https:// streams, specify .crt file e.g. sslCertificateFile=/path/to/ssl.crt&lt;br /&gt;
&lt;br /&gt;
'''sslCertificateKeyFile''' : specify key file, e.g. sslCertificateKeyFile=/path/to/key.pem&lt;br /&gt;
&lt;br /&gt;
 Put the whole certificate chain in the .crt file, and only the key in the .key file&lt;br /&gt;
 Note: Requires Premium subscription to unlock Premium features.&lt;br /&gt;
 SSL Cert needs to be assigned to a DNS e.g. stream.mysite.com&lt;br /&gt;
 Be sure to also add destip=stream.mysite.com and/or publicip= and alternateports=443 lines to DNAS config file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' '''&lt;br /&gt;
&lt;br /&gt;
===Web Connection (W3C) Logging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''w3cenable''' : Enable logging of web connections to describe the duration a client has listened to a specific title    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''w3clog''' : File to store the web connections logs into    ''[Default = sc_w3c.log]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the log into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
'''webclientdebug''' : Enable logging of web client connections    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===YP Server Behaviour===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''uvoxcipherkey''' : Specify the key used to obfuscate the initial handshaking with the source    ''[Default = foobar]''&lt;br /&gt;
 This is a SHOUTcast 2 only feature and it matches the 'djcipher' value in the sc_trans&lt;br /&gt;
 configuration file (see [[SHOUTcast_DNAS_Transcoder_2#DJ_Support|sc_trans.txt - section 3.3]]).&lt;br /&gt;
&lt;br /&gt;
Only change this if you really need to do so as not all SHOUTcast 2 clients will allow you to edit this value from the default value. If using the Source DSP plug-in then see [[Source_DSP_Plug-in#SHOUTcast_2_Cipher_Key|dsp_sc.txt - section 5.0]] for details on how to change the plug-in to use a differnet value.&lt;br /&gt;
&lt;br /&gt;
'''metainterval''' : Specify the metadata transmission interval in bytes    ''[Default = 8192]''&lt;br /&gt;
 YP1 only&lt;br /&gt;
&lt;br /&gt;
'''yp2''' : Enable to use the SHOUTcast 2 protocol and related server features for access to the YP2 directory    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
If this is enabled and not all of the required values are set then the server will throw an error and will abort from its start-up attempt. It should be indicated what needs to be set to allow the server to start with this set.&lt;br /&gt;
&lt;br /&gt;
Additionally if there is an issue then the server will report an error in its log ouput of 'Connection attempt failed. YP2 error code is XXX (&amp;lt;message&amp;gt;)' where XXX is one of the following error codes and &amp;lt;message&amp;gt; is a message set in the error response to indicate a bit more what the error relates to. All current error codes can be found [[#YP_Server_Errors|here]].&lt;br /&gt;
&lt;br /&gt;
'''ypaddr''' : Allows you to specify a different YP server if required    ''[Default = yp.shoutcast.com]''&lt;br /&gt;
&lt;br /&gt;
'''ypport''' : Allows you to specify the port of the YP server if required    ''[Default = 80]''&lt;br /&gt;
&lt;br /&gt;
'''ypPath''' : Allows you to specify the path to YP2 services on the server    ''[Default = /yp2]''&lt;br /&gt;
&lt;br /&gt;
'''ypTimeout''' : Specify the timeout interval in seconds for requests made to the YP server    ''[Default = 60]''&lt;br /&gt;
&lt;br /&gt;
'''ypmaxretries''' : Specify the maximum number of times a YP request will be attempted    ''[Default = 10]''&lt;br /&gt;
 This generally applies only to YP1 connections and is related to the&lt;br /&gt;
 actual attempts to make and get a http response from the YP server.&lt;br /&gt;
&lt;br /&gt;
'''ypreportinterval''' : Specify the maximum time in which the YP must have contacted our server in seconds    ''[Default = 300]''&lt;br /&gt;
&lt;br /&gt;
'''ypminreportinterval''' : Specify the minimum time in which the YP can contact our server in seconds    ''[Default = 10]''&lt;br /&gt;
&lt;br /&gt;
'''publicserver''' : This allows you to override the public flag from the connected source when a connection is being made to the YP directory    ''[Default = default]''&lt;br /&gt;
This can be one of the following values:&lt;br /&gt;
 '''default''' - use the flag provided by the source&lt;br /&gt;
 '''always''' - force the source to be public&lt;br /&gt;
 '''never''' - never allow the use the flag provided by the source&lt;br /&gt;
&lt;br /&gt;
When using sc_trans this would match with the 'public' value (see [[SHOUTcast_DNAS_Transcoder_2#Metadata_Control|sc_trans.txt - section 3.8]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===YP Server Errors===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If not all of the required values are set for a public listing then the DNAS server will throw an error and will abort its attempt to be listed in the Directory. It should be indicated the error is with one of the error codes provided below so it can be resolved.&lt;br /&gt;
&lt;br /&gt;
Additionally if there is an issue during Directory updates or removals, then the server will report an error in its log ouput as one of the following error codes and &amp;lt;message&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status Code&lt;br /&gt;
! Status Message&lt;br /&gt;
|-&lt;br /&gt;
| 400 || Generic error ''(covers all other cases usually from internal failures)''&lt;br /&gt;
|-&lt;br /&gt;
| 457 || Unrecoverable error while updating station information - DNAS restart required.&lt;br /&gt;
|-&lt;br /&gt;
| 470 || Invalid authorization hash&lt;br /&gt;
|-&lt;br /&gt;
| 471 || Invalid stream type (could be a bad bitrate or mime type)&lt;br /&gt;
|-&lt;br /&gt;
| 472 || Missing or invalid stream url&lt;br /&gt;
|-&lt;br /&gt;
| 473 || Server unreachable by YP&lt;br /&gt;
|-&lt;br /&gt;
| 474 || Relay url does not exist&lt;br /&gt;
|-&lt;br /&gt;
| 475 || Invalid server ID&lt;br /&gt;
|-&lt;br /&gt;
| 476 || Invalid max clients (value out of range or missing)&lt;br /&gt;
|-&lt;br /&gt;
| 477 || Terms of Service violator.  You are being reported.&lt;br /&gt;
|-&lt;br /&gt;
| 478 || Incompatible protocol.&lt;br /&gt;
|-&lt;br /&gt;
| 479 || Streams requiring authorization are not public and cannot list here.&lt;br /&gt;
|-&lt;br /&gt;
| 480 || Cannot see your station/computer (URL: &amp;lt;streamurl&amp;gt;) from the Internet, disable Internet Sharing/NAT/firewall/ISP cache.&lt;br /&gt;
|-&lt;br /&gt;
| 481 || Cannot verify server since all listener slots are full.  Please wait.&lt;br /&gt;
|-&lt;br /&gt;
| 482 || This network has been permanently banned due to a previous violation of the SHOUTcast directory terms of service&lt;br /&gt;
|-&lt;br /&gt;
| 483 || Invalid listeners (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 484 || Invalid avglistentime (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 485 || Invalid newsessions (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 486 || Invalid connects (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 487 || Request &amp;amp; Response objects are null&lt;br /&gt;
|-&lt;br /&gt;
| 488 || Request xml is null&lt;br /&gt;
|-&lt;br /&gt;
| 489 || YP command not specified&lt;br /&gt;
|-&lt;br /&gt;
| 490 || Generic error, while doing xml parsing&lt;br /&gt;
|-&lt;br /&gt;
| 491 || Generic error, while reading xml request&lt;br /&gt;
|-&lt;br /&gt;
| 492 || Error closing buffer / HTTP connection&lt;br /&gt;
|-&lt;br /&gt;
| 493 || Internal error - unable to acquire data source&lt;br /&gt;
|-&lt;br /&gt;
| 494 || Error updating information - DNAS restart required&lt;br /&gt;
|-&lt;br /&gt;
| 495 || Error acquiring station ID - DNAS restart required&lt;br /&gt;
|-&lt;br /&gt;
| 496 || Error converting data type&lt;br /&gt;
|-&lt;br /&gt;
| 497 || Inconsistent stream behaviour&lt;br /&gt;
|-&lt;br /&gt;
| 498 || Invalid Request (Invalid request received)&lt;br /&gt;
|-&lt;br /&gt;
| 499 || Error while getting information&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Administration==&lt;br /&gt;
&lt;br /&gt;
With sc_serv there are administration pages available for accessing and controlling the server remotely which allows you to monitor and control clients connected to the stream (or not if banning them). These pages can now be accessed through a summary page at /index.html which will show a link to any active stream(s) or you explicitly access them via the /index.html?sid=# path where # is the ID of the stream (see [[#Stream_Configuration|section 4.12]] for more about using 'streamid') '''e.g.'''&lt;br /&gt;
 &amp;lt;streamurl&amp;gt;/index.html?sid=1&lt;br /&gt;
&lt;br /&gt;
If no sid or an invalid sid is passed then you will be taken to the summary /index.html and this will be applied even if you were on a page with a known ID and then enter an invalid sid or remove it purposefully.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Administration Pages===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
As part of the administrative features provided there are the following pages where # is the streamid you want to use). This is not a complete list but should cover all of the pages which allow for a direct http url to be entered to get an administation action to work. The ban and reserve IP actions require input fields and do not map to direct sends.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Public Pages====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''index.html'''  -  Shows a summary page with links to get to any active stream(s)&lt;br /&gt;
&lt;br /&gt;
'''currentsong?sid=#'''  -  Returns the current song title or a null response&lt;br /&gt;
&lt;br /&gt;
'''nextsong?sid=#'''  -  Returns the next song title (if known) or a null response&lt;br /&gt;
 currentsong and nextsong both provide a UTF-8 encoded string of the song title&lt;br /&gt;
 otherwise it will return effectively no response (ignoring the http header).&lt;br /&gt;
&lt;br /&gt;
'''nextsongs?sid=#'''  -  Returns in an xml format the next song title(s) (if known) to be played when using a compatible v2 stream source. See [[#XML_Responses|section 5.2]] for more details on the format of the xml returned).&lt;br /&gt;
&lt;br /&gt;
'''index.html?sid=#'''  -  Shows current status of the specified stream&lt;br /&gt;
&lt;br /&gt;
'''played.html?sid=#'''  -  Song history of specified playing history&lt;br /&gt;
:or&lt;br /&gt;
'''played?sid=#'''&lt;br /&gt;
&lt;br /&gt;
'''listen.pls?sid=#'''  -  Provides a PLS for file clients to use to connect to the stream.&lt;br /&gt;
:or&lt;br /&gt;
'''listen?sid=#'''&lt;br /&gt;
&lt;br /&gt;
'''listen.m3u?sid=#'''  -  Provides a M3U file for clients to use to connect to the stream.&lt;br /&gt;
&lt;br /&gt;
'''listen.asx?sid=#'''  -  Provides a ASX file for clients to use to connect to the stream.&lt;br /&gt;
&lt;br /&gt;
 With the listen pages you either need to have specified an IP with 'dstip / destip'&lt;br /&gt;
 (see section 4.2) or leave empty and allow the server to attempt to auto-generate&lt;br /&gt;
 the IP required for the client to be able to connect. If this fails the generated&lt;br /&gt;
 playlist is likely to return a stream url like &amp;lt;nowiki&amp;gt;http://0.0.0.0:&amp;lt;portbase&amp;gt;/&amp;lt;path&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''home.html?sid=#''' or '''home?sid=#'''  -  Opens in a new window or tab (depending on the client browser) the 'streamurl' as specified by the stream source. If this is not set then the client will be redirected to the shoutcast.com main page.&lt;br /&gt;
&lt;br /&gt;
'''stats?sid=#'''  -  Provides an xml response for public accessibility which matches the private version from admin.cgi?sid=#&amp;amp;mode=viewxml&amp;amp;page=1. This is the modern version of the 7.html page as provided by the legacy v1 servers. See [[#XML_Responses|section 5.2]] for information on what is provided in the xml response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Private Pages====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 By passing &amp;amp;pass=password where password is the 'adminpassword' (see section [[#Networking|4.8]]) then it is possible&lt;br /&gt;
 to directly access the administration page(s) required. As well the base64 encoded version of the password&lt;br /&gt;
 can be passed as long as it is prefixed with ''YWRtaW46''&lt;br /&gt;
 e.g.&lt;br /&gt;
     &amp;amp;pass=changeme is the same as &amp;amp;pass=YWRtaW46Y2hhbmdlbWU=&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi'''  -  Shows the an overal summary admin page for the streams provided by the server including direct links to certain information pages (see notes about the 'admin.cgi?sid=#&amp;amp;mode=viewxml' command for more info)&lt;br /&gt;
:or&lt;br /&gt;
'''admin.cgi?sid=0'''&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#'''  -  Shows the base admin page for the stream and information&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=updinfo&amp;amp;song=title'''           &lt;br /&gt;
:or&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=updinfo&amp;amp;type=xml&amp;amp;song=xml'''    &lt;br /&gt;
 If 'title' is not empty then it will be set as the current song title for the stream&lt;br /&gt;
 specified until the next use of this action or the next title update is received from&lt;br /&gt;
 the source. Specifying '&amp;amp;type=xml' will process the value of 'song' as [[SHOUTcast_XML_Metadata_Specification|v2 XML metadata]]&lt;br /&gt;
 instead of a v1 title.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewlog'''  -  View logfile&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewlog&amp;amp;viewlog=tail'''  -  View logfile (tailing)&lt;br /&gt;
&lt;br /&gt;
 The tailing option keeps adding additional log entries to the end of the view whilst the view is active.&lt;br /&gt;
 As well any html or xml data in the log will not be shown correctly in the view as &amp;lt; &amp;gt; &amp;amp; are not escaped&lt;br /&gt;
 to their html entities. See [[#Logging|section 4.6]] for more information on the log file.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewban'''  -  Ban view which matches the ban file and allows you to ban a single IP or an IP range from it (see [[#Banning|section 4.1]] for more info on the file)&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewrip'''  -  Reserved IP list that matches the rip file (see [[#Reserved_IP_.28RIP.29|section 4.11]] for more info on the file)&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=art''' or '''admin.cgi?sid=#&amp;amp;mode=art&amp;amp;art=playing'''  -  Displays the artwork SHOUTcast v2 compatible clients may be able to display if the SHOUTcast v2 source does provide it.&lt;br /&gt;
  &lt;br /&gt;
 The artwork mode is primarily intended as a debugging option to make it possible&lt;br /&gt;
 to see what (if anything) has been provided by the SHOUTcast v2 source.&lt;br /&gt;
 &lt;br /&gt;
 If no '&amp;amp;art=' is specified or not a matching option then the stream artwork (if&lt;br /&gt;
 available) will be shown. If no '&amp;amp;art=playing' is specified then this will show&lt;br /&gt;
 the playing file's artwork (if available).&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewxml''' or '''admin.cgi?sid=#&amp;amp;mode=viewxml&amp;amp;page=#'''  -  Returns an xml output of the current stream information&lt;br /&gt;
&lt;br /&gt;
 If page is not set or is outside of the range zero to 6 then this will output all of the&lt;br /&gt;
 information as the standard viewxml action does. Otherwise this only display information&lt;br /&gt;
 depending on the value assigned to page which can be from 1 to 6 which maps as follows:&lt;br /&gt;
 &lt;br /&gt;
     1 - Server Summary (this is the same as using the public stats?sid=# action)&lt;br /&gt;
     2 - Not used (previously used for Webdata Stats but not in current builds)&lt;br /&gt;
     3 - Listener Stats&lt;br /&gt;
     4 - Song History&lt;br /&gt;
     5 - Stream Metadata        (if supported by the source otherwise can just be title)&lt;br /&gt;
     6 - Stream Configurations  (displays all of the known stream configurations though this is only available on admin.cgi)&lt;br /&gt;
 &lt;br /&gt;
 If accessing the standard viewxml or the listener stats (page = 3), you can also send&lt;br /&gt;
 '&amp;amp;iponly=1' which will filter the listener information (if there are any) to just output&lt;br /&gt;
 the IP instead of the additional information provided normally.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=resetxml&amp;amp;sid=#'''  -  Will flush the held stream information to refresh it&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=kicksrc'''  -  Will allow you to kick the currently connected source for the specified stream.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unripdst&amp;amp;ripdst=&amp;lt;IP&amp;gt;'''  -  Where &amp;lt;IP&amp;gt; is the IP to reserve (see [[#Reserved_IP_.28RIP.29|section 4.11]] for more information).&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unbandst&amp;amp;bandst=&amp;lt;IP&amp;gt;.0&amp;amp;banmsk=0'''  -  Where &amp;lt;IP&amp;gt; is the first 3 parts of a subnet IP to unban.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unbandst&amp;amp;bandst=&amp;lt;IP&amp;gt;&amp;amp;banmsk=255'''  -  Where &amp;lt;IP&amp;gt; is that of a single IP to unban.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=rotate''' or '''admin.cgi?mode=rotate&amp;amp;files=log|w3c'''  -  This will rotate the log files set via the 'logfile', 'w3clog' and 'streamw3clog' options.&lt;br /&gt;
 If &amp;amp;files is specified then passing log or w3c will allow you to only&lt;br /&gt;
 rotate one type of file otherwise both will be rotated by this command.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=reload''' or '''admin.cgi?mode=reload&amp;amp;force=1'''  -  This reloads the stream configuration details in the main configuration file the server used when started and is only available on the admin summary page and so can only be run by the master administrator password.&lt;br /&gt;
&lt;br /&gt;
 This command works on the server as a whole (hence no sid parameter) and it will add or&lt;br /&gt;
 remove or update any stream configuration as applicable which will cause any connected&lt;br /&gt;
 sources and clients to be kicked as applicable (usually if a stream configuration was removed).&lt;br /&gt;
 &lt;br /&gt;
 This will recognise any configurations included via 'include' entries so you can have 'include=stream/*.conf'&lt;br /&gt;
 in your main configuration file which the server can then use to detect different stream configurations.&lt;br /&gt;
 &lt;br /&gt;
 If '&amp;amp;force=1' is passed then the reload will treat the updating of active stream configurations in the&lt;br /&gt;
 same manner as a stream configuration removal instead of trying to update compatible stream configuration&lt;br /&gt;
 details without resetting the stream '''e.g.''' not increasing the 'streammaxuser' when it could be increased.&lt;br /&gt;
 &lt;br /&gt;
 The following configuration options are updated when using this command:&lt;br /&gt;
 &lt;br /&gt;
     password or streampassword (*)            streamadminpassword (#)&lt;br /&gt;
     requirestreamconfigs                      streamid&lt;br /&gt;
     streamauthhash                            streampath&lt;br /&gt;
     streamrelayurl                            streammaxuser&lt;br /&gt;
     streampublicserver                        streamallowrelay&lt;br /&gt;
     streamallowpublicrelay                    streamriponly&lt;br /&gt;
     streamautodumpsourcetime                  streamautodumpusers&lt;br /&gt;
     streamlistenertime                        streamintrofile&lt;br /&gt;
     streambackupfile                          streambanfile&lt;br /&gt;
     streamripfile&lt;br /&gt;
 &lt;br /&gt;
 (*) This will depend upon the current values versus the new configuration values&lt;br /&gt;
 (#) The master 'adminpassword' can only be changed after a restart of the server&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XML Responses===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
As detailed in the previous sections, some of the administration actions will provide the information in an xml response. For information on what is actually returned in these xml responses see [[SHOUTcast_DNAS_Server_2_XML_Reponses|sc_serv2_xml_responses.txt]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stream Addresses==&lt;br /&gt;
&lt;br /&gt;
Clients connecting to the streams provided by sc_serv are able to so in a number of ways depending upon how the streams have been configured and also depending upon the number of streams you have available.&lt;br /&gt;
&lt;br /&gt;
The two main ways for a client to connect to a stream are as follows:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;serverurl&amp;gt;/stream/&amp;lt;streamid&amp;gt;/&lt;br /&gt;
or&lt;br /&gt;
 &amp;lt;serverurl&amp;gt;/&amp;lt;streampath&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;serverurl&amp;gt; is typically formed as &amp;lt;nowiki&amp;gt;http://dstip:portbase&amp;lt;/nowiki&amp;gt; (see sections [[#Client_Behaviour|4.2]] and [[#Networking|4.8]])&lt;br /&gt;
 &amp;lt;streamid&amp;gt; is the 'streamid' set from the stream configuration (see [[#Stream_Configuration|section 4.12]])&lt;br /&gt;
 &amp;lt;streampath&amp;gt; is the 'streampath' set from the stream configuration (see [[#Stream_Configuration|section 4.12]])&lt;br /&gt;
&lt;br /&gt;
If the client attempting to connect to the server instance does not specify &amp;lt;streampath&amp;gt; or &amp;lt;streamid&amp;gt; in the stream url it attempts to access or if only one stream is provided then the server will usually default to the first stream it knows about and will allow the client to make a valid connection (though this is not guaranteed to happen).&lt;br /&gt;
&lt;br /&gt;
This handling of the stream addresses provided is something to keep in mind especially if you are providing multiple streams as this will allow you to provide different addresses for certain clients to be able to use a specific stream '''e.g.''' if you wanted to have mobile clients connect to a lower bandwidth stream then you could direct them to '&amp;lt;serverurl&amp;gt;/mobile'&lt;br /&gt;
&lt;br /&gt;
The server options available for controlling how the stream's path is specified can be seen in [[#Stream_Configuration|section 4.12]] which also details the equivalent values needing to be set in the sc_trans configuration if you use sc_trans to provide a source to sc_serv.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Locale Error (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
If you receive the following error then you have a locale related issues:&lt;br /&gt;
&lt;br /&gt;
 terminate called after throwing an instance of 'std::runtime_error'&lt;br /&gt;
 what():  locale::facet::_S_create_c_locale name not valid&lt;br /&gt;
 Abort trap&lt;br /&gt;
&lt;br /&gt;
If this happens then you need to set the 'POSIX' locale in your terminal's environment values. If this does not happen then everything is fine or you are using a newer version of sc_serv from the end of 2010 which should no longer exhibit this issue.&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
BSD:&lt;br /&gt;
 setenv LC_ALL POSIX&lt;br /&gt;
&lt;br /&gt;
Mac OS X:&lt;br /&gt;
 export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
You can test to see if this has worked by checking the shell command &amp;quot;locale&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 LANG=&lt;br /&gt;
 LC_COLLATE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_CTYPE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_MESSAGES=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_MONETARY=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_NUMERIC=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_TIME=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_ALL=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Virtual Memory Footprint (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
Due to how sc_serv works it will create a large number of threads which may become an issue due to the default virtual memory stack allocation per thread potentially being large (typically 10MB per thread). For most people this should not be an issue as the memory is not really allocated unless it is used. If however if you have a resource constrained system or if you plan on running many copies of sc_trans then you could potentially run out of virtual memory.&lt;br /&gt;
&lt;br /&gt;
The default thread allocation can be reduced by issuing a &amp;quot;ulimit&amp;quot; command before running sc_trans and in the example reduces it to 512KB per-thread '''e.g.'''   ulimit -s 512&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Maximum Client Connection Limits==&lt;br /&gt;
&lt;br /&gt;
In general, there are inherent limits on the maximum number of client connections which may be made to a running instances of sc_serv which can either be set by configuration limits e.g. 'maxuser', Operating System limits or bandwidth limits being reached.&lt;br /&gt;
&lt;br /&gt;
The first two are easy to resolve whereas the last (bandwidth limits) is something which will usually require obtaining additional hosting or paying for more available bandwidth.&lt;br /&gt;
&lt;br /&gt;
If reaching the Operating System limit, this is usually indicated by the maximum number of clients never going above a fixed value even if there is the bandwidth and the server has been configured to go higher. This usually appears as around 1016 maximum connections (though this can vary a bit)&lt;br /&gt;
&lt;br /&gt;
If using a non-Windows Operating System then you can use the 'ulimit -n xxxx' command to change the upper limit from what is already set which can be found from just 'ulimit -n' e.g. to change the limit to 4096 connections you would run ulimit -n 4096&lt;br /&gt;
&lt;br /&gt;
If using a Windows Operating System then there isn't any real way to change such things due to the OS hopefully being configured with limits that will not be reached when using sc_serv. If in doubt then consult the Microsoft support documentation for the OS used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Configurations==&lt;br /&gt;
&lt;br /&gt;
Include as part of the sc_serv installation are a number of example configurations to get things started with using some of the features of the server. The provided examples are:&lt;br /&gt;
&lt;br /&gt;
 sc_serv_basic.conf&lt;br /&gt;
 sc_serv_public.conf&lt;br /&gt;
 sc_serv_relay.conf&lt;br /&gt;
 sc_serv_simple.conf&lt;br /&gt;
&lt;br /&gt;
All of the configuration examples are documented and will relate back to details in this file appropriately. You will need to change some details in these example files or to obtain any applicable authorisation keys for the setup you are making ([[#Getting_Started|see section 3.0]]). In all cases the examples are designed to work from the same install folder as sc_serv.&lt;br /&gt;
&lt;br /&gt;
Remember these examples are a way to get you up and running faster though you are still likely to have to adjust things depending upon the systems you are using and how you want to manage your sources and server connections which are covered in previous sections.&lt;br /&gt;
&lt;br /&gt;
Additionally if you are not happy with editing the files or find it still too confusing then you can use the configuration builder which (if installed) can be found in the 'config_builder'. Open 'config_builder.html' in your browser and then use this graphical tool to setup a configuration file for the server (and additionally the transcoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_basic===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This is the base configuration from which the other configuration examples are based and this will get a sc_serv instance running as a local setup with no connection made to the YP directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_public===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_serv_basic configuration to get a sc_serv instance running as a public setup with a connection made to the YP for listing the stream in the directory. This shows the use of the 'include' option (see section [[#Miscellaneous|4.7]]) and how specifying a configuration option twice uses the last value found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_relay===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_serv_public configuration to get a sc_serv instance running as a public setup with a source coming in from a relay server providing a SHOUTcast 2 stream.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_debug===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file can be included in any other configuration files to allow you to get debug logging output when trying to investigate any issues you may be experiencing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_simple===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Use this if you just need to get a very basic server running or are impatient&lt;br /&gt;
 or are struggling to get it running despite the previous example configurations.&lt;br /&gt;
&lt;br /&gt;
This configuration file is designed to be used just as is and is the simplest form of the configuration file you can have which will allow you to get a running server to appear on the YP. This works on using the default settings of the server though does change some of the file paths inorder to fit in with the existing setup as used in the other examples.&lt;br /&gt;
&lt;br /&gt;
All you need to do when using this configuration file is to enter your authorisation key in the 'streamauthhash' line '''e.g.''' if your authorisation key is '''123456789''' then you change ''streamauthhash=&amp;lt;enter_your_auth_key_here&amp;gt;'' to ''streamauthhash='''123456789''''' and save the file.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Server_2</id>
		<title>SHOUTcast DNAS Server 2</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Server_2"/>
				<updated>2020-03-12T12:25:41Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Configuration File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
The purpose of this document is to show you the different configuration options supported by sc_serv along with basic and more advanced example configurations to enable you to get started with using sc_serv and the features it can offer.&lt;br /&gt;
&lt;br /&gt;
The aim of sc_serv is to provide enhanced serving features and also access to the new YP2 infrastructure whilst maintaining as much backward compatibility with previous versions of sc_serv as possible. The new features introduced include:&lt;br /&gt;
&lt;br /&gt;
# Serving multiple streams from a single server instance&lt;br /&gt;
# Relaying multiple streams from a single server instance&lt;br /&gt;
# Multiplexing all server activity through a single IP port&lt;br /&gt;
# SHOUTcast 2 wire protocol support for sources, relays and clients&lt;br /&gt;
# Repackaging of SHOUTcast 1 and SHOUTcast 2 data as needed for connected clients&lt;br /&gt;
# YP2 infrastructure support&lt;br /&gt;
# Real-time metadata and statistic reporting&lt;br /&gt;
# Static station id support&lt;br /&gt;
# In-stream metadata in standardised xml files&lt;br /&gt;
# UTF-8 and international character encoding&lt;br /&gt;
# Improved server and stream security&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview of Features==&lt;br /&gt;
&lt;br /&gt;
To take full advantage of the newer features provided as part of the SHOUTcast 2 and YP2 systems then you will need to ensure you are using a compatible version of sc_serv (any version 2 will work) and that you have the required authorisation key to register as a broadcaster on the YP2 directory (see [[#Getting_Started|section 3.0]]).&lt;br /&gt;
&lt;br /&gt;
If you were intending on taking full advantage of the multiplexing and multiple stream support offered as part of sc_serv then you would need to make sure you enable the SHOUTcast 2 options (this is enabled by default with server builds from the end of 2010 if the 'yp2' option in the configuration file is not specified [see [[#YP_Server_Behaviour|section 4.14]] ). The reason for needing to enable this support is if you try to do it with the original SHOUTcast 1 protocol then it will not work as the original protocol has no means of expressing multiple streams from a single port due to the lack of an identifier provided for them.&lt;br /&gt;
&lt;br /&gt;
If you are planning on connecting multiple sc_trans instances to sc_serv then you must use the SHOUTcast 2 protocol support so that each sc_trans instance can have a unique identifier which allows for multiple streams to then be provided from a single server. It is still possible for an older source to connect to the server with a number of config options available to support this though functionality will be limited compared to what can be done with a fully supporting SHOUTcast 2 source.&lt;br /&gt;
&lt;br /&gt;
Finally clients connecting to your server do not need to directly support SHOUTcast 2 as sc_serv will repackage the stream data and any related metadata into the correct format the client requests (typically based on the user agent detected by the server).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
&lt;br /&gt;
One of the key aspects of the new YP2 directory infrastructure is an authorisation key which is used to validate your server when it tries to connect to the YP2 infrastructure for any of the station(s) you run. Once this key is obtained, it will be valid for all root servers of the station being broadcast.&lt;br /&gt;
&lt;br /&gt;
This can be done by going to the [[SHOUTcast_Authhash_Management|SHOUTcast Authhash Management]] page which shows how to do this via the 'Administation Summary' page as long as a valid source has been connected to the server. This process automatically updates your configuration file(s) with the new authhash and if the stream is set to be public then will attempt to get the stream listed in the SHOUTcast Radio Directory.&lt;br /&gt;
&lt;br /&gt;
When using an older SHOUTcast 1 server then you do not need to do this registration and the server will still be able to be listed on the directory but there is not the same level of protection over the stream as is the case with registering it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Running the Server===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The server is able to be run either as a console application or it can be run as service (Windows) or daemon (Linux / Mac OS X / BSD). Detailed below is how to get the server running on the different operating systems supported by it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The Windows version of sc_serv is designed to run on fully updated and patched versions of Windows 2000, XP, Vista and Windows 7, 8 &amp;amp; 10.&lt;br /&gt;
&lt;br /&gt;
Please note that the Windows versions of sc_serv are built with a dependency against the Microsoft Visual C++ 2008 SP1 Redistributable Package. If sc_serv is unable to start due to a dependency issue then you will need to install the correct version of the package so it can run which depends on the version of sc_serv you are attempting to run:&lt;br /&gt;
&lt;br /&gt;
32-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&lt;br /&gt;
&lt;br /&gt;
64-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ba9257ca-337f-4b40-8c14-157cfdffee4e&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Install as a Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe install &amp;lt;servicename&amp;gt; &amp;lt;username&amp;gt; &amp;lt;password&amp;gt; &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service&lt;br /&gt;
 Typically enter this as 'sc_serv' though you can use a different name but you will need&lt;br /&gt;
 to remember it as it is required to be the same when using the 'uninstall' mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;username&amp;gt; - User under which to run the service as or '0' for the local system&lt;br /&gt;
&lt;br /&gt;
&amp;lt;password&amp;gt; - Password for user or '0' for the local system or with no password&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
When run as a service there is not a good sense of a current working directory so requires all paths in the configuration and playlist files to be fully qualified otherwise lookups will fail when sc_serv is run.&lt;br /&gt;
&lt;br /&gt;
To run sc_serv with a configuration file in the same folder as the server as the current system user account you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_serv.exe install sc_serv 0 0 sc_serv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Uninstall the Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe uninstall &amp;lt;servicename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service as used when the service was registered&lt;br /&gt;
&lt;br /&gt;
To uninstall sc_serv assuming it was installed as detailed in the install section above then you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_serv.exe uninstall sc_serv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Service in the Console====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
===Linux / Mac OS X / BSD===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Remember to enable the required access on the sc_trans file by doing 'chmod a+x sc_trans' after extracting it from the distribution file otherwise the OS is likely to not run it and show the error message './sc_serv: Permission denied'.&lt;br /&gt;
&lt;br /&gt;
====Run as a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_serv daemon &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (required in all cases)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
'''e.g.'''&lt;br /&gt;
 ./sc_serv daemon ./sc_serv.conf&lt;br /&gt;
&lt;br /&gt;
When run this should output the following:&lt;br /&gt;
&lt;br /&gt;
'sc_serv going daemon with PID [XXXX]' where XXXX is the &amp;lt;pid&amp;gt; of the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====End a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
kill -SIGTERM &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -15 &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -s TERM &amp;lt;pid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pid&amp;gt; - The PID of the daemon instance (reported when the daemon started or can be found with 'ps ax | grep sc_serv' as long as sc_serv was the file run otherwise you can just use 'ps ax' if the filename isn't known). Additionally the PID of sc_serv is listed in the log file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_serv &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Additional Signals===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
When run on Linux / Mac OS X / BSD then some additional signals are supported to allow for additional control over the running daemon instance of sc_serv.&lt;br /&gt;
&lt;br /&gt;
The following signals can be used with the 'kill' command (in the manner of your choosing for using the kill command) along with the &amp;lt;pid&amp;gt; of the daemon instance to do one of the following actions:&lt;br /&gt;
&lt;br /&gt;
    SIGKILL   -  Stops sc_trans (also SIGTERM, SIGINT and SIGQUIT will work)&lt;br /&gt;
    SIGHUP    -  Rotates logfile, w3clog and streamw3clog&lt;br /&gt;
&lt;br /&gt;
The result of SIGHUP is that the current log file contents will be moved into &amp;lt;logfile&amp;gt;_1 e.g. sc_serv_1.log, &amp;lt;logfile&amp;gt;_1 will be moved into &amp;lt;logfile&amp;gt;_2 e.g. sc_serv_2.log and so on for all log files which can be found which match the current log file's name. This is useful if timed to have it create day specific log files.&lt;br /&gt;
&lt;br /&gt;
 These signals are not supported by the Windows version of sc_serv which will only&lt;br /&gt;
 respond to the Ctrl + C / Ctrl + Break / console close commands the OS provides.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration File==&lt;br /&gt;
&lt;br /&gt;
Here you can find a complete list of all of the configuration options which are provided by sc_serv which ranges from logging to networking configuration and control over the media being used when streaming via the server.&lt;br /&gt;
&lt;br /&gt;
Configuration entries labelled as ''&amp;lt;MULTI&amp;gt;'' can be used to set up simultaneous connections to the server or allow for multiple connections from various sources. These are specified by adding _# to the end of the option's name as shown below where # begins with one. If you are only working with a single instance then you do not need to add the _# part as any instances of a configuration option will assume it is for _1.&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;MULTI&amp;gt;'' system is not hierarchical and all values beyond the default must be specified for all connections. So for example, if you wanted to connect to two servers on the same port you must do:&lt;br /&gt;
&lt;br /&gt;
    portbase_1=8080&lt;br /&gt;
    portbase_2=8080&lt;br /&gt;
    destip_1=www.server1.com&lt;br /&gt;
    destip_2=www.server2.com&lt;br /&gt;
&lt;br /&gt;
Note that you CANNOT do it like this as it leads to not all values being set:&lt;br /&gt;
&lt;br /&gt;
    portbase=8080&lt;br /&gt;
    destip_1=www.server1.com&lt;br /&gt;
    destip_2=www.server2.com&lt;br /&gt;
&lt;br /&gt;
The configuration files also allow for comments/notes or options to be disabled by the use of a semi-colon (''';''') or a left bracket ('''[''') or the hash / pound symbol ('''#''') at the start of a line which can be seen in all of the configuration examples.&lt;br /&gt;
&lt;br /&gt;
Known options in the configuration files are recognised irrespective of the case they are entered in the configuration file so maxuser and MaXuSer will be handled the same way.&lt;br /&gt;
&lt;br /&gt;
Any items found in the configuration file which are not known (as detailed in following sections) or is not processed as a comment will be reported in the following manner:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;date + time&amp;gt; W msg:[CONFIG] Invalid item on line XX&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;date + time&amp;gt; is the date and time the event happens at and XX is the line in the configuration file where the error has been found to occur at.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Banning===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''banfile''' : File to store the list of banned IP addresses    ''[Default = sc_serv.ban]''&lt;br /&gt;
&lt;br /&gt;
'''savebanlistonexit''' : Re-write the 'banfile' on server exit    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the file into then you need to ensure that the&lt;br /&gt;
 folder already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Client Behaviour===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''maxuser''' : Specify the maximum number of clients allowed to connect to the server    ''[Default = 32]''&lt;br /&gt;
 This is used in conjunction with 'streammaxuser' (see [[#Stream_Configuration|section 4.12]]) to control the&lt;br /&gt;
 maximum limit on the number of client connections allowed to connect to the server instance.&lt;br /&gt;
&lt;br /&gt;
'''listenertime''' : Specify the maximum time in minutes a client can listen to the stream    ''[Default = 0]''&lt;br /&gt;
 A value of zero means there will be no time limit.&lt;br /&gt;
&lt;br /&gt;
'''autodumpusers''' : Enable to allow the server to disconnect clients if the source disconnects    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''srcip''' : Specify the server side binding address for sources to connect on    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''dstip''' or '''destip''' or '''publicip''' : Specify the server side binding address for clients    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
 If 'any' or no value is specified then sc_serv listens to all addresses.&lt;br /&gt;
&lt;br /&gt;
If you specify a value for 'dstip / destip' then this will be used by the listen feature on the Administration Pages (see section 5.1) so it can provide a valid stream url in the generated playlist. If 'dstip / destip' is not specified then the server will attempt to auto-generate the IP required for the client to be able to connect. If this fails the generated playlist is likely to return a stream url like &amp;lt;nowiki&amp;gt;http://0.0.0.0:&amp;lt;portbase&amp;gt;/&amp;lt;path&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The IP provided needs to be in a valid format like &amp;lt;nowiki&amp;gt;http://&amp;lt;my-ip&amp;gt;&amp;lt;/nowiki&amp;gt; or an address which can be resolved to an IP otherwise the internal lookups done are likely to fail (depends upon the server configuration and OS being used). Also you cannot set srcip and dstip / destip to be the same IP value and if this happens then the server will close. Closing of the server will also happen if the IP cannot be resolved or correctly bound to i.e. server is not there or an invalid value was entered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''titleformat''' : Specify a string to be used in-place of the default icy-name string being used    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''urlformat''' : Specify a string to be used in-place of the default icy-url string being used    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''  '''&lt;br /&gt;
'''  '''&lt;br /&gt;
&lt;br /&gt;
===Debugging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In all cases, the default value is for no debug logging for the options listed below.&lt;br /&gt;
&lt;br /&gt;
'''yp1debug''' : Enable debug logging of YP connections&lt;br /&gt;
&lt;br /&gt;
'''yp2debug''' : Enable debug logging of YP2 connections&lt;br /&gt;
&lt;br /&gt;
'''shoutcastsourcedebug''' : Enable debug logging of SHOUTcast source connections&lt;br /&gt;
&lt;br /&gt;
'''uvox2sourcedebug''' : Enable debug logging of SHOUTcast 2 source connections&lt;br /&gt;
&lt;br /&gt;
'''shoutcast1clientdebug''' : Enable debug logging of SHOUTcast streaming clients&lt;br /&gt;
&lt;br /&gt;
'''shoutcast2clientdebug''' : Enable debug logging of SHOUTcast 2 streaming clients&lt;br /&gt;
&lt;br /&gt;
'''relayshoutcastdebug''' : Enable debug logging for SHOUTcast relays&lt;br /&gt;
&lt;br /&gt;
'''relayuvoxdebug''' : Enable debug logging for SHOUTcast 2 relays&lt;br /&gt;
&lt;br /&gt;
'''relaydebug''' : Enable debug logging of common relay code&lt;br /&gt;
&lt;br /&gt;
'''streamdatadebug''' : Enable debug logging of common streaming code&lt;br /&gt;
&lt;br /&gt;
'''httpstyledebug''' : Enable debug logging of http style requests&lt;br /&gt;
&lt;br /&gt;
'''statsdebug''' : Enable debug logging of statistics&lt;br /&gt;
&lt;br /&gt;
'''microserverdebug''' : Enable debug logging of common server activity&lt;br /&gt;
&lt;br /&gt;
'''threadrunnerdebug''' : Enable debug logging of the thread manager&lt;br /&gt;
&lt;br /&gt;
'''rtmpclientdebug''' : Enable debug logging of rtmp clients&lt;br /&gt;
&lt;br /&gt;
'''admetricsdebug''' : Enable debug logging of ad metrics (v2.5 and newer)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' '''&lt;br /&gt;
''' '''&lt;br /&gt;
&lt;br /&gt;
===Flash Security===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''flashpolicyfile''' : Name of file containing flash crossdomain policies on the server    ''[Default = crossdomain.xml]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Introduction and Backup Files===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Note that intro and backup audio files must precisely match the format and bitrate for the stream! If they do not match, there will be a break in the stream and the listener will be disconnected. &lt;br /&gt;
&lt;br /&gt;
'''introfile''' : File to play when a client first connects to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: This is used globally and also is default for stream #1 on DNAS versions greater than 2.0. To apply a specific intro file to a stream, use streamintrofile_X. &lt;br /&gt;
&lt;br /&gt;
'''streamintrofile_X''' : File to play when a client first connects to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''backupfile''' : File to play if the source disconnects from the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: This is used globally and also is default for stream #1 on DNAS versions greater than 2.0. To apply a specific backup file to a stream, use streambackupfile_X. &lt;br /&gt;
&lt;br /&gt;
'''streambackupfile_X''' : assigns a specific backup file to a streamID X [Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''streambackupurl_X''' : assigns a specific backup stream to a streamID X (v2.6 Premium feature)''&lt;br /&gt;
&lt;br /&gt;
'''specialfiletmpdir''' : place to store intro and backup files uploaded by sc_trans    ''[Default = /tmp/ (*nix only)]''&lt;br /&gt;
&lt;br /&gt;
'''maxspecialfilesize''' : Change the maximum size in bytes of the backup and intro files    ''[Default = 30000000]''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''log''' : Enable logging of the servers output    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''screenlog''' :  Enable logging of servers output to the console    ''[Default = 1]''&lt;br /&gt;
 If log=0 then this option is ignored due to no logging happening.&lt;br /&gt;
&lt;br /&gt;
'''logfile''' : Specify a different logfile to save the logs into ''[Default = %temp%\sc_serv.log or /tmp/sc_serv.log]''&lt;br /&gt;
&lt;br /&gt;
'''logclients''' : Enable logging of details about client connections and disconnections made ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the logs into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''configrewrite''' :  Re-write the 'config file' on server exit    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''songhistory''' : Specify the maximum song history to preserve    ''[Default = 10]''&lt;br /&gt;
&lt;br /&gt;
'''cpucount''' : Specify the number of cpu's present instead of the calculated number if non-zero    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''unique''' : Specify a substitution string for the '$' character to be used when processing filenames which if specified will set any occurences of '$' to the value set. This will be used in the processing of the following filenames: '''logfile''', '''introfile''', '''streamintrofile''', '''backupfile''', '''streambackupfile''', '''banfile''', '''streambanfile''', '''ripfile''', '''streamripfile''', '''include''', '''w3clog''', '''streamw3clog'''&lt;br /&gt;
&lt;br /&gt;
 So when 'unique' is changed from '$' to say 'test' then the following happens if 'logfile' is&lt;br /&gt;
 set to '/usr/local/shoutcast/$.log' then this would be converted to '/usr/local/shoutcast/test.log'&lt;br /&gt;
&lt;br /&gt;
'''include''' : Specify an additional include file containing settings to be processed from the current point in the main configuration file    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
You can do multiple calls of this allowing for a basic configuration file with then 'specific' stream configurations set in individual conf files though you need to ensure not to include a reference to the same file in itself.&lt;br /&gt;
&lt;br /&gt;
You can also specify a path with a wildcard for sc_serv to use to find multiple configuration files to include '''e.g.''' 'include=stream/*.conf'.  This can then be used along with the multiple stream configurations (see section 4.12) and the admin command 'admin.cgi?mode=reload' (see section 5.1) to add / remove / update stream configurations without having to close the server to apply them.&lt;br /&gt;
&lt;br /&gt;
'''admincssfile''' : Specify the css styling to be used on the index.html and admin pages    ''[Default = v2]''&lt;br /&gt;
&lt;br /&gt;
This can accept the following parameters:&lt;br /&gt;
&lt;br /&gt;
:admincssfile='''v1'''  -  Uses the v1 DNAS style&lt;br /&gt;
:admincssfile='''v2'''  -  Uses the newer SHOUTcast 2 style&lt;br /&gt;
:admincssfile='''path_to_local_css_file'''  e.g. my_index.css&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 If using a custom css file, if it does not exist on the first try to load it the server will revert to&lt;br /&gt;
 the default css style. As well the style is cached once loaded so changes require a restart of sc_serv.&lt;br /&gt;
&lt;br /&gt;
'''faviconfile''' : Specify the file to be returned as the favicon.ico when the administration pages are being queried by the client's browser    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
The default behaviour is to use a SHOUTcast themed built-in icon file and support / handling the update of this will entirely depend on the browser.&lt;br /&gt;
&lt;br /&gt;
'''faviconmimetype''' : Specify the mime type for actual file to be served in the favicon.ico response    ''[Default = image/x-icon]''&lt;br /&gt;
&lt;br /&gt;
Ensure this is correct for the type of image being used so it is valid.&lt;br /&gt;
&lt;br /&gt;
'''hidestats''' : Specify if the publically accessible stats?sid=# page can be accessed or if it is only available via the private administration pages   ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''robotstxtfile''' : Specify the file to be returned as the robots.txt when queried by search engines, etc to attempt to prevent incorrect access to the server's pages which may cause invalid client connections    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
The default behaviour is to return a robots.txt reponse indicating not to look at any of the server's pages i.e.&lt;br /&gt;
::User-agent:*&lt;br /&gt;
::Disallow:/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Networking===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''namelookups''' : Enable to allow reverse DNS look-ups on incoming IP addresses    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''portbase''' : Specify the port which clients and sources need to use to connect to the server    ''[Default = 8000]''&lt;br /&gt;
 SHOUTcast 1 sources are only able to connect to 'portbase + 1'.&lt;br /&gt;
&lt;br /&gt;
'''autodumpsourcetime''' : Specify how long before an idle source is dumped from the server (in seconds)    ''[Default: 30]''&lt;br /&gt;
 A value of zero means there is no timeout of an idle source.&lt;br /&gt;
 Also if you set this too low then it is likely that valid sources will&lt;br /&gt;
 fail to connect during the initial stages of a source connection.&lt;br /&gt;
&lt;br /&gt;
'''maxheaderlinesize''' : Specify the maximum size of an HTTP header line    ''[Default = 2048]''&lt;br /&gt;
&lt;br /&gt;
'''maxheaderlinecount''' : Specify the maximum header lines in an HTTP style exchange    ''[Default = 100]''&lt;br /&gt;
&lt;br /&gt;
'''adminpassword''' : Specify the administrator password for accessing the remote server features    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''password''' : Specify the password for broadcasters when connecting to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
 This matches the 'uvoxauth' value in the sc_trans configuration file (see [[SHOUTcast_DNAS_Transcoder_2#Network_Options|sc_trans.txt - section 3.11]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Network Buffers===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''buffertype''' : Specify whether the buffer size is fixed [0] or adaptive [1]    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''adaptivebuffersize''' : Specify the buffer size in seconds if buffer is set to adaptive    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''fixedbuffersize''' : Specify the buffer size in bytes if the buffer is set to fixed    ''[Default = 1048576]''&lt;br /&gt;
&lt;br /&gt;
'''bufferhardlimit''' : Specify the maximum buffer size in bytes which it can never go above    ''[Default = 16777216]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Relaying===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''allowrelay''' : Enable to allow a relay to connect to the server    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''allowpublicrelay''' : Enable to allow relays to list themselves in the YP directory    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''relayreconnecttime''' : Specify how many seconds to wait to reconnect on a relay failure    ''[Default = 30]''&lt;br /&gt;
 Setting this to 0 will disable attempts for the relay to reconnect.&lt;br /&gt;
&lt;br /&gt;
'''relayconnectretries''' : Specify the number of times relays are attempted to be connected to if it is initially unable to connect    ''[Default = 3]''&lt;br /&gt;
 This generally applies only to YP1 connections and is related to the&lt;br /&gt;
 actual attempts to make and get a http response from the YP server.&lt;br /&gt;
&lt;br /&gt;
'''maxhttpredirects''' : Specify the maximum number of times we can redirect when relaying    ''[Default = 5]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;Legacy Options&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
'''relayport''' : Port of the source to use for the relay    ''[Default: 80]''&lt;br /&gt;
&lt;br /&gt;
'''relayserver''' : Url of the source to relay    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
 Using the stream configuration options (see [[#Stream_Configuration|section 4.12]]) is the preferred method&lt;br /&gt;
 of setting up a relay. These options are only provided as a means for loading&lt;br /&gt;
 legacy configuration files. If found then these are mapped to 'streamrelayurl_1'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Reserved List===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''ripfile''' : File to store the list of reserved IP addresses    ''[Default = sc_serv.rip]''&lt;br /&gt;
&lt;br /&gt;
'''saveriplistonexist''' : Re-write the 'ripfile' on server exit    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''riponly''' : Only allow connections to be made from reserved IP addresses    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the file into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Stream Configuration===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Important Note:''' If you do not specify an identifier (_#) on the end of the above options then it will be treated like _1 (effectively acting like SHOUTcast 1). Additionally, _0 is not a supported identifier and will be mapped to _1.&lt;br /&gt;
&lt;br /&gt;
'''requirestreamconfigs''' : Only allow sources to connect if a stream configuration has been set in your configuration file    ''[Default = 0]''&lt;br /&gt;
 With this enabled, you will need to ensure that any sources have their configuration details&lt;br /&gt;
 setup to match those in sc_trans's configuration, in particular the 'uvoxstreamid' value with&lt;br /&gt;
 sc_trans (see [[SHOUTcast_DNAS_Transcoder_2#Network_Options|sc_trans.txt - section 3.11]]).&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each stream configuration):&lt;br /&gt;
&lt;br /&gt;
'''streamid''' : Specify the numerical identifier of the stream for control or referencing the stream configuration. This can only be a numeric value from 1 to 2147483647.&lt;br /&gt;
&lt;br /&gt;
 If you use multiple stream configurations then you will need to ensure the _X&lt;br /&gt;
 part is specified and correct for each stream configuration group&lt;br /&gt;
 e.g.&lt;br /&gt;
   streamid=1&lt;br /&gt;
   streampath=random&lt;br /&gt;
     or&lt;br /&gt;
   streamid_1=1&lt;br /&gt;
   streampath_1=random_stream_path&lt;br /&gt;
   streamid_2=2&lt;br /&gt;
   streampath_2=another_stream_path&lt;br /&gt;
&lt;br /&gt;
'''streamauthhash''' : The authorisation key needed for YP2 directory registration.&lt;br /&gt;
 This is a requirement for using the YP2 system and without it you will not be able to&lt;br /&gt;
 successfully connect to the YP2 directory (see [[#Getting_Started|section 3.0]]).&lt;br /&gt;
 &lt;br /&gt;
 This can be used for multiple streams you are providing or can be different (as long&lt;br /&gt;
 as valid) so you can infact provide multiple stations from the same server if desired.&lt;br /&gt;
&lt;br /&gt;
'''streampath''' : Specify the path clients need to use to access the stream&lt;br /&gt;
 If a / is not specified on the start of the string then the server will add&lt;br /&gt;
 it to the generated path in playlist entries or other places as required so&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://&amp;lt;serverurl&amp;gt;/&amp;lt;streampath&amp;gt;&amp;lt;/nowiki&amp;gt; will work so clients are able to connect.&lt;br /&gt;
 streampath is the mountpoint, e.g. streampath_1=mystation would result in ip:port/mystation&lt;br /&gt;
 &lt;br /&gt;
 If this is not specified then &amp;lt;nowiki&amp;gt;http://&amp;lt;serverurl&amp;gt;/stream/&amp;lt;streamid&amp;gt;/&amp;lt;/nowiki&amp;gt; will be&lt;br /&gt;
 used for client access and in generated playlist entries so that it will&lt;br /&gt;
 always be possible for clients to connect to the server somehow. See [[SHOUTcast_DNAS_Server_2#Stream_Addresses|section 6.0]] for more information on the&lt;br /&gt;
 server's stream address support.&lt;br /&gt;
&lt;br /&gt;
'''streamrelayurl''' : Specify the full url of source to relay (if this is a relay).&lt;br /&gt;
 Make sure if you use this that the full url is entered and that it is&lt;br /&gt;
 the url which clients would connect to for the stream to be relayed.&lt;br /&gt;
&lt;br /&gt;
'''streammaxuser''' : Specify the maximum number of clients allowed to connect to the stream    ''[Default = 0]''&lt;br /&gt;
If set to zero, not specified or higher than 'maxuser' then the value set for 'maxuser' (see [[#Client_Behaviour|section 4.2]]) will be used for all known streams.&lt;br /&gt;
&lt;br /&gt;
Changing this to a value between zero and 'maxuser' will enforce the user connection limit for the specified value in the stream configuration '''e.g.'''&lt;br /&gt;
 streammaxuser_1 = 8&lt;br /&gt;
 maxuser = 32&lt;br /&gt;
&lt;br /&gt;
This allows a total of 32 connections to the server but specifies the maximum number of connections to the first stream configuration is 8.&lt;br /&gt;
&lt;br /&gt;
With the following stream configuration&lt;br /&gt;
 streammaxuser_1 = 64&lt;br /&gt;
 maxuser = 32&lt;br /&gt;
&lt;br /&gt;
This allows a total of 32 connections to the server but with a per stream limit above the maximum means the maximum number of connections to the first stream group will be 32. However this also depends upon any other stream configurations and their limits as to whether 32 clients will be able to connect to this stream configuration.&lt;br /&gt;
&lt;br /&gt;
Finally unless a valid stream configuration is specified then this value will only be applied to the first stream configuration found i.e. there is a need to specify a streamid_XXX for streammaxuser_XXX (where XXX is the stream identifier of the stream configuration group.&lt;br /&gt;
&lt;br /&gt;
'''streamadminpassword''' : Specify the administrator password for accessing the remote server features for the specified stream configuration group. If this is not specified then 'adminpassword' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streampassword''' : Specify the password for broadcasters when connecting to the server for the specified stream configuration group. If this is not specified then 'password' will be used.&lt;br /&gt;
 This matches the 'uvoxauth' value in the sc_trans configuration file (see sc_trans.txt - section 3.11).&lt;br /&gt;
&lt;br /&gt;
'''streampublicserver''' : This allows you to override the public flag received from the source when a connection is being made to the YP directory. If this is not specified or is set to empty then 'publicserver' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamallowrelay''' : Enable to allow a relay to connect to the server. If this is not specified then 'allowrelay' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamallowpublicrelay''' : Enable to allow relays to list themselves in the YP directory. If this is not specified then 'allowpublicrelay' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamriponly''' : Enable to only allow connections to be made from reserved IP addresses. If this is not specified then 'riponly' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamautodumpsourcetime''' : Specify how long before an idle source will be dumped from the server (in seconds). A value of zero means there is no timeout of an idle source. If not specified then 'autodumpsourcetime' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamautodumpusers''' : Enable to allow the server to disconnect clients if the source disconnects. If not specified then 'autodumpusers' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamlistenertime''' : Specify the maximum time in minutes a client is allowed to listen to the stream. A value of zero means there will be no time limit. If not specified then 'listenertime' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamintrofile''' : File to play when a client first connects to the server. If this is not specified then 'introfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streambackupfile''' : File to play if the source disconnects from the server. If this is not specified then 'backupfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streammovedurl_X''' : redirects a permanently stopped or moved stream to a different working stream url.&lt;br /&gt;
&lt;br /&gt;
'''streambanfile''' : File to store the list of banned IP addresses. If this is not specified then 'banfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamripfile''' : File to store the list of banned IP addresses. If this is not specified then 'ripfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamw3clog''' : File to store the web connections logs into. If this is not specified then 'w3clog' will be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''DNAS v2.6 and newer'''&lt;br /&gt;
&lt;br /&gt;
'''sslCertificateFile''' : For https:// streams, specify .crt file e.g. sslCertificateFile=/path/to/ssl.crt&lt;br /&gt;
&lt;br /&gt;
'''sslCertificateKeyFile''' : specify key file, e.g. sslCertificateKeyFile=/path/to/key.pem&lt;br /&gt;
&lt;br /&gt;
 Put the whole certificate chain in the .crt file, and only the key in the .key file&lt;br /&gt;
 Note: Requires Premium subscription to unlock Premium features.&lt;br /&gt;
 SSL Cert needs to be assigned to a DNS e.g. stream.mysite.com&lt;br /&gt;
 Be sure to also add destip=stream.mysite.com and/or publicip= and alternateports=443 lines to DNAS config file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' '''&lt;br /&gt;
&lt;br /&gt;
===Web Connection (W3C) Logging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''w3cenable''' : Enable logging of web connections to describe the duration a client has listened to a specific title    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''w3clog''' : File to store the web connections logs into    ''[Default = sc_w3c.log]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the log into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
'''webclientdebug''' : Enable logging of web client connections    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===YP Server Behaviour===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''uvoxcipherkey''' : Specify the key used to obfuscate the initial handshaking with the source    ''[Default = foobar]''&lt;br /&gt;
 This is a SHOUTcast 2 only feature and it matches the 'djcipher' value in the sc_trans&lt;br /&gt;
 configuration file (see [[SHOUTcast_DNAS_Transcoder_2#DJ_Support|sc_trans.txt - section 3.3]]).&lt;br /&gt;
&lt;br /&gt;
Only change this if you really need to do so as not all SHOUTcast 2 clients will allow you to edit this value from the default value. If using the Source DSP plug-in then see [[Source_DSP_Plug-in#SHOUTcast_2_Cipher_Key|dsp_sc.txt - section 5.0]] for details on how to change the plug-in to use a differnet value.&lt;br /&gt;
&lt;br /&gt;
'''metainterval''' : Specify the metadata transmission interval in bytes    ''[Default = 8192]''&lt;br /&gt;
 YP1 only&lt;br /&gt;
&lt;br /&gt;
'''yp2''' : Enable to use the SHOUTcast 2 protocol and related server features for access to the YP2 directory    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
If this is enabled and not all of the required values are set then the server will throw an error and will abort from its start-up attempt. It should be indicated what needs to be set to allow the server to start with this set.&lt;br /&gt;
&lt;br /&gt;
Additionally if there is an issue then the server will report an error in its log ouput of 'Connection attempt failed. YP2 error code is XXX (&amp;lt;message&amp;gt;)' where XXX is one of the following error codes and &amp;lt;message&amp;gt; is a message set in the error response to indicate a bit more what the error relates to. All current error codes can be found [[#YP_Server_Errors|here]].&lt;br /&gt;
&lt;br /&gt;
'''ypaddr''' : Allows you to specify a different YP server if required    ''[Default = yp.shoutcast.com]''&lt;br /&gt;
&lt;br /&gt;
'''ypport''' : Allows you to specify the port of the YP server if required    ''[Default = 80]''&lt;br /&gt;
&lt;br /&gt;
'''ypPath''' : Allows you to specify the path to YP2 services on the server    ''[Default = /yp2]''&lt;br /&gt;
&lt;br /&gt;
'''ypTimeout''' : Specify the timeout interval in seconds for requests made to the YP server    ''[Default = 60]''&lt;br /&gt;
&lt;br /&gt;
'''ypmaxretries''' : Specify the maximum number of times a YP request will be attempted    ''[Default = 10]''&lt;br /&gt;
 This generally applies only to YP1 connections and is related to the&lt;br /&gt;
 actual attempts to make and get a http response from the YP server.&lt;br /&gt;
&lt;br /&gt;
'''ypreportinterval''' : Specify the maximum time in which the YP must have contacted our server in seconds    ''[Default = 300]''&lt;br /&gt;
&lt;br /&gt;
'''ypminreportinterval''' : Specify the minimum time in which the YP can contact our server in seconds    ''[Default = 10]''&lt;br /&gt;
&lt;br /&gt;
'''publicserver''' : This allows you to override the public flag from the connected source when a connection is being made to the YP directory    ''[Default = default]''&lt;br /&gt;
This can be one of the following values:&lt;br /&gt;
 '''default''' - use the flag provided by the source&lt;br /&gt;
 '''always''' - force the source to be public&lt;br /&gt;
 '''never''' - never allow the use the flag provided by the source&lt;br /&gt;
&lt;br /&gt;
When using sc_trans this would match with the 'public' value (see [[SHOUTcast_DNAS_Transcoder_2#Metadata_Control|sc_trans.txt - section 3.8]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===YP Server Errors===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If not all of the required values are set for a public listing then the DNAS server will throw an error and will abort its attempt to be listed in the Directory. It should be indicated the error is with one of the error codes provided below so it can be resolved.&lt;br /&gt;
&lt;br /&gt;
Additionally if there is an issue during Directory updates or removals, then the server will report an error in its log ouput as one of the following error codes and &amp;lt;message&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status Code&lt;br /&gt;
! Status Message&lt;br /&gt;
|-&lt;br /&gt;
| 400 || Generic error ''(covers all other cases usually from internal failures)''&lt;br /&gt;
|-&lt;br /&gt;
| 457 || Unrecoverable error while updating station information - DNAS restart required.&lt;br /&gt;
|-&lt;br /&gt;
| 470 || Invalid authorization hash&lt;br /&gt;
|-&lt;br /&gt;
| 471 || Invalid stream type (could be a bad bitrate or mime type)&lt;br /&gt;
|-&lt;br /&gt;
| 472 || Missing or invalid stream url&lt;br /&gt;
|-&lt;br /&gt;
| 473 || Server unreachable by YP&lt;br /&gt;
|-&lt;br /&gt;
| 474 || Relay url does not exist&lt;br /&gt;
|-&lt;br /&gt;
| 475 || Invalid server ID&lt;br /&gt;
|-&lt;br /&gt;
| 476 || Invalid max clients (value out of range or missing)&lt;br /&gt;
|-&lt;br /&gt;
| 477 || Terms of Service violator.  You are being reported.&lt;br /&gt;
|-&lt;br /&gt;
| 478 || Incompatible protocol.&lt;br /&gt;
|-&lt;br /&gt;
| 479 || Streams requiring authorization are not public and cannot list here.&lt;br /&gt;
|-&lt;br /&gt;
| 480 || Cannot see your station/computer (URL: &amp;lt;streamurl&amp;gt;) from the Internet, disable Internet Sharing/NAT/firewall/ISP cache.&lt;br /&gt;
|-&lt;br /&gt;
| 481 || Cannot verify server since all listener slots are full.  Please wait.&lt;br /&gt;
|-&lt;br /&gt;
| 482 || This network has been permanently banned due to a previous violation of the SHOUTcast directory terms of service&lt;br /&gt;
|-&lt;br /&gt;
| 483 || Invalid listeners (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 484 || Invalid avglistentime (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 485 || Invalid newsessions (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 486 || Invalid connects (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 487 || Request &amp;amp; Response objects are null&lt;br /&gt;
|-&lt;br /&gt;
| 488 || Request xml is null&lt;br /&gt;
|-&lt;br /&gt;
| 489 || YP command not specified&lt;br /&gt;
|-&lt;br /&gt;
| 490 || Generic error, while doing xml parsing&lt;br /&gt;
|-&lt;br /&gt;
| 491 || Generic error, while reading xml request&lt;br /&gt;
|-&lt;br /&gt;
| 492 || Error closing buffer / HTTP connection&lt;br /&gt;
|-&lt;br /&gt;
| 493 || Internal error - unable to acquire data source&lt;br /&gt;
|-&lt;br /&gt;
| 494 || Error updating information - DNAS restart required&lt;br /&gt;
|-&lt;br /&gt;
| 495 || Error acquiring station ID - DNAS restart required&lt;br /&gt;
|-&lt;br /&gt;
| 496 || Error converting data type&lt;br /&gt;
|-&lt;br /&gt;
| 497 || Inconsistent stream behaviour&lt;br /&gt;
|-&lt;br /&gt;
| 498 || Invalid Request (Invalid request received)&lt;br /&gt;
|-&lt;br /&gt;
| 499 || Error while getting information&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Administration==&lt;br /&gt;
&lt;br /&gt;
With sc_serv there are administration pages available for accessing and controlling the server remotely which allows you to monitor and control clients connected to the stream (or not if banning them). These pages can now be accessed through a summary page at /index.html which will show a link to any active stream(s) or you explicitly access them via the /index.html?sid=# path where # is the ID of the stream (see [[#Stream_Configuration|section 4.12]] for more about using 'streamid') '''e.g.'''&lt;br /&gt;
 &amp;lt;streamurl&amp;gt;/index.html?sid=1&lt;br /&gt;
&lt;br /&gt;
If no sid or an invalid sid is passed then you will be taken to the summary /index.html and this will be applied even if you were on a page with a known ID and then enter an invalid sid or remove it purposefully.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Administration Pages===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
As part of the administrative features provided there are the following pages where # is the streamid you want to use). This is not a complete list but should cover all of the pages which allow for a direct http url to be entered to get an administation action to work. The ban and reserve IP actions require input fields and do not map to direct sends.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Public Pages====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''index.html'''  -  Shows a summary page with links to get to any active stream(s)&lt;br /&gt;
&lt;br /&gt;
'''currentsong?sid=#'''  -  Returns the current song title or a null response&lt;br /&gt;
&lt;br /&gt;
'''nextsong?sid=#'''  -  Returns the next song title (if known) or a null response&lt;br /&gt;
 currentsong and nextsong both provide a UTF-8 encoded string of the song title&lt;br /&gt;
 otherwise it will return effectively no response (ignoring the http header).&lt;br /&gt;
&lt;br /&gt;
'''nextsongs?sid=#'''  -  Returns in an xml format the next song title(s) (if known) to be played when using a compatible v2 stream source. See [[#XML_Responses|section 5.2]] for more details on the format of the xml returned).&lt;br /&gt;
&lt;br /&gt;
'''index.html?sid=#'''  -  Shows current status of the specified stream&lt;br /&gt;
&lt;br /&gt;
'''played.html?sid=#'''  -  Song history of specified playing history&lt;br /&gt;
:or&lt;br /&gt;
'''played?sid=#'''&lt;br /&gt;
&lt;br /&gt;
'''listen.pls?sid=#'''  -  Provides a PLS for file clients to use to connect to the stream.&lt;br /&gt;
:or&lt;br /&gt;
'''listen?sid=#'''&lt;br /&gt;
&lt;br /&gt;
'''listen.m3u?sid=#'''  -  Provides a M3U file for clients to use to connect to the stream.&lt;br /&gt;
&lt;br /&gt;
'''listen.asx?sid=#'''  -  Provides a ASX file for clients to use to connect to the stream.&lt;br /&gt;
&lt;br /&gt;
 With the listen pages you either need to have specified an IP with 'dstip / destip'&lt;br /&gt;
 (see section 4.2) or leave empty and allow the server to attempt to auto-generate&lt;br /&gt;
 the IP required for the client to be able to connect. If this fails the generated&lt;br /&gt;
 playlist is likely to return a stream url like &amp;lt;nowiki&amp;gt;http://0.0.0.0:&amp;lt;portbase&amp;gt;/&amp;lt;path&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''home.html?sid=#''' or '''home?sid=#'''  -  Opens in a new window or tab (depending on the client browser) the 'streamurl' as specified by the stream source. If this is not set then the client will be redirected to the shoutcast.com main page.&lt;br /&gt;
&lt;br /&gt;
'''stats?sid=#'''  -  Provides an xml response for public accessibility which matches the private version from admin.cgi?sid=#&amp;amp;mode=viewxml&amp;amp;page=1. This is the modern version of the 7.html page as provided by the legacy v1 servers. See [[#XML_Responses|section 5.2]] for information on what is provided in the xml response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Private Pages====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 By passing &amp;amp;pass=password where password is the 'adminpassword' (see section [[#Networking|4.8]]) then it is possible&lt;br /&gt;
 to directly access the administration page(s) required. As well the base64 encoded version of the password&lt;br /&gt;
 can be passed as long as it is prefixed with ''YWRtaW46''&lt;br /&gt;
 e.g.&lt;br /&gt;
     &amp;amp;pass=changeme is the same as &amp;amp;pass=YWRtaW46Y2hhbmdlbWU=&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi'''  -  Shows the an overal summary admin page for the streams provided by the server including direct links to certain information pages (see notes about the 'admin.cgi?sid=#&amp;amp;mode=viewxml' command for more info)&lt;br /&gt;
:or&lt;br /&gt;
'''admin.cgi?sid=0'''&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#'''  -  Shows the base admin page for the stream and information&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=updinfo&amp;amp;song=title'''           &lt;br /&gt;
:or&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=updinfo&amp;amp;type=xml&amp;amp;song=xml'''    &lt;br /&gt;
 If 'title' is not empty then it will be set as the current song title for the stream&lt;br /&gt;
 specified until the next use of this action or the next title update is received from&lt;br /&gt;
 the source. Specifying '&amp;amp;type=xml' will process the value of 'song' as [[SHOUTcast_XML_Metadata_Specification|v2 XML metadata]]&lt;br /&gt;
 instead of a v1 title.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewlog'''  -  View logfile&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewlog&amp;amp;viewlog=tail'''  -  View logfile (tailing)&lt;br /&gt;
&lt;br /&gt;
 The tailing option keeps adding additional log entries to the end of the view whilst the view is active.&lt;br /&gt;
 As well any html or xml data in the log will not be shown correctly in the view as &amp;lt; &amp;gt; &amp;amp; are not escaped&lt;br /&gt;
 to their html entities. See [[#Logging|section 4.6]] for more information on the log file.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewban'''  -  Ban view which matches the ban file and allows you to ban a single IP or an IP range from it (see [[#Banning|section 4.1]] for more info on the file)&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewrip'''  -  Reserved IP list that matches the rip file (see [[#Reserved_IP_.28RIP.29|section 4.11]] for more info on the file)&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=art''' or '''admin.cgi?sid=#&amp;amp;mode=art&amp;amp;art=playing'''  -  Displays the artwork SHOUTcast v2 compatible clients may be able to display if the SHOUTcast v2 source does provide it.&lt;br /&gt;
  &lt;br /&gt;
 The artwork mode is primarily intended as a debugging option to make it possible&lt;br /&gt;
 to see what (if anything) has been provided by the SHOUTcast v2 source.&lt;br /&gt;
 &lt;br /&gt;
 If no '&amp;amp;art=' is specified or not a matching option then the stream artwork (if&lt;br /&gt;
 available) will be shown. If no '&amp;amp;art=playing' is specified then this will show&lt;br /&gt;
 the playing file's artwork (if available).&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewxml''' or '''admin.cgi?sid=#&amp;amp;mode=viewxml&amp;amp;page=#'''  -  Returns an xml output of the current stream information&lt;br /&gt;
&lt;br /&gt;
 If page is not set or is outside of the range zero to 6 then this will output all of the&lt;br /&gt;
 information as the standard viewxml action does. Otherwise this only display information&lt;br /&gt;
 depending on the value assigned to page which can be from 1 to 6 which maps as follows:&lt;br /&gt;
 &lt;br /&gt;
     1 - Server Summary (this is the same as using the public stats?sid=# action)&lt;br /&gt;
     2 - Not used (previously used for Webdata Stats but not in current builds)&lt;br /&gt;
     3 - Listener Stats&lt;br /&gt;
     4 - Song History&lt;br /&gt;
     5 - Stream Metadata        (if supported by the source otherwise can just be title)&lt;br /&gt;
     6 - Stream Configurations  (displays all of the known stream configurations though this is only available on admin.cgi)&lt;br /&gt;
 &lt;br /&gt;
 If accessing the standard viewxml or the listener stats (page = 3), you can also send&lt;br /&gt;
 '&amp;amp;iponly=1' which will filter the listener information (if there are any) to just output&lt;br /&gt;
 the IP instead of the additional information provided normally.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=resetxml&amp;amp;sid=#'''  -  Will flush the held stream information to refresh it&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=kicksrc'''  -  Will allow you to kick the currently connected source for the specified stream.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unripdst&amp;amp;ripdst=&amp;lt;IP&amp;gt;'''  -  Where &amp;lt;IP&amp;gt; is the IP to reserve (see [[#Reserved_IP_.28RIP.29|section 4.11]] for more information).&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unbandst&amp;amp;bandst=&amp;lt;IP&amp;gt;.0&amp;amp;banmsk=0'''  -  Where &amp;lt;IP&amp;gt; is the first 3 parts of a subnet IP to unban.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unbandst&amp;amp;bandst=&amp;lt;IP&amp;gt;&amp;amp;banmsk=255'''  -  Where &amp;lt;IP&amp;gt; is that of a single IP to unban.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=rotate''' or '''admin.cgi?mode=rotate&amp;amp;files=log|w3c'''  -  This will rotate the log files set via the 'logfile', 'w3clog' and 'streamw3clog' options.&lt;br /&gt;
 If &amp;amp;files is specified then passing log or w3c will allow you to only&lt;br /&gt;
 rotate one type of file otherwise both will be rotated by this command.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=reload''' or '''admin.cgi?mode=reload&amp;amp;force=1'''  -  This reloads the stream configuration details in the main configuration file the server used when started and is only available on the admin summary page and so can only be run by the master administrator password.&lt;br /&gt;
&lt;br /&gt;
 This command works on the server as a whole (hence no sid parameter) and it will add or&lt;br /&gt;
 remove or update any stream configuration as applicable which will cause any connected&lt;br /&gt;
 sources and clients to be kicked as applicable (usually if a stream configuration was removed).&lt;br /&gt;
 &lt;br /&gt;
 This will recognise any configurations included via 'include' entries so you can have 'include=stream/*.conf'&lt;br /&gt;
 in your main configuration file which the server can then use to detect different stream configurations.&lt;br /&gt;
 &lt;br /&gt;
 If '&amp;amp;force=1' is passed then the reload will treat the updating of active stream configurations in the&lt;br /&gt;
 same manner as a stream configuration removal instead of trying to update compatible stream configuration&lt;br /&gt;
 details without resetting the stream '''e.g.''' not increasing the 'streammaxuser' when it could be increased.&lt;br /&gt;
 &lt;br /&gt;
 The following configuration options are updated when using this command:&lt;br /&gt;
 &lt;br /&gt;
     password or streampassword (*)            streamadminpassword (#)&lt;br /&gt;
     requirestreamconfigs                      streamid&lt;br /&gt;
     streamauthhash                            streampath&lt;br /&gt;
     streamrelayurl                            streammaxuser&lt;br /&gt;
     streampublicserver                        streamallowrelay&lt;br /&gt;
     streamallowpublicrelay                    streamriponly&lt;br /&gt;
     streamautodumpsourcetime                  streamautodumpusers&lt;br /&gt;
     streamlistenertime                        streamintrofile&lt;br /&gt;
     streambackupfile                          streambanfile&lt;br /&gt;
     streamripfile&lt;br /&gt;
 &lt;br /&gt;
 (*) This will depend upon the current values versus the new configuration values&lt;br /&gt;
 (#) The master 'adminpassword' can only be changed after a restart of the server&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XML Responses===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
As detailed in the previous sections, some of the administration actions will provide the information in an xml response. For information on what is actually returned in these xml responses see [[SHOUTcast_DNAS_Server_2_XML_Reponses|sc_serv2_xml_responses.txt]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stream Addresses==&lt;br /&gt;
&lt;br /&gt;
Clients connecting to the streams provided by sc_serv are able to so in a number of ways depending upon how the streams have been configured and also depending upon the number of streams you have available.&lt;br /&gt;
&lt;br /&gt;
The two main ways for a client to connect to a stream are as follows:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;serverurl&amp;gt;/stream/&amp;lt;streamid&amp;gt;/&lt;br /&gt;
or&lt;br /&gt;
 &amp;lt;serverurl&amp;gt;/&amp;lt;streampath&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;serverurl&amp;gt; is typically formed as &amp;lt;nowiki&amp;gt;http://dstip:portbase&amp;lt;/nowiki&amp;gt; (see sections [[#Client_Behaviour|4.2]] and [[#Networking|4.8]])&lt;br /&gt;
 &amp;lt;streamid&amp;gt; is the 'streamid' set from the stream configuration (see [[#Stream_Configuration|section 4.12]])&lt;br /&gt;
 &amp;lt;streampath&amp;gt; is the 'streampath' set from the stream configuration (see [[#Stream_Configuration|section 4.12]])&lt;br /&gt;
&lt;br /&gt;
If the client attempting to connect to the server instance does not specify &amp;lt;streampath&amp;gt; or &amp;lt;streamid&amp;gt; in the stream url it attempts to access or if only one stream is provided then the server will usually default to the first stream it knows about and will allow the client to make a valid connection (though this is not guaranteed to happen).&lt;br /&gt;
&lt;br /&gt;
This handling of the stream addresses provided is something to keep in mind especially if you are providing multiple streams as this will allow you to provide different addresses for certain clients to be able to use a specific stream '''e.g.''' if you wanted to have mobile clients connect to a lower bandwidth stream then you could direct them to '&amp;lt;serverurl&amp;gt;/mobile'&lt;br /&gt;
&lt;br /&gt;
The server options available for controlling how the stream's path is specified can be seen in [[#Stream_Configuration|section 4.12]] which also details the equivalent values needing to be set in the sc_trans configuration if you use sc_trans to provide a source to sc_serv.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Locale Error (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
If you receive the following error then you have a locale related issues:&lt;br /&gt;
&lt;br /&gt;
 terminate called after throwing an instance of 'std::runtime_error'&lt;br /&gt;
 what():  locale::facet::_S_create_c_locale name not valid&lt;br /&gt;
 Abort trap&lt;br /&gt;
&lt;br /&gt;
If this happens then you need to set the 'POSIX' locale in your terminal's environment values. If this does not happen then everything is fine or you are using a newer version of sc_serv from the end of 2010 which should no longer exhibit this issue.&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
BSD:&lt;br /&gt;
 setenv LC_ALL POSIX&lt;br /&gt;
&lt;br /&gt;
Mac OS X:&lt;br /&gt;
 export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
You can test to see if this has worked by checking the shell command &amp;quot;locale&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 LANG=&lt;br /&gt;
 LC_COLLATE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_CTYPE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_MESSAGES=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_MONETARY=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_NUMERIC=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_TIME=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_ALL=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Virtual Memory Footprint (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
Due to how sc_serv works it will create a large number of threads which may become an issue due to the default virtual memory stack allocation per thread potentially being large (typically 10MB per thread). For most people this should not be an issue as the memory is not really allocated unless it is used. If however if you have a resource constrained system or if you plan on running many copies of sc_trans then you could potentially run out of virtual memory.&lt;br /&gt;
&lt;br /&gt;
The default thread allocation can be reduced by issuing a &amp;quot;ulimit&amp;quot; command before running sc_trans and in the example reduces it to 512KB per-thread '''e.g.'''   ulimit -s 512&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Maximum Client Connection Limits==&lt;br /&gt;
&lt;br /&gt;
In general, there are inherent limits on the maximum number of client connections which may be made to a running instances of sc_serv which can either be set by configuration limits e.g. 'maxuser', Operating System limits or bandwidth limits being reached.&lt;br /&gt;
&lt;br /&gt;
The first two are easy to resolve whereas the last (bandwidth limits) is something which will usually require obtaining additional hosting or paying for more available bandwidth.&lt;br /&gt;
&lt;br /&gt;
If reaching the Operating System limit, this is usually indicated by the maximum number of clients never going above a fixed value even if there is the bandwidth and the server has been configured to go higher. This usually appears as around 1016 maximum connections (though this can vary a bit)&lt;br /&gt;
&lt;br /&gt;
If using a non-Windows Operating System then you can use the 'ulimit -n xxxx' command to change the upper limit from what is already set which can be found from just 'ulimit -n' e.g. to change the limit to 4096 connections you would run ulimit -n 4096&lt;br /&gt;
&lt;br /&gt;
If using a Windows Operating System then there isn't any real way to change such things due to the OS hopefully being configured with limits that will not be reached when using sc_serv. If in doubt then consult the Microsoft support documentation for the OS used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Configurations==&lt;br /&gt;
&lt;br /&gt;
Include as part of the sc_serv installation are a number of example configurations to get things started with using some of the features of the server. The provided examples are:&lt;br /&gt;
&lt;br /&gt;
 sc_serv_basic.conf&lt;br /&gt;
 sc_serv_public.conf&lt;br /&gt;
 sc_serv_relay.conf&lt;br /&gt;
 sc_serv_simple.conf&lt;br /&gt;
&lt;br /&gt;
All of the configuration examples are documented and will relate back to details in this file appropriately. You will need to change some details in these example files or to obtain any applicable authorisation keys for the setup you are making ([[#Getting_Started|see section 3.0]]). In all cases the examples are designed to work from the same install folder as sc_serv.&lt;br /&gt;
&lt;br /&gt;
Remember these examples are a way to get you up and running faster though you are still likely to have to adjust things depending upon the systems you are using and how you want to manage your sources and server connections which are covered in previous sections.&lt;br /&gt;
&lt;br /&gt;
Additionally if you are not happy with editing the files or find it still too confusing then you can use the configuration builder which (if installed) can be found in the 'config_builder'. Open 'config_builder.html' in your browser and then use this graphical tool to setup a configuration file for the server (and additionally the transcoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_basic===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This is the base configuration from which the other configuration examples are based and this will get a sc_serv instance running as a local setup with no connection made to the YP directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_public===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_serv_basic configuration to get a sc_serv instance running as a public setup with a connection made to the YP for listing the stream in the directory. This shows the use of the 'include' option (see section [[#Miscellaneous|4.7]]) and how specifying a configuration option twice uses the last value found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_relay===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_serv_public configuration to get a sc_serv instance running as a public setup with a source coming in from a relay server providing a SHOUTcast 2 stream.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_debug===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file can be included in any other configuration files to allow you to get debug logging output when trying to investigate any issues you may be experiencing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_simple===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Use this if you just need to get a very basic server running or are impatient&lt;br /&gt;
 or are struggling to get it running despite the previous example configurations.&lt;br /&gt;
&lt;br /&gt;
This configuration file is designed to be used just as is and is the simplest form of the configuration file you can have which will allow you to get a running server to appear on the YP. This works on using the default settings of the server though does change some of the file paths inorder to fit in with the existing setup as used in the other examples.&lt;br /&gt;
&lt;br /&gt;
All you need to do when using this configuration file is to enter your authorisation key in the 'streamauthhash' line '''e.g.''' if your authorisation key is '''123456789''' then you change ''streamauthhash=&amp;lt;enter_your_auth_key_here&amp;gt;'' to ''streamauthhash='''123456789''''' and save the file.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Server_2</id>
		<title>SHOUTcast DNAS Server 2</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Server_2"/>
				<updated>2020-01-28T16:16:23Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Stream Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
The purpose of this document is to show you the different configuration options supported by sc_serv along with basic and more advanced example configurations to enable you to get started with using sc_serv and the features it can offer.&lt;br /&gt;
&lt;br /&gt;
The aim of sc_serv is to provide enhanced serving features and also access to the new YP2 infrastructure whilst maintaining as much backward compatibility with previous versions of sc_serv as possible. The new features introduced include:&lt;br /&gt;
&lt;br /&gt;
# Serving multiple streams from a single server instance&lt;br /&gt;
# Relaying multiple streams from a single server instance&lt;br /&gt;
# Multiplexing all server activity through a single IP port&lt;br /&gt;
# SHOUTcast 2 wire protocol support for sources, relays and clients&lt;br /&gt;
# Repackaging of SHOUTcast 1 and SHOUTcast 2 data as needed for connected clients&lt;br /&gt;
# YP2 infrastructure support&lt;br /&gt;
# Real-time metadata and statistic reporting&lt;br /&gt;
# Static station id support&lt;br /&gt;
# In-stream metadata in standardised xml files&lt;br /&gt;
# UTF-8 and international character encoding&lt;br /&gt;
# Improved server and stream security&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview of Features==&lt;br /&gt;
&lt;br /&gt;
To take full advantage of the newer features provided as part of the SHOUTcast 2 and YP2 systems then you will need to ensure you are using a compatible version of sc_serv (any version 2 will work) and that you have the required authorisation key to register as a broadcaster on the YP2 directory (see [[#Getting_Started|section 3.0]]).&lt;br /&gt;
&lt;br /&gt;
If you were intending on taking full advantage of the multiplexing and multiple stream support offered as part of sc_serv then you would need to make sure you enable the SHOUTcast 2 options (this is enabled by default with server builds from the end of 2010 if the 'yp2' option in the configuration file is not specified [see [[#YP_Server_Behaviour|section 4.14]] ). The reason for needing to enable this support is if you try to do it with the original SHOUTcast 1 protocol then it will not work as the original protocol has no means of expressing multiple streams from a single port due to the lack of an identifier provided for them.&lt;br /&gt;
&lt;br /&gt;
If you are planning on connecting multiple sc_trans instances to sc_serv then you must use the SHOUTcast 2 protocol support so that each sc_trans instance can have a unique identifier which allows for multiple streams to then be provided from a single server. It is still possible for an older source to connect to the server with a number of config options available to support this though functionality will be limited compared to what can be done with a fully supporting SHOUTcast 2 source.&lt;br /&gt;
&lt;br /&gt;
Finally clients connecting to your server do not need to directly support SHOUTcast 2 as sc_serv will repackage the stream data and any related metadata into the correct format the client requests (typically based on the user agent detected by the server).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
&lt;br /&gt;
One of the key aspects of the new YP2 directory infrastructure is an authorisation key which is used to validate your server when it tries to connect to the YP2 infrastructure for any of the station(s) you run. Once this key is obtained, it will be valid for all root servers of the station being broadcast.&lt;br /&gt;
&lt;br /&gt;
This can be done by going to the [[SHOUTcast_Authhash_Management|SHOUTcast Authhash Management]] page which shows how to do this via the 'Administation Summary' page as long as a valid source has been connected to the server. This process automatically updates your configuration file(s) with the new authhash and if the stream is set to be public then will attempt to get the stream listed in the SHOUTcast Radio Directory.&lt;br /&gt;
&lt;br /&gt;
When using an older SHOUTcast 1 server then you do not need to do this registration and the server will still be able to be listed on the directory but there is not the same level of protection over the stream as is the case with registering it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Running the Server===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The server is able to be run either as a console application or it can be run as service (Windows) or daemon (Linux / Mac OS X / BSD). Detailed below is how to get the server running on the different operating systems supported by it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The Windows version of sc_serv is designed to run on fully updated and patched versions of Windows 2000, XP, Vista and Windows 7, 8 &amp;amp; 10.&lt;br /&gt;
&lt;br /&gt;
Please note that the Windows versions of sc_serv are built with a dependency against the Microsoft Visual C++ 2008 SP1 Redistributable Package. If sc_serv is unable to start due to a dependency issue then you will need to install the correct version of the package so it can run which depends on the version of sc_serv you are attempting to run:&lt;br /&gt;
&lt;br /&gt;
32-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&lt;br /&gt;
&lt;br /&gt;
64-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ba9257ca-337f-4b40-8c14-157cfdffee4e&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Install as a Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe install &amp;lt;servicename&amp;gt; &amp;lt;username&amp;gt; &amp;lt;password&amp;gt; &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service&lt;br /&gt;
 Typically enter this as 'sc_serv' though you can use a different name but you will need&lt;br /&gt;
 to remember it as it is required to be the same when using the 'uninstall' mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;username&amp;gt; - User under which to run the service as or '0' for the local system&lt;br /&gt;
&lt;br /&gt;
&amp;lt;password&amp;gt; - Password for user or '0' for the local system or with no password&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
When run as a service there is not a good sense of a current working directory so requires all paths in the configuration and playlist files to be fully qualified otherwise lookups will fail when sc_serv is run.&lt;br /&gt;
&lt;br /&gt;
To run sc_serv with a configuration file in the same folder as the server as the current system user account you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_serv.exe install sc_serv 0 0 sc_serv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Uninstall the Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe uninstall &amp;lt;servicename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service as used when the service was registered&lt;br /&gt;
&lt;br /&gt;
To uninstall sc_serv assuming it was installed as detailed in the install section above then you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_serv.exe uninstall sc_serv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Service in the Console====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
===Linux / Mac OS X / BSD===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Remember to enable the required access on the sc_trans file by doing 'chmod a+x sc_trans' after extracting it from the distribution file otherwise the OS is likely to not run it and show the error message './sc_serv: Permission denied'.&lt;br /&gt;
&lt;br /&gt;
====Run as a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_serv daemon &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (required in all cases)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
'''e.g.'''&lt;br /&gt;
 ./sc_serv daemon ./sc_serv.conf&lt;br /&gt;
&lt;br /&gt;
When run this should output the following:&lt;br /&gt;
&lt;br /&gt;
'sc_serv going daemon with PID [XXXX]' where XXXX is the &amp;lt;pid&amp;gt; of the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====End a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
kill -SIGTERM &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -15 &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -s TERM &amp;lt;pid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pid&amp;gt; - The PID of the daemon instance (reported when the daemon started or can be found with 'ps ax | grep sc_serv' as long as sc_serv was the file run otherwise you can just use 'ps ax' if the filename isn't known). Additionally the PID of sc_serv is listed in the log file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_serv &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Additional Signals===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
When run on Linux / Mac OS X / BSD then some additional signals are supported to allow for additional control over the running daemon instance of sc_serv.&lt;br /&gt;
&lt;br /&gt;
The following signals can be used with the 'kill' command (in the manner of your choosing for using the kill command) along with the &amp;lt;pid&amp;gt; of the daemon instance to do one of the following actions:&lt;br /&gt;
&lt;br /&gt;
    SIGKILL   -  Stops sc_trans (also SIGTERM, SIGINT and SIGQUIT will work)&lt;br /&gt;
    SIGHUP    -  Rotates logfile, w3clog and streamw3clog&lt;br /&gt;
&lt;br /&gt;
The result of SIGHUP is that the current log file contents will be moved into &amp;lt;logfile&amp;gt;_1 e.g. sc_serv_1.log, &amp;lt;logfile&amp;gt;_1 will be moved into &amp;lt;logfile&amp;gt;_2 e.g. sc_serv_2.log and so on for all log files which can be found which match the current log file's name. This is useful if timed to have it create day specific log files.&lt;br /&gt;
&lt;br /&gt;
 These signals are not supported by the Windows version of sc_serv which will only&lt;br /&gt;
 respond to the Ctrl + C / Ctrl + Break / console close commands the OS provides.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration File==&lt;br /&gt;
&lt;br /&gt;
Here you can find a complete list of all of the configuration options which are provided by sc_serv which ranges from logging to networking configuration and control over the media being used when streaming via the server.&lt;br /&gt;
&lt;br /&gt;
Configuration entries labelled as ''&amp;lt;MULTI&amp;gt;'' can be used to set up simultaneous connections to the server or allow for multiple connections from various sources. These are specified by adding _# to the end of the option's name as shown below where # begins with one. If you are only working with a single instance then you do not need to add the _# part as any instances of a configuration option will assume it is for _1.&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;MULTI&amp;gt;'' system is not hierarchical and all values beyond the default must be specified for all connections. So for example, if you wanted to connect to two servers on the same port you must do:&lt;br /&gt;
&lt;br /&gt;
    serverport_1=8080&lt;br /&gt;
    serverport_2=8080&lt;br /&gt;
    serverip_1=www.server1.com&lt;br /&gt;
    serverip_2=www.server2.com&lt;br /&gt;
&lt;br /&gt;
Note that you CANNOT do it like this as it leads to not all values being set:&lt;br /&gt;
&lt;br /&gt;
    serverport=8080&lt;br /&gt;
    serverip_1=www.server1.com&lt;br /&gt;
    serverip_2=www.server2.com&lt;br /&gt;
&lt;br /&gt;
The configuration files also allow for comments/notes or options to be disabled by the use of a semi-colon (''';''') or a left bracket ('''[''') or the hash / pound symbol ('''#''') at the start of a line which can be seen in all of the configuration examples.&lt;br /&gt;
&lt;br /&gt;
Known options in the configuration files are recognised irrespective of the case they are entered in the configuration file so maxuser and MaXuSer will be handled the same way.&lt;br /&gt;
&lt;br /&gt;
Any items found in the configuration file which are not known (as detailed in following sections) or is not processed as a comment will be reported in the following manner:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;date + time&amp;gt; W msg:[CONFIG] Invalid item on line XX&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;date + time&amp;gt; is the date and time the event happens at and XX is the line in the configuration file where the error has been found to occur at.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Banning===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''banfile''' : File to store the list of banned IP addresses    ''[Default = sc_serv.ban]''&lt;br /&gt;
&lt;br /&gt;
'''savebanlistonexit''' : Re-write the 'banfile' on server exit    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the file into then you need to ensure that the&lt;br /&gt;
 folder already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Client Behaviour===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''maxuser''' : Specify the maximum number of clients allowed to connect to the server    ''[Default = 32]''&lt;br /&gt;
 This is used in conjunction with 'streammaxuser' (see [[#Stream_Configuration|section 4.12]]) to control the&lt;br /&gt;
 maximum limit on the number of client connections allowed to connect to the server instance.&lt;br /&gt;
&lt;br /&gt;
'''listenertime''' : Specify the maximum time in minutes a client can listen to the stream    ''[Default = 0]''&lt;br /&gt;
 A value of zero means there will be no time limit.&lt;br /&gt;
&lt;br /&gt;
'''autodumpusers''' : Enable to allow the server to disconnect clients if the source disconnects    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''srcip''' : Specify the server side binding address for sources to connect on    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''dstip''' or '''destip''' or '''publicip''' : Specify the server side binding address for clients    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
 If 'any' or no value is specified then sc_serv listens to all addresses.&lt;br /&gt;
&lt;br /&gt;
If you specify a value for 'dstip / destip' then this will be used by the listen feature on the Administration Pages (see section 5.1) so it can provide a valid stream url in the generated playlist. If 'dstip / destip' is not specified then the server will attempt to auto-generate the IP required for the client to be able to connect. If this fails the generated playlist is likely to return a stream url like &amp;lt;nowiki&amp;gt;http://0.0.0.0:&amp;lt;portbase&amp;gt;/&amp;lt;path&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The IP provided needs to be in a valid format like &amp;lt;nowiki&amp;gt;http://&amp;lt;my-ip&amp;gt;&amp;lt;/nowiki&amp;gt; or an address which can be resolved to an IP otherwise the internal lookups done are likely to fail (depends upon the server configuration and OS being used). Also you cannot set srcip and dstip / destip to be the same IP value and if this happens then the server will close. Closing of the server will also happen if the IP cannot be resolved or correctly bound to i.e. server is not there or an invalid value was entered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''titleformat''' : Specify a string to be used in-place of the default icy-name string being used    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''urlformat''' : Specify a string to be used in-place of the default icy-url string being used    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''  '''&lt;br /&gt;
'''  '''&lt;br /&gt;
&lt;br /&gt;
===Debugging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In all cases, the default value is for no debug logging for the options listed below.&lt;br /&gt;
&lt;br /&gt;
'''yp1debug''' : Enable debug logging of YP connections&lt;br /&gt;
&lt;br /&gt;
'''yp2debug''' : Enable debug logging of YP2 connections&lt;br /&gt;
&lt;br /&gt;
'''shoutcastsourcedebug''' : Enable debug logging of SHOUTcast source connections&lt;br /&gt;
&lt;br /&gt;
'''uvox2sourcedebug''' : Enable debug logging of SHOUTcast 2 source connections&lt;br /&gt;
&lt;br /&gt;
'''shoutcast1clientdebug''' : Enable debug logging of SHOUTcast streaming clients&lt;br /&gt;
&lt;br /&gt;
'''shoutcast2clientdebug''' : Enable debug logging of SHOUTcast 2 streaming clients&lt;br /&gt;
&lt;br /&gt;
'''relayshoutcastdebug''' : Enable debug logging for SHOUTcast relays&lt;br /&gt;
&lt;br /&gt;
'''relayuvoxdebug''' : Enable debug logging for SHOUTcast 2 relays&lt;br /&gt;
&lt;br /&gt;
'''relaydebug''' : Enable debug logging of common relay code&lt;br /&gt;
&lt;br /&gt;
'''streamdatadebug''' : Enable debug logging of common streaming code&lt;br /&gt;
&lt;br /&gt;
'''httpstyledebug''' : Enable debug logging of http style requests&lt;br /&gt;
&lt;br /&gt;
'''statsdebug''' : Enable debug logging of statistics&lt;br /&gt;
&lt;br /&gt;
'''microserverdebug''' : Enable debug logging of common server activity&lt;br /&gt;
&lt;br /&gt;
'''threadrunnerdebug''' : Enable debug logging of the thread manager&lt;br /&gt;
&lt;br /&gt;
'''rtmpclientdebug''' : Enable debug logging of rtmp clients&lt;br /&gt;
&lt;br /&gt;
'''admetricsdebug''' : Enable debug logging of ad metrics (v2.5 and newer)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' '''&lt;br /&gt;
''' '''&lt;br /&gt;
&lt;br /&gt;
===Flash Security===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''flashpolicyfile''' : Name of file containing flash crossdomain policies on the server    ''[Default = crossdomain.xml]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Introduction and Backup Files===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Note that intro and backup audio files must precisely match the format and bitrate for the stream! If they do not match, there will be a break in the stream and the listener will be disconnected. &lt;br /&gt;
&lt;br /&gt;
'''introfile''' : File to play when a client first connects to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: This is used globally and also is default for stream #1 on DNAS versions greater than 2.0. To apply a specific intro file to a stream, use streamintrofile_X. &lt;br /&gt;
&lt;br /&gt;
'''streamintrofile_X''' : File to play when a client first connects to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''backupfile''' : File to play if the source disconnects from the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: This is used globally and also is default for stream #1 on DNAS versions greater than 2.0. To apply a specific backup file to a stream, use streambackupfile_X. &lt;br /&gt;
&lt;br /&gt;
'''streambackupfile_X''' : assigns a specific backup file to a streamID X [Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''streambackupurl_X''' : assigns a specific backup stream to a streamID X (v2.6 Premium feature)''&lt;br /&gt;
&lt;br /&gt;
'''specialfiletmpdir''' : place to store intro and backup files uploaded by sc_trans    ''[Default = /tmp/ (*nix only)]''&lt;br /&gt;
&lt;br /&gt;
'''maxspecialfilesize''' : Change the maximum size in bytes of the backup and intro files    ''[Default = 30000000]''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''log''' : Enable logging of the servers output    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''screenlog''' :  Enable logging of servers output to the console    ''[Default = 1]''&lt;br /&gt;
 If log=0 then this option is ignored due to no logging happening.&lt;br /&gt;
&lt;br /&gt;
'''logfile''' : Specify a different logfile to save the logs into ''[Default = %temp%\sc_serv.log or /tmp/sc_serv.log]''&lt;br /&gt;
&lt;br /&gt;
'''logclients''' : Enable logging of details about client connections and disconnections made ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the logs into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''configrewrite''' :  Re-write the 'config file' on server exit    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''songhistory''' : Specify the maximum song history to preserve    ''[Default = 10]''&lt;br /&gt;
&lt;br /&gt;
'''cpucount''' : Specify the number of cpu's present instead of the calculated number if non-zero    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''unique''' : Specify a substitution string for the '$' character to be used when processing filenames which if specified will set any occurences of '$' to the value set. This will be used in the processing of the following filenames: '''logfile''', '''introfile''', '''streamintrofile''', '''backupfile''', '''streambackupfile''', '''banfile''', '''streambanfile''', '''ripfile''', '''streamripfile''', '''include''', '''w3clog''', '''streamw3clog'''&lt;br /&gt;
&lt;br /&gt;
 So when 'unique' is changed from '$' to say 'test' then the following happens if 'logfile' is&lt;br /&gt;
 set to '/usr/local/shoutcast/$.log' then this would be converted to '/usr/local/shoutcast/test.log'&lt;br /&gt;
&lt;br /&gt;
'''include''' : Specify an additional include file containing settings to be processed from the current point in the main configuration file    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
You can do multiple calls of this allowing for a basic configuration file with then 'specific' stream configurations set in individual conf files though you need to ensure not to include a reference to the same file in itself.&lt;br /&gt;
&lt;br /&gt;
You can also specify a path with a wildcard for sc_serv to use to find multiple configuration files to include '''e.g.''' 'include=stream/*.conf'.  This can then be used along with the multiple stream configurations (see section 4.12) and the admin command 'admin.cgi?mode=reload' (see section 5.1) to add / remove / update stream configurations without having to close the server to apply them.&lt;br /&gt;
&lt;br /&gt;
'''admincssfile''' : Specify the css styling to be used on the index.html and admin pages    ''[Default = v2]''&lt;br /&gt;
&lt;br /&gt;
This can accept the following parameters:&lt;br /&gt;
&lt;br /&gt;
:admincssfile='''v1'''  -  Uses the v1 DNAS style&lt;br /&gt;
:admincssfile='''v2'''  -  Uses the newer SHOUTcast 2 style&lt;br /&gt;
:admincssfile='''path_to_local_css_file'''  e.g. my_index.css&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 If using a custom css file, if it does not exist on the first try to load it the server will revert to&lt;br /&gt;
 the default css style. As well the style is cached once loaded so changes require a restart of sc_serv.&lt;br /&gt;
&lt;br /&gt;
'''faviconfile''' : Specify the file to be returned as the favicon.ico when the administration pages are being queried by the client's browser    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
The default behaviour is to use a SHOUTcast themed built-in icon file and support / handling the update of this will entirely depend on the browser.&lt;br /&gt;
&lt;br /&gt;
'''faviconmimetype''' : Specify the mime type for actual file to be served in the favicon.ico response    ''[Default = image/x-icon]''&lt;br /&gt;
&lt;br /&gt;
Ensure this is correct for the type of image being used so it is valid.&lt;br /&gt;
&lt;br /&gt;
'''hidestats''' : Specify if the publically accessible stats?sid=# page can be accessed or if it is only available via the private administration pages   ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''robotstxtfile''' : Specify the file to be returned as the robots.txt when queried by search engines, etc to attempt to prevent incorrect access to the server's pages which may cause invalid client connections    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
The default behaviour is to return a robots.txt reponse indicating not to look at any of the server's pages i.e.&lt;br /&gt;
::User-agent:*&lt;br /&gt;
::Disallow:/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Networking===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''namelookups''' : Enable to allow reverse DNS look-ups on incoming IP addresses    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''portbase''' : Specify the port which clients and sources need to use to connect to the server    ''[Default = 8000]''&lt;br /&gt;
 SHOUTcast 1 sources are only able to connect to 'portbase + 1'.&lt;br /&gt;
&lt;br /&gt;
'''autodumpsourcetime''' : Specify how long before an idle source is dumped from the server (in seconds)    ''[Default: 30]''&lt;br /&gt;
 A value of zero means there is no timeout of an idle source.&lt;br /&gt;
 Also if you set this too low then it is likely that valid sources will&lt;br /&gt;
 fail to connect during the initial stages of a source connection.&lt;br /&gt;
&lt;br /&gt;
'''maxheaderlinesize''' : Specify the maximum size of an HTTP header line    ''[Default = 2048]''&lt;br /&gt;
&lt;br /&gt;
'''maxheaderlinecount''' : Specify the maximum header lines in an HTTP style exchange    ''[Default = 100]''&lt;br /&gt;
&lt;br /&gt;
'''adminpassword''' : Specify the administrator password for accessing the remote server features    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''password''' : Specify the password for broadcasters when connecting to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
 This matches the 'uvoxauth' value in the sc_trans configuration file (see [[SHOUTcast_DNAS_Transcoder_2#Network_Options|sc_trans.txt - section 3.11]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Network Buffers===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''buffertype''' : Specify whether the buffer size is fixed [0] or adaptive [1]    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''adaptivebuffersize''' : Specify the buffer size in seconds if buffer is set to adaptive    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''fixedbuffersize''' : Specify the buffer size in bytes if the buffer is set to fixed    ''[Default = 1048576]''&lt;br /&gt;
&lt;br /&gt;
'''bufferhardlimit''' : Specify the maximum buffer size in bytes which it can never go above    ''[Default = 16777216]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Relaying===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''allowrelay''' : Enable to allow a relay to connect to the server    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''allowpublicrelay''' : Enable to allow relays to list themselves in the YP directory    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''relayreconnecttime''' : Specify how many seconds to wait to reconnect on a relay failure    ''[Default = 30]''&lt;br /&gt;
 Setting this to 0 will disable attempts for the relay to reconnect.&lt;br /&gt;
&lt;br /&gt;
'''relayconnectretries''' : Specify the number of times relays are attempted to be connected to if it is initially unable to connect    ''[Default = 3]''&lt;br /&gt;
 This generally applies only to YP1 connections and is related to the&lt;br /&gt;
 actual attempts to make and get a http response from the YP server.&lt;br /&gt;
&lt;br /&gt;
'''maxhttpredirects''' : Specify the maximum number of times we can redirect when relaying    ''[Default = 5]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;Legacy Options&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
'''relayport''' : Port of the source to use for the relay    ''[Default: 80]''&lt;br /&gt;
&lt;br /&gt;
'''relayserver''' : Url of the source to relay    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
 Using the stream configuration options (see [[#Stream_Configuration|section 4.12]]) is the preferred method&lt;br /&gt;
 of setting up a relay. These options are only provided as a means for loading&lt;br /&gt;
 legacy configuration files. If found then these are mapped to 'streamrelayurl_1'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Reserved List===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''ripfile''' : File to store the list of reserved IP addresses    ''[Default = sc_serv.rip]''&lt;br /&gt;
&lt;br /&gt;
'''saveriplistonexist''' : Re-write the 'ripfile' on server exit    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''riponly''' : Only allow connections to be made from reserved IP addresses    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the file into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Stream Configuration===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Important Note:''' If you do not specify an identifier (_#) on the end of the above options then it will be treated like _1 (effectively acting like SHOUTcast 1). Additionally, _0 is not a supported identifier and will be mapped to _1.&lt;br /&gt;
&lt;br /&gt;
'''requirestreamconfigs''' : Only allow sources to connect if a stream configuration has been set in your configuration file    ''[Default = 0]''&lt;br /&gt;
 With this enabled, you will need to ensure that any sources have their configuration details&lt;br /&gt;
 setup to match those in sc_trans's configuration, in particular the 'uvoxstreamid' value with&lt;br /&gt;
 sc_trans (see [[SHOUTcast_DNAS_Transcoder_2#Network_Options|sc_trans.txt - section 3.11]]).&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each stream configuration):&lt;br /&gt;
&lt;br /&gt;
'''streamid''' : Specify the numerical identifier of the stream for control or referencing the stream configuration. This can only be a numeric value from 1 to 2147483647.&lt;br /&gt;
&lt;br /&gt;
 If you use multiple stream configurations then you will need to ensure the _X&lt;br /&gt;
 part is specified and correct for each stream configuration group&lt;br /&gt;
 e.g.&lt;br /&gt;
   streamid=1&lt;br /&gt;
   streampath=random&lt;br /&gt;
     or&lt;br /&gt;
   streamid_1=1&lt;br /&gt;
   streampath_1=random_stream_path&lt;br /&gt;
   streamid_2=2&lt;br /&gt;
   streampath_2=another_stream_path&lt;br /&gt;
&lt;br /&gt;
'''streamauthhash''' : The authorisation key needed for YP2 directory registration.&lt;br /&gt;
 This is a requirement for using the YP2 system and without it you will not be able to&lt;br /&gt;
 successfully connect to the YP2 directory (see [[#Getting_Started|section 3.0]]).&lt;br /&gt;
 &lt;br /&gt;
 This can be used for multiple streams you are providing or can be different (as long&lt;br /&gt;
 as valid) so you can infact provide multiple stations from the same server if desired.&lt;br /&gt;
&lt;br /&gt;
'''streampath''' : Specify the path clients need to use to access the stream&lt;br /&gt;
 If a / is not specified on the start of the string then the server will add&lt;br /&gt;
 it to the generated path in playlist entries or other places as required so&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://&amp;lt;serverurl&amp;gt;/&amp;lt;streampath&amp;gt;&amp;lt;/nowiki&amp;gt; will work so clients are able to connect.&lt;br /&gt;
 streampath is the mountpoint, e.g. streampath_1=mystation would result in ip:port/mystation&lt;br /&gt;
 &lt;br /&gt;
 If this is not specified then &amp;lt;nowiki&amp;gt;http://&amp;lt;serverurl&amp;gt;/stream/&amp;lt;streamid&amp;gt;/&amp;lt;/nowiki&amp;gt; will be&lt;br /&gt;
 used for client access and in generated playlist entries so that it will&lt;br /&gt;
 always be possible for clients to connect to the server somehow. See [[SHOUTcast_DNAS_Server_2#Stream_Addresses|section 6.0]] for more information on the&lt;br /&gt;
 server's stream address support.&lt;br /&gt;
&lt;br /&gt;
'''streamrelayurl''' : Specify the full url of source to relay (if this is a relay).&lt;br /&gt;
 Make sure if you use this that the full url is entered and that it is&lt;br /&gt;
 the url which clients would connect to for the stream to be relayed.&lt;br /&gt;
&lt;br /&gt;
'''streammaxuser''' : Specify the maximum number of clients allowed to connect to the stream    ''[Default = 0]''&lt;br /&gt;
If set to zero, not specified or higher than 'maxuser' then the value set for 'maxuser' (see [[#Client_Behaviour|section 4.2]]) will be used for all known streams.&lt;br /&gt;
&lt;br /&gt;
Changing this to a value between zero and 'maxuser' will enforce the user connection limit for the specified value in the stream configuration '''e.g.'''&lt;br /&gt;
 streammaxuser_1 = 8&lt;br /&gt;
 maxuser = 32&lt;br /&gt;
&lt;br /&gt;
This allows a total of 32 connections to the server but specifies the maximum number of connections to the first stream configuration is 8.&lt;br /&gt;
&lt;br /&gt;
With the following stream configuration&lt;br /&gt;
 streammaxuser_1 = 64&lt;br /&gt;
 maxuser = 32&lt;br /&gt;
&lt;br /&gt;
This allows a total of 32 connections to the server but with a per stream limit above the maximum means the maximum number of connections to the first stream group will be 32. However this also depends upon any other stream configurations and their limits as to whether 32 clients will be able to connect to this stream configuration.&lt;br /&gt;
&lt;br /&gt;
Finally unless a valid stream configuration is specified then this value will only be applied to the first stream configuration found i.e. there is a need to specify a streamid_XXX for streammaxuser_XXX (where XXX is the stream identifier of the stream configuration group.&lt;br /&gt;
&lt;br /&gt;
'''streamadminpassword''' : Specify the administrator password for accessing the remote server features for the specified stream configuration group. If this is not specified then 'adminpassword' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streampassword''' : Specify the password for broadcasters when connecting to the server for the specified stream configuration group. If this is not specified then 'password' will be used.&lt;br /&gt;
 This matches the 'uvoxauth' value in the sc_trans configuration file (see sc_trans.txt - section 3.11).&lt;br /&gt;
&lt;br /&gt;
'''streampublicserver''' : This allows you to override the public flag received from the source when a connection is being made to the YP directory. If this is not specified or is set to empty then 'publicserver' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamallowrelay''' : Enable to allow a relay to connect to the server. If this is not specified then 'allowrelay' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamallowpublicrelay''' : Enable to allow relays to list themselves in the YP directory. If this is not specified then 'allowpublicrelay' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamriponly''' : Enable to only allow connections to be made from reserved IP addresses. If this is not specified then 'riponly' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamautodumpsourcetime''' : Specify how long before an idle source will be dumped from the server (in seconds). A value of zero means there is no timeout of an idle source. If not specified then 'autodumpsourcetime' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamautodumpusers''' : Enable to allow the server to disconnect clients if the source disconnects. If not specified then 'autodumpusers' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamlistenertime''' : Specify the maximum time in minutes a client is allowed to listen to the stream. A value of zero means there will be no time limit. If not specified then 'listenertime' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamintrofile''' : File to play when a client first connects to the server. If this is not specified then 'introfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streambackupfile''' : File to play if the source disconnects from the server. If this is not specified then 'backupfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streammovedurl_X''' : redirects a permanently stopped or moved stream to a different working stream url.&lt;br /&gt;
&lt;br /&gt;
'''streambanfile''' : File to store the list of banned IP addresses. If this is not specified then 'banfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamripfile''' : File to store the list of banned IP addresses. If this is not specified then 'ripfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamw3clog''' : File to store the web connections logs into. If this is not specified then 'w3clog' will be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''DNAS v2.6 and newer'''&lt;br /&gt;
&lt;br /&gt;
'''sslCertificateFile''' : For https:// streams, specify .crt file e.g. sslCertificateFile=/path/to/ssl.crt&lt;br /&gt;
&lt;br /&gt;
'''sslCertificateKeyFile''' : specify key file, e.g. sslCertificateKeyFile=/path/to/key.pem&lt;br /&gt;
&lt;br /&gt;
 Put the whole certificate chain in the .crt file, and only the key in the .key file&lt;br /&gt;
 Note: Requires Premium subscription to unlock Premium features.&lt;br /&gt;
 SSL Cert needs to be assigned to a DNS e.g. stream.mysite.com&lt;br /&gt;
 Be sure to also add destip=stream.mysite.com and/or publicip= and alternateports=443 lines to DNAS config file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' '''&lt;br /&gt;
&lt;br /&gt;
===Web Connection (W3C) Logging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''w3cenable''' : Enable logging of web connections to describe the duration a client has listened to a specific title    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''w3clog''' : File to store the web connections logs into    ''[Default = sc_w3c.log]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the log into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
'''webclientdebug''' : Enable logging of web client connections    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===YP Server Behaviour===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''uvoxcipherkey''' : Specify the key used to obfuscate the initial handshaking with the source    ''[Default = foobar]''&lt;br /&gt;
 This is a SHOUTcast 2 only feature and it matches the 'djcipher' value in the sc_trans&lt;br /&gt;
 configuration file (see [[SHOUTcast_DNAS_Transcoder_2#DJ_Support|sc_trans.txt - section 3.3]]).&lt;br /&gt;
&lt;br /&gt;
Only change this if you really need to do so as not all SHOUTcast 2 clients will allow you to edit this value from the default value. If using the Source DSP plug-in then see [[Source_DSP_Plug-in#SHOUTcast_2_Cipher_Key|dsp_sc.txt - section 5.0]] for details on how to change the plug-in to use a differnet value.&lt;br /&gt;
&lt;br /&gt;
'''metainterval''' : Specify the metadata transmission interval in bytes    ''[Default = 8192]''&lt;br /&gt;
 YP1 only&lt;br /&gt;
&lt;br /&gt;
'''yp2''' : Enable to use the SHOUTcast 2 protocol and related server features for access to the YP2 directory    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
If this is enabled and not all of the required values are set then the server will throw an error and will abort from its start-up attempt. It should be indicated what needs to be set to allow the server to start with this set.&lt;br /&gt;
&lt;br /&gt;
Additionally if there is an issue then the server will report an error in its log ouput of 'Connection attempt failed. YP2 error code is XXX (&amp;lt;message&amp;gt;)' where XXX is one of the following error codes and &amp;lt;message&amp;gt; is a message set in the error response to indicate a bit more what the error relates to. All current error codes can be found [[#YP_Server_Errors|here]].&lt;br /&gt;
&lt;br /&gt;
'''ypaddr''' : Allows you to specify a different YP server if required    ''[Default = yp.shoutcast.com]''&lt;br /&gt;
&lt;br /&gt;
'''ypport''' : Allows you to specify the port of the YP server if required    ''[Default = 80]''&lt;br /&gt;
&lt;br /&gt;
'''ypPath''' : Allows you to specify the path to YP2 services on the server    ''[Default = /yp2]''&lt;br /&gt;
&lt;br /&gt;
'''ypTimeout''' : Specify the timeout interval in seconds for requests made to the YP server    ''[Default = 60]''&lt;br /&gt;
&lt;br /&gt;
'''ypmaxretries''' : Specify the maximum number of times a YP request will be attempted    ''[Default = 10]''&lt;br /&gt;
 This generally applies only to YP1 connections and is related to the&lt;br /&gt;
 actual attempts to make and get a http response from the YP server.&lt;br /&gt;
&lt;br /&gt;
'''ypreportinterval''' : Specify the maximum time in which the YP must have contacted our server in seconds    ''[Default = 300]''&lt;br /&gt;
&lt;br /&gt;
'''ypminreportinterval''' : Specify the minimum time in which the YP can contact our server in seconds    ''[Default = 10]''&lt;br /&gt;
&lt;br /&gt;
'''publicserver''' : This allows you to override the public flag from the connected source when a connection is being made to the YP directory    ''[Default = default]''&lt;br /&gt;
This can be one of the following values:&lt;br /&gt;
 '''default''' - use the flag provided by the source&lt;br /&gt;
 '''always''' - force the source to be public&lt;br /&gt;
 '''never''' - never allow the use the flag provided by the source&lt;br /&gt;
&lt;br /&gt;
When using sc_trans this would match with the 'public' value (see [[SHOUTcast_DNAS_Transcoder_2#Metadata_Control|sc_trans.txt - section 3.8]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===YP Server Errors===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If not all of the required values are set for a public listing then the DNAS server will throw an error and will abort its attempt to be listed in the Directory. It should be indicated the error is with one of the error codes provided below so it can be resolved.&lt;br /&gt;
&lt;br /&gt;
Additionally if there is an issue during Directory updates or removals, then the server will report an error in its log ouput as one of the following error codes and &amp;lt;message&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status Code&lt;br /&gt;
! Status Message&lt;br /&gt;
|-&lt;br /&gt;
| 400 || Generic error ''(covers all other cases usually from internal failures)''&lt;br /&gt;
|-&lt;br /&gt;
| 457 || Unrecoverable error while updating station information - DNAS restart required.&lt;br /&gt;
|-&lt;br /&gt;
| 470 || Invalid authorization hash&lt;br /&gt;
|-&lt;br /&gt;
| 471 || Invalid stream type (could be a bad bitrate or mime type)&lt;br /&gt;
|-&lt;br /&gt;
| 472 || Missing or invalid stream url&lt;br /&gt;
|-&lt;br /&gt;
| 473 || Server unreachable by YP&lt;br /&gt;
|-&lt;br /&gt;
| 474 || Relay url does not exist&lt;br /&gt;
|-&lt;br /&gt;
| 475 || Invalid server ID&lt;br /&gt;
|-&lt;br /&gt;
| 476 || Invalid max clients (value out of range or missing)&lt;br /&gt;
|-&lt;br /&gt;
| 477 || Terms of Service violator.  You are being reported.&lt;br /&gt;
|-&lt;br /&gt;
| 478 || Incompatible protocol.&lt;br /&gt;
|-&lt;br /&gt;
| 479 || Streams requiring authorization are not public and cannot list here.&lt;br /&gt;
|-&lt;br /&gt;
| 480 || Cannot see your station/computer (URL: &amp;lt;streamurl&amp;gt;) from the Internet, disable Internet Sharing/NAT/firewall/ISP cache.&lt;br /&gt;
|-&lt;br /&gt;
| 481 || Cannot verify server since all listener slots are full.  Please wait.&lt;br /&gt;
|-&lt;br /&gt;
| 482 || This network has been permanently banned due to a previous violation of the SHOUTcast directory terms of service&lt;br /&gt;
|-&lt;br /&gt;
| 483 || Invalid listeners (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 484 || Invalid avglistentime (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 485 || Invalid newsessions (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 486 || Invalid connects (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 487 || Request &amp;amp; Response objects are null&lt;br /&gt;
|-&lt;br /&gt;
| 488 || Request xml is null&lt;br /&gt;
|-&lt;br /&gt;
| 489 || YP command not specified&lt;br /&gt;
|-&lt;br /&gt;
| 490 || Generic error, while doing xml parsing&lt;br /&gt;
|-&lt;br /&gt;
| 491 || Generic error, while reading xml request&lt;br /&gt;
|-&lt;br /&gt;
| 492 || Error closing buffer / HTTP connection&lt;br /&gt;
|-&lt;br /&gt;
| 493 || Internal error - unable to acquire data source&lt;br /&gt;
|-&lt;br /&gt;
| 494 || Error updating information - DNAS restart required&lt;br /&gt;
|-&lt;br /&gt;
| 495 || Error acquiring station ID - DNAS restart required&lt;br /&gt;
|-&lt;br /&gt;
| 496 || Error converting data type&lt;br /&gt;
|-&lt;br /&gt;
| 497 || Inconsistent stream behaviour&lt;br /&gt;
|-&lt;br /&gt;
| 498 || Invalid Request (Invalid request received)&lt;br /&gt;
|-&lt;br /&gt;
| 499 || Error while getting information&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Administration==&lt;br /&gt;
&lt;br /&gt;
With sc_serv there are administration pages available for accessing and controlling the server remotely which allows you to monitor and control clients connected to the stream (or not if banning them). These pages can now be accessed through a summary page at /index.html which will show a link to any active stream(s) or you explicitly access them via the /index.html?sid=# path where # is the ID of the stream (see [[#Stream_Configuration|section 4.12]] for more about using 'streamid') '''e.g.'''&lt;br /&gt;
 &amp;lt;streamurl&amp;gt;/index.html?sid=1&lt;br /&gt;
&lt;br /&gt;
If no sid or an invalid sid is passed then you will be taken to the summary /index.html and this will be applied even if you were on a page with a known ID and then enter an invalid sid or remove it purposefully.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Administration Pages===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
As part of the administrative features provided there are the following pages where # is the streamid you want to use). This is not a complete list but should cover all of the pages which allow for a direct http url to be entered to get an administation action to work. The ban and reserve IP actions require input fields and do not map to direct sends.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Public Pages====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''index.html'''  -  Shows a summary page with links to get to any active stream(s)&lt;br /&gt;
&lt;br /&gt;
'''currentsong?sid=#'''  -  Returns the current song title or a null response&lt;br /&gt;
&lt;br /&gt;
'''nextsong?sid=#'''  -  Returns the next song title (if known) or a null response&lt;br /&gt;
 currentsong and nextsong both provide a UTF-8 encoded string of the song title&lt;br /&gt;
 otherwise it will return effectively no response (ignoring the http header).&lt;br /&gt;
&lt;br /&gt;
'''nextsongs?sid=#'''  -  Returns in an xml format the next song title(s) (if known) to be played when using a compatible v2 stream source. See [[#XML_Responses|section 5.2]] for more details on the format of the xml returned).&lt;br /&gt;
&lt;br /&gt;
'''index.html?sid=#'''  -  Shows current status of the specified stream&lt;br /&gt;
&lt;br /&gt;
'''played.html?sid=#'''  -  Song history of specified playing history&lt;br /&gt;
:or&lt;br /&gt;
'''played?sid=#'''&lt;br /&gt;
&lt;br /&gt;
'''listen.pls?sid=#'''  -  Provides a PLS for file clients to use to connect to the stream.&lt;br /&gt;
:or&lt;br /&gt;
'''listen?sid=#'''&lt;br /&gt;
&lt;br /&gt;
'''listen.m3u?sid=#'''  -  Provides a M3U file for clients to use to connect to the stream.&lt;br /&gt;
&lt;br /&gt;
'''listen.asx?sid=#'''  -  Provides a ASX file for clients to use to connect to the stream.&lt;br /&gt;
&lt;br /&gt;
 With the listen pages you either need to have specified an IP with 'dstip / destip'&lt;br /&gt;
 (see section 4.2) or leave empty and allow the server to attempt to auto-generate&lt;br /&gt;
 the IP required for the client to be able to connect. If this fails the generated&lt;br /&gt;
 playlist is likely to return a stream url like &amp;lt;nowiki&amp;gt;http://0.0.0.0:&amp;lt;portbase&amp;gt;/&amp;lt;path&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''home.html?sid=#''' or '''home?sid=#'''  -  Opens in a new window or tab (depending on the client browser) the 'streamurl' as specified by the stream source. If this is not set then the client will be redirected to the shoutcast.com main page.&lt;br /&gt;
&lt;br /&gt;
'''stats?sid=#'''  -  Provides an xml response for public accessibility which matches the private version from admin.cgi?sid=#&amp;amp;mode=viewxml&amp;amp;page=1. This is the modern version of the 7.html page as provided by the legacy v1 servers. See [[#XML_Responses|section 5.2]] for information on what is provided in the xml response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Private Pages====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 By passing &amp;amp;pass=password where password is the 'adminpassword' (see section [[#Networking|4.8]]) then it is possible&lt;br /&gt;
 to directly access the administration page(s) required. As well the base64 encoded version of the password&lt;br /&gt;
 can be passed as long as it is prefixed with ''YWRtaW46''&lt;br /&gt;
 e.g.&lt;br /&gt;
     &amp;amp;pass=changeme is the same as &amp;amp;pass=YWRtaW46Y2hhbmdlbWU=&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi'''  -  Shows the an overal summary admin page for the streams provided by the server including direct links to certain information pages (see notes about the 'admin.cgi?sid=#&amp;amp;mode=viewxml' command for more info)&lt;br /&gt;
:or&lt;br /&gt;
'''admin.cgi?sid=0'''&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#'''  -  Shows the base admin page for the stream and information&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=updinfo&amp;amp;song=title'''           &lt;br /&gt;
:or&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=updinfo&amp;amp;type=xml&amp;amp;song=xml'''    &lt;br /&gt;
 If 'title' is not empty then it will be set as the current song title for the stream&lt;br /&gt;
 specified until the next use of this action or the next title update is received from&lt;br /&gt;
 the source. Specifying '&amp;amp;type=xml' will process the value of 'song' as [[SHOUTcast_XML_Metadata_Specification|v2 XML metadata]]&lt;br /&gt;
 instead of a v1 title.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewlog'''  -  View logfile&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewlog&amp;amp;viewlog=tail'''  -  View logfile (tailing)&lt;br /&gt;
&lt;br /&gt;
 The tailing option keeps adding additional log entries to the end of the view whilst the view is active.&lt;br /&gt;
 As well any html or xml data in the log will not be shown correctly in the view as &amp;lt; &amp;gt; &amp;amp; are not escaped&lt;br /&gt;
 to their html entities. See [[#Logging|section 4.6]] for more information on the log file.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewban'''  -  Ban view which matches the ban file and allows you to ban a single IP or an IP range from it (see [[#Banning|section 4.1]] for more info on the file)&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewrip'''  -  Reserved IP list that matches the rip file (see [[#Reserved_IP_.28RIP.29|section 4.11]] for more info on the file)&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=art''' or '''admin.cgi?sid=#&amp;amp;mode=art&amp;amp;art=playing'''  -  Displays the artwork SHOUTcast v2 compatible clients may be able to display if the SHOUTcast v2 source does provide it.&lt;br /&gt;
  &lt;br /&gt;
 The artwork mode is primarily intended as a debugging option to make it possible&lt;br /&gt;
 to see what (if anything) has been provided by the SHOUTcast v2 source.&lt;br /&gt;
 &lt;br /&gt;
 If no '&amp;amp;art=' is specified or not a matching option then the stream artwork (if&lt;br /&gt;
 available) will be shown. If no '&amp;amp;art=playing' is specified then this will show&lt;br /&gt;
 the playing file's artwork (if available).&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewxml''' or '''admin.cgi?sid=#&amp;amp;mode=viewxml&amp;amp;page=#'''  -  Returns an xml output of the current stream information&lt;br /&gt;
&lt;br /&gt;
 If page is not set or is outside of the range zero to 6 then this will output all of the&lt;br /&gt;
 information as the standard viewxml action does. Otherwise this only display information&lt;br /&gt;
 depending on the value assigned to page which can be from 1 to 6 which maps as follows:&lt;br /&gt;
 &lt;br /&gt;
     1 - Server Summary (this is the same as using the public stats?sid=# action)&lt;br /&gt;
     2 - Not used (previously used for Webdata Stats but not in current builds)&lt;br /&gt;
     3 - Listener Stats&lt;br /&gt;
     4 - Song History&lt;br /&gt;
     5 - Stream Metadata        (if supported by the source otherwise can just be title)&lt;br /&gt;
     6 - Stream Configurations  (displays all of the known stream configurations though this is only available on admin.cgi)&lt;br /&gt;
 &lt;br /&gt;
 If accessing the standard viewxml or the listener stats (page = 3), you can also send&lt;br /&gt;
 '&amp;amp;iponly=1' which will filter the listener information (if there are any) to just output&lt;br /&gt;
 the IP instead of the additional information provided normally.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=resetxml&amp;amp;sid=#'''  -  Will flush the held stream information to refresh it&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=kicksrc'''  -  Will allow you to kick the currently connected source for the specified stream.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unripdst&amp;amp;ripdst=&amp;lt;IP&amp;gt;'''  -  Where &amp;lt;IP&amp;gt; is the IP to reserve (see [[#Reserved_IP_.28RIP.29|section 4.11]] for more information).&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unbandst&amp;amp;bandst=&amp;lt;IP&amp;gt;.0&amp;amp;banmsk=0'''  -  Where &amp;lt;IP&amp;gt; is the first 3 parts of a subnet IP to unban.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unbandst&amp;amp;bandst=&amp;lt;IP&amp;gt;&amp;amp;banmsk=255'''  -  Where &amp;lt;IP&amp;gt; is that of a single IP to unban.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=rotate''' or '''admin.cgi?mode=rotate&amp;amp;files=log|w3c'''  -  This will rotate the log files set via the 'logfile', 'w3clog' and 'streamw3clog' options.&lt;br /&gt;
 If &amp;amp;files is specified then passing log or w3c will allow you to only&lt;br /&gt;
 rotate one type of file otherwise both will be rotated by this command.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=reload''' or '''admin.cgi?mode=reload&amp;amp;force=1'''  -  This reloads the stream configuration details in the main configuration file the server used when started and is only available on the admin summary page and so can only be run by the master administrator password.&lt;br /&gt;
&lt;br /&gt;
 This command works on the server as a whole (hence no sid parameter) and it will add or&lt;br /&gt;
 remove or update any stream configuration as applicable which will cause any connected&lt;br /&gt;
 sources and clients to be kicked as applicable (usually if a stream configuration was removed).&lt;br /&gt;
 &lt;br /&gt;
 This will recognise any configurations included via 'include' entries so you can have 'include=stream/*.conf'&lt;br /&gt;
 in your main configuration file which the server can then use to detect different stream configurations.&lt;br /&gt;
 &lt;br /&gt;
 If '&amp;amp;force=1' is passed then the reload will treat the updating of active stream configurations in the&lt;br /&gt;
 same manner as a stream configuration removal instead of trying to update compatible stream configuration&lt;br /&gt;
 details without resetting the stream '''e.g.''' not increasing the 'streammaxuser' when it could be increased.&lt;br /&gt;
 &lt;br /&gt;
 The following configuration options are updated when using this command:&lt;br /&gt;
 &lt;br /&gt;
     password or streampassword (*)            streamadminpassword (#)&lt;br /&gt;
     requirestreamconfigs                      streamid&lt;br /&gt;
     streamauthhash                            streampath&lt;br /&gt;
     streamrelayurl                            streammaxuser&lt;br /&gt;
     streampublicserver                        streamallowrelay&lt;br /&gt;
     streamallowpublicrelay                    streamriponly&lt;br /&gt;
     streamautodumpsourcetime                  streamautodumpusers&lt;br /&gt;
     streamlistenertime                        streamintrofile&lt;br /&gt;
     streambackupfile                          streambanfile&lt;br /&gt;
     streamripfile&lt;br /&gt;
 &lt;br /&gt;
 (*) This will depend upon the current values versus the new configuration values&lt;br /&gt;
 (#) The master 'adminpassword' can only be changed after a restart of the server&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XML Responses===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
As detailed in the previous sections, some of the administration actions will provide the information in an xml response. For information on what is actually returned in these xml responses see [[SHOUTcast_DNAS_Server_2_XML_Reponses|sc_serv2_xml_responses.txt]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stream Addresses==&lt;br /&gt;
&lt;br /&gt;
Clients connecting to the streams provided by sc_serv are able to so in a number of ways depending upon how the streams have been configured and also depending upon the number of streams you have available.&lt;br /&gt;
&lt;br /&gt;
The two main ways for a client to connect to a stream are as follows:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;serverurl&amp;gt;/stream/&amp;lt;streamid&amp;gt;/&lt;br /&gt;
or&lt;br /&gt;
 &amp;lt;serverurl&amp;gt;/&amp;lt;streampath&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;serverurl&amp;gt; is typically formed as &amp;lt;nowiki&amp;gt;http://dstip:portbase&amp;lt;/nowiki&amp;gt; (see sections [[#Client_Behaviour|4.2]] and [[#Networking|4.8]])&lt;br /&gt;
 &amp;lt;streamid&amp;gt; is the 'streamid' set from the stream configuration (see [[#Stream_Configuration|section 4.12]])&lt;br /&gt;
 &amp;lt;streampath&amp;gt; is the 'streampath' set from the stream configuration (see [[#Stream_Configuration|section 4.12]])&lt;br /&gt;
&lt;br /&gt;
If the client attempting to connect to the server instance does not specify &amp;lt;streampath&amp;gt; or &amp;lt;streamid&amp;gt; in the stream url it attempts to access or if only one stream is provided then the server will usually default to the first stream it knows about and will allow the client to make a valid connection (though this is not guaranteed to happen).&lt;br /&gt;
&lt;br /&gt;
This handling of the stream addresses provided is something to keep in mind especially if you are providing multiple streams as this will allow you to provide different addresses for certain clients to be able to use a specific stream '''e.g.''' if you wanted to have mobile clients connect to a lower bandwidth stream then you could direct them to '&amp;lt;serverurl&amp;gt;/mobile'&lt;br /&gt;
&lt;br /&gt;
The server options available for controlling how the stream's path is specified can be seen in [[#Stream_Configuration|section 4.12]] which also details the equivalent values needing to be set in the sc_trans configuration if you use sc_trans to provide a source to sc_serv.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Locale Error (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
If you receive the following error then you have a locale related issues:&lt;br /&gt;
&lt;br /&gt;
 terminate called after throwing an instance of 'std::runtime_error'&lt;br /&gt;
 what():  locale::facet::_S_create_c_locale name not valid&lt;br /&gt;
 Abort trap&lt;br /&gt;
&lt;br /&gt;
If this happens then you need to set the 'POSIX' locale in your terminal's environment values. If this does not happen then everything is fine or you are using a newer version of sc_serv from the end of 2010 which should no longer exhibit this issue.&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
BSD:&lt;br /&gt;
 setenv LC_ALL POSIX&lt;br /&gt;
&lt;br /&gt;
Mac OS X:&lt;br /&gt;
 export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
You can test to see if this has worked by checking the shell command &amp;quot;locale&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 LANG=&lt;br /&gt;
 LC_COLLATE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_CTYPE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_MESSAGES=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_MONETARY=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_NUMERIC=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_TIME=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_ALL=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Virtual Memory Footprint (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
Due to how sc_serv works it will create a large number of threads which may become an issue due to the default virtual memory stack allocation per thread potentially being large (typically 10MB per thread). For most people this should not be an issue as the memory is not really allocated unless it is used. If however if you have a resource constrained system or if you plan on running many copies of sc_trans then you could potentially run out of virtual memory.&lt;br /&gt;
&lt;br /&gt;
The default thread allocation can be reduced by issuing a &amp;quot;ulimit&amp;quot; command before running sc_trans and in the example reduces it to 512KB per-thread '''e.g.'''   ulimit -s 512&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Maximum Client Connection Limits==&lt;br /&gt;
&lt;br /&gt;
In general, there are inherent limits on the maximum number of client connections which may be made to a running instances of sc_serv which can either be set by configuration limits e.g. 'maxuser', Operating System limits or bandwidth limits being reached.&lt;br /&gt;
&lt;br /&gt;
The first two are easy to resolve whereas the last (bandwidth limits) is something which will usually require obtaining additional hosting or paying for more available bandwidth.&lt;br /&gt;
&lt;br /&gt;
If reaching the Operating System limit, this is usually indicated by the maximum number of clients never going above a fixed value even if there is the bandwidth and the server has been configured to go higher. This usually appears as around 1016 maximum connections (though this can vary a bit)&lt;br /&gt;
&lt;br /&gt;
If using a non-Windows Operating System then you can use the 'ulimit -n xxxx' command to change the upper limit from what is already set which can be found from just 'ulimit -n' e.g. to change the limit to 4096 connections you would run ulimit -n 4096&lt;br /&gt;
&lt;br /&gt;
If using a Windows Operating System then there isn't any real way to change such things due to the OS hopefully being configured with limits that will not be reached when using sc_serv. If in doubt then consult the Microsoft support documentation for the OS used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Configurations==&lt;br /&gt;
&lt;br /&gt;
Include as part of the sc_serv installation are a number of example configurations to get things started with using some of the features of the server. The provided examples are:&lt;br /&gt;
&lt;br /&gt;
 sc_serv_basic.conf&lt;br /&gt;
 sc_serv_public.conf&lt;br /&gt;
 sc_serv_relay.conf&lt;br /&gt;
 sc_serv_simple.conf&lt;br /&gt;
&lt;br /&gt;
All of the configuration examples are documented and will relate back to details in this file appropriately. You will need to change some details in these example files or to obtain any applicable authorisation keys for the setup you are making ([[#Getting_Started|see section 3.0]]). In all cases the examples are designed to work from the same install folder as sc_serv.&lt;br /&gt;
&lt;br /&gt;
Remember these examples are a way to get you up and running faster though you are still likely to have to adjust things depending upon the systems you are using and how you want to manage your sources and server connections which are covered in previous sections.&lt;br /&gt;
&lt;br /&gt;
Additionally if you are not happy with editing the files or find it still too confusing then you can use the configuration builder which (if installed) can be found in the 'config_builder'. Open 'config_builder.html' in your browser and then use this graphical tool to setup a configuration file for the server (and additionally the transcoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_basic===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This is the base configuration from which the other configuration examples are based and this will get a sc_serv instance running as a local setup with no connection made to the YP directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_public===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_serv_basic configuration to get a sc_serv instance running as a public setup with a connection made to the YP for listing the stream in the directory. This shows the use of the 'include' option (see section [[#Miscellaneous|4.7]]) and how specifying a configuration option twice uses the last value found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_relay===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_serv_public configuration to get a sc_serv instance running as a public setup with a source coming in from a relay server providing a SHOUTcast 2 stream.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_debug===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file can be included in any other configuration files to allow you to get debug logging output when trying to investigate any issues you may be experiencing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_simple===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Use this if you just need to get a very basic server running or are impatient&lt;br /&gt;
 or are struggling to get it running despite the previous example configurations.&lt;br /&gt;
&lt;br /&gt;
This configuration file is designed to be used just as is and is the simplest form of the configuration file you can have which will allow you to get a running server to appear on the YP. This works on using the default settings of the server though does change some of the file paths inorder to fit in with the existing setup as used in the other examples.&lt;br /&gt;
&lt;br /&gt;
All you need to do when using this configuration file is to enter your authorisation key in the 'streamauthhash' line '''e.g.''' if your authorisation key is '''123456789''' then you change ''streamauthhash=&amp;lt;enter_your_auth_key_here&amp;gt;'' to ''streamauthhash='''123456789''''' and save the file.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Server_2</id>
		<title>SHOUTcast DNAS Server 2</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Server_2"/>
				<updated>2019-10-29T02:25:16Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Stream Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
The purpose of this document is to show you the different configuration options supported by sc_serv along with basic and more advanced example configurations to enable you to get started with using sc_serv and the features it can offer.&lt;br /&gt;
&lt;br /&gt;
The aim of sc_serv is to provide enhanced serving features and also access to the new YP2 infrastructure whilst maintaining as much backward compatibility with previous versions of sc_serv as possible. The new features introduced include:&lt;br /&gt;
&lt;br /&gt;
# Serving multiple streams from a single server instance&lt;br /&gt;
# Relaying multiple streams from a single server instance&lt;br /&gt;
# Multiplexing all server activity through a single IP port&lt;br /&gt;
# SHOUTcast 2 wire protocol support for sources, relays and clients&lt;br /&gt;
# Repackaging of SHOUTcast 1 and SHOUTcast 2 data as needed for connected clients&lt;br /&gt;
# YP2 infrastructure support&lt;br /&gt;
# Real-time metadata and statistic reporting&lt;br /&gt;
# Static station id support&lt;br /&gt;
# In-stream metadata in standardised xml files&lt;br /&gt;
# UTF-8 and international character encoding&lt;br /&gt;
# Improved server and stream security&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview of Features==&lt;br /&gt;
&lt;br /&gt;
To take full advantage of the newer features provided as part of the SHOUTcast 2 and YP2 systems then you will need to ensure you are using a compatible version of sc_serv (any version 2 will work) and that you have the required authorisation key to register as a broadcaster on the YP2 directory (see [[#Getting_Started|section 3.0]]).&lt;br /&gt;
&lt;br /&gt;
If you were intending on taking full advantage of the multiplexing and multiple stream support offered as part of sc_serv then you would need to make sure you enable the SHOUTcast 2 options (this is enabled by default with server builds from the end of 2010 if the 'yp2' option in the configuration file is not specified [see [[#YP_Server_Behaviour|section 4.14]] ). The reason for needing to enable this support is if you try to do it with the original SHOUTcast 1 protocol then it will not work as the original protocol has no means of expressing multiple streams from a single port due to the lack of an identifier provided for them.&lt;br /&gt;
&lt;br /&gt;
If you are planning on connecting multiple sc_trans instances to sc_serv then you must use the SHOUTcast 2 protocol support so that each sc_trans instance can have a unique identifier which allows for multiple streams to then be provided from a single server. It is still possible for an older source to connect to the server with a number of config options available to support this though functionality will be limited compared to what can be done with a fully supporting SHOUTcast 2 source.&lt;br /&gt;
&lt;br /&gt;
Finally clients connecting to your server do not need to directly support SHOUTcast 2 as sc_serv will repackage the stream data and any related metadata into the correct format the client requests (typically based on the user agent detected by the server).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
&lt;br /&gt;
One of the key aspects of the new YP2 directory infrastructure is an authorisation key which is used to validate your server when it tries to connect to the YP2 infrastructure for any of the station(s) you run. Once this key is obtained, it will be valid for all root servers of the station being broadcast.&lt;br /&gt;
&lt;br /&gt;
This can be done by going to the [[SHOUTcast_Authhash_Management|SHOUTcast Authhash Management]] page which shows how to do this via the 'Administation Summary' page as long as a valid source has been connected to the server. This process automatically updates your configuration file(s) with the new authhash and if the stream is set to be public then will attempt to get the stream listed in the SHOUTcast Radio Directory.&lt;br /&gt;
&lt;br /&gt;
When using an older SHOUTcast 1 server then you do not need to do this registration and the server will still be able to be listed on the directory but there is not the same level of protection over the stream as is the case with registering it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Running the Server===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The server is able to be run either as a console application or it can be run as service (Windows) or daemon (Linux / Mac OS X / BSD). Detailed below is how to get the server running on the different operating systems supported by it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The Windows version of sc_serv is designed to run on fully updated and patched versions of Windows 2000, XP, Vista and Windows 7, 8 &amp;amp; 10.&lt;br /&gt;
&lt;br /&gt;
Please note that the Windows versions of sc_serv are built with a dependency against the Microsoft Visual C++ 2008 SP1 Redistributable Package. If sc_serv is unable to start due to a dependency issue then you will need to install the correct version of the package so it can run which depends on the version of sc_serv you are attempting to run:&lt;br /&gt;
&lt;br /&gt;
32-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&lt;br /&gt;
&lt;br /&gt;
64-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ba9257ca-337f-4b40-8c14-157cfdffee4e&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Install as a Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe install &amp;lt;servicename&amp;gt; &amp;lt;username&amp;gt; &amp;lt;password&amp;gt; &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service&lt;br /&gt;
 Typically enter this as 'sc_serv' though you can use a different name but you will need&lt;br /&gt;
 to remember it as it is required to be the same when using the 'uninstall' mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;username&amp;gt; - User under which to run the service as or '0' for the local system&lt;br /&gt;
&lt;br /&gt;
&amp;lt;password&amp;gt; - Password for user or '0' for the local system or with no password&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
When run as a service there is not a good sense of a current working directory so requires all paths in the configuration and playlist files to be fully qualified otherwise lookups will fail when sc_serv is run.&lt;br /&gt;
&lt;br /&gt;
To run sc_serv with a configuration file in the same folder as the server as the current system user account you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_serv.exe install sc_serv 0 0 sc_serv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Uninstall the Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe uninstall &amp;lt;servicename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service as used when the service was registered&lt;br /&gt;
&lt;br /&gt;
To uninstall sc_serv assuming it was installed as detailed in the install section above then you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_serv.exe uninstall sc_serv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Service in the Console====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
===Linux / Mac OS X / BSD===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Remember to enable the required access on the sc_trans file by doing 'chmod a+x sc_trans' after extracting it from the distribution file otherwise the OS is likely to not run it and show the error message './sc_serv: Permission denied'.&lt;br /&gt;
&lt;br /&gt;
====Run as a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_serv daemon &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (required in all cases)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
'''e.g.'''&lt;br /&gt;
 ./sc_serv daemon ./sc_serv.conf&lt;br /&gt;
&lt;br /&gt;
When run this should output the following:&lt;br /&gt;
&lt;br /&gt;
'sc_serv going daemon with PID [XXXX]' where XXXX is the &amp;lt;pid&amp;gt; of the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====End a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
kill -SIGTERM &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -15 &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -s TERM &amp;lt;pid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pid&amp;gt; - The PID of the daemon instance (reported when the daemon started or can be found with 'ps ax | grep sc_serv' as long as sc_serv was the file run otherwise you can just use 'ps ax' if the filename isn't known). Additionally the PID of sc_serv is listed in the log file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_serv &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Additional Signals===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
When run on Linux / Mac OS X / BSD then some additional signals are supported to allow for additional control over the running daemon instance of sc_serv.&lt;br /&gt;
&lt;br /&gt;
The following signals can be used with the 'kill' command (in the manner of your choosing for using the kill command) along with the &amp;lt;pid&amp;gt; of the daemon instance to do one of the following actions:&lt;br /&gt;
&lt;br /&gt;
    SIGKILL   -  Stops sc_trans (also SIGTERM, SIGINT and SIGQUIT will work)&lt;br /&gt;
    SIGHUP    -  Rotates logfile, w3clog and streamw3clog&lt;br /&gt;
&lt;br /&gt;
The result of SIGHUP is that the current log file contents will be moved into &amp;lt;logfile&amp;gt;_1 e.g. sc_serv_1.log, &amp;lt;logfile&amp;gt;_1 will be moved into &amp;lt;logfile&amp;gt;_2 e.g. sc_serv_2.log and so on for all log files which can be found which match the current log file's name. This is useful if timed to have it create day specific log files.&lt;br /&gt;
&lt;br /&gt;
 These signals are not supported by the Windows version of sc_serv which will only&lt;br /&gt;
 respond to the Ctrl + C / Ctrl + Break / console close commands the OS provides.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration File==&lt;br /&gt;
&lt;br /&gt;
Here you can find a complete list of all of the configuration options which are provided by sc_serv which ranges from logging to networking configuration and control over the media being used when streaming via the server.&lt;br /&gt;
&lt;br /&gt;
Configuration entries labelled as ''&amp;lt;MULTI&amp;gt;'' can be used to set up simultaneous connections to the server or allow for multiple connections from various sources. These are specified by adding _# to the end of the option's name as shown below where # begins with one. If you are only working with a single instance then you do not need to add the _# part as any instances of a configuration option will assume it is for _1.&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;MULTI&amp;gt;'' system is not hierarchical and all values beyond the default must be specified for all connections. So for example, if you wanted to connect to two servers on the same port you must do:&lt;br /&gt;
&lt;br /&gt;
    serverport_1=8080&lt;br /&gt;
    serverport_2=8080&lt;br /&gt;
    serverip_1=www.server1.com&lt;br /&gt;
    serverip_2=www.server2.com&lt;br /&gt;
&lt;br /&gt;
Note that you CANNOT do it like this as it leads to not all values being set:&lt;br /&gt;
&lt;br /&gt;
    serverport=8080&lt;br /&gt;
    serverip_1=www.server1.com&lt;br /&gt;
    serverip_2=www.server2.com&lt;br /&gt;
&lt;br /&gt;
The configuration files also allow for comments/notes or options to be disabled by the use of a semi-colon (''';''') or a left bracket ('''[''') or the hash / pound symbol ('''#''') at the start of a line which can be seen in all of the configuration examples.&lt;br /&gt;
&lt;br /&gt;
Known options in the configuration files are recognised irrespective of the case they are entered in the configuration file so maxuser and MaXuSer will be handled the same way.&lt;br /&gt;
&lt;br /&gt;
Any items found in the configuration file which are not known (as detailed in following sections) or is not processed as a comment will be reported in the following manner:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;date + time&amp;gt; W msg:[CONFIG] Invalid item on line XX&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;date + time&amp;gt; is the date and time the event happens at and XX is the line in the configuration file where the error has been found to occur at.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Banning===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''banfile''' : File to store the list of banned IP addresses    ''[Default = sc_serv.ban]''&lt;br /&gt;
&lt;br /&gt;
'''savebanlistonexit''' : Re-write the 'banfile' on server exit    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the file into then you need to ensure that the&lt;br /&gt;
 folder already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Client Behaviour===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''maxuser''' : Specify the maximum number of clients allowed to connect to the server    ''[Default = 32]''&lt;br /&gt;
 This is used in conjunction with 'streammaxuser' (see [[#Stream_Configuration|section 4.12]]) to control the&lt;br /&gt;
 maximum limit on the number of client connections allowed to connect to the server instance.&lt;br /&gt;
&lt;br /&gt;
'''listenertime''' : Specify the maximum time in minutes a client can listen to the stream    ''[Default = 0]''&lt;br /&gt;
 A value of zero means there will be no time limit.&lt;br /&gt;
&lt;br /&gt;
'''autodumpusers''' : Enable to allow the server to disconnect clients if the source disconnects    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''srcip''' : Specify the server side binding address for sources to connect on    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''dstip''' or '''destip''' or '''publicip''' : Specify the server side binding address for clients    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
 If 'any' or no value is specified then sc_serv listens to all addresses.&lt;br /&gt;
&lt;br /&gt;
If you specify a value for 'dstip / destip' then this will be used by the listen feature on the Administration Pages (see section 5.1) so it can provide a valid stream url in the generated playlist. If 'dstip / destip' is not specified then the server will attempt to auto-generate the IP required for the client to be able to connect. If this fails the generated playlist is likely to return a stream url like &amp;lt;nowiki&amp;gt;http://0.0.0.0:&amp;lt;portbase&amp;gt;/&amp;lt;path&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The IP provided needs to be in a valid format like &amp;lt;nowiki&amp;gt;http://&amp;lt;my-ip&amp;gt;&amp;lt;/nowiki&amp;gt; or an address which can be resolved to an IP otherwise the internal lookups done are likely to fail (depends upon the server configuration and OS being used). Also you cannot set srcip and dstip / destip to be the same IP value and if this happens then the server will close. Closing of the server will also happen if the IP cannot be resolved or correctly bound to i.e. server is not there or an invalid value was entered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''titleformat''' : Specify a string to be used in-place of the default icy-name string being used    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''urlformat''' : Specify a string to be used in-place of the default icy-url string being used    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''  '''&lt;br /&gt;
'''  '''&lt;br /&gt;
&lt;br /&gt;
===Debugging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In all cases, the default value is for no debug logging for the options listed below.&lt;br /&gt;
&lt;br /&gt;
'''yp1debug''' : Enable debug logging of YP connections&lt;br /&gt;
&lt;br /&gt;
'''yp2debug''' : Enable debug logging of YP2 connections&lt;br /&gt;
&lt;br /&gt;
'''shoutcastsourcedebug''' : Enable debug logging of SHOUTcast source connections&lt;br /&gt;
&lt;br /&gt;
'''uvox2sourcedebug''' : Enable debug logging of SHOUTcast 2 source connections&lt;br /&gt;
&lt;br /&gt;
'''shoutcast1clientdebug''' : Enable debug logging of SHOUTcast streaming clients&lt;br /&gt;
&lt;br /&gt;
'''shoutcast2clientdebug''' : Enable debug logging of SHOUTcast 2 streaming clients&lt;br /&gt;
&lt;br /&gt;
'''relayshoutcastdebug''' : Enable debug logging for SHOUTcast relays&lt;br /&gt;
&lt;br /&gt;
'''relayuvoxdebug''' : Enable debug logging for SHOUTcast 2 relays&lt;br /&gt;
&lt;br /&gt;
'''relaydebug''' : Enable debug logging of common relay code&lt;br /&gt;
&lt;br /&gt;
'''streamdatadebug''' : Enable debug logging of common streaming code&lt;br /&gt;
&lt;br /&gt;
'''httpstyledebug''' : Enable debug logging of http style requests&lt;br /&gt;
&lt;br /&gt;
'''statsdebug''' : Enable debug logging of statistics&lt;br /&gt;
&lt;br /&gt;
'''microserverdebug''' : Enable debug logging of common server activity&lt;br /&gt;
&lt;br /&gt;
'''threadrunnerdebug''' : Enable debug logging of the thread manager&lt;br /&gt;
&lt;br /&gt;
'''rtmpclientdebug''' : Enable debug logging of rtmp clients&lt;br /&gt;
&lt;br /&gt;
'''admetricsdebug''' : Enable debug logging of ad metrics (v2.5 and newer)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' '''&lt;br /&gt;
''' '''&lt;br /&gt;
&lt;br /&gt;
===Flash Security===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''flashpolicyfile''' : Name of file containing flash crossdomain policies on the server    ''[Default = crossdomain.xml]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Introduction and Backup Files===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Note that intro and backup audio files must precisely match the format and bitrate for the stream! If they do not match, there will be a break in the stream and the listener will be disconnected. &lt;br /&gt;
&lt;br /&gt;
'''introfile''' : File to play when a client first connects to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: This is used globally and also is default for stream #1 on DNAS versions greater than 2.0. To apply a specific intro file to a stream, use streamintrofile_X. &lt;br /&gt;
&lt;br /&gt;
'''streamintrofile_X''' : File to play when a client first connects to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''backupfile''' : File to play if the source disconnects from the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: This is used globally and also is default for stream #1 on DNAS versions greater than 2.0. To apply a specific backup file to a stream, use streambackupfile_X. &lt;br /&gt;
&lt;br /&gt;
'''streambackupfile_X''' : assigns a specific backup file to a streamID X [Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''streambackupurl_X''' : assigns a specific backup stream to a streamID X (v2.6 Premium feature)''&lt;br /&gt;
&lt;br /&gt;
'''specialfiletmpdir''' : place to store intro and backup files uploaded by sc_trans    ''[Default = /tmp/ (*nix only)]''&lt;br /&gt;
&lt;br /&gt;
'''maxspecialfilesize''' : Change the maximum size in bytes of the backup and intro files    ''[Default = 30000000]''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''log''' : Enable logging of the servers output    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''screenlog''' :  Enable logging of servers output to the console    ''[Default = 1]''&lt;br /&gt;
 If log=0 then this option is ignored due to no logging happening.&lt;br /&gt;
&lt;br /&gt;
'''logfile''' : Specify a different logfile to save the logs into ''[Default = %temp%\sc_serv.log or /tmp/sc_serv.log]''&lt;br /&gt;
&lt;br /&gt;
'''logclients''' : Enable logging of details about client connections and disconnections made ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the logs into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''configrewrite''' :  Re-write the 'config file' on server exit    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''songhistory''' : Specify the maximum song history to preserve    ''[Default = 10]''&lt;br /&gt;
&lt;br /&gt;
'''cpucount''' : Specify the number of cpu's present instead of the calculated number if non-zero    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''unique''' : Specify a substitution string for the '$' character to be used when processing filenames which if specified will set any occurences of '$' to the value set. This will be used in the processing of the following filenames: '''logfile''', '''introfile''', '''streamintrofile''', '''backupfile''', '''streambackupfile''', '''banfile''', '''streambanfile''', '''ripfile''', '''streamripfile''', '''include''', '''w3clog''', '''streamw3clog'''&lt;br /&gt;
&lt;br /&gt;
 So when 'unique' is changed from '$' to say 'test' then the following happens if 'logfile' is&lt;br /&gt;
 set to '/usr/local/shoutcast/$.log' then this would be converted to '/usr/local/shoutcast/test.log'&lt;br /&gt;
&lt;br /&gt;
'''include''' : Specify an additional include file containing settings to be processed from the current point in the main configuration file    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
You can do multiple calls of this allowing for a basic configuration file with then 'specific' stream configurations set in individual conf files though you need to ensure not to include a reference to the same file in itself.&lt;br /&gt;
&lt;br /&gt;
You can also specify a path with a wildcard for sc_serv to use to find multiple configuration files to include '''e.g.''' 'include=stream/*.conf'.  This can then be used along with the multiple stream configurations (see section 4.12) and the admin command 'admin.cgi?mode=reload' (see section 5.1) to add / remove / update stream configurations without having to close the server to apply them.&lt;br /&gt;
&lt;br /&gt;
'''admincssfile''' : Specify the css styling to be used on the index.html and admin pages    ''[Default = v2]''&lt;br /&gt;
&lt;br /&gt;
This can accept the following parameters:&lt;br /&gt;
&lt;br /&gt;
:admincssfile='''v1'''  -  Uses the v1 DNAS style&lt;br /&gt;
:admincssfile='''v2'''  -  Uses the newer SHOUTcast 2 style&lt;br /&gt;
:admincssfile='''path_to_local_css_file'''  e.g. my_index.css&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 If using a custom css file, if it does not exist on the first try to load it the server will revert to&lt;br /&gt;
 the default css style. As well the style is cached once loaded so changes require a restart of sc_serv.&lt;br /&gt;
&lt;br /&gt;
'''faviconfile''' : Specify the file to be returned as the favicon.ico when the administration pages are being queried by the client's browser    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
The default behaviour is to use a SHOUTcast themed built-in icon file and support / handling the update of this will entirely depend on the browser.&lt;br /&gt;
&lt;br /&gt;
'''faviconmimetype''' : Specify the mime type for actual file to be served in the favicon.ico response    ''[Default = image/x-icon]''&lt;br /&gt;
&lt;br /&gt;
Ensure this is correct for the type of image being used so it is valid.&lt;br /&gt;
&lt;br /&gt;
'''hidestats''' : Specify if the publically accessible stats?sid=# page can be accessed or if it is only available via the private administration pages   ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''robotstxtfile''' : Specify the file to be returned as the robots.txt when queried by search engines, etc to attempt to prevent incorrect access to the server's pages which may cause invalid client connections    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
The default behaviour is to return a robots.txt reponse indicating not to look at any of the server's pages i.e.&lt;br /&gt;
::User-agent:*&lt;br /&gt;
::Disallow:/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Networking===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''namelookups''' : Enable to allow reverse DNS look-ups on incoming IP addresses    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''portbase''' : Specify the port which clients and sources need to use to connect to the server    ''[Default = 8000]''&lt;br /&gt;
 SHOUTcast 1 sources are only able to connect to 'portbase + 1'.&lt;br /&gt;
&lt;br /&gt;
'''autodumpsourcetime''' : Specify how long before an idle source is dumped from the server (in seconds)    ''[Default: 30]''&lt;br /&gt;
 A value of zero means there is no timeout of an idle source.&lt;br /&gt;
 Also if you set this too low then it is likely that valid sources will&lt;br /&gt;
 fail to connect during the initial stages of a source connection.&lt;br /&gt;
&lt;br /&gt;
'''maxheaderlinesize''' : Specify the maximum size of an HTTP header line    ''[Default = 2048]''&lt;br /&gt;
&lt;br /&gt;
'''maxheaderlinecount''' : Specify the maximum header lines in an HTTP style exchange    ''[Default = 100]''&lt;br /&gt;
&lt;br /&gt;
'''adminpassword''' : Specify the administrator password for accessing the remote server features    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''password''' : Specify the password for broadcasters when connecting to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
 This matches the 'uvoxauth' value in the sc_trans configuration file (see [[SHOUTcast_DNAS_Transcoder_2#Network_Options|sc_trans.txt - section 3.11]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Network Buffers===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''buffertype''' : Specify whether the buffer size is fixed [0] or adaptive [1]    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''adaptivebuffersize''' : Specify the buffer size in seconds if buffer is set to adaptive    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''fixedbuffersize''' : Specify the buffer size in bytes if the buffer is set to fixed    ''[Default = 1048576]''&lt;br /&gt;
&lt;br /&gt;
'''bufferhardlimit''' : Specify the maximum buffer size in bytes which it can never go above    ''[Default = 16777216]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Relaying===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''allowrelay''' : Enable to allow a relay to connect to the server    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''allowpublicrelay''' : Enable to allow relays to list themselves in the YP directory    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''relayreconnecttime''' : Specify how many seconds to wait to reconnect on a relay failure    ''[Default = 30]''&lt;br /&gt;
 Setting this to 0 will disable attempts for the relay to reconnect.&lt;br /&gt;
&lt;br /&gt;
'''relayconnectretries''' : Specify the number of times relays are attempted to be connected to if it is initially unable to connect    ''[Default = 3]''&lt;br /&gt;
 This generally applies only to YP1 connections and is related to the&lt;br /&gt;
 actual attempts to make and get a http response from the YP server.&lt;br /&gt;
&lt;br /&gt;
'''maxhttpredirects''' : Specify the maximum number of times we can redirect when relaying    ''[Default = 5]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;Legacy Options&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
'''relayport''' : Port of the source to use for the relay    ''[Default: 80]''&lt;br /&gt;
&lt;br /&gt;
'''relayserver''' : Url of the source to relay    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
 Using the stream configuration options (see [[#Stream_Configuration|section 4.12]]) is the preferred method&lt;br /&gt;
 of setting up a relay. These options are only provided as a means for loading&lt;br /&gt;
 legacy configuration files. If found then these are mapped to 'streamrelayurl_1'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Reserved List===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''ripfile''' : File to store the list of reserved IP addresses    ''[Default = sc_serv.rip]''&lt;br /&gt;
&lt;br /&gt;
'''saveriplistonexist''' : Re-write the 'ripfile' on server exit    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''riponly''' : Only allow connections to be made from reserved IP addresses    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the file into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Stream Configuration===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Important Note:''' If you do not specify an identifier (_#) on the end of the above options then it will be treated like _1 (effectively acting like SHOUTcast 1). Additionally, _0 is not a supported identifier and will be mapped to _1.&lt;br /&gt;
&lt;br /&gt;
'''requirestreamconfigs''' : Only allow sources to connect if a stream configuration has been set in your configuration file    ''[Default = 0]''&lt;br /&gt;
 With this enabled, you will need to ensure that any sources have their configuration details&lt;br /&gt;
 setup to match those in sc_trans's configuration, in particular the 'uvoxstreamid' value with&lt;br /&gt;
 sc_trans (see [[SHOUTcast_DNAS_Transcoder_2#Network_Options|sc_trans.txt - section 3.11]]).&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each stream configuration):&lt;br /&gt;
&lt;br /&gt;
'''streamid''' : Specify the numerical identifier of the stream for control or referencing the stream configuration. This can only be a numeric value from 1 to 2147483647.&lt;br /&gt;
&lt;br /&gt;
 If you use multiple stream configurations then you will need to ensure the _X&lt;br /&gt;
 part is specified and correct for each stream configuration group&lt;br /&gt;
 e.g.&lt;br /&gt;
   streamid=1&lt;br /&gt;
   streampath=random&lt;br /&gt;
     or&lt;br /&gt;
   streamid_1=1&lt;br /&gt;
   streampath_1=random_stream_path&lt;br /&gt;
   streamid_2=2&lt;br /&gt;
   streampath_2=another_stream_path&lt;br /&gt;
&lt;br /&gt;
'''streamauthhash''' : The authorisation key needed for YP2 directory registration.&lt;br /&gt;
 This is a requirement for using the YP2 system and without it you will not be able to&lt;br /&gt;
 successfully connect to the YP2 directory (see [[#Getting_Started|section 3.0]]).&lt;br /&gt;
 &lt;br /&gt;
 This can be used for multiple streams you are providing or can be different (as long&lt;br /&gt;
 as valid) so you can infact provide multiple stations from the same server if desired.&lt;br /&gt;
&lt;br /&gt;
'''streampath''' : Specify the path clients need to use to access the stream&lt;br /&gt;
 If a / is not specified on the start of the string then the server will add&lt;br /&gt;
 it to the generated path in playlist entries or other places as required so&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://&amp;lt;serverurl&amp;gt;/&amp;lt;streampath&amp;gt;&amp;lt;/nowiki&amp;gt; will work so clients are able to connect.&lt;br /&gt;
 streampath is the mountpoint, e.g. streampath_1=mystation would result in ip:port/mystation&lt;br /&gt;
 &lt;br /&gt;
 If this is not specified then &amp;lt;nowiki&amp;gt;http://&amp;lt;serverurl&amp;gt;/stream/&amp;lt;streamid&amp;gt;/&amp;lt;/nowiki&amp;gt; will be&lt;br /&gt;
 used for client access and in generated playlist entries so that it will&lt;br /&gt;
 always be possible for clients to connect to the server somehow. See [[SHOUTcast_DNAS_Server_2#Stream_Addresses|section 6.0]] for more information on the&lt;br /&gt;
 server's stream address support.&lt;br /&gt;
&lt;br /&gt;
'''streamrelayurl''' : Specify the full url of source to relay (if this is a relay).&lt;br /&gt;
 Make sure if you use this that the full url is entered and that it is&lt;br /&gt;
 the url which clients would connect to for the stream to be relayed.&lt;br /&gt;
&lt;br /&gt;
'''streammaxuser''' : Specify the maximum number of clients allowed to connect to the stream    ''[Default = 0]''&lt;br /&gt;
If set to zero, not specified or higher than 'maxuser' then the value set for 'maxuser' (see [[#Client_Behaviour|section 4.2]]) will be used for all knwon streams.&lt;br /&gt;
&lt;br /&gt;
Changing this to a value between zero and 'maxuser' will enforce the user connection limit for the specified value in the stream configuration '''e.g.'''&lt;br /&gt;
 streammaxuser_1 = 8&lt;br /&gt;
 maxuser = 32&lt;br /&gt;
&lt;br /&gt;
This allows a total of 32 connections to the server but specifies the maximum number of connections to the first stream configuration is 8.&lt;br /&gt;
&lt;br /&gt;
With the following stream configuration&lt;br /&gt;
 streammaxuser_1 = 64&lt;br /&gt;
 maxuser = 32&lt;br /&gt;
&lt;br /&gt;
This allows a total of 32 connections to the server but with a per stream limit above the maximum means the maximum number of connections to the first stream group will be 32. However this also depends upon any other stream configurations and their limits as to whether 32 clients will be able to connect to this stream configuration.&lt;br /&gt;
&lt;br /&gt;
Finally unless a valid stream configuration is specified then this value will only be applied to the first stream configuration found i.e. there is a need to specify a streamid_XXX for streammaxuser_XXX (where XXX is the stream identifier of the stream configuration group.&lt;br /&gt;
&lt;br /&gt;
'''streamadminpassword''' : Specify the administrator password for accessing the remote server features for the specified stream configuration group. If this is not specified then 'adminpassword' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streampassword''' : Specify the password for broadcasters when connecting to the server for the specified stream configuration group. If this is not specified then 'password' will be used.&lt;br /&gt;
 This matches the 'uvoxauth' value in the sc_trans configuration file (see sc_trans.txt - section 3.11).&lt;br /&gt;
&lt;br /&gt;
'''streampublicserver''' : This allows you to override the public flag received from the source when a connection is being made to the YP directory. If this is not specified or is set to empty then 'publicserver' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamallowrelay''' : Enable to allow a relay to connect to the server. If this is not specified then 'allowrelay' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamallowpublicrelay''' : Enable to allow relays to list themselves in the YP directory. If this is not specified then 'allowpublicrelay' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamriponly''' : Enable to only allow connections to be made from reserved IP addresses. If this is not specified then 'riponly' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamautodumpsourcetime''' : Specify how long before an idle source will be dumped from the server (in seconds). A value of zero means there is no timeout of an idle source. If not specified then 'autodumpsourcetime' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamautodumpusers''' : Enable to allow the server to disconnect clients if the source disconnects. If not specified then 'autodumpusers' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamlistenertime''' : Specify the maximum time in minutes a client is allowed to listen to the stream. A value of zero means there will be no time limit. If not specified then 'listenertime' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamintrofile''' : File to play when a client first connects to the server. If this is not specified then 'introfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streambackupfile''' : File to play if the source disconnects from the server. If this is not specified then 'backupfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streammovedurl_X''' : redirects a permanently stopped or moved stream to a different working stream url.&lt;br /&gt;
&lt;br /&gt;
'''streambanfile''' : File to store the list of banned IP addresses. If this is not specified then 'banfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamripfile''' : File to store the list of banned IP addresses. If this is not specified then 'ripfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamw3clog''' : File to store the web connections logs into. If this is not specified then 'w3clog' will be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''DNAS v2.6 and newer'''&lt;br /&gt;
&lt;br /&gt;
'''sslCertificateFile''' : For https:// streams, specify .crt file e.g. sslCertificateFile=/path/to/ssl.crt&lt;br /&gt;
&lt;br /&gt;
'''sslCertificateKeyFile''' : specify key file, e.g. sslCertificateKeyFile=/path/to/key.pem&lt;br /&gt;
&lt;br /&gt;
 Put the whole certificate chain in the .crt file, and only the key in the .key file&lt;br /&gt;
 Note: Requires Premium subscription to unlock Premium features.&lt;br /&gt;
 SSL Cert needs to be assigned to a DNS e.g. stream.mysite.com&lt;br /&gt;
 Be sure to also add destip=stream.mysite.com and/or publicip= and alternateports=443 lines to DNAS config file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' '''&lt;br /&gt;
&lt;br /&gt;
===Web Connection (W3C) Logging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''w3cenable''' : Enable logging of web connections to describe the duration a client has listened to a specific title    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''w3clog''' : File to store the web connections logs into    ''[Default = sc_w3c.log]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the log into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
'''webclientdebug''' : Enable logging of web client connections    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===YP Server Behaviour===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''uvoxcipherkey''' : Specify the key used to obfuscate the initial handshaking with the source    ''[Default = foobar]''&lt;br /&gt;
 This is a SHOUTcast 2 only feature and it matches the 'djcipher' value in the sc_trans&lt;br /&gt;
 configuration file (see [[SHOUTcast_DNAS_Transcoder_2#DJ_Support|sc_trans.txt - section 3.3]]).&lt;br /&gt;
&lt;br /&gt;
Only change this if you really need to do so as not all SHOUTcast 2 clients will allow you to edit this value from the default value. If using the Source DSP plug-in then see [[Source_DSP_Plug-in#SHOUTcast_2_Cipher_Key|dsp_sc.txt - section 5.0]] for details on how to change the plug-in to use a differnet value.&lt;br /&gt;
&lt;br /&gt;
'''metainterval''' : Specify the metadata transmission interval in bytes    ''[Default = 8192]''&lt;br /&gt;
 YP1 only&lt;br /&gt;
&lt;br /&gt;
'''yp2''' : Enable to use the SHOUTcast 2 protocol and related server features for access to the YP2 directory    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
If this is enabled and not all of the required values are set then the server will throw an error and will abort from its start-up attempt. It should be indicated what needs to be set to allow the server to start with this set.&lt;br /&gt;
&lt;br /&gt;
Additionally if there is an issue then the server will report an error in its log ouput of 'Connection attempt failed. YP2 error code is XXX (&amp;lt;message&amp;gt;)' where XXX is one of the following error codes and &amp;lt;message&amp;gt; is a message set in the error response to indicate a bit more what the error relates to. All current error codes can be found [[#YP_Server_Errors|here]].&lt;br /&gt;
&lt;br /&gt;
'''ypaddr''' : Allows you to specify a different YP server if required    ''[Default = yp.shoutcast.com]''&lt;br /&gt;
&lt;br /&gt;
'''ypport''' : Allows you to specify the port of the YP server if required    ''[Default = 80]''&lt;br /&gt;
&lt;br /&gt;
'''ypPath''' : Allows you to specify the path to YP2 services on the server    ''[Default = /yp2]''&lt;br /&gt;
&lt;br /&gt;
'''ypTimeout''' : Specify the timeout interval in seconds for requests made to the YP server    ''[Default = 60]''&lt;br /&gt;
&lt;br /&gt;
'''ypmaxretries''' : Specify the maximum number of times a YP request will be attempted    ''[Default = 10]''&lt;br /&gt;
 This generally applies only to YP1 connections and is related to the&lt;br /&gt;
 actual attempts to make and get a http response from the YP server.&lt;br /&gt;
&lt;br /&gt;
'''ypreportinterval''' : Specify the maximum time in which the YP must have contacted our server in seconds    ''[Default = 300]''&lt;br /&gt;
&lt;br /&gt;
'''ypminreportinterval''' : Specify the minimum time in which the YP can contact our server in seconds    ''[Default = 10]''&lt;br /&gt;
&lt;br /&gt;
'''publicserver''' : This allows you to override the public flag from the connected source when a connection is being made to the YP directory    ''[Default = default]''&lt;br /&gt;
This can be one of the following values:&lt;br /&gt;
 '''default''' - use the flag provided by the source&lt;br /&gt;
 '''always''' - force the source to be public&lt;br /&gt;
 '''never''' - never allow the use the flag provided by the source&lt;br /&gt;
&lt;br /&gt;
When using sc_trans this would match with the 'public' value (see [[SHOUTcast_DNAS_Transcoder_2#Metadata_Control|sc_trans.txt - section 3.8]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===YP Server Errors===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If not all of the required values are set for a public listing then the DNAS server will throw an error and will abort its attempt to be listed in the Directory. It should be indicated the error is with one of the error codes provided below so it can be resolved.&lt;br /&gt;
&lt;br /&gt;
Additionally if there is an issue during Directory updates or removals, then the server will report an error in its log ouput as one of the following error codes and &amp;lt;message&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status Code&lt;br /&gt;
! Status Message&lt;br /&gt;
|-&lt;br /&gt;
| 400 || Generic error ''(covers all other cases usually from internal failures)''&lt;br /&gt;
|-&lt;br /&gt;
| 457 || Unrecoverable error while updating station information - DNAS restart required.&lt;br /&gt;
|-&lt;br /&gt;
| 470 || Invalid authorization hash&lt;br /&gt;
|-&lt;br /&gt;
| 471 || Invalid stream type (could be a bad bitrate or mime type)&lt;br /&gt;
|-&lt;br /&gt;
| 472 || Missing or invalid stream url&lt;br /&gt;
|-&lt;br /&gt;
| 473 || Server unreachable by YP&lt;br /&gt;
|-&lt;br /&gt;
| 474 || Relay url does not exist&lt;br /&gt;
|-&lt;br /&gt;
| 475 || Invalid server ID&lt;br /&gt;
|-&lt;br /&gt;
| 476 || Invalid max clients (value out of range or missing)&lt;br /&gt;
|-&lt;br /&gt;
| 477 || Terms of Service violator.  You are being reported.&lt;br /&gt;
|-&lt;br /&gt;
| 478 || Incompatible protocol.&lt;br /&gt;
|-&lt;br /&gt;
| 479 || Streams requiring authorization are not public and cannot list here.&lt;br /&gt;
|-&lt;br /&gt;
| 480 || Cannot see your station/computer (URL: &amp;lt;streamurl&amp;gt;) from the Internet, disable Internet Sharing/NAT/firewall/ISP cache.&lt;br /&gt;
|-&lt;br /&gt;
| 481 || Cannot verify server since all listener slots are full.  Please wait.&lt;br /&gt;
|-&lt;br /&gt;
| 482 || This network has been permanently banned due to a previous violation of the SHOUTcast directory terms of service&lt;br /&gt;
|-&lt;br /&gt;
| 483 || Invalid listeners (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 484 || Invalid avglistentime (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 485 || Invalid newsessions (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 486 || Invalid connects (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 487 || Request &amp;amp; Response objects are null&lt;br /&gt;
|-&lt;br /&gt;
| 488 || Request xml is null&lt;br /&gt;
|-&lt;br /&gt;
| 489 || YP command not specified&lt;br /&gt;
|-&lt;br /&gt;
| 490 || Generic error, while doing xml parsing&lt;br /&gt;
|-&lt;br /&gt;
| 491 || Generic error, while reading xml request&lt;br /&gt;
|-&lt;br /&gt;
| 492 || Error closing buffer / HTTP connection&lt;br /&gt;
|-&lt;br /&gt;
| 493 || Internal error - unable to acquire data source&lt;br /&gt;
|-&lt;br /&gt;
| 494 || Error updating information - DNAS restart required&lt;br /&gt;
|-&lt;br /&gt;
| 495 || Error acquiring station ID - DNAS restart required&lt;br /&gt;
|-&lt;br /&gt;
| 496 || Error converting data type&lt;br /&gt;
|-&lt;br /&gt;
| 497 || Inconsistent stream behaviour&lt;br /&gt;
|-&lt;br /&gt;
| 498 || Invalid Request (Invalid request received)&lt;br /&gt;
|-&lt;br /&gt;
| 499 || Error while getting information&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Administration==&lt;br /&gt;
&lt;br /&gt;
With sc_serv there are administration pages available for accessing and controlling the server remotely which allows you to monitor and control clients connected to the stream (or not if banning them). These pages can now be accessed through a summary page at /index.html which will show a link to any active stream(s) or you explicitly access them via the /index.html?sid=# path where # is the ID of the stream (see [[#Stream_Configuration|section 4.12]] for more about using 'streamid') '''e.g.'''&lt;br /&gt;
 &amp;lt;streamurl&amp;gt;/index.html?sid=1&lt;br /&gt;
&lt;br /&gt;
If no sid or an invalid sid is passed then you will be taken to the summary /index.html and this will be applied even if you were on a page with a known ID and then enter an invalid sid or remove it purposefully.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Administration Pages===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
As part of the administrative features provided there are the following pages where # is the streamid you want to use). This is not a complete list but should cover all of the pages which allow for a direct http url to be entered to get an administation action to work. The ban and reserve IP actions require input fields and do not map to direct sends.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Public Pages====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''index.html'''  -  Shows a summary page with links to get to any active stream(s)&lt;br /&gt;
&lt;br /&gt;
'''currentsong?sid=#'''  -  Returns the current song title or a null response&lt;br /&gt;
&lt;br /&gt;
'''nextsong?sid=#'''  -  Returns the next song title (if known) or a null response&lt;br /&gt;
 currentsong and nextsong both provide a UTF-8 encoded string of the song title&lt;br /&gt;
 otherwise it will return effectively no response (ignoring the http header).&lt;br /&gt;
&lt;br /&gt;
'''nextsongs?sid=#'''  -  Returns in an xml format the next song title(s) (if known) to be played when using a compatible v2 stream source. See [[#XML_Responses|section 5.2]] for more details on the format of the xml returned).&lt;br /&gt;
&lt;br /&gt;
'''index.html?sid=#'''  -  Shows current status of the specified stream&lt;br /&gt;
&lt;br /&gt;
'''played.html?sid=#'''  -  Song history of specified playing history&lt;br /&gt;
:or&lt;br /&gt;
'''played?sid=#'''&lt;br /&gt;
&lt;br /&gt;
'''listen.pls?sid=#'''  -  Provides a PLS for file clients to use to connect to the stream.&lt;br /&gt;
:or&lt;br /&gt;
'''listen?sid=#'''&lt;br /&gt;
&lt;br /&gt;
'''listen.m3u?sid=#'''  -  Provides a M3U file for clients to use to connect to the stream.&lt;br /&gt;
&lt;br /&gt;
'''listen.asx?sid=#'''  -  Provides a ASX file for clients to use to connect to the stream.&lt;br /&gt;
&lt;br /&gt;
 With the listen pages you either need to have specified an IP with 'dstip / destip'&lt;br /&gt;
 (see section 4.2) or leave empty and allow the server to attempt to auto-generate&lt;br /&gt;
 the IP required for the client to be able to connect. If this fails the generated&lt;br /&gt;
 playlist is likely to return a stream url like &amp;lt;nowiki&amp;gt;http://0.0.0.0:&amp;lt;portbase&amp;gt;/&amp;lt;path&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''home.html?sid=#''' or '''home?sid=#'''  -  Opens in a new window or tab (depending on the client browser) the 'streamurl' as specified by the stream source. If this is not set then the client will be redirected to the shoutcast.com main page.&lt;br /&gt;
&lt;br /&gt;
'''stats?sid=#'''  -  Provides an xml response for public accessibility which matches the private version from admin.cgi?sid=#&amp;amp;mode=viewxml&amp;amp;page=1. This is the modern version of the 7.html page as provided by the legacy v1 servers. See [[#XML_Responses|section 5.2]] for information on what is provided in the xml response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Private Pages====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 By passing &amp;amp;pass=password where password is the 'adminpassword' (see section [[#Networking|4.8]]) then it is possible&lt;br /&gt;
 to directly access the administration page(s) required. As well the base64 encoded version of the password&lt;br /&gt;
 can be passed as long as it is prefixed with ''YWRtaW46''&lt;br /&gt;
 e.g.&lt;br /&gt;
     &amp;amp;pass=changeme is the same as &amp;amp;pass=YWRtaW46Y2hhbmdlbWU=&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi'''  -  Shows the an overal summary admin page for the streams provided by the server including direct links to certain information pages (see notes about the 'admin.cgi?sid=#&amp;amp;mode=viewxml' command for more info)&lt;br /&gt;
:or&lt;br /&gt;
'''admin.cgi?sid=0'''&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#'''  -  Shows the base admin page for the stream and information&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=updinfo&amp;amp;song=title'''           &lt;br /&gt;
:or&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=updinfo&amp;amp;type=xml&amp;amp;song=xml'''    &lt;br /&gt;
 If 'title' is not empty then it will be set as the current song title for the stream&lt;br /&gt;
 specified until the next use of this action or the next title update is received from&lt;br /&gt;
 the source. Specifying '&amp;amp;type=xml' will process the value of 'song' as [[SHOUTcast_XML_Metadata_Specification|v2 XML metadata]]&lt;br /&gt;
 instead of a v1 title.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewlog'''  -  View logfile&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewlog&amp;amp;viewlog=tail'''  -  View logfile (tailing)&lt;br /&gt;
&lt;br /&gt;
 The tailing option keeps adding additional log entries to the end of the view whilst the view is active.&lt;br /&gt;
 As well any html or xml data in the log will not be shown correctly in the view as &amp;lt; &amp;gt; &amp;amp; are not escaped&lt;br /&gt;
 to their html entities. See [[#Logging|section 4.6]] for more information on the log file.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewban'''  -  Ban view which matches the ban file and allows you to ban a single IP or an IP range from it (see [[#Banning|section 4.1]] for more info on the file)&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewrip'''  -  Reserved IP list that matches the rip file (see [[#Reserved_IP_.28RIP.29|section 4.11]] for more info on the file)&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=art''' or '''admin.cgi?sid=#&amp;amp;mode=art&amp;amp;art=playing'''  -  Displays the artwork SHOUTcast v2 compatible clients may be able to display if the SHOUTcast v2 source does provide it.&lt;br /&gt;
  &lt;br /&gt;
 The artwork mode is primarily intended as a debugging option to make it possible&lt;br /&gt;
 to see what (if anything) has been provided by the SHOUTcast v2 source.&lt;br /&gt;
 &lt;br /&gt;
 If no '&amp;amp;art=' is specified or not a matching option then the stream artwork (if&lt;br /&gt;
 available) will be shown. If no '&amp;amp;art=playing' is specified then this will show&lt;br /&gt;
 the playing file's artwork (if available).&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewxml''' or '''admin.cgi?sid=#&amp;amp;mode=viewxml&amp;amp;page=#'''  -  Returns an xml output of the current stream information&lt;br /&gt;
&lt;br /&gt;
 If page is not set or is outside of the range zero to 6 then this will output all of the&lt;br /&gt;
 information as the standard viewxml action does. Otherwise this only display information&lt;br /&gt;
 depending on the value assigned to page which can be from 1 to 6 which maps as follows:&lt;br /&gt;
 &lt;br /&gt;
     1 - Server Summary (this is the same as using the public stats?sid=# action)&lt;br /&gt;
     2 - Not used (previously used for Webdata Stats but not in current builds)&lt;br /&gt;
     3 - Listener Stats&lt;br /&gt;
     4 - Song History&lt;br /&gt;
     5 - Stream Metadata        (if supported by the source otherwise can just be title)&lt;br /&gt;
     6 - Stream Configurations  (displays all of the known stream configurations though this is only available on admin.cgi)&lt;br /&gt;
 &lt;br /&gt;
 If accessing the standard viewxml or the listener stats (page = 3), you can also send&lt;br /&gt;
 '&amp;amp;iponly=1' which will filter the listener information (if there are any) to just output&lt;br /&gt;
 the IP instead of the additional information provided normally.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=resetxml&amp;amp;sid=#'''  -  Will flush the held stream information to refresh it&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=kicksrc'''  -  Will allow you to kick the currently connected source for the specified stream.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unripdst&amp;amp;ripdst=&amp;lt;IP&amp;gt;'''  -  Where &amp;lt;IP&amp;gt; is the IP to reserve (see [[#Reserved_IP_.28RIP.29|section 4.11]] for more information).&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unbandst&amp;amp;bandst=&amp;lt;IP&amp;gt;.0&amp;amp;banmsk=0'''  -  Where &amp;lt;IP&amp;gt; is the first 3 parts of a subnet IP to unban.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unbandst&amp;amp;bandst=&amp;lt;IP&amp;gt;&amp;amp;banmsk=255'''  -  Where &amp;lt;IP&amp;gt; is that of a single IP to unban.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=rotate''' or '''admin.cgi?mode=rotate&amp;amp;files=log|w3c'''  -  This will rotate the log files set via the 'logfile', 'w3clog' and 'streamw3clog' options.&lt;br /&gt;
 If &amp;amp;files is specified then passing log or w3c will allow you to only&lt;br /&gt;
 rotate one type of file otherwise both will be rotated by this command.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=reload''' or '''admin.cgi?mode=reload&amp;amp;force=1'''  -  This reloads the stream configuration details in the main configuration file the server used when started and is only available on the admin summary page and so can only be run by the master administrator password.&lt;br /&gt;
&lt;br /&gt;
 This command works on the server as a whole (hence no sid parameter) and it will add or&lt;br /&gt;
 remove or update any stream configuration as applicable which will cause any connected&lt;br /&gt;
 sources and clients to be kicked as applicable (usually if a stream configuration was removed).&lt;br /&gt;
 &lt;br /&gt;
 This will recognise any configurations included via 'include' entries so you can have 'include=stream/*.conf'&lt;br /&gt;
 in your main configuration file which the server can then use to detect different stream configurations.&lt;br /&gt;
 &lt;br /&gt;
 If '&amp;amp;force=1' is passed then the reload will treat the updating of active stream configurations in the&lt;br /&gt;
 same manner as a stream configuration removal instead of trying to update compatible stream configuration&lt;br /&gt;
 details without resetting the stream '''e.g.''' not increasing the 'streammaxuser' when it could be increased.&lt;br /&gt;
 &lt;br /&gt;
 The following configuration options are updated when using this command:&lt;br /&gt;
 &lt;br /&gt;
     password or streampassword (*)            streamadminpassword (#)&lt;br /&gt;
     requirestreamconfigs                      streamid&lt;br /&gt;
     streamauthhash                            streampath&lt;br /&gt;
     streamrelayurl                            streammaxuser&lt;br /&gt;
     streampublicserver                        streamallowrelay&lt;br /&gt;
     streamallowpublicrelay                    streamriponly&lt;br /&gt;
     streamautodumpsourcetime                  streamautodumpusers&lt;br /&gt;
     streamlistenertime                        streamintrofile&lt;br /&gt;
     streambackupfile                          streambanfile&lt;br /&gt;
     streamripfile&lt;br /&gt;
 &lt;br /&gt;
 (*) This will depend upon the current values versus the new configuration values&lt;br /&gt;
 (#) The master 'adminpassword' can only be changed after a restart of the server&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XML Responses===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
As detailed in the previous sections, some of the administration actions will provide the information in an xml response. For information on what is actually returned in these xml responses see [[SHOUTcast_DNAS_Server_2_XML_Reponses|sc_serv2_xml_responses.txt]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stream Addresses==&lt;br /&gt;
&lt;br /&gt;
Clients connecting to the streams provided by sc_serv are able to so in a number of ways depending upon how the streams have been configured and also depending upon the number of streams you have available.&lt;br /&gt;
&lt;br /&gt;
The two main ways for a client to connect to a stream are as follows:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;serverurl&amp;gt;/stream/&amp;lt;streamid&amp;gt;/&lt;br /&gt;
or&lt;br /&gt;
 &amp;lt;serverurl&amp;gt;/&amp;lt;streampath&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;serverurl&amp;gt; is typically formed as &amp;lt;nowiki&amp;gt;http://dstip:portbase&amp;lt;/nowiki&amp;gt; (see sections [[#Client_Behaviour|4.2]] and [[#Networking|4.8]])&lt;br /&gt;
 &amp;lt;streamid&amp;gt; is the 'streamid' set from the stream configuration (see [[#Stream_Configuration|section 4.12]])&lt;br /&gt;
 &amp;lt;streampath&amp;gt; is the 'streampath' set from the stream configuration (see [[#Stream_Configuration|section 4.12]])&lt;br /&gt;
&lt;br /&gt;
If the client attempting to connect to the server instance does not specify &amp;lt;streampath&amp;gt; or &amp;lt;streamid&amp;gt; in the stream url it attempts to access or if only one stream is provided then the server will usually default to the first stream it knows about and will allow the client to make a valid connection (though this is not guaranteed to happen).&lt;br /&gt;
&lt;br /&gt;
This handling of the stream addresses provided is something to keep in mind especially if you are providing multiple streams as this will allow you to provide different addresses for certain clients to be able to use a specific stream '''e.g.''' if you wanted to have mobile clients connect to a lower bandwidth stream then you could direct them to '&amp;lt;serverurl&amp;gt;/mobile'&lt;br /&gt;
&lt;br /&gt;
The server options available for controlling how the stream's path is specified can be seen in [[#Stream_Configuration|section 4.12]] which also details the equivalent values needing to be set in the sc_trans configuration if you use sc_trans to provide a source to sc_serv.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Locale Error (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
If you receive the following error then you have a locale related issues:&lt;br /&gt;
&lt;br /&gt;
 terminate called after throwing an instance of 'std::runtime_error'&lt;br /&gt;
 what():  locale::facet::_S_create_c_locale name not valid&lt;br /&gt;
 Abort trap&lt;br /&gt;
&lt;br /&gt;
If this happens then you need to set the 'POSIX' locale in your terminal's environment values. If this does not happen then everything is fine or you are using a newer version of sc_serv from the end of 2010 which should no longer exhibit this issue.&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
BSD:&lt;br /&gt;
 setenv LC_ALL POSIX&lt;br /&gt;
&lt;br /&gt;
Mac OS X:&lt;br /&gt;
 export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
You can test to see if this has worked by checking the shell command &amp;quot;locale&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 LANG=&lt;br /&gt;
 LC_COLLATE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_CTYPE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_MESSAGES=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_MONETARY=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_NUMERIC=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_TIME=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_ALL=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Virtual Memory Footprint (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
Due to how sc_serv works it will create a large number of threads which may become an issue due to the default virtual memory stack allocation per thread potentially being large (typically 10MB per thread). For most people this should not be an issue as the memory is not really allocated unless it is used. If however if you have a resource constrained system or if you plan on running many copies of sc_trans then you could potentially run out of virtual memory.&lt;br /&gt;
&lt;br /&gt;
The default thread allocation can be reduced by issuing a &amp;quot;ulimit&amp;quot; command before running sc_trans and in the example reduces it to 512KB per-thread '''e.g.'''   ulimit -s 512&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Maximum Client Connection Limits==&lt;br /&gt;
&lt;br /&gt;
In general, there are inherent limits on the maximum number of client connections which may be made to a running instances of sc_serv which can either be set by configuration limits e.g. 'maxuser', Operating System limits or bandwidth limits being reached.&lt;br /&gt;
&lt;br /&gt;
The first two are easy to resolve whereas the last (bandwidth limits) is something which will usually require obtaining additional hosting or paying for more available bandwidth.&lt;br /&gt;
&lt;br /&gt;
If reaching the Operating System limit, this is usually indicated by the maximum number of clients never going above a fixed value even if there is the bandwidth and the server has been configured to go higher. This usually appears as around 1016 maximum connections (though this can vary a bit)&lt;br /&gt;
&lt;br /&gt;
If using a non-Windows Operating System then you can use the 'ulimit -n xxxx' command to change the upper limit from what is already set which can be found from just 'ulimit -n' e.g. to change the limit to 4096 connections you would run ulimit -n 4096&lt;br /&gt;
&lt;br /&gt;
If using a Windows Operating System then there isn't any real way to change such things due to the OS hopefully being configured with limits that will not be reached when using sc_serv. If in doubt then consult the Microsoft support documentation for the OS used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Configurations==&lt;br /&gt;
&lt;br /&gt;
Include as part of the sc_serv installation are a number of example configurations to get things started with using some of the features of the server. The provided examples are:&lt;br /&gt;
&lt;br /&gt;
 sc_serv_basic.conf&lt;br /&gt;
 sc_serv_public.conf&lt;br /&gt;
 sc_serv_relay.conf&lt;br /&gt;
 sc_serv_simple.conf&lt;br /&gt;
&lt;br /&gt;
All of the configuration examples are documented and will relate back to details in this file appropriately. You will need to change some details in these example files or to obtain any applicable authorisation keys for the setup you are making ([[#Getting_Started|see section 3.0]]). In all cases the examples are designed to work from the same install folder as sc_serv.&lt;br /&gt;
&lt;br /&gt;
Remember these examples are a way to get you up and running faster though you are still likely to have to adjust things depending upon the systems you are using and how you want to manage your sources and server connections which are covered in previous sections.&lt;br /&gt;
&lt;br /&gt;
Additionally if you are not happy with editing the files or find it still too confusing then you can use the configuration builder which (if installed) can be found in the 'config_builder'. Open 'config_builder.html' in your browser and then use this graphical tool to setup a configuration file for the server (and additionally the transcoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_basic===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This is the base configuration from which the other configuration examples are based and this will get a sc_serv instance running as a local setup with no connection made to the YP directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_public===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_serv_basic configuration to get a sc_serv instance running as a public setup with a connection made to the YP for listing the stream in the directory. This shows the use of the 'include' option (see section [[#Miscellaneous|4.7]]) and how specifying a configuration option twice uses the last value found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_relay===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_serv_public configuration to get a sc_serv instance running as a public setup with a source coming in from a relay server providing a SHOUTcast 2 stream.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_debug===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file can be included in any other configuration files to allow you to get debug logging output when trying to investigate any issues you may be experiencing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_simple===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Use this if you just need to get a very basic server running or are impatient&lt;br /&gt;
 or are struggling to get it running despite the previous example configurations.&lt;br /&gt;
&lt;br /&gt;
This configuration file is designed to be used just as is and is the simplest form of the configuration file you can have which will allow you to get a running server to appear on the YP. This works on using the default settings of the server though does change some of the file paths inorder to fit in with the existing setup as used in the other examples.&lt;br /&gt;
&lt;br /&gt;
All you need to do when using this configuration file is to enter your authorisation key in the 'streamauthhash' line '''e.g.''' if your authorisation key is '''123456789''' then you change ''streamauthhash=&amp;lt;enter_your_auth_key_here&amp;gt;'' to ''streamauthhash='''123456789''''' and save the file.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Server_2</id>
		<title>SHOUTcast DNAS Server 2</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Server_2"/>
				<updated>2019-10-21T02:43:27Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Client Behaviour */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
The purpose of this document is to show you the different configuration options supported by sc_serv along with basic and more advanced example configurations to enable you to get started with using sc_serv and the features it can offer.&lt;br /&gt;
&lt;br /&gt;
The aim of sc_serv is to provide enhanced serving features and also access to the new YP2 infrastructure whilst maintaining as much backward compatibility with previous versions of sc_serv as possible. The new features introduced include:&lt;br /&gt;
&lt;br /&gt;
# Serving multiple streams from a single server instance&lt;br /&gt;
# Relaying multiple streams from a single server instance&lt;br /&gt;
# Multiplexing all server activity through a single IP port&lt;br /&gt;
# SHOUTcast 2 wire protocol support for sources, relays and clients&lt;br /&gt;
# Repackaging of SHOUTcast 1 and SHOUTcast 2 data as needed for connected clients&lt;br /&gt;
# YP2 infrastructure support&lt;br /&gt;
# Real-time metadata and statistic reporting&lt;br /&gt;
# Static station id support&lt;br /&gt;
# In-stream metadata in standardised xml files&lt;br /&gt;
# UTF-8 and international character encoding&lt;br /&gt;
# Improved server and stream security&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview of Features==&lt;br /&gt;
&lt;br /&gt;
To take full advantage of the newer features provided as part of the SHOUTcast 2 and YP2 systems then you will need to ensure you are using a compatible version of sc_serv (any version 2 will work) and that you have the required authorisation key to register as a broadcaster on the YP2 directory (see [[#Getting_Started|section 3.0]]).&lt;br /&gt;
&lt;br /&gt;
If you were intending on taking full advantage of the multiplexing and multiple stream support offered as part of sc_serv then you would need to make sure you enable the SHOUTcast 2 options (this is enabled by default with server builds from the end of 2010 if the 'yp2' option in the configuration file is not specified [see [[#YP_Server_Behaviour|section 4.14]] ). The reason for needing to enable this support is if you try to do it with the original SHOUTcast 1 protocol then it will not work as the original protocol has no means of expressing multiple streams from a single port due to the lack of an identifier provided for them.&lt;br /&gt;
&lt;br /&gt;
If you are planning on connecting multiple sc_trans instances to sc_serv then you must use the SHOUTcast 2 protocol support so that each sc_trans instance can have a unique identifier which allows for multiple streams to then be provided from a single server. It is still possible for an older source to connect to the server with a number of config options available to support this though functionality will be limited compared to what can be done with a fully supporting SHOUTcast 2 source.&lt;br /&gt;
&lt;br /&gt;
Finally clients connecting to your server do not need to directly support SHOUTcast 2 as sc_serv will repackage the stream data and any related metadata into the correct format the client requests (typically based on the user agent detected by the server).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
&lt;br /&gt;
One of the key aspects of the new YP2 directory infrastructure is an authorisation key which is used to validate your server when it tries to connect to the YP2 infrastructure for any of the station(s) you run. Once this key is obtained, it will be valid for all root servers of the station being broadcast.&lt;br /&gt;
&lt;br /&gt;
This can be done by going to the [[SHOUTcast_Authhash_Management|SHOUTcast Authhash Management]] page which shows how to do this via the 'Administation Summary' page as long as a valid source has been connected to the server. This process automatically updates your configuration file(s) with the new authhash and if the stream is set to be public then will attempt to get the stream listed in the SHOUTcast Radio Directory.&lt;br /&gt;
&lt;br /&gt;
When using an older SHOUTcast 1 server then you do not need to do this registration and the server will still be able to be listed on the directory but there is not the same level of protection over the stream as is the case with registering it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Running the Server===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The server is able to be run either as a console application or it can be run as service (Windows) or daemon (Linux / Mac OS X / BSD). Detailed below is how to get the server running on the different operating systems supported by it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The Windows version of sc_serv is designed to run on fully updated and patched versions of Windows 2000, XP, Vista and Windows 7, 8 &amp;amp; 10.&lt;br /&gt;
&lt;br /&gt;
Please note that the Windows versions of sc_serv are built with a dependency against the Microsoft Visual C++ 2008 SP1 Redistributable Package. If sc_serv is unable to start due to a dependency issue then you will need to install the correct version of the package so it can run which depends on the version of sc_serv you are attempting to run:&lt;br /&gt;
&lt;br /&gt;
32-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&lt;br /&gt;
&lt;br /&gt;
64-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ba9257ca-337f-4b40-8c14-157cfdffee4e&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Install as a Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe install &amp;lt;servicename&amp;gt; &amp;lt;username&amp;gt; &amp;lt;password&amp;gt; &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service&lt;br /&gt;
 Typically enter this as 'sc_serv' though you can use a different name but you will need&lt;br /&gt;
 to remember it as it is required to be the same when using the 'uninstall' mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;username&amp;gt; - User under which to run the service as or '0' for the local system&lt;br /&gt;
&lt;br /&gt;
&amp;lt;password&amp;gt; - Password for user or '0' for the local system or with no password&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
When run as a service there is not a good sense of a current working directory so requires all paths in the configuration and playlist files to be fully qualified otherwise lookups will fail when sc_serv is run.&lt;br /&gt;
&lt;br /&gt;
To run sc_serv with a configuration file in the same folder as the server as the current system user account you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_serv.exe install sc_serv 0 0 sc_serv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Uninstall the Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe uninstall &amp;lt;servicename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service as used when the service was registered&lt;br /&gt;
&lt;br /&gt;
To uninstall sc_serv assuming it was installed as detailed in the install section above then you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_serv.exe uninstall sc_serv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Service in the Console====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
===Linux / Mac OS X / BSD===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Remember to enable the required access on the sc_trans file by doing 'chmod a+x sc_trans' after extracting it from the distribution file otherwise the OS is likely to not run it and show the error message './sc_serv: Permission denied'.&lt;br /&gt;
&lt;br /&gt;
====Run as a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_serv daemon &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (required in all cases)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
'''e.g.'''&lt;br /&gt;
 ./sc_serv daemon ./sc_serv.conf&lt;br /&gt;
&lt;br /&gt;
When run this should output the following:&lt;br /&gt;
&lt;br /&gt;
'sc_serv going daemon with PID [XXXX]' where XXXX is the &amp;lt;pid&amp;gt; of the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====End a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
kill -SIGTERM &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -15 &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -s TERM &amp;lt;pid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pid&amp;gt; - The PID of the daemon instance (reported when the daemon started or can be found with 'ps ax | grep sc_serv' as long as sc_serv was the file run otherwise you can just use 'ps ax' if the filename isn't known). Additionally the PID of sc_serv is listed in the log file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_serv &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Additional Signals===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
When run on Linux / Mac OS X / BSD then some additional signals are supported to allow for additional control over the running daemon instance of sc_serv.&lt;br /&gt;
&lt;br /&gt;
The following signals can be used with the 'kill' command (in the manner of your choosing for using the kill command) along with the &amp;lt;pid&amp;gt; of the daemon instance to do one of the following actions:&lt;br /&gt;
&lt;br /&gt;
    SIGKILL   -  Stops sc_trans (also SIGTERM, SIGINT and SIGQUIT will work)&lt;br /&gt;
    SIGHUP    -  Rotates logfile, w3clog and streamw3clog&lt;br /&gt;
&lt;br /&gt;
The result of SIGHUP is that the current log file contents will be moved into &amp;lt;logfile&amp;gt;_1 e.g. sc_serv_1.log, &amp;lt;logfile&amp;gt;_1 will be moved into &amp;lt;logfile&amp;gt;_2 e.g. sc_serv_2.log and so on for all log files which can be found which match the current log file's name. This is useful if timed to have it create day specific log files.&lt;br /&gt;
&lt;br /&gt;
 These signals are not supported by the Windows version of sc_serv which will only&lt;br /&gt;
 respond to the Ctrl + C / Ctrl + Break / console close commands the OS provides.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration File==&lt;br /&gt;
&lt;br /&gt;
Here you can find a complete list of all of the configuration options which are provided by sc_serv which ranges from logging to networking configuration and control over the media being used when streaming via the server.&lt;br /&gt;
&lt;br /&gt;
Configuration entries labelled as ''&amp;lt;MULTI&amp;gt;'' can be used to set up simultaneous connections to the server or allow for multiple connections from various sources. These are specified by adding _# to the end of the option's name as shown below where # begins with one. If you are only working with a single instance then you do not need to add the _# part as any instances of a configuration option will assume it is for _1.&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;MULTI&amp;gt;'' system is not hierarchical and all values beyond the default must be specified for all connections. So for example, if you wanted to connect to two servers on the same port you must do:&lt;br /&gt;
&lt;br /&gt;
    serverport_1=8080&lt;br /&gt;
    serverport_2=8080&lt;br /&gt;
    serverip_1=www.server1.com&lt;br /&gt;
    serverip_2=www.server2.com&lt;br /&gt;
&lt;br /&gt;
Note that you CANNOT do it like this as it leads to not all values being set:&lt;br /&gt;
&lt;br /&gt;
    serverport=8080&lt;br /&gt;
    serverip_1=www.server1.com&lt;br /&gt;
    serverip_2=www.server2.com&lt;br /&gt;
&lt;br /&gt;
The configuration files also allow for comments/notes or options to be disabled by the use of a semi-colon (''';''') or a left bracket ('''[''') or the hash / pound symbol ('''#''') at the start of a line which can be seen in all of the configuration examples.&lt;br /&gt;
&lt;br /&gt;
Known options in the configuration files are recognised irrespective of the case they are entered in the configuration file so maxuser and MaXuSer will be handled the same way.&lt;br /&gt;
&lt;br /&gt;
Any items found in the configuration file which are not known (as detailed in following sections) or is not processed as a comment will be reported in the following manner:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;date + time&amp;gt; W msg:[CONFIG] Invalid item on line XX&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;date + time&amp;gt; is the date and time the event happens at and XX is the line in the configuration file where the error has been found to occur at.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Banning===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''banfile''' : File to store the list of banned IP addresses    ''[Default = sc_serv.ban]''&lt;br /&gt;
&lt;br /&gt;
'''savebanlistonexit''' : Re-write the 'banfile' on server exit    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the file into then you need to ensure that the&lt;br /&gt;
 folder already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Client Behaviour===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''maxuser''' : Specify the maximum number of clients allowed to connect to the server    ''[Default = 32]''&lt;br /&gt;
 This is used in conjunction with 'streammaxuser' (see [[#Stream_Configuration|section 4.12]]) to control the&lt;br /&gt;
 maximum limit on the number of client connections allowed to connect to the server instance.&lt;br /&gt;
&lt;br /&gt;
'''listenertime''' : Specify the maximum time in minutes a client can listen to the stream    ''[Default = 0]''&lt;br /&gt;
 A value of zero means there will be no time limit.&lt;br /&gt;
&lt;br /&gt;
'''autodumpusers''' : Enable to allow the server to disconnect clients if the source disconnects    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''srcip''' : Specify the server side binding address for sources to connect on    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''dstip''' or '''destip''' or '''publicip''' : Specify the server side binding address for clients    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
 If 'any' or no value is specified then sc_serv listens to all addresses.&lt;br /&gt;
&lt;br /&gt;
If you specify a value for 'dstip / destip' then this will be used by the listen feature on the Administration Pages (see section 5.1) so it can provide a valid stream url in the generated playlist. If 'dstip / destip' is not specified then the server will attempt to auto-generate the IP required for the client to be able to connect. If this fails the generated playlist is likely to return a stream url like &amp;lt;nowiki&amp;gt;http://0.0.0.0:&amp;lt;portbase&amp;gt;/&amp;lt;path&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The IP provided needs to be in a valid format like &amp;lt;nowiki&amp;gt;http://&amp;lt;my-ip&amp;gt;&amp;lt;/nowiki&amp;gt; or an address which can be resolved to an IP otherwise the internal lookups done are likely to fail (depends upon the server configuration and OS being used). Also you cannot set srcip and dstip / destip to be the same IP value and if this happens then the server will close. Closing of the server will also happen if the IP cannot be resolved or correctly bound to i.e. server is not there or an invalid value was entered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''titleformat''' : Specify a string to be used in-place of the default icy-name string being used    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''urlformat''' : Specify a string to be used in-place of the default icy-url string being used    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''  '''&lt;br /&gt;
'''  '''&lt;br /&gt;
&lt;br /&gt;
===Debugging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In all cases, the default value is for no debug logging for the options listed below.&lt;br /&gt;
&lt;br /&gt;
'''yp1debug''' : Enable debug logging of YP connections&lt;br /&gt;
&lt;br /&gt;
'''yp2debug''' : Enable debug logging of YP2 connections&lt;br /&gt;
&lt;br /&gt;
'''shoutcastsourcedebug''' : Enable debug logging of SHOUTcast source connections&lt;br /&gt;
&lt;br /&gt;
'''uvox2sourcedebug''' : Enable debug logging of SHOUTcast 2 source connections&lt;br /&gt;
&lt;br /&gt;
'''shoutcast1clientdebug''' : Enable debug logging of SHOUTcast streaming clients&lt;br /&gt;
&lt;br /&gt;
'''shoutcast2clientdebug''' : Enable debug logging of SHOUTcast 2 streaming clients&lt;br /&gt;
&lt;br /&gt;
'''relayshoutcastdebug''' : Enable debug logging for SHOUTcast relays&lt;br /&gt;
&lt;br /&gt;
'''relayuvoxdebug''' : Enable debug logging for SHOUTcast 2 relays&lt;br /&gt;
&lt;br /&gt;
'''relaydebug''' : Enable debug logging of common relay code&lt;br /&gt;
&lt;br /&gt;
'''streamdatadebug''' : Enable debug logging of common streaming code&lt;br /&gt;
&lt;br /&gt;
'''httpstyledebug''' : Enable debug logging of http style requests&lt;br /&gt;
&lt;br /&gt;
'''statsdebug''' : Enable debug logging of statistics&lt;br /&gt;
&lt;br /&gt;
'''microserverdebug''' : Enable debug logging of common server activity&lt;br /&gt;
&lt;br /&gt;
'''threadrunnerdebug''' : Enable debug logging of the thread manager&lt;br /&gt;
&lt;br /&gt;
'''rtmpclientdebug''' : Enable debug logging of rtmp clients&lt;br /&gt;
&lt;br /&gt;
'''admetricsdebug''' : Enable debug logging of ad metrics (v2.5 and newer)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' '''&lt;br /&gt;
''' '''&lt;br /&gt;
&lt;br /&gt;
===Flash Security===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''flashpolicyfile''' : Name of file containing flash crossdomain policies on the server    ''[Default = crossdomain.xml]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Introduction and Backup Files===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Note that intro and backup audio files must precisely match the format and bitrate for the stream! If they do not match, there will be a break in the stream and the listener will be disconnected. &lt;br /&gt;
&lt;br /&gt;
'''introfile''' : File to play when a client first connects to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: This is used globally and also is default for stream #1 on DNAS versions greater than 2.0. To apply a specific intro file to a stream, use streamintrofile_X. &lt;br /&gt;
&lt;br /&gt;
'''streamintrofile_X''' : File to play when a client first connects to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''backupfile''' : File to play if the source disconnects from the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: This is used globally and also is default for stream #1 on DNAS versions greater than 2.0. To apply a specific backup file to a stream, use streambackupfile_X. &lt;br /&gt;
&lt;br /&gt;
'''streambackupfile_X''' : assigns a specific backup file to a streamID X [Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''streambackupurl_X''' : assigns a specific backup stream to a streamID X (v2.6 Premium feature)''&lt;br /&gt;
&lt;br /&gt;
'''specialfiletmpdir''' : place to store intro and backup files uploaded by sc_trans    ''[Default = /tmp/ (*nix only)]''&lt;br /&gt;
&lt;br /&gt;
'''maxspecialfilesize''' : Change the maximum size in bytes of the backup and intro files    ''[Default = 30000000]''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''log''' : Enable logging of the servers output    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''screenlog''' :  Enable logging of servers output to the console    ''[Default = 1]''&lt;br /&gt;
 If log=0 then this option is ignored due to no logging happening.&lt;br /&gt;
&lt;br /&gt;
'''logfile''' : Specify a different logfile to save the logs into ''[Default = %temp%\sc_serv.log or /tmp/sc_serv.log]''&lt;br /&gt;
&lt;br /&gt;
'''logclients''' : Enable logging of details about client connections and disconnections made ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the logs into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''configrewrite''' :  Re-write the 'config file' on server exit    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''songhistory''' : Specify the maximum song history to preserve    ''[Default = 10]''&lt;br /&gt;
&lt;br /&gt;
'''cpucount''' : Specify the number of cpu's present instead of the calculated number if non-zero    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''unique''' : Specify a substitution string for the '$' character to be used when processing filenames which if specified will set any occurences of '$' to the value set. This will be used in the processing of the following filenames: '''logfile''', '''introfile''', '''streamintrofile''', '''backupfile''', '''streambackupfile''', '''banfile''', '''streambanfile''', '''ripfile''', '''streamripfile''', '''include''', '''w3clog''', '''streamw3clog'''&lt;br /&gt;
&lt;br /&gt;
 So when 'unique' is changed from '$' to say 'test' then the following happens if 'logfile' is&lt;br /&gt;
 set to '/usr/local/shoutcast/$.log' then this would be converted to '/usr/local/shoutcast/test.log'&lt;br /&gt;
&lt;br /&gt;
'''include''' : Specify an additional include file containing settings to be processed from the current point in the main configuration file    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
You can do multiple calls of this allowing for a basic configuration file with then 'specific' stream configurations set in individual conf files though you need to ensure not to include a reference to the same file in itself.&lt;br /&gt;
&lt;br /&gt;
You can also specify a path with a wildcard for sc_serv to use to find multiple configuration files to include '''e.g.''' 'include=stream/*.conf'.  This can then be used along with the multiple stream configurations (see section 4.12) and the admin command 'admin.cgi?mode=reload' (see section 5.1) to add / remove / update stream configurations without having to close the server to apply them.&lt;br /&gt;
&lt;br /&gt;
'''admincssfile''' : Specify the css styling to be used on the index.html and admin pages    ''[Default = v2]''&lt;br /&gt;
&lt;br /&gt;
This can accept the following parameters:&lt;br /&gt;
&lt;br /&gt;
:admincssfile='''v1'''  -  Uses the v1 DNAS style&lt;br /&gt;
:admincssfile='''v2'''  -  Uses the newer SHOUTcast 2 style&lt;br /&gt;
:admincssfile='''path_to_local_css_file'''  e.g. my_index.css&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 If using a custom css file, if it does not exist on the first try to load it the server will revert to&lt;br /&gt;
 the default css style. As well the style is cached once loaded so changes require a restart of sc_serv.&lt;br /&gt;
&lt;br /&gt;
'''faviconfile''' : Specify the file to be returned as the favicon.ico when the administration pages are being queried by the client's browser    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
The default behaviour is to use a SHOUTcast themed built-in icon file and support / handling the update of this will entirely depend on the browser.&lt;br /&gt;
&lt;br /&gt;
'''faviconmimetype''' : Specify the mime type for actual file to be served in the favicon.ico response    ''[Default = image/x-icon]''&lt;br /&gt;
&lt;br /&gt;
Ensure this is correct for the type of image being used so it is valid.&lt;br /&gt;
&lt;br /&gt;
'''hidestats''' : Specify if the publically accessible stats?sid=# page can be accessed or if it is only available via the private administration pages   ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''robotstxtfile''' : Specify the file to be returned as the robots.txt when queried by search engines, etc to attempt to prevent incorrect access to the server's pages which may cause invalid client connections    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
The default behaviour is to return a robots.txt reponse indicating not to look at any of the server's pages i.e.&lt;br /&gt;
::User-agent:*&lt;br /&gt;
::Disallow:/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Networking===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''namelookups''' : Enable to allow reverse DNS look-ups on incoming IP addresses    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''portbase''' : Specify the port which clients and sources need to use to connect to the server    ''[Default = 8000]''&lt;br /&gt;
 SHOUTcast 1 sources are only able to connect to 'portbase + 1'.&lt;br /&gt;
&lt;br /&gt;
'''autodumpsourcetime''' : Specify how long before an idle source is dumped from the server (in seconds)    ''[Default: 30]''&lt;br /&gt;
 A value of zero means there is no timeout of an idle source.&lt;br /&gt;
 Also if you set this too low then it is likely that valid sources will&lt;br /&gt;
 fail to connect during the initial stages of a source connection.&lt;br /&gt;
&lt;br /&gt;
'''maxheaderlinesize''' : Specify the maximum size of an HTTP header line    ''[Default = 2048]''&lt;br /&gt;
&lt;br /&gt;
'''maxheaderlinecount''' : Specify the maximum header lines in an HTTP style exchange    ''[Default = 100]''&lt;br /&gt;
&lt;br /&gt;
'''adminpassword''' : Specify the administrator password for accessing the remote server features    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''password''' : Specify the password for broadcasters when connecting to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
 This matches the 'uvoxauth' value in the sc_trans configuration file (see [[SHOUTcast_DNAS_Transcoder_2#Network_Options|sc_trans.txt - section 3.11]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Network Buffers===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''buffertype''' : Specify whether the buffer size is fixed [0] or adaptive [1]    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''adaptivebuffersize''' : Specify the buffer size in seconds if buffer is set to adaptive    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''fixedbuffersize''' : Specify the buffer size in bytes if the buffer is set to fixed    ''[Default = 1048576]''&lt;br /&gt;
&lt;br /&gt;
'''bufferhardlimit''' : Specify the maximum buffer size in bytes which it can never go above    ''[Default = 16777216]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Relaying===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''allowrelay''' : Enable to allow a relay to connect to the server    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''allowpublicrelay''' : Enable to allow relays to list themselves in the YP directory    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''relayreconnecttime''' : Specify how many seconds to wait to reconnect on a relay failure    ''[Default = 30]''&lt;br /&gt;
 Setting this to 0 will disable attempts for the relay to reconnect.&lt;br /&gt;
&lt;br /&gt;
'''relayconnectretries''' : Specify the number of times relays are attempted to be connected to if it is initially unable to connect    ''[Default = 3]''&lt;br /&gt;
 This generally applies only to YP1 connections and is related to the&lt;br /&gt;
 actual attempts to make and get a http response from the YP server.&lt;br /&gt;
&lt;br /&gt;
'''maxhttpredirects''' : Specify the maximum number of times we can redirect when relaying    ''[Default = 5]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;Legacy Options&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
'''relayport''' : Port of the source to use for the relay    ''[Default: 80]''&lt;br /&gt;
&lt;br /&gt;
'''relayserver''' : Url of the source to relay    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
 Using the stream configuration options (see [[#Stream_Configuration|section 4.12]]) is the preferred method&lt;br /&gt;
 of setting up a relay. These options are only provided as a means for loading&lt;br /&gt;
 legacy configuration files. If found then these are mapped to 'streamrelayurl_1'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Reserved List===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''ripfile''' : File to store the list of reserved IP addresses    ''[Default = sc_serv.rip]''&lt;br /&gt;
&lt;br /&gt;
'''saveriplistonexist''' : Re-write the 'ripfile' on server exit    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''riponly''' : Only allow connections to be made from reserved IP addresses    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the file into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Stream Configuration===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Important Note:''' If you do not specify an identifier (_#) on the end of the above options then it will be treated like _1 (effectively acting like SHOUTcast 1). Additionally, _0 is not a supported identifier and will be mapped to _1.&lt;br /&gt;
&lt;br /&gt;
'''requirestreamconfigs''' : Only allow sources to connect if a stream configuration has been set in your configuration file    ''[Default = 0]''&lt;br /&gt;
 With this enabled, you will need to ensure that any sources have their configuration details&lt;br /&gt;
 setup to match those in sc_trans's configuration, in particular the 'uvoxstreamid' value with&lt;br /&gt;
 sc_trans (see [[SHOUTcast_DNAS_Transcoder_2#Network_Options|sc_trans.txt - section 3.11]]).&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each stream configuration):&lt;br /&gt;
&lt;br /&gt;
'''streamid''' : Specify the numerical identifier of the stream for control or referencing the stream configuration. This can only be a numeric value from 1 to 2147483647.&lt;br /&gt;
&lt;br /&gt;
 If you use multiple stream configurations then you will need to ensure the _X&lt;br /&gt;
 part is specified and correct for each stream configuration group&lt;br /&gt;
 e.g.&lt;br /&gt;
   streamid=1&lt;br /&gt;
   streampath=random&lt;br /&gt;
     or&lt;br /&gt;
   streamid_1=1&lt;br /&gt;
   streampath_1=random_stream_path&lt;br /&gt;
   streamid_2=2&lt;br /&gt;
   streampath_2=another_stream_path&lt;br /&gt;
&lt;br /&gt;
'''streamauthhash''' : The authorisation key needed for YP2 directory registration.&lt;br /&gt;
 This is a requirement for using the YP2 system and without it you will not be able to&lt;br /&gt;
 successfully connect to the YP2 directory (see [[#Getting_Started|section 3.0]]).&lt;br /&gt;
 &lt;br /&gt;
 This can be used for multiple streams you are providing or can be different (as long&lt;br /&gt;
 as valid) so you can infact provide multiple stations from the same server if desired.&lt;br /&gt;
&lt;br /&gt;
'''streampath''' : Specify the path clients need to use to access the stream&lt;br /&gt;
 If a / is not specified on the start of the string then the server will add&lt;br /&gt;
 it to the generated path in playlist entries or other places as required so&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://&amp;lt;serverurl&amp;gt;/&amp;lt;streampath&amp;gt;&amp;lt;/nowiki&amp;gt; will work so clients are able to connect.&lt;br /&gt;
 streampath is the mountpoint, e.g. streampath_1=mystation would result in ip:port/mystation&lt;br /&gt;
 &lt;br /&gt;
 If this is not specified then &amp;lt;nowiki&amp;gt;http://&amp;lt;serverurl&amp;gt;/stream/&amp;lt;streamid&amp;gt;/&amp;lt;/nowiki&amp;gt; will be&lt;br /&gt;
 used for client access and in generated playlist entries so that it will&lt;br /&gt;
 always be possible for clients to connect to the server somehow. See [[SHOUTcast_DNAS_Server_2#Stream_Addresses|section 6.0]] for more information on the&lt;br /&gt;
 server's stream address support.&lt;br /&gt;
&lt;br /&gt;
'''streamrelayurl''' : Specify the full url of source to relay (if this is a relay).&lt;br /&gt;
 Make sure if you use this that the full url is entered and that it is&lt;br /&gt;
 the url which clients would connect to for the stream to be relayed.&lt;br /&gt;
&lt;br /&gt;
'''streammaxuser''' : Specify the maximum number of clients allowed to connect to the stream    ''[Default = 0]''&lt;br /&gt;
If set to zero, not specified or higher than 'maxuser' then the value set for 'maxuser' (see [[#Client_Behaviour|section 4.2]]) will be used for all knwon streams.&lt;br /&gt;
&lt;br /&gt;
Changing this to a value between zero and 'maxuser' will enforce the user connection limit for the specified value in the stream configuration '''e.g.'''&lt;br /&gt;
 streammaxuser_1 = 8&lt;br /&gt;
 maxuser = 32&lt;br /&gt;
&lt;br /&gt;
This allows a total of 32 connections to the server but specifies the maximum number of connections to the first stream configuration is 8.&lt;br /&gt;
&lt;br /&gt;
With the following stream configuration&lt;br /&gt;
 streammaxuser_1 = 64&lt;br /&gt;
 maxuser = 32&lt;br /&gt;
&lt;br /&gt;
This allows a total of 32 connections to the server but with a per stream limit above the maximum means the maximum number of connections to the first stream group will be 32. However this also depends upon any other stream configurations and their limits as to whether 32 clients will be able to connect to this stream configuration.&lt;br /&gt;
&lt;br /&gt;
Finally unless a valid stream configuration is specified then this value will only be applied to the first stream configuration found i.e. there is a need to specify a streamid_XXX for streammaxuser_XXX (where XXX is the stream identifier of the stream configuration group.&lt;br /&gt;
&lt;br /&gt;
'''streamadminpassword''' : Specify the administrator password for accessing the remote server features for the specified stream configuration group. If this is not specified then 'adminpassword' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streampassword''' : Specify the password for broadcasters when connecting to the server for the specified stream configuration group. If this is not specified then 'password' will be used.&lt;br /&gt;
 This matches the 'uvoxauth' value in the sc_trans configuration file (see sc_trans.txt - section 3.11).&lt;br /&gt;
&lt;br /&gt;
'''streampublicserver''' : This allows you to override the public flag received from the source when a connection is being made to the YP directory. If this is not specified or is set to empty then 'publicserver' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamallowrelay''' : Enable to allow a relay to connect to the server. If this is not specified then 'allowrelay' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamallowpublicrelay''' : Enable to allow relays to list themselves in the YP directory. If this is not specified then 'allowpublicrelay' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamriponly''' : Enable to only allow connections to be made from reserved IP addresses. If this is not specified then 'riponly' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamautodumpsourcetime''' : Specify how long before an idle source will be dumped from the server (in seconds). A value of zero means there is no timeout of an idle source. If not specified then 'autodumpsourcetime' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamautodumpusers''' : Enable to allow the server to disconnect clients if the source disconnects. If not specified then 'autodumpusers' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamlistenertime''' : Specify the maximum time in minutes a client is allowed to listen to the stream. A value of zero means there will be no time limit. If not specified then 'listenertime' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamintrofile''' : File to play when a client first connects to the server. If this is not specified then 'introfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streambackupfile''' : File to play if the source disconnects from the server. If this is not specified then 'backupfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streammovedurl_X''' : redirects a permanently stopped or moved stream to a different working stream url.&lt;br /&gt;
&lt;br /&gt;
'''streambanfile''' : File to store the list of banned IP addresses. If this is not specified then 'banfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamripfile''' : File to store the list of banned IP addresses. If this is not specified then 'ripfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamw3clog''' : File to store the web connections logs into. If this is not specified then 'w3clog' will be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''DNAS v2.6 and newer'''&lt;br /&gt;
&lt;br /&gt;
'''sslCertificateFile''' : For https:// streams, specify .crt file e.g. sslCertificateFile=/path/to/ssl.crt&lt;br /&gt;
&lt;br /&gt;
'''sslCertificateKeyFile''' : specify key file, e.g. sslCertificateKeyFile=/path/to/key.pem&lt;br /&gt;
&lt;br /&gt;
 Put the whole certificate chain in the .crt file, and only the key in the .key file&lt;br /&gt;
 Note: Requires Premium subscription to unlock Premium features.&lt;br /&gt;
 SSL Cert needs to be assigned to a DNS e.g. stream.mysite.com&lt;br /&gt;
 Be sure to also add destip=stream.mysite.com and alternateports=443 lines to DNAS config file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' '''&lt;br /&gt;
&lt;br /&gt;
===Web Connection (W3C) Logging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''w3cenable''' : Enable logging of web connections to describe the duration a client has listened to a specific title    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''w3clog''' : File to store the web connections logs into    ''[Default = sc_w3c.log]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the log into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
'''webclientdebug''' : Enable logging of web client connections    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===YP Server Behaviour===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''uvoxcipherkey''' : Specify the key used to obfuscate the initial handshaking with the source    ''[Default = foobar]''&lt;br /&gt;
 This is a SHOUTcast 2 only feature and it matches the 'djcipher' value in the sc_trans&lt;br /&gt;
 configuration file (see [[SHOUTcast_DNAS_Transcoder_2#DJ_Support|sc_trans.txt - section 3.3]]).&lt;br /&gt;
&lt;br /&gt;
Only change this if you really need to do so as not all SHOUTcast 2 clients will allow you to edit this value from the default value. If using the Source DSP plug-in then see [[Source_DSP_Plug-in#SHOUTcast_2_Cipher_Key|dsp_sc.txt - section 5.0]] for details on how to change the plug-in to use a differnet value.&lt;br /&gt;
&lt;br /&gt;
'''metainterval''' : Specify the metadata transmission interval in bytes    ''[Default = 8192]''&lt;br /&gt;
 YP1 only&lt;br /&gt;
&lt;br /&gt;
'''yp2''' : Enable to use the SHOUTcast 2 protocol and related server features for access to the YP2 directory    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
If this is enabled and not all of the required values are set then the server will throw an error and will abort from its start-up attempt. It should be indicated what needs to be set to allow the server to start with this set.&lt;br /&gt;
&lt;br /&gt;
Additionally if there is an issue then the server will report an error in its log ouput of 'Connection attempt failed. YP2 error code is XXX (&amp;lt;message&amp;gt;)' where XXX is one of the following error codes and &amp;lt;message&amp;gt; is a message set in the error response to indicate a bit more what the error relates to. All current error codes can be found [[#YP_Server_Errors|here]].&lt;br /&gt;
&lt;br /&gt;
'''ypaddr''' : Allows you to specify a different YP server if required    ''[Default = yp.shoutcast.com]''&lt;br /&gt;
&lt;br /&gt;
'''ypport''' : Allows you to specify the port of the YP server if required    ''[Default = 80]''&lt;br /&gt;
&lt;br /&gt;
'''ypPath''' : Allows you to specify the path to YP2 services on the server    ''[Default = /yp2]''&lt;br /&gt;
&lt;br /&gt;
'''ypTimeout''' : Specify the timeout interval in seconds for requests made to the YP server    ''[Default = 60]''&lt;br /&gt;
&lt;br /&gt;
'''ypmaxretries''' : Specify the maximum number of times a YP request will be attempted    ''[Default = 10]''&lt;br /&gt;
 This generally applies only to YP1 connections and is related to the&lt;br /&gt;
 actual attempts to make and get a http response from the YP server.&lt;br /&gt;
&lt;br /&gt;
'''ypreportinterval''' : Specify the maximum time in which the YP must have contacted our server in seconds    ''[Default = 300]''&lt;br /&gt;
&lt;br /&gt;
'''ypminreportinterval''' : Specify the minimum time in which the YP can contact our server in seconds    ''[Default = 10]''&lt;br /&gt;
&lt;br /&gt;
'''publicserver''' : This allows you to override the public flag from the connected source when a connection is being made to the YP directory    ''[Default = default]''&lt;br /&gt;
This can be one of the following values:&lt;br /&gt;
 '''default''' - use the flag provided by the source&lt;br /&gt;
 '''always''' - force the source to be public&lt;br /&gt;
 '''never''' - never allow the use the flag provided by the source&lt;br /&gt;
&lt;br /&gt;
When using sc_trans this would match with the 'public' value (see [[SHOUTcast_DNAS_Transcoder_2#Metadata_Control|sc_trans.txt - section 3.8]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===YP Server Errors===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If not all of the required values are set for a public listing then the DNAS server will throw an error and will abort its attempt to be listed in the Directory. It should be indicated the error is with one of the error codes provided below so it can be resolved.&lt;br /&gt;
&lt;br /&gt;
Additionally if there is an issue during Directory updates or removals, then the server will report an error in its log ouput as one of the following error codes and &amp;lt;message&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status Code&lt;br /&gt;
! Status Message&lt;br /&gt;
|-&lt;br /&gt;
| 400 || Generic error ''(covers all other cases usually from internal failures)''&lt;br /&gt;
|-&lt;br /&gt;
| 457 || Unrecoverable error while updating station information - DNAS restart required.&lt;br /&gt;
|-&lt;br /&gt;
| 470 || Invalid authorization hash&lt;br /&gt;
|-&lt;br /&gt;
| 471 || Invalid stream type (could be a bad bitrate or mime type)&lt;br /&gt;
|-&lt;br /&gt;
| 472 || Missing or invalid stream url&lt;br /&gt;
|-&lt;br /&gt;
| 473 || Server unreachable by YP&lt;br /&gt;
|-&lt;br /&gt;
| 474 || Relay url does not exist&lt;br /&gt;
|-&lt;br /&gt;
| 475 || Invalid server ID&lt;br /&gt;
|-&lt;br /&gt;
| 476 || Invalid max clients (value out of range or missing)&lt;br /&gt;
|-&lt;br /&gt;
| 477 || Terms of Service violator.  You are being reported.&lt;br /&gt;
|-&lt;br /&gt;
| 478 || Incompatible protocol.&lt;br /&gt;
|-&lt;br /&gt;
| 479 || Streams requiring authorization are not public and cannot list here.&lt;br /&gt;
|-&lt;br /&gt;
| 480 || Cannot see your station/computer (URL: &amp;lt;streamurl&amp;gt;) from the Internet, disable Internet Sharing/NAT/firewall/ISP cache.&lt;br /&gt;
|-&lt;br /&gt;
| 481 || Cannot verify server since all listener slots are full.  Please wait.&lt;br /&gt;
|-&lt;br /&gt;
| 482 || This network has been permanently banned due to a previous violation of the SHOUTcast directory terms of service&lt;br /&gt;
|-&lt;br /&gt;
| 483 || Invalid listeners (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 484 || Invalid avglistentime (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 485 || Invalid newsessions (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 486 || Invalid connects (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 487 || Request &amp;amp; Response objects are null&lt;br /&gt;
|-&lt;br /&gt;
| 488 || Request xml is null&lt;br /&gt;
|-&lt;br /&gt;
| 489 || YP command not specified&lt;br /&gt;
|-&lt;br /&gt;
| 490 || Generic error, while doing xml parsing&lt;br /&gt;
|-&lt;br /&gt;
| 491 || Generic error, while reading xml request&lt;br /&gt;
|-&lt;br /&gt;
| 492 || Error closing buffer / HTTP connection&lt;br /&gt;
|-&lt;br /&gt;
| 493 || Internal error - unable to acquire data source&lt;br /&gt;
|-&lt;br /&gt;
| 494 || Error updating information - DNAS restart required&lt;br /&gt;
|-&lt;br /&gt;
| 495 || Error acquiring station ID - DNAS restart required&lt;br /&gt;
|-&lt;br /&gt;
| 496 || Error converting data type&lt;br /&gt;
|-&lt;br /&gt;
| 497 || Inconsistent stream behaviour&lt;br /&gt;
|-&lt;br /&gt;
| 498 || Invalid Request (Invalid request received)&lt;br /&gt;
|-&lt;br /&gt;
| 499 || Error while getting information&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Administration==&lt;br /&gt;
&lt;br /&gt;
With sc_serv there are administration pages available for accessing and controlling the server remotely which allows you to monitor and control clients connected to the stream (or not if banning them). These pages can now be accessed through a summary page at /index.html which will show a link to any active stream(s) or you explicitly access them via the /index.html?sid=# path where # is the ID of the stream (see [[#Stream_Configuration|section 4.12]] for more about using 'streamid') '''e.g.'''&lt;br /&gt;
 &amp;lt;streamurl&amp;gt;/index.html?sid=1&lt;br /&gt;
&lt;br /&gt;
If no sid or an invalid sid is passed then you will be taken to the summary /index.html and this will be applied even if you were on a page with a known ID and then enter an invalid sid or remove it purposefully.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Administration Pages===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
As part of the administrative features provided there are the following pages where # is the streamid you want to use). This is not a complete list but should cover all of the pages which allow for a direct http url to be entered to get an administation action to work. The ban and reserve IP actions require input fields and do not map to direct sends.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Public Pages====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''index.html'''  -  Shows a summary page with links to get to any active stream(s)&lt;br /&gt;
&lt;br /&gt;
'''currentsong?sid=#'''  -  Returns the current song title or a null response&lt;br /&gt;
&lt;br /&gt;
'''nextsong?sid=#'''  -  Returns the next song title (if known) or a null response&lt;br /&gt;
 currentsong and nextsong both provide a UTF-8 encoded string of the song title&lt;br /&gt;
 otherwise it will return effectively no response (ignoring the http header).&lt;br /&gt;
&lt;br /&gt;
'''nextsongs?sid=#'''  -  Returns in an xml format the next song title(s) (if known) to be played when using a compatible v2 stream source. See [[#XML_Responses|section 5.2]] for more details on the format of the xml returned).&lt;br /&gt;
&lt;br /&gt;
'''index.html?sid=#'''  -  Shows current status of the specified stream&lt;br /&gt;
&lt;br /&gt;
'''played.html?sid=#'''  -  Song history of specified playing history&lt;br /&gt;
:or&lt;br /&gt;
'''played?sid=#'''&lt;br /&gt;
&lt;br /&gt;
'''listen.pls?sid=#'''  -  Provides a PLS for file clients to use to connect to the stream.&lt;br /&gt;
:or&lt;br /&gt;
'''listen?sid=#'''&lt;br /&gt;
&lt;br /&gt;
'''listen.m3u?sid=#'''  -  Provides a M3U file for clients to use to connect to the stream.&lt;br /&gt;
&lt;br /&gt;
'''listen.asx?sid=#'''  -  Provides a ASX file for clients to use to connect to the stream.&lt;br /&gt;
&lt;br /&gt;
 With the listen pages you either need to have specified an IP with 'dstip / destip'&lt;br /&gt;
 (see section 4.2) or leave empty and allow the server to attempt to auto-generate&lt;br /&gt;
 the IP required for the client to be able to connect. If this fails the generated&lt;br /&gt;
 playlist is likely to return a stream url like &amp;lt;nowiki&amp;gt;http://0.0.0.0:&amp;lt;portbase&amp;gt;/&amp;lt;path&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''home.html?sid=#''' or '''home?sid=#'''  -  Opens in a new window or tab (depending on the client browser) the 'streamurl' as specified by the stream source. If this is not set then the client will be redirected to the shoutcast.com main page.&lt;br /&gt;
&lt;br /&gt;
'''stats?sid=#'''  -  Provides an xml response for public accessibility which matches the private version from admin.cgi?sid=#&amp;amp;mode=viewxml&amp;amp;page=1. This is the modern version of the 7.html page as provided by the legacy v1 servers. See [[#XML_Responses|section 5.2]] for information on what is provided in the xml response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Private Pages====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 By passing &amp;amp;pass=password where password is the 'adminpassword' (see section [[#Networking|4.8]]) then it is possible&lt;br /&gt;
 to directly access the administration page(s) required. As well the base64 encoded version of the password&lt;br /&gt;
 can be passed as long as it is prefixed with ''YWRtaW46''&lt;br /&gt;
 e.g.&lt;br /&gt;
     &amp;amp;pass=changeme is the same as &amp;amp;pass=YWRtaW46Y2hhbmdlbWU=&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi'''  -  Shows the an overal summary admin page for the streams provided by the server including direct links to certain information pages (see notes about the 'admin.cgi?sid=#&amp;amp;mode=viewxml' command for more info)&lt;br /&gt;
:or&lt;br /&gt;
'''admin.cgi?sid=0'''&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#'''  -  Shows the base admin page for the stream and information&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=updinfo&amp;amp;song=title'''           &lt;br /&gt;
:or&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=updinfo&amp;amp;type=xml&amp;amp;song=xml'''    &lt;br /&gt;
 If 'title' is not empty then it will be set as the current song title for the stream&lt;br /&gt;
 specified until the next use of this action or the next title update is received from&lt;br /&gt;
 the source. Specifying '&amp;amp;type=xml' will process the value of 'song' as [[SHOUTcast_XML_Metadata_Specification|v2 XML metadata]]&lt;br /&gt;
 instead of a v1 title.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewlog'''  -  View logfile&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewlog&amp;amp;viewlog=tail'''  -  View logfile (tailing)&lt;br /&gt;
&lt;br /&gt;
 The tailing option keeps adding additional log entries to the end of the view whilst the view is active.&lt;br /&gt;
 As well any html or xml data in the log will not be shown correctly in the view as &amp;lt; &amp;gt; &amp;amp; are not escaped&lt;br /&gt;
 to their html entities. See [[#Logging|section 4.6]] for more information on the log file.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewban'''  -  Ban view which matches the ban file and allows you to ban a single IP or an IP range from it (see [[#Banning|section 4.1]] for more info on the file)&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewrip'''  -  Reserved IP list that matches the rip file (see [[#Reserved_IP_.28RIP.29|section 4.11]] for more info on the file)&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=art''' or '''admin.cgi?sid=#&amp;amp;mode=art&amp;amp;art=playing'''  -  Displays the artwork SHOUTcast v2 compatible clients may be able to display if the SHOUTcast v2 source does provide it.&lt;br /&gt;
  &lt;br /&gt;
 The artwork mode is primarily intended as a debugging option to make it possible&lt;br /&gt;
 to see what (if anything) has been provided by the SHOUTcast v2 source.&lt;br /&gt;
 &lt;br /&gt;
 If no '&amp;amp;art=' is specified or not a matching option then the stream artwork (if&lt;br /&gt;
 available) will be shown. If no '&amp;amp;art=playing' is specified then this will show&lt;br /&gt;
 the playing file's artwork (if available).&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewxml''' or '''admin.cgi?sid=#&amp;amp;mode=viewxml&amp;amp;page=#'''  -  Returns an xml output of the current stream information&lt;br /&gt;
&lt;br /&gt;
 If page is not set or is outside of the range zero to 6 then this will output all of the&lt;br /&gt;
 information as the standard viewxml action does. Otherwise this only display information&lt;br /&gt;
 depending on the value assigned to page which can be from 1 to 6 which maps as follows:&lt;br /&gt;
 &lt;br /&gt;
     1 - Server Summary (this is the same as using the public stats?sid=# action)&lt;br /&gt;
     2 - Not used (previously used for Webdata Stats but not in current builds)&lt;br /&gt;
     3 - Listener Stats&lt;br /&gt;
     4 - Song History&lt;br /&gt;
     5 - Stream Metadata        (if supported by the source otherwise can just be title)&lt;br /&gt;
     6 - Stream Configurations  (displays all of the known stream configurations though this is only available on admin.cgi)&lt;br /&gt;
 &lt;br /&gt;
 If accessing the standard viewxml or the listener stats (page = 3), you can also send&lt;br /&gt;
 '&amp;amp;iponly=1' which will filter the listener information (if there are any) to just output&lt;br /&gt;
 the IP instead of the additional information provided normally.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=resetxml&amp;amp;sid=#'''  -  Will flush the held stream information to refresh it&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=kicksrc'''  -  Will allow you to kick the currently connected source for the specified stream.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unripdst&amp;amp;ripdst=&amp;lt;IP&amp;gt;'''  -  Where &amp;lt;IP&amp;gt; is the IP to reserve (see [[#Reserved_IP_.28RIP.29|section 4.11]] for more information).&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unbandst&amp;amp;bandst=&amp;lt;IP&amp;gt;.0&amp;amp;banmsk=0'''  -  Where &amp;lt;IP&amp;gt; is the first 3 parts of a subnet IP to unban.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unbandst&amp;amp;bandst=&amp;lt;IP&amp;gt;&amp;amp;banmsk=255'''  -  Where &amp;lt;IP&amp;gt; is that of a single IP to unban.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=rotate''' or '''admin.cgi?mode=rotate&amp;amp;files=log|w3c'''  -  This will rotate the log files set via the 'logfile', 'w3clog' and 'streamw3clog' options.&lt;br /&gt;
 If &amp;amp;files is specified then passing log or w3c will allow you to only&lt;br /&gt;
 rotate one type of file otherwise both will be rotated by this command.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=reload''' or '''admin.cgi?mode=reload&amp;amp;force=1'''  -  This reloads the stream configuration details in the main configuration file the server used when started and is only available on the admin summary page and so can only be run by the master administrator password.&lt;br /&gt;
&lt;br /&gt;
 This command works on the server as a whole (hence no sid parameter) and it will add or&lt;br /&gt;
 remove or update any stream configuration as applicable which will cause any connected&lt;br /&gt;
 sources and clients to be kicked as applicable (usually if a stream configuration was removed).&lt;br /&gt;
 &lt;br /&gt;
 This will recognise any configurations included via 'include' entries so you can have 'include=stream/*.conf'&lt;br /&gt;
 in your main configuration file which the server can then use to detect different stream configurations.&lt;br /&gt;
 &lt;br /&gt;
 If '&amp;amp;force=1' is passed then the reload will treat the updating of active stream configurations in the&lt;br /&gt;
 same manner as a stream configuration removal instead of trying to update compatible stream configuration&lt;br /&gt;
 details without resetting the stream '''e.g.''' not increasing the 'streammaxuser' when it could be increased.&lt;br /&gt;
 &lt;br /&gt;
 The following configuration options are updated when using this command:&lt;br /&gt;
 &lt;br /&gt;
     password or streampassword (*)            streamadminpassword (#)&lt;br /&gt;
     requirestreamconfigs                      streamid&lt;br /&gt;
     streamauthhash                            streampath&lt;br /&gt;
     streamrelayurl                            streammaxuser&lt;br /&gt;
     streampublicserver                        streamallowrelay&lt;br /&gt;
     streamallowpublicrelay                    streamriponly&lt;br /&gt;
     streamautodumpsourcetime                  streamautodumpusers&lt;br /&gt;
     streamlistenertime                        streamintrofile&lt;br /&gt;
     streambackupfile                          streambanfile&lt;br /&gt;
     streamripfile&lt;br /&gt;
 &lt;br /&gt;
 (*) This will depend upon the current values versus the new configuration values&lt;br /&gt;
 (#) The master 'adminpassword' can only be changed after a restart of the server&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XML Responses===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
As detailed in the previous sections, some of the administration actions will provide the information in an xml response. For information on what is actually returned in these xml responses see [[SHOUTcast_DNAS_Server_2_XML_Reponses|sc_serv2_xml_responses.txt]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stream Addresses==&lt;br /&gt;
&lt;br /&gt;
Clients connecting to the streams provided by sc_serv are able to so in a number of ways depending upon how the streams have been configured and also depending upon the number of streams you have available.&lt;br /&gt;
&lt;br /&gt;
The two main ways for a client to connect to a stream are as follows:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;serverurl&amp;gt;/stream/&amp;lt;streamid&amp;gt;/&lt;br /&gt;
or&lt;br /&gt;
 &amp;lt;serverurl&amp;gt;/&amp;lt;streampath&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;serverurl&amp;gt; is typically formed as &amp;lt;nowiki&amp;gt;http://dstip:portbase&amp;lt;/nowiki&amp;gt; (see sections [[#Client_Behaviour|4.2]] and [[#Networking|4.8]])&lt;br /&gt;
 &amp;lt;streamid&amp;gt; is the 'streamid' set from the stream configuration (see [[#Stream_Configuration|section 4.12]])&lt;br /&gt;
 &amp;lt;streampath&amp;gt; is the 'streampath' set from the stream configuration (see [[#Stream_Configuration|section 4.12]])&lt;br /&gt;
&lt;br /&gt;
If the client attempting to connect to the server instance does not specify &amp;lt;streampath&amp;gt; or &amp;lt;streamid&amp;gt; in the stream url it attempts to access or if only one stream is provided then the server will usually default to the first stream it knows about and will allow the client to make a valid connection (though this is not guaranteed to happen).&lt;br /&gt;
&lt;br /&gt;
This handling of the stream addresses provided is something to keep in mind especially if you are providing multiple streams as this will allow you to provide different addresses for certain clients to be able to use a specific stream '''e.g.''' if you wanted to have mobile clients connect to a lower bandwidth stream then you could direct them to '&amp;lt;serverurl&amp;gt;/mobile'&lt;br /&gt;
&lt;br /&gt;
The server options available for controlling how the stream's path is specified can be seen in [[#Stream_Configuration|section 4.12]] which also details the equivalent values needing to be set in the sc_trans configuration if you use sc_trans to provide a source to sc_serv.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Locale Error (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
If you receive the following error then you have a locale related issues:&lt;br /&gt;
&lt;br /&gt;
 terminate called after throwing an instance of 'std::runtime_error'&lt;br /&gt;
 what():  locale::facet::_S_create_c_locale name not valid&lt;br /&gt;
 Abort trap&lt;br /&gt;
&lt;br /&gt;
If this happens then you need to set the 'POSIX' locale in your terminal's environment values. If this does not happen then everything is fine or you are using a newer version of sc_serv from the end of 2010 which should no longer exhibit this issue.&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
BSD:&lt;br /&gt;
 setenv LC_ALL POSIX&lt;br /&gt;
&lt;br /&gt;
Mac OS X:&lt;br /&gt;
 export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
You can test to see if this has worked by checking the shell command &amp;quot;locale&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 LANG=&lt;br /&gt;
 LC_COLLATE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_CTYPE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_MESSAGES=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_MONETARY=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_NUMERIC=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_TIME=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_ALL=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Virtual Memory Footprint (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
Due to how sc_serv works it will create a large number of threads which may become an issue due to the default virtual memory stack allocation per thread potentially being large (typically 10MB per thread). For most people this should not be an issue as the memory is not really allocated unless it is used. If however if you have a resource constrained system or if you plan on running many copies of sc_trans then you could potentially run out of virtual memory.&lt;br /&gt;
&lt;br /&gt;
The default thread allocation can be reduced by issuing a &amp;quot;ulimit&amp;quot; command before running sc_trans and in the example reduces it to 512KB per-thread '''e.g.'''   ulimit -s 512&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Maximum Client Connection Limits==&lt;br /&gt;
&lt;br /&gt;
In general, there are inherent limits on the maximum number of client connections which may be made to a running instances of sc_serv which can either be set by configuration limits e.g. 'maxuser', Operating System limits or bandwidth limits being reached.&lt;br /&gt;
&lt;br /&gt;
The first two are easy to resolve whereas the last (bandwidth limits) is something which will usually require obtaining additional hosting or paying for more available bandwidth.&lt;br /&gt;
&lt;br /&gt;
If reaching the Operating System limit, this is usually indicated by the maximum number of clients never going above a fixed value even if there is the bandwidth and the server has been configured to go higher. This usually appears as around 1016 maximum connections (though this can vary a bit)&lt;br /&gt;
&lt;br /&gt;
If using a non-Windows Operating System then you can use the 'ulimit -n xxxx' command to change the upper limit from what is already set which can be found from just 'ulimit -n' e.g. to change the limit to 4096 connections you would run ulimit -n 4096&lt;br /&gt;
&lt;br /&gt;
If using a Windows Operating System then there isn't any real way to change such things due to the OS hopefully being configured with limits that will not be reached when using sc_serv. If in doubt then consult the Microsoft support documentation for the OS used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Configurations==&lt;br /&gt;
&lt;br /&gt;
Include as part of the sc_serv installation are a number of example configurations to get things started with using some of the features of the server. The provided examples are:&lt;br /&gt;
&lt;br /&gt;
 sc_serv_basic.conf&lt;br /&gt;
 sc_serv_public.conf&lt;br /&gt;
 sc_serv_relay.conf&lt;br /&gt;
 sc_serv_simple.conf&lt;br /&gt;
&lt;br /&gt;
All of the configuration examples are documented and will relate back to details in this file appropriately. You will need to change some details in these example files or to obtain any applicable authorisation keys for the setup you are making ([[#Getting_Started|see section 3.0]]). In all cases the examples are designed to work from the same install folder as sc_serv.&lt;br /&gt;
&lt;br /&gt;
Remember these examples are a way to get you up and running faster though you are still likely to have to adjust things depending upon the systems you are using and how you want to manage your sources and server connections which are covered in previous sections.&lt;br /&gt;
&lt;br /&gt;
Additionally if you are not happy with editing the files or find it still too confusing then you can use the configuration builder which (if installed) can be found in the 'config_builder'. Open 'config_builder.html' in your browser and then use this graphical tool to setup a configuration file for the server (and additionally the transcoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_basic===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This is the base configuration from which the other configuration examples are based and this will get a sc_serv instance running as a local setup with no connection made to the YP directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_public===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_serv_basic configuration to get a sc_serv instance running as a public setup with a connection made to the YP for listing the stream in the directory. This shows the use of the 'include' option (see section [[#Miscellaneous|4.7]]) and how specifying a configuration option twice uses the last value found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_relay===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_serv_public configuration to get a sc_serv instance running as a public setup with a source coming in from a relay server providing a SHOUTcast 2 stream.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_debug===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file can be included in any other configuration files to allow you to get debug logging output when trying to investigate any issues you may be experiencing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_simple===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Use this if you just need to get a very basic server running or are impatient&lt;br /&gt;
 or are struggling to get it running despite the previous example configurations.&lt;br /&gt;
&lt;br /&gt;
This configuration file is designed to be used just as is and is the simplest form of the configuration file you can have which will allow you to get a running server to appear on the YP. This works on using the default settings of the server though does change some of the file paths inorder to fit in with the existing setup as used in the other examples.&lt;br /&gt;
&lt;br /&gt;
All you need to do when using this configuration file is to enter your authorisation key in the 'streamauthhash' line '''e.g.''' if your authorisation key is '''123456789''' then you change ''streamauthhash=&amp;lt;enter_your_auth_key_here&amp;gt;'' to ''streamauthhash='''123456789''''' and save the file.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Server_2</id>
		<title>SHOUTcast DNAS Server 2</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Server_2"/>
				<updated>2019-10-21T02:43:03Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Client Behaviour */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
The purpose of this document is to show you the different configuration options supported by sc_serv along with basic and more advanced example configurations to enable you to get started with using sc_serv and the features it can offer.&lt;br /&gt;
&lt;br /&gt;
The aim of sc_serv is to provide enhanced serving features and also access to the new YP2 infrastructure whilst maintaining as much backward compatibility with previous versions of sc_serv as possible. The new features introduced include:&lt;br /&gt;
&lt;br /&gt;
# Serving multiple streams from a single server instance&lt;br /&gt;
# Relaying multiple streams from a single server instance&lt;br /&gt;
# Multiplexing all server activity through a single IP port&lt;br /&gt;
# SHOUTcast 2 wire protocol support for sources, relays and clients&lt;br /&gt;
# Repackaging of SHOUTcast 1 and SHOUTcast 2 data as needed for connected clients&lt;br /&gt;
# YP2 infrastructure support&lt;br /&gt;
# Real-time metadata and statistic reporting&lt;br /&gt;
# Static station id support&lt;br /&gt;
# In-stream metadata in standardised xml files&lt;br /&gt;
# UTF-8 and international character encoding&lt;br /&gt;
# Improved server and stream security&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview of Features==&lt;br /&gt;
&lt;br /&gt;
To take full advantage of the newer features provided as part of the SHOUTcast 2 and YP2 systems then you will need to ensure you are using a compatible version of sc_serv (any version 2 will work) and that you have the required authorisation key to register as a broadcaster on the YP2 directory (see [[#Getting_Started|section 3.0]]).&lt;br /&gt;
&lt;br /&gt;
If you were intending on taking full advantage of the multiplexing and multiple stream support offered as part of sc_serv then you would need to make sure you enable the SHOUTcast 2 options (this is enabled by default with server builds from the end of 2010 if the 'yp2' option in the configuration file is not specified [see [[#YP_Server_Behaviour|section 4.14]] ). The reason for needing to enable this support is if you try to do it with the original SHOUTcast 1 protocol then it will not work as the original protocol has no means of expressing multiple streams from a single port due to the lack of an identifier provided for them.&lt;br /&gt;
&lt;br /&gt;
If you are planning on connecting multiple sc_trans instances to sc_serv then you must use the SHOUTcast 2 protocol support so that each sc_trans instance can have a unique identifier which allows for multiple streams to then be provided from a single server. It is still possible for an older source to connect to the server with a number of config options available to support this though functionality will be limited compared to what can be done with a fully supporting SHOUTcast 2 source.&lt;br /&gt;
&lt;br /&gt;
Finally clients connecting to your server do not need to directly support SHOUTcast 2 as sc_serv will repackage the stream data and any related metadata into the correct format the client requests (typically based on the user agent detected by the server).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
&lt;br /&gt;
One of the key aspects of the new YP2 directory infrastructure is an authorisation key which is used to validate your server when it tries to connect to the YP2 infrastructure for any of the station(s) you run. Once this key is obtained, it will be valid for all root servers of the station being broadcast.&lt;br /&gt;
&lt;br /&gt;
This can be done by going to the [[SHOUTcast_Authhash_Management|SHOUTcast Authhash Management]] page which shows how to do this via the 'Administation Summary' page as long as a valid source has been connected to the server. This process automatically updates your configuration file(s) with the new authhash and if the stream is set to be public then will attempt to get the stream listed in the SHOUTcast Radio Directory.&lt;br /&gt;
&lt;br /&gt;
When using an older SHOUTcast 1 server then you do not need to do this registration and the server will still be able to be listed on the directory but there is not the same level of protection over the stream as is the case with registering it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Running the Server===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The server is able to be run either as a console application or it can be run as service (Windows) or daemon (Linux / Mac OS X / BSD). Detailed below is how to get the server running on the different operating systems supported by it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The Windows version of sc_serv is designed to run on fully updated and patched versions of Windows 2000, XP, Vista and Windows 7, 8 &amp;amp; 10.&lt;br /&gt;
&lt;br /&gt;
Please note that the Windows versions of sc_serv are built with a dependency against the Microsoft Visual C++ 2008 SP1 Redistributable Package. If sc_serv is unable to start due to a dependency issue then you will need to install the correct version of the package so it can run which depends on the version of sc_serv you are attempting to run:&lt;br /&gt;
&lt;br /&gt;
32-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&lt;br /&gt;
&lt;br /&gt;
64-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ba9257ca-337f-4b40-8c14-157cfdffee4e&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Install as a Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe install &amp;lt;servicename&amp;gt; &amp;lt;username&amp;gt; &amp;lt;password&amp;gt; &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service&lt;br /&gt;
 Typically enter this as 'sc_serv' though you can use a different name but you will need&lt;br /&gt;
 to remember it as it is required to be the same when using the 'uninstall' mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;username&amp;gt; - User under which to run the service as or '0' for the local system&lt;br /&gt;
&lt;br /&gt;
&amp;lt;password&amp;gt; - Password for user or '0' for the local system or with no password&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
When run as a service there is not a good sense of a current working directory so requires all paths in the configuration and playlist files to be fully qualified otherwise lookups will fail when sc_serv is run.&lt;br /&gt;
&lt;br /&gt;
To run sc_serv with a configuration file in the same folder as the server as the current system user account you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_serv.exe install sc_serv 0 0 sc_serv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Uninstall the Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe uninstall &amp;lt;servicename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service as used when the service was registered&lt;br /&gt;
&lt;br /&gt;
To uninstall sc_serv assuming it was installed as detailed in the install section above then you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_serv.exe uninstall sc_serv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Service in the Console====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
===Linux / Mac OS X / BSD===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Remember to enable the required access on the sc_trans file by doing 'chmod a+x sc_trans' after extracting it from the distribution file otherwise the OS is likely to not run it and show the error message './sc_serv: Permission denied'.&lt;br /&gt;
&lt;br /&gt;
====Run as a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_serv daemon &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (required in all cases)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
'''e.g.'''&lt;br /&gt;
 ./sc_serv daemon ./sc_serv.conf&lt;br /&gt;
&lt;br /&gt;
When run this should output the following:&lt;br /&gt;
&lt;br /&gt;
'sc_serv going daemon with PID [XXXX]' where XXXX is the &amp;lt;pid&amp;gt; of the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====End a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
kill -SIGTERM &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -15 &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -s TERM &amp;lt;pid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pid&amp;gt; - The PID of the daemon instance (reported when the daemon started or can be found with 'ps ax | grep sc_serv' as long as sc_serv was the file run otherwise you can just use 'ps ax' if the filename isn't known). Additionally the PID of sc_serv is listed in the log file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_serv &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Additional Signals===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
When run on Linux / Mac OS X / BSD then some additional signals are supported to allow for additional control over the running daemon instance of sc_serv.&lt;br /&gt;
&lt;br /&gt;
The following signals can be used with the 'kill' command (in the manner of your choosing for using the kill command) along with the &amp;lt;pid&amp;gt; of the daemon instance to do one of the following actions:&lt;br /&gt;
&lt;br /&gt;
    SIGKILL   -  Stops sc_trans (also SIGTERM, SIGINT and SIGQUIT will work)&lt;br /&gt;
    SIGHUP    -  Rotates logfile, w3clog and streamw3clog&lt;br /&gt;
&lt;br /&gt;
The result of SIGHUP is that the current log file contents will be moved into &amp;lt;logfile&amp;gt;_1 e.g. sc_serv_1.log, &amp;lt;logfile&amp;gt;_1 will be moved into &amp;lt;logfile&amp;gt;_2 e.g. sc_serv_2.log and so on for all log files which can be found which match the current log file's name. This is useful if timed to have it create day specific log files.&lt;br /&gt;
&lt;br /&gt;
 These signals are not supported by the Windows version of sc_serv which will only&lt;br /&gt;
 respond to the Ctrl + C / Ctrl + Break / console close commands the OS provides.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration File==&lt;br /&gt;
&lt;br /&gt;
Here you can find a complete list of all of the configuration options which are provided by sc_serv which ranges from logging to networking configuration and control over the media being used when streaming via the server.&lt;br /&gt;
&lt;br /&gt;
Configuration entries labelled as ''&amp;lt;MULTI&amp;gt;'' can be used to set up simultaneous connections to the server or allow for multiple connections from various sources. These are specified by adding _# to the end of the option's name as shown below where # begins with one. If you are only working with a single instance then you do not need to add the _# part as any instances of a configuration option will assume it is for _1.&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;MULTI&amp;gt;'' system is not hierarchical and all values beyond the default must be specified for all connections. So for example, if you wanted to connect to two servers on the same port you must do:&lt;br /&gt;
&lt;br /&gt;
    serverport_1=8080&lt;br /&gt;
    serverport_2=8080&lt;br /&gt;
    serverip_1=www.server1.com&lt;br /&gt;
    serverip_2=www.server2.com&lt;br /&gt;
&lt;br /&gt;
Note that you CANNOT do it like this as it leads to not all values being set:&lt;br /&gt;
&lt;br /&gt;
    serverport=8080&lt;br /&gt;
    serverip_1=www.server1.com&lt;br /&gt;
    serverip_2=www.server2.com&lt;br /&gt;
&lt;br /&gt;
The configuration files also allow for comments/notes or options to be disabled by the use of a semi-colon (''';''') or a left bracket ('''[''') or the hash / pound symbol ('''#''') at the start of a line which can be seen in all of the configuration examples.&lt;br /&gt;
&lt;br /&gt;
Known options in the configuration files are recognised irrespective of the case they are entered in the configuration file so maxuser and MaXuSer will be handled the same way.&lt;br /&gt;
&lt;br /&gt;
Any items found in the configuration file which are not known (as detailed in following sections) or is not processed as a comment will be reported in the following manner:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;date + time&amp;gt; W msg:[CONFIG] Invalid item on line XX&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;date + time&amp;gt; is the date and time the event happens at and XX is the line in the configuration file where the error has been found to occur at.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Banning===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''banfile''' : File to store the list of banned IP addresses    ''[Default = sc_serv.ban]''&lt;br /&gt;
&lt;br /&gt;
'''savebanlistonexit''' : Re-write the 'banfile' on server exit    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the file into then you need to ensure that the&lt;br /&gt;
 folder already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Client Behaviour===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''maxuser''' : Specify the maximum number of clients allowed to connect to the server    ''[Default = 32]''&lt;br /&gt;
 This is used in conjunction with 'streammaxuser' (see [[#Stream_Configuration|section 4.12]]) to control the&lt;br /&gt;
 maximum limit on the number of client connections allowed to connect to the server instance.&lt;br /&gt;
&lt;br /&gt;
'''listenertime''' : Specify the maximum time in minutes a client can listen to the stream    ''[Default = 0]''&lt;br /&gt;
 A value of zero means there will be no time limit.&lt;br /&gt;
&lt;br /&gt;
'''autodumpusers''' : Enable to allow the server to disconnect clients if the source disconnects    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''srcip''' : Specify the server side binding address for sources to connect on    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''dstip''' or '''destip''' or '''publicip''' : Specify the server side binding address for clients    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
 If 'any' or no value is specified then sc_serv listens to all addresses.&lt;br /&gt;
&lt;br /&gt;
If you specify a value for 'dstip / destip' then this will be used by the listen feature on the Administration Pages (see section 5.1) so it can provide a valid stream url in the generated playlist. If 'dstip / destip' is not specified then the server will attempt to auto-generate the IP required for the client to be able to connect. If this fails the generated playlist is likely to return a stream url like &amp;lt;nowiki&amp;gt;http://0.0.0.0:&amp;lt;portbase&amp;gt;/&amp;lt;path&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The IP provided needs to be in a valid format like &amp;lt;nowiki&amp;gt;http://&amp;lt;my-ip&amp;gt;&amp;lt;/nowiki&amp;gt; or an address which can be resolved to an IP otherwise the internal lookups done are likely to fail (depends upon the server configuration and OS being used). Also you cannot set srcip and dstip / destip to be the same IP value and if this happens then the server will close. Closing of the server will also happen if the IP cannot be resolved or correctly bound to i.e. server is not there or an invalid value was entered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''titleformat''' : Specify a string to be used in-place of the default icy-name string being used    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''urlformat''' : Specify a string to be used in-place of the default icy-url string being used    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''  '''&lt;br /&gt;
'''  '''&lt;br /&gt;
&lt;br /&gt;
===Debugging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In all cases, the default value is for no debug logging for the options listed below.&lt;br /&gt;
&lt;br /&gt;
'''yp1debug''' : Enable debug logging of YP connections&lt;br /&gt;
&lt;br /&gt;
'''yp2debug''' : Enable debug logging of YP2 connections&lt;br /&gt;
&lt;br /&gt;
'''shoutcastsourcedebug''' : Enable debug logging of SHOUTcast source connections&lt;br /&gt;
&lt;br /&gt;
'''uvox2sourcedebug''' : Enable debug logging of SHOUTcast 2 source connections&lt;br /&gt;
&lt;br /&gt;
'''shoutcast1clientdebug''' : Enable debug logging of SHOUTcast streaming clients&lt;br /&gt;
&lt;br /&gt;
'''shoutcast2clientdebug''' : Enable debug logging of SHOUTcast 2 streaming clients&lt;br /&gt;
&lt;br /&gt;
'''relayshoutcastdebug''' : Enable debug logging for SHOUTcast relays&lt;br /&gt;
&lt;br /&gt;
'''relayuvoxdebug''' : Enable debug logging for SHOUTcast 2 relays&lt;br /&gt;
&lt;br /&gt;
'''relaydebug''' : Enable debug logging of common relay code&lt;br /&gt;
&lt;br /&gt;
'''streamdatadebug''' : Enable debug logging of common streaming code&lt;br /&gt;
&lt;br /&gt;
'''httpstyledebug''' : Enable debug logging of http style requests&lt;br /&gt;
&lt;br /&gt;
'''statsdebug''' : Enable debug logging of statistics&lt;br /&gt;
&lt;br /&gt;
'''microserverdebug''' : Enable debug logging of common server activity&lt;br /&gt;
&lt;br /&gt;
'''threadrunnerdebug''' : Enable debug logging of the thread manager&lt;br /&gt;
&lt;br /&gt;
'''rtmpclientdebug''' : Enable debug logging of rtmp clients&lt;br /&gt;
&lt;br /&gt;
'''admetricsdebug''' : Enable debug logging of ad metrics (v2.5 and newer)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' '''&lt;br /&gt;
''' '''&lt;br /&gt;
&lt;br /&gt;
===Flash Security===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''flashpolicyfile''' : Name of file containing flash crossdomain policies on the server    ''[Default = crossdomain.xml]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Introduction and Backup Files===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Note that intro and backup audio files must precisely match the format and bitrate for the stream! If they do not match, there will be a break in the stream and the listener will be disconnected. &lt;br /&gt;
&lt;br /&gt;
'''introfile''' : File to play when a client first connects to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: This is used globally and also is default for stream #1 on DNAS versions greater than 2.0. To apply a specific intro file to a stream, use streamintrofile_X. &lt;br /&gt;
&lt;br /&gt;
'''streamintrofile_X''' : File to play when a client first connects to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''backupfile''' : File to play if the source disconnects from the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: This is used globally and also is default for stream #1 on DNAS versions greater than 2.0. To apply a specific backup file to a stream, use streambackupfile_X. &lt;br /&gt;
&lt;br /&gt;
'''streambackupfile_X''' : assigns a specific backup file to a streamID X [Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''streambackupurl_X''' : assigns a specific backup stream to a streamID X (v2.6 Premium feature)''&lt;br /&gt;
&lt;br /&gt;
'''specialfiletmpdir''' : place to store intro and backup files uploaded by sc_trans    ''[Default = /tmp/ (*nix only)]''&lt;br /&gt;
&lt;br /&gt;
'''maxspecialfilesize''' : Change the maximum size in bytes of the backup and intro files    ''[Default = 30000000]''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''log''' : Enable logging of the servers output    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''screenlog''' :  Enable logging of servers output to the console    ''[Default = 1]''&lt;br /&gt;
 If log=0 then this option is ignored due to no logging happening.&lt;br /&gt;
&lt;br /&gt;
'''logfile''' : Specify a different logfile to save the logs into ''[Default = %temp%\sc_serv.log or /tmp/sc_serv.log]''&lt;br /&gt;
&lt;br /&gt;
'''logclients''' : Enable logging of details about client connections and disconnections made ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the logs into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''configrewrite''' :  Re-write the 'config file' on server exit    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''songhistory''' : Specify the maximum song history to preserve    ''[Default = 10]''&lt;br /&gt;
&lt;br /&gt;
'''cpucount''' : Specify the number of cpu's present instead of the calculated number if non-zero    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''unique''' : Specify a substitution string for the '$' character to be used when processing filenames which if specified will set any occurences of '$' to the value set. This will be used in the processing of the following filenames: '''logfile''', '''introfile''', '''streamintrofile''', '''backupfile''', '''streambackupfile''', '''banfile''', '''streambanfile''', '''ripfile''', '''streamripfile''', '''include''', '''w3clog''', '''streamw3clog'''&lt;br /&gt;
&lt;br /&gt;
 So when 'unique' is changed from '$' to say 'test' then the following happens if 'logfile' is&lt;br /&gt;
 set to '/usr/local/shoutcast/$.log' then this would be converted to '/usr/local/shoutcast/test.log'&lt;br /&gt;
&lt;br /&gt;
'''include''' : Specify an additional include file containing settings to be processed from the current point in the main configuration file    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
You can do multiple calls of this allowing for a basic configuration file with then 'specific' stream configurations set in individual conf files though you need to ensure not to include a reference to the same file in itself.&lt;br /&gt;
&lt;br /&gt;
You can also specify a path with a wildcard for sc_serv to use to find multiple configuration files to include '''e.g.''' 'include=stream/*.conf'.  This can then be used along with the multiple stream configurations (see section 4.12) and the admin command 'admin.cgi?mode=reload' (see section 5.1) to add / remove / update stream configurations without having to close the server to apply them.&lt;br /&gt;
&lt;br /&gt;
'''admincssfile''' : Specify the css styling to be used on the index.html and admin pages    ''[Default = v2]''&lt;br /&gt;
&lt;br /&gt;
This can accept the following parameters:&lt;br /&gt;
&lt;br /&gt;
:admincssfile='''v1'''  -  Uses the v1 DNAS style&lt;br /&gt;
:admincssfile='''v2'''  -  Uses the newer SHOUTcast 2 style&lt;br /&gt;
:admincssfile='''path_to_local_css_file'''  e.g. my_index.css&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 If using a custom css file, if it does not exist on the first try to load it the server will revert to&lt;br /&gt;
 the default css style. As well the style is cached once loaded so changes require a restart of sc_serv.&lt;br /&gt;
&lt;br /&gt;
'''faviconfile''' : Specify the file to be returned as the favicon.ico when the administration pages are being queried by the client's browser    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
The default behaviour is to use a SHOUTcast themed built-in icon file and support / handling the update of this will entirely depend on the browser.&lt;br /&gt;
&lt;br /&gt;
'''faviconmimetype''' : Specify the mime type for actual file to be served in the favicon.ico response    ''[Default = image/x-icon]''&lt;br /&gt;
&lt;br /&gt;
Ensure this is correct for the type of image being used so it is valid.&lt;br /&gt;
&lt;br /&gt;
'''hidestats''' : Specify if the publically accessible stats?sid=# page can be accessed or if it is only available via the private administration pages   ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''robotstxtfile''' : Specify the file to be returned as the robots.txt when queried by search engines, etc to attempt to prevent incorrect access to the server's pages which may cause invalid client connections    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
The default behaviour is to return a robots.txt reponse indicating not to look at any of the server's pages i.e.&lt;br /&gt;
::User-agent:*&lt;br /&gt;
::Disallow:/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Networking===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''namelookups''' : Enable to allow reverse DNS look-ups on incoming IP addresses    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''portbase''' : Specify the port which clients and sources need to use to connect to the server    ''[Default = 8000]''&lt;br /&gt;
 SHOUTcast 1 sources are only able to connect to 'portbase + 1'.&lt;br /&gt;
&lt;br /&gt;
'''autodumpsourcetime''' : Specify how long before an idle source is dumped from the server (in seconds)    ''[Default: 30]''&lt;br /&gt;
 A value of zero means there is no timeout of an idle source.&lt;br /&gt;
 Also if you set this too low then it is likely that valid sources will&lt;br /&gt;
 fail to connect during the initial stages of a source connection.&lt;br /&gt;
&lt;br /&gt;
'''maxheaderlinesize''' : Specify the maximum size of an HTTP header line    ''[Default = 2048]''&lt;br /&gt;
&lt;br /&gt;
'''maxheaderlinecount''' : Specify the maximum header lines in an HTTP style exchange    ''[Default = 100]''&lt;br /&gt;
&lt;br /&gt;
'''adminpassword''' : Specify the administrator password for accessing the remote server features    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''password''' : Specify the password for broadcasters when connecting to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
 This matches the 'uvoxauth' value in the sc_trans configuration file (see [[SHOUTcast_DNAS_Transcoder_2#Network_Options|sc_trans.txt - section 3.11]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Network Buffers===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''buffertype''' : Specify whether the buffer size is fixed [0] or adaptive [1]    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''adaptivebuffersize''' : Specify the buffer size in seconds if buffer is set to adaptive    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''fixedbuffersize''' : Specify the buffer size in bytes if the buffer is set to fixed    ''[Default = 1048576]''&lt;br /&gt;
&lt;br /&gt;
'''bufferhardlimit''' : Specify the maximum buffer size in bytes which it can never go above    ''[Default = 16777216]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Relaying===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''allowrelay''' : Enable to allow a relay to connect to the server    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''allowpublicrelay''' : Enable to allow relays to list themselves in the YP directory    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''relayreconnecttime''' : Specify how many seconds to wait to reconnect on a relay failure    ''[Default = 30]''&lt;br /&gt;
 Setting this to 0 will disable attempts for the relay to reconnect.&lt;br /&gt;
&lt;br /&gt;
'''relayconnectretries''' : Specify the number of times relays are attempted to be connected to if it is initially unable to connect    ''[Default = 3]''&lt;br /&gt;
 This generally applies only to YP1 connections and is related to the&lt;br /&gt;
 actual attempts to make and get a http response from the YP server.&lt;br /&gt;
&lt;br /&gt;
'''maxhttpredirects''' : Specify the maximum number of times we can redirect when relaying    ''[Default = 5]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;Legacy Options&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
'''relayport''' : Port of the source to use for the relay    ''[Default: 80]''&lt;br /&gt;
&lt;br /&gt;
'''relayserver''' : Url of the source to relay    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
 Using the stream configuration options (see [[#Stream_Configuration|section 4.12]]) is the preferred method&lt;br /&gt;
 of setting up a relay. These options are only provided as a means for loading&lt;br /&gt;
 legacy configuration files. If found then these are mapped to 'streamrelayurl_1'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Reserved List===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''ripfile''' : File to store the list of reserved IP addresses    ''[Default = sc_serv.rip]''&lt;br /&gt;
&lt;br /&gt;
'''saveriplistonexist''' : Re-write the 'ripfile' on server exit    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''riponly''' : Only allow connections to be made from reserved IP addresses    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the file into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Stream Configuration===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Important Note:''' If you do not specify an identifier (_#) on the end of the above options then it will be treated like _1 (effectively acting like SHOUTcast 1). Additionally, _0 is not a supported identifier and will be mapped to _1.&lt;br /&gt;
&lt;br /&gt;
'''requirestreamconfigs''' : Only allow sources to connect if a stream configuration has been set in your configuration file    ''[Default = 0]''&lt;br /&gt;
 With this enabled, you will need to ensure that any sources have their configuration details&lt;br /&gt;
 setup to match those in sc_trans's configuration, in particular the 'uvoxstreamid' value with&lt;br /&gt;
 sc_trans (see [[SHOUTcast_DNAS_Transcoder_2#Network_Options|sc_trans.txt - section 3.11]]).&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each stream configuration):&lt;br /&gt;
&lt;br /&gt;
'''streamid''' : Specify the numerical identifier of the stream for control or referencing the stream configuration. This can only be a numeric value from 1 to 2147483647.&lt;br /&gt;
&lt;br /&gt;
 If you use multiple stream configurations then you will need to ensure the _X&lt;br /&gt;
 part is specified and correct for each stream configuration group&lt;br /&gt;
 e.g.&lt;br /&gt;
   streamid=1&lt;br /&gt;
   streampath=random&lt;br /&gt;
     or&lt;br /&gt;
   streamid_1=1&lt;br /&gt;
   streampath_1=random_stream_path&lt;br /&gt;
   streamid_2=2&lt;br /&gt;
   streampath_2=another_stream_path&lt;br /&gt;
&lt;br /&gt;
'''streamauthhash''' : The authorisation key needed for YP2 directory registration.&lt;br /&gt;
 This is a requirement for using the YP2 system and without it you will not be able to&lt;br /&gt;
 successfully connect to the YP2 directory (see [[#Getting_Started|section 3.0]]).&lt;br /&gt;
 &lt;br /&gt;
 This can be used for multiple streams you are providing or can be different (as long&lt;br /&gt;
 as valid) so you can infact provide multiple stations from the same server if desired.&lt;br /&gt;
&lt;br /&gt;
'''streampath''' : Specify the path clients need to use to access the stream&lt;br /&gt;
 If a / is not specified on the start of the string then the server will add&lt;br /&gt;
 it to the generated path in playlist entries or other places as required so&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://&amp;lt;serverurl&amp;gt;/&amp;lt;streampath&amp;gt;&amp;lt;/nowiki&amp;gt; will work so clients are able to connect.&lt;br /&gt;
 streampath is the mountpoint, e.g. streampath_1=mystation would result in ip:port/mystation&lt;br /&gt;
 &lt;br /&gt;
 If this is not specified then &amp;lt;nowiki&amp;gt;http://&amp;lt;serverurl&amp;gt;/stream/&amp;lt;streamid&amp;gt;/&amp;lt;/nowiki&amp;gt; will be&lt;br /&gt;
 used for client access and in generated playlist entries so that it will&lt;br /&gt;
 always be possible for clients to connect to the server somehow. See [[SHOUTcast_DNAS_Server_2#Stream_Addresses|section 6.0]] for more information on the&lt;br /&gt;
 server's stream address support.&lt;br /&gt;
&lt;br /&gt;
'''streamrelayurl''' : Specify the full url of source to relay (if this is a relay).&lt;br /&gt;
 Make sure if you use this that the full url is entered and that it is&lt;br /&gt;
 the url which clients would connect to for the stream to be relayed.&lt;br /&gt;
&lt;br /&gt;
'''streammaxuser''' : Specify the maximum number of clients allowed to connect to the stream    ''[Default = 0]''&lt;br /&gt;
If set to zero, not specified or higher than 'maxuser' then the value set for 'maxuser' (see [[#Client_Behaviour|section 4.2]]) will be used for all knwon streams.&lt;br /&gt;
&lt;br /&gt;
Changing this to a value between zero and 'maxuser' will enforce the user connection limit for the specified value in the stream configuration '''e.g.'''&lt;br /&gt;
 streammaxuser_1 = 8&lt;br /&gt;
 maxuser = 32&lt;br /&gt;
&lt;br /&gt;
This allows a total of 32 connections to the server but specifies the maximum number of connections to the first stream configuration is 8.&lt;br /&gt;
&lt;br /&gt;
With the following stream configuration&lt;br /&gt;
 streammaxuser_1 = 64&lt;br /&gt;
 maxuser = 32&lt;br /&gt;
&lt;br /&gt;
This allows a total of 32 connections to the server but with a per stream limit above the maximum means the maximum number of connections to the first stream group will be 32. However this also depends upon any other stream configurations and their limits as to whether 32 clients will be able to connect to this stream configuration.&lt;br /&gt;
&lt;br /&gt;
Finally unless a valid stream configuration is specified then this value will only be applied to the first stream configuration found i.e. there is a need to specify a streamid_XXX for streammaxuser_XXX (where XXX is the stream identifier of the stream configuration group.&lt;br /&gt;
&lt;br /&gt;
'''streamadminpassword''' : Specify the administrator password for accessing the remote server features for the specified stream configuration group. If this is not specified then 'adminpassword' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streampassword''' : Specify the password for broadcasters when connecting to the server for the specified stream configuration group. If this is not specified then 'password' will be used.&lt;br /&gt;
 This matches the 'uvoxauth' value in the sc_trans configuration file (see sc_trans.txt - section 3.11).&lt;br /&gt;
&lt;br /&gt;
'''streampublicserver''' : This allows you to override the public flag received from the source when a connection is being made to the YP directory. If this is not specified or is set to empty then 'publicserver' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamallowrelay''' : Enable to allow a relay to connect to the server. If this is not specified then 'allowrelay' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamallowpublicrelay''' : Enable to allow relays to list themselves in the YP directory. If this is not specified then 'allowpublicrelay' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamriponly''' : Enable to only allow connections to be made from reserved IP addresses. If this is not specified then 'riponly' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamautodumpsourcetime''' : Specify how long before an idle source will be dumped from the server (in seconds). A value of zero means there is no timeout of an idle source. If not specified then 'autodumpsourcetime' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamautodumpusers''' : Enable to allow the server to disconnect clients if the source disconnects. If not specified then 'autodumpusers' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamlistenertime''' : Specify the maximum time in minutes a client is allowed to listen to the stream. A value of zero means there will be no time limit. If not specified then 'listenertime' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamintrofile''' : File to play when a client first connects to the server. If this is not specified then 'introfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streambackupfile''' : File to play if the source disconnects from the server. If this is not specified then 'backupfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streammovedurl_X''' : redirects a permanently stopped or moved stream to a different working stream url.&lt;br /&gt;
&lt;br /&gt;
'''streambanfile''' : File to store the list of banned IP addresses. If this is not specified then 'banfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamripfile''' : File to store the list of banned IP addresses. If this is not specified then 'ripfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamw3clog''' : File to store the web connections logs into. If this is not specified then 'w3clog' will be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''DNAS v2.6 and newer'''&lt;br /&gt;
&lt;br /&gt;
'''sslCertificateFile''' : For https:// streams, specify .crt file e.g. sslCertificateFile=/path/to/ssl.crt&lt;br /&gt;
&lt;br /&gt;
'''sslCertificateKeyFile''' : specify key file, e.g. sslCertificateKeyFile=/path/to/key.pem&lt;br /&gt;
&lt;br /&gt;
 Put the whole certificate chain in the .crt file, and only the key in the .key file&lt;br /&gt;
 Note: Requires Premium subscription to unlock Premium features.&lt;br /&gt;
 SSL Cert needs to be assigned to a DNS e.g. stream.mysite.com&lt;br /&gt;
 Be sure to also add destip=stream.mysite.com and alternateports=443 lines to DNAS config file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' '''&lt;br /&gt;
&lt;br /&gt;
===Web Connection (W3C) Logging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''w3cenable''' : Enable logging of web connections to describe the duration a client has listened to a specific title    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''w3clog''' : File to store the web connections logs into    ''[Default = sc_w3c.log]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the log into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
'''webclientdebug''' : Enable logging of web client connections    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===YP Server Behaviour===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''uvoxcipherkey''' : Specify the key used to obfuscate the initial handshaking with the source    ''[Default = foobar]''&lt;br /&gt;
 This is a SHOUTcast 2 only feature and it matches the 'djcipher' value in the sc_trans&lt;br /&gt;
 configuration file (see [[SHOUTcast_DNAS_Transcoder_2#DJ_Support|sc_trans.txt - section 3.3]]).&lt;br /&gt;
&lt;br /&gt;
Only change this if you really need to do so as not all SHOUTcast 2 clients will allow you to edit this value from the default value. If using the Source DSP plug-in then see [[Source_DSP_Plug-in#SHOUTcast_2_Cipher_Key|dsp_sc.txt - section 5.0]] for details on how to change the plug-in to use a differnet value.&lt;br /&gt;
&lt;br /&gt;
'''metainterval''' : Specify the metadata transmission interval in bytes    ''[Default = 8192]''&lt;br /&gt;
 YP1 only&lt;br /&gt;
&lt;br /&gt;
'''yp2''' : Enable to use the SHOUTcast 2 protocol and related server features for access to the YP2 directory    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
If this is enabled and not all of the required values are set then the server will throw an error and will abort from its start-up attempt. It should be indicated what needs to be set to allow the server to start with this set.&lt;br /&gt;
&lt;br /&gt;
Additionally if there is an issue then the server will report an error in its log ouput of 'Connection attempt failed. YP2 error code is XXX (&amp;lt;message&amp;gt;)' where XXX is one of the following error codes and &amp;lt;message&amp;gt; is a message set in the error response to indicate a bit more what the error relates to. All current error codes can be found [[#YP_Server_Errors|here]].&lt;br /&gt;
&lt;br /&gt;
'''ypaddr''' : Allows you to specify a different YP server if required    ''[Default = yp.shoutcast.com]''&lt;br /&gt;
&lt;br /&gt;
'''ypport''' : Allows you to specify the port of the YP server if required    ''[Default = 80]''&lt;br /&gt;
&lt;br /&gt;
'''ypPath''' : Allows you to specify the path to YP2 services on the server    ''[Default = /yp2]''&lt;br /&gt;
&lt;br /&gt;
'''ypTimeout''' : Specify the timeout interval in seconds for requests made to the YP server    ''[Default = 60]''&lt;br /&gt;
&lt;br /&gt;
'''ypmaxretries''' : Specify the maximum number of times a YP request will be attempted    ''[Default = 10]''&lt;br /&gt;
 This generally applies only to YP1 connections and is related to the&lt;br /&gt;
 actual attempts to make and get a http response from the YP server.&lt;br /&gt;
&lt;br /&gt;
'''ypreportinterval''' : Specify the maximum time in which the YP must have contacted our server in seconds    ''[Default = 300]''&lt;br /&gt;
&lt;br /&gt;
'''ypminreportinterval''' : Specify the minimum time in which the YP can contact our server in seconds    ''[Default = 10]''&lt;br /&gt;
&lt;br /&gt;
'''publicserver''' : This allows you to override the public flag from the connected source when a connection is being made to the YP directory    ''[Default = default]''&lt;br /&gt;
This can be one of the following values:&lt;br /&gt;
 '''default''' - use the flag provided by the source&lt;br /&gt;
 '''always''' - force the source to be public&lt;br /&gt;
 '''never''' - never allow the use the flag provided by the source&lt;br /&gt;
&lt;br /&gt;
When using sc_trans this would match with the 'public' value (see [[SHOUTcast_DNAS_Transcoder_2#Metadata_Control|sc_trans.txt - section 3.8]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===YP Server Errors===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If not all of the required values are set for a public listing then the DNAS server will throw an error and will abort its attempt to be listed in the Directory. It should be indicated the error is with one of the error codes provided below so it can be resolved.&lt;br /&gt;
&lt;br /&gt;
Additionally if there is an issue during Directory updates or removals, then the server will report an error in its log ouput as one of the following error codes and &amp;lt;message&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status Code&lt;br /&gt;
! Status Message&lt;br /&gt;
|-&lt;br /&gt;
| 400 || Generic error ''(covers all other cases usually from internal failures)''&lt;br /&gt;
|-&lt;br /&gt;
| 457 || Unrecoverable error while updating station information - DNAS restart required.&lt;br /&gt;
|-&lt;br /&gt;
| 470 || Invalid authorization hash&lt;br /&gt;
|-&lt;br /&gt;
| 471 || Invalid stream type (could be a bad bitrate or mime type)&lt;br /&gt;
|-&lt;br /&gt;
| 472 || Missing or invalid stream url&lt;br /&gt;
|-&lt;br /&gt;
| 473 || Server unreachable by YP&lt;br /&gt;
|-&lt;br /&gt;
| 474 || Relay url does not exist&lt;br /&gt;
|-&lt;br /&gt;
| 475 || Invalid server ID&lt;br /&gt;
|-&lt;br /&gt;
| 476 || Invalid max clients (value out of range or missing)&lt;br /&gt;
|-&lt;br /&gt;
| 477 || Terms of Service violator.  You are being reported.&lt;br /&gt;
|-&lt;br /&gt;
| 478 || Incompatible protocol.&lt;br /&gt;
|-&lt;br /&gt;
| 479 || Streams requiring authorization are not public and cannot list here.&lt;br /&gt;
|-&lt;br /&gt;
| 480 || Cannot see your station/computer (URL: &amp;lt;streamurl&amp;gt;) from the Internet, disable Internet Sharing/NAT/firewall/ISP cache.&lt;br /&gt;
|-&lt;br /&gt;
| 481 || Cannot verify server since all listener slots are full.  Please wait.&lt;br /&gt;
|-&lt;br /&gt;
| 482 || This network has been permanently banned due to a previous violation of the SHOUTcast directory terms of service&lt;br /&gt;
|-&lt;br /&gt;
| 483 || Invalid listeners (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 484 || Invalid avglistentime (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 485 || Invalid newsessions (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 486 || Invalid connects (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 487 || Request &amp;amp; Response objects are null&lt;br /&gt;
|-&lt;br /&gt;
| 488 || Request xml is null&lt;br /&gt;
|-&lt;br /&gt;
| 489 || YP command not specified&lt;br /&gt;
|-&lt;br /&gt;
| 490 || Generic error, while doing xml parsing&lt;br /&gt;
|-&lt;br /&gt;
| 491 || Generic error, while reading xml request&lt;br /&gt;
|-&lt;br /&gt;
| 492 || Error closing buffer / HTTP connection&lt;br /&gt;
|-&lt;br /&gt;
| 493 || Internal error - unable to acquire data source&lt;br /&gt;
|-&lt;br /&gt;
| 494 || Error updating information - DNAS restart required&lt;br /&gt;
|-&lt;br /&gt;
| 495 || Error acquiring station ID - DNAS restart required&lt;br /&gt;
|-&lt;br /&gt;
| 496 || Error converting data type&lt;br /&gt;
|-&lt;br /&gt;
| 497 || Inconsistent stream behaviour&lt;br /&gt;
|-&lt;br /&gt;
| 498 || Invalid Request (Invalid request received)&lt;br /&gt;
|-&lt;br /&gt;
| 499 || Error while getting information&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Administration==&lt;br /&gt;
&lt;br /&gt;
With sc_serv there are administration pages available for accessing and controlling the server remotely which allows you to monitor and control clients connected to the stream (or not if banning them). These pages can now be accessed through a summary page at /index.html which will show a link to any active stream(s) or you explicitly access them via the /index.html?sid=# path where # is the ID of the stream (see [[#Stream_Configuration|section 4.12]] for more about using 'streamid') '''e.g.'''&lt;br /&gt;
 &amp;lt;streamurl&amp;gt;/index.html?sid=1&lt;br /&gt;
&lt;br /&gt;
If no sid or an invalid sid is passed then you will be taken to the summary /index.html and this will be applied even if you were on a page with a known ID and then enter an invalid sid or remove it purposefully.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Administration Pages===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
As part of the administrative features provided there are the following pages where # is the streamid you want to use). This is not a complete list but should cover all of the pages which allow for a direct http url to be entered to get an administation action to work. The ban and reserve IP actions require input fields and do not map to direct sends.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Public Pages====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''index.html'''  -  Shows a summary page with links to get to any active stream(s)&lt;br /&gt;
&lt;br /&gt;
'''currentsong?sid=#'''  -  Returns the current song title or a null response&lt;br /&gt;
&lt;br /&gt;
'''nextsong?sid=#'''  -  Returns the next song title (if known) or a null response&lt;br /&gt;
 currentsong and nextsong both provide a UTF-8 encoded string of the song title&lt;br /&gt;
 otherwise it will return effectively no response (ignoring the http header).&lt;br /&gt;
&lt;br /&gt;
'''nextsongs?sid=#'''  -  Returns in an xml format the next song title(s) (if known) to be played when using a compatible v2 stream source. See [[#XML_Responses|section 5.2]] for more details on the format of the xml returned).&lt;br /&gt;
&lt;br /&gt;
'''index.html?sid=#'''  -  Shows current status of the specified stream&lt;br /&gt;
&lt;br /&gt;
'''played.html?sid=#'''  -  Song history of specified playing history&lt;br /&gt;
:or&lt;br /&gt;
'''played?sid=#'''&lt;br /&gt;
&lt;br /&gt;
'''listen.pls?sid=#'''  -  Provides a PLS for file clients to use to connect to the stream.&lt;br /&gt;
:or&lt;br /&gt;
'''listen?sid=#'''&lt;br /&gt;
&lt;br /&gt;
'''listen.m3u?sid=#'''  -  Provides a M3U file for clients to use to connect to the stream.&lt;br /&gt;
&lt;br /&gt;
'''listen.asx?sid=#'''  -  Provides a ASX file for clients to use to connect to the stream.&lt;br /&gt;
&lt;br /&gt;
 With the listen pages you either need to have specified an IP with 'dstip / destip'&lt;br /&gt;
 (see section 4.2) or leave empty and allow the server to attempt to auto-generate&lt;br /&gt;
 the IP required for the client to be able to connect. If this fails the generated&lt;br /&gt;
 playlist is likely to return a stream url like &amp;lt;nowiki&amp;gt;http://0.0.0.0:&amp;lt;portbase&amp;gt;/&amp;lt;path&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''home.html?sid=#''' or '''home?sid=#'''  -  Opens in a new window or tab (depending on the client browser) the 'streamurl' as specified by the stream source. If this is not set then the client will be redirected to the shoutcast.com main page.&lt;br /&gt;
&lt;br /&gt;
'''stats?sid=#'''  -  Provides an xml response for public accessibility which matches the private version from admin.cgi?sid=#&amp;amp;mode=viewxml&amp;amp;page=1. This is the modern version of the 7.html page as provided by the legacy v1 servers. See [[#XML_Responses|section 5.2]] for information on what is provided in the xml response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Private Pages====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 By passing &amp;amp;pass=password where password is the 'adminpassword' (see section [[#Networking|4.8]]) then it is possible&lt;br /&gt;
 to directly access the administration page(s) required. As well the base64 encoded version of the password&lt;br /&gt;
 can be passed as long as it is prefixed with ''YWRtaW46''&lt;br /&gt;
 e.g.&lt;br /&gt;
     &amp;amp;pass=changeme is the same as &amp;amp;pass=YWRtaW46Y2hhbmdlbWU=&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi'''  -  Shows the an overal summary admin page for the streams provided by the server including direct links to certain information pages (see notes about the 'admin.cgi?sid=#&amp;amp;mode=viewxml' command for more info)&lt;br /&gt;
:or&lt;br /&gt;
'''admin.cgi?sid=0'''&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#'''  -  Shows the base admin page for the stream and information&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=updinfo&amp;amp;song=title'''           &lt;br /&gt;
:or&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=updinfo&amp;amp;type=xml&amp;amp;song=xml'''    &lt;br /&gt;
 If 'title' is not empty then it will be set as the current song title for the stream&lt;br /&gt;
 specified until the next use of this action or the next title update is received from&lt;br /&gt;
 the source. Specifying '&amp;amp;type=xml' will process the value of 'song' as [[SHOUTcast_XML_Metadata_Specification|v2 XML metadata]]&lt;br /&gt;
 instead of a v1 title.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewlog'''  -  View logfile&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewlog&amp;amp;viewlog=tail'''  -  View logfile (tailing)&lt;br /&gt;
&lt;br /&gt;
 The tailing option keeps adding additional log entries to the end of the view whilst the view is active.&lt;br /&gt;
 As well any html or xml data in the log will not be shown correctly in the view as &amp;lt; &amp;gt; &amp;amp; are not escaped&lt;br /&gt;
 to their html entities. See [[#Logging|section 4.6]] for more information on the log file.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewban'''  -  Ban view which matches the ban file and allows you to ban a single IP or an IP range from it (see [[#Banning|section 4.1]] for more info on the file)&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewrip'''  -  Reserved IP list that matches the rip file (see [[#Reserved_IP_.28RIP.29|section 4.11]] for more info on the file)&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=art''' or '''admin.cgi?sid=#&amp;amp;mode=art&amp;amp;art=playing'''  -  Displays the artwork SHOUTcast v2 compatible clients may be able to display if the SHOUTcast v2 source does provide it.&lt;br /&gt;
  &lt;br /&gt;
 The artwork mode is primarily intended as a debugging option to make it possible&lt;br /&gt;
 to see what (if anything) has been provided by the SHOUTcast v2 source.&lt;br /&gt;
 &lt;br /&gt;
 If no '&amp;amp;art=' is specified or not a matching option then the stream artwork (if&lt;br /&gt;
 available) will be shown. If no '&amp;amp;art=playing' is specified then this will show&lt;br /&gt;
 the playing file's artwork (if available).&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewxml''' or '''admin.cgi?sid=#&amp;amp;mode=viewxml&amp;amp;page=#'''  -  Returns an xml output of the current stream information&lt;br /&gt;
&lt;br /&gt;
 If page is not set or is outside of the range zero to 6 then this will output all of the&lt;br /&gt;
 information as the standard viewxml action does. Otherwise this only display information&lt;br /&gt;
 depending on the value assigned to page which can be from 1 to 6 which maps as follows:&lt;br /&gt;
 &lt;br /&gt;
     1 - Server Summary (this is the same as using the public stats?sid=# action)&lt;br /&gt;
     2 - Not used (previously used for Webdata Stats but not in current builds)&lt;br /&gt;
     3 - Listener Stats&lt;br /&gt;
     4 - Song History&lt;br /&gt;
     5 - Stream Metadata        (if supported by the source otherwise can just be title)&lt;br /&gt;
     6 - Stream Configurations  (displays all of the known stream configurations though this is only available on admin.cgi)&lt;br /&gt;
 &lt;br /&gt;
 If accessing the standard viewxml or the listener stats (page = 3), you can also send&lt;br /&gt;
 '&amp;amp;iponly=1' which will filter the listener information (if there are any) to just output&lt;br /&gt;
 the IP instead of the additional information provided normally.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=resetxml&amp;amp;sid=#'''  -  Will flush the held stream information to refresh it&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=kicksrc'''  -  Will allow you to kick the currently connected source for the specified stream.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unripdst&amp;amp;ripdst=&amp;lt;IP&amp;gt;'''  -  Where &amp;lt;IP&amp;gt; is the IP to reserve (see [[#Reserved_IP_.28RIP.29|section 4.11]] for more information).&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unbandst&amp;amp;bandst=&amp;lt;IP&amp;gt;.0&amp;amp;banmsk=0'''  -  Where &amp;lt;IP&amp;gt; is the first 3 parts of a subnet IP to unban.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unbandst&amp;amp;bandst=&amp;lt;IP&amp;gt;&amp;amp;banmsk=255'''  -  Where &amp;lt;IP&amp;gt; is that of a single IP to unban.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=rotate''' or '''admin.cgi?mode=rotate&amp;amp;files=log|w3c'''  -  This will rotate the log files set via the 'logfile', 'w3clog' and 'streamw3clog' options.&lt;br /&gt;
 If &amp;amp;files is specified then passing log or w3c will allow you to only&lt;br /&gt;
 rotate one type of file otherwise both will be rotated by this command.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=reload''' or '''admin.cgi?mode=reload&amp;amp;force=1'''  -  This reloads the stream configuration details in the main configuration file the server used when started and is only available on the admin summary page and so can only be run by the master administrator password.&lt;br /&gt;
&lt;br /&gt;
 This command works on the server as a whole (hence no sid parameter) and it will add or&lt;br /&gt;
 remove or update any stream configuration as applicable which will cause any connected&lt;br /&gt;
 sources and clients to be kicked as applicable (usually if a stream configuration was removed).&lt;br /&gt;
 &lt;br /&gt;
 This will recognise any configurations included via 'include' entries so you can have 'include=stream/*.conf'&lt;br /&gt;
 in your main configuration file which the server can then use to detect different stream configurations.&lt;br /&gt;
 &lt;br /&gt;
 If '&amp;amp;force=1' is passed then the reload will treat the updating of active stream configurations in the&lt;br /&gt;
 same manner as a stream configuration removal instead of trying to update compatible stream configuration&lt;br /&gt;
 details without resetting the stream '''e.g.''' not increasing the 'streammaxuser' when it could be increased.&lt;br /&gt;
 &lt;br /&gt;
 The following configuration options are updated when using this command:&lt;br /&gt;
 &lt;br /&gt;
     password or streampassword (*)            streamadminpassword (#)&lt;br /&gt;
     requirestreamconfigs                      streamid&lt;br /&gt;
     streamauthhash                            streampath&lt;br /&gt;
     streamrelayurl                            streammaxuser&lt;br /&gt;
     streampublicserver                        streamallowrelay&lt;br /&gt;
     streamallowpublicrelay                    streamriponly&lt;br /&gt;
     streamautodumpsourcetime                  streamautodumpusers&lt;br /&gt;
     streamlistenertime                        streamintrofile&lt;br /&gt;
     streambackupfile                          streambanfile&lt;br /&gt;
     streamripfile&lt;br /&gt;
 &lt;br /&gt;
 (*) This will depend upon the current values versus the new configuration values&lt;br /&gt;
 (#) The master 'adminpassword' can only be changed after a restart of the server&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XML Responses===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
As detailed in the previous sections, some of the administration actions will provide the information in an xml response. For information on what is actually returned in these xml responses see [[SHOUTcast_DNAS_Server_2_XML_Reponses|sc_serv2_xml_responses.txt]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stream Addresses==&lt;br /&gt;
&lt;br /&gt;
Clients connecting to the streams provided by sc_serv are able to so in a number of ways depending upon how the streams have been configured and also depending upon the number of streams you have available.&lt;br /&gt;
&lt;br /&gt;
The two main ways for a client to connect to a stream are as follows:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;serverurl&amp;gt;/stream/&amp;lt;streamid&amp;gt;/&lt;br /&gt;
or&lt;br /&gt;
 &amp;lt;serverurl&amp;gt;/&amp;lt;streampath&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;serverurl&amp;gt; is typically formed as &amp;lt;nowiki&amp;gt;http://dstip:portbase&amp;lt;/nowiki&amp;gt; (see sections [[#Client_Behaviour|4.2]] and [[#Networking|4.8]])&lt;br /&gt;
 &amp;lt;streamid&amp;gt; is the 'streamid' set from the stream configuration (see [[#Stream_Configuration|section 4.12]])&lt;br /&gt;
 &amp;lt;streampath&amp;gt; is the 'streampath' set from the stream configuration (see [[#Stream_Configuration|section 4.12]])&lt;br /&gt;
&lt;br /&gt;
If the client attempting to connect to the server instance does not specify &amp;lt;streampath&amp;gt; or &amp;lt;streamid&amp;gt; in the stream url it attempts to access or if only one stream is provided then the server will usually default to the first stream it knows about and will allow the client to make a valid connection (though this is not guaranteed to happen).&lt;br /&gt;
&lt;br /&gt;
This handling of the stream addresses provided is something to keep in mind especially if you are providing multiple streams as this will allow you to provide different addresses for certain clients to be able to use a specific stream '''e.g.''' if you wanted to have mobile clients connect to a lower bandwidth stream then you could direct them to '&amp;lt;serverurl&amp;gt;/mobile'&lt;br /&gt;
&lt;br /&gt;
The server options available for controlling how the stream's path is specified can be seen in [[#Stream_Configuration|section 4.12]] which also details the equivalent values needing to be set in the sc_trans configuration if you use sc_trans to provide a source to sc_serv.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Locale Error (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
If you receive the following error then you have a locale related issues:&lt;br /&gt;
&lt;br /&gt;
 terminate called after throwing an instance of 'std::runtime_error'&lt;br /&gt;
 what():  locale::facet::_S_create_c_locale name not valid&lt;br /&gt;
 Abort trap&lt;br /&gt;
&lt;br /&gt;
If this happens then you need to set the 'POSIX' locale in your terminal's environment values. If this does not happen then everything is fine or you are using a newer version of sc_serv from the end of 2010 which should no longer exhibit this issue.&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
BSD:&lt;br /&gt;
 setenv LC_ALL POSIX&lt;br /&gt;
&lt;br /&gt;
Mac OS X:&lt;br /&gt;
 export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
You can test to see if this has worked by checking the shell command &amp;quot;locale&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 LANG=&lt;br /&gt;
 LC_COLLATE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_CTYPE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_MESSAGES=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_MONETARY=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_NUMERIC=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_TIME=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_ALL=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Virtual Memory Footprint (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
Due to how sc_serv works it will create a large number of threads which may become an issue due to the default virtual memory stack allocation per thread potentially being large (typically 10MB per thread). For most people this should not be an issue as the memory is not really allocated unless it is used. If however if you have a resource constrained system or if you plan on running many copies of sc_trans then you could potentially run out of virtual memory.&lt;br /&gt;
&lt;br /&gt;
The default thread allocation can be reduced by issuing a &amp;quot;ulimit&amp;quot; command before running sc_trans and in the example reduces it to 512KB per-thread '''e.g.'''   ulimit -s 512&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Maximum Client Connection Limits==&lt;br /&gt;
&lt;br /&gt;
In general, there are inherent limits on the maximum number of client connections which may be made to a running instances of sc_serv which can either be set by configuration limits e.g. 'maxuser', Operating System limits or bandwidth limits being reached.&lt;br /&gt;
&lt;br /&gt;
The first two are easy to resolve whereas the last (bandwidth limits) is something which will usually require obtaining additional hosting or paying for more available bandwidth.&lt;br /&gt;
&lt;br /&gt;
If reaching the Operating System limit, this is usually indicated by the maximum number of clients never going above a fixed value even if there is the bandwidth and the server has been configured to go higher. This usually appears as around 1016 maximum connections (though this can vary a bit)&lt;br /&gt;
&lt;br /&gt;
If using a non-Windows Operating System then you can use the 'ulimit -n xxxx' command to change the upper limit from what is already set which can be found from just 'ulimit -n' e.g. to change the limit to 4096 connections you would run ulimit -n 4096&lt;br /&gt;
&lt;br /&gt;
If using a Windows Operating System then there isn't any real way to change such things due to the OS hopefully being configured with limits that will not be reached when using sc_serv. If in doubt then consult the Microsoft support documentation for the OS used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Configurations==&lt;br /&gt;
&lt;br /&gt;
Include as part of the sc_serv installation are a number of example configurations to get things started with using some of the features of the server. The provided examples are:&lt;br /&gt;
&lt;br /&gt;
 sc_serv_basic.conf&lt;br /&gt;
 sc_serv_public.conf&lt;br /&gt;
 sc_serv_relay.conf&lt;br /&gt;
 sc_serv_simple.conf&lt;br /&gt;
&lt;br /&gt;
All of the configuration examples are documented and will relate back to details in this file appropriately. You will need to change some details in these example files or to obtain any applicable authorisation keys for the setup you are making ([[#Getting_Started|see section 3.0]]). In all cases the examples are designed to work from the same install folder as sc_serv.&lt;br /&gt;
&lt;br /&gt;
Remember these examples are a way to get you up and running faster though you are still likely to have to adjust things depending upon the systems you are using and how you want to manage your sources and server connections which are covered in previous sections.&lt;br /&gt;
&lt;br /&gt;
Additionally if you are not happy with editing the files or find it still too confusing then you can use the configuration builder which (if installed) can be found in the 'config_builder'. Open 'config_builder.html' in your browser and then use this graphical tool to setup a configuration file for the server (and additionally the transcoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_basic===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This is the base configuration from which the other configuration examples are based and this will get a sc_serv instance running as a local setup with no connection made to the YP directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_public===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_serv_basic configuration to get a sc_serv instance running as a public setup with a connection made to the YP for listing the stream in the directory. This shows the use of the 'include' option (see section [[#Miscellaneous|4.7]]) and how specifying a configuration option twice uses the last value found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_relay===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_serv_public configuration to get a sc_serv instance running as a public setup with a source coming in from a relay server providing a SHOUTcast 2 stream.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_debug===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file can be included in any other configuration files to allow you to get debug logging output when trying to investigate any issues you may be experiencing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_simple===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Use this if you just need to get a very basic server running or are impatient&lt;br /&gt;
 or are struggling to get it running despite the previous example configurations.&lt;br /&gt;
&lt;br /&gt;
This configuration file is designed to be used just as is and is the simplest form of the configuration file you can have which will allow you to get a running server to appear on the YP. This works on using the default settings of the server though does change some of the file paths inorder to fit in with the existing setup as used in the other examples.&lt;br /&gt;
&lt;br /&gt;
All you need to do when using this configuration file is to enter your authorisation key in the 'streamauthhash' line '''e.g.''' if your authorisation key is '''123456789''' then you change ''streamauthhash=&amp;lt;enter_your_auth_key_here&amp;gt;'' to ''streamauthhash='''123456789''''' and save the file.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	<entry>
		<id>http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Server_2</id>
		<title>SHOUTcast DNAS Server 2</title>
		<link rel="alternate" type="text/html" href="http://wiki.winamp.com/wiki/SHOUTcast_DNAS_Server_2"/>
				<updated>2019-10-21T02:42:31Z</updated>
		
		<summary type="html">&lt;p&gt;Djegg: /* Client Behaviour */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:NavBarSC}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
The purpose of this document is to show you the different configuration options supported by sc_serv along with basic and more advanced example configurations to enable you to get started with using sc_serv and the features it can offer.&lt;br /&gt;
&lt;br /&gt;
The aim of sc_serv is to provide enhanced serving features and also access to the new YP2 infrastructure whilst maintaining as much backward compatibility with previous versions of sc_serv as possible. The new features introduced include:&lt;br /&gt;
&lt;br /&gt;
# Serving multiple streams from a single server instance&lt;br /&gt;
# Relaying multiple streams from a single server instance&lt;br /&gt;
# Multiplexing all server activity through a single IP port&lt;br /&gt;
# SHOUTcast 2 wire protocol support for sources, relays and clients&lt;br /&gt;
# Repackaging of SHOUTcast 1 and SHOUTcast 2 data as needed for connected clients&lt;br /&gt;
# YP2 infrastructure support&lt;br /&gt;
# Real-time metadata and statistic reporting&lt;br /&gt;
# Static station id support&lt;br /&gt;
# In-stream metadata in standardised xml files&lt;br /&gt;
# UTF-8 and international character encoding&lt;br /&gt;
# Improved server and stream security&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview of Features==&lt;br /&gt;
&lt;br /&gt;
To take full advantage of the newer features provided as part of the SHOUTcast 2 and YP2 systems then you will need to ensure you are using a compatible version of sc_serv (any version 2 will work) and that you have the required authorisation key to register as a broadcaster on the YP2 directory (see [[#Getting_Started|section 3.0]]).&lt;br /&gt;
&lt;br /&gt;
If you were intending on taking full advantage of the multiplexing and multiple stream support offered as part of sc_serv then you would need to make sure you enable the SHOUTcast 2 options (this is enabled by default with server builds from the end of 2010 if the 'yp2' option in the configuration file is not specified [see [[#YP_Server_Behaviour|section 4.14]] ). The reason for needing to enable this support is if you try to do it with the original SHOUTcast 1 protocol then it will not work as the original protocol has no means of expressing multiple streams from a single port due to the lack of an identifier provided for them.&lt;br /&gt;
&lt;br /&gt;
If you are planning on connecting multiple sc_trans instances to sc_serv then you must use the SHOUTcast 2 protocol support so that each sc_trans instance can have a unique identifier which allows for multiple streams to then be provided from a single server. It is still possible for an older source to connect to the server with a number of config options available to support this though functionality will be limited compared to what can be done with a fully supporting SHOUTcast 2 source.&lt;br /&gt;
&lt;br /&gt;
Finally clients connecting to your server do not need to directly support SHOUTcast 2 as sc_serv will repackage the stream data and any related metadata into the correct format the client requests (typically based on the user agent detected by the server).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
&lt;br /&gt;
One of the key aspects of the new YP2 directory infrastructure is an authorisation key which is used to validate your server when it tries to connect to the YP2 infrastructure for any of the station(s) you run. Once this key is obtained, it will be valid for all root servers of the station being broadcast.&lt;br /&gt;
&lt;br /&gt;
This can be done by going to the [[SHOUTcast_Authhash_Management|SHOUTcast Authhash Management]] page which shows how to do this via the 'Administation Summary' page as long as a valid source has been connected to the server. This process automatically updates your configuration file(s) with the new authhash and if the stream is set to be public then will attempt to get the stream listed in the SHOUTcast Radio Directory.&lt;br /&gt;
&lt;br /&gt;
When using an older SHOUTcast 1 server then you do not need to do this registration and the server will still be able to be listed on the directory but there is not the same level of protection over the stream as is the case with registering it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Running the Server===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The server is able to be run either as a console application or it can be run as service (Windows) or daemon (Linux / Mac OS X / BSD). Detailed below is how to get the server running on the different operating systems supported by it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The Windows version of sc_serv is designed to run on fully updated and patched versions of Windows 2000, XP, Vista and Windows 7, 8 &amp;amp; 10.&lt;br /&gt;
&lt;br /&gt;
Please note that the Windows versions of sc_serv are built with a dependency against the Microsoft Visual C++ 2008 SP1 Redistributable Package. If sc_serv is unable to start due to a dependency issue then you will need to install the correct version of the package so it can run which depends on the version of sc_serv you are attempting to run:&lt;br /&gt;
&lt;br /&gt;
32-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&lt;br /&gt;
&lt;br /&gt;
64-bit version:&lt;br /&gt;
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=ba9257ca-337f-4b40-8c14-157cfdffee4e&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Install as a Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe install &amp;lt;servicename&amp;gt; &amp;lt;username&amp;gt; &amp;lt;password&amp;gt; &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service&lt;br /&gt;
 Typically enter this as 'sc_serv' though you can use a different name but you will need&lt;br /&gt;
 to remember it as it is required to be the same when using the 'uninstall' mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;username&amp;gt; - User under which to run the service as or '0' for the local system&lt;br /&gt;
&lt;br /&gt;
&amp;lt;password&amp;gt; - Password for user or '0' for the local system or with no password&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
When run as a service there is not a good sense of a current working directory so requires all paths in the configuration and playlist files to be fully qualified otherwise lookups will fail when sc_serv is run.&lt;br /&gt;
&lt;br /&gt;
To run sc_serv with a configuration file in the same folder as the server as the current system user account you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_serv.exe install sc_serv 0 0 sc_serv.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Uninstall the Service====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe uninstall &amp;lt;servicename&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;servicename&amp;gt; - Name of service as used when the service was registered&lt;br /&gt;
&lt;br /&gt;
To uninstall sc_serv assuming it was installed as detailed in the install section above then you would enter into the console:&lt;br /&gt;
&lt;br /&gt;
 sc_serv.exe uninstall sc_serv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Service in the Console====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
sc_serv.exe &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
===Linux / Mac OS X / BSD===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Remember to enable the required access on the sc_trans file by doing 'chmod a+x sc_trans' after extracting it from the distribution file otherwise the OS is likely to not run it and show the error message './sc_serv: Permission denied'.&lt;br /&gt;
&lt;br /&gt;
====Run as a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_serv daemon &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (required in all cases)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
'''e.g.'''&lt;br /&gt;
 ./sc_serv daemon ./sc_serv.conf&lt;br /&gt;
&lt;br /&gt;
When run this should output the following:&lt;br /&gt;
&lt;br /&gt;
'sc_serv going daemon with PID [XXXX]' where XXXX is the &amp;lt;pid&amp;gt; of the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====End a Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
kill -SIGTERM &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -15 &amp;lt;pid&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
kill -s TERM &amp;lt;pid&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pid&amp;gt; - The PID of the daemon instance (reported when the daemon started or can be found with 'ps ax | grep sc_serv' as long as sc_serv was the file run otherwise you can just use 'ps ax' if the filename isn't known). Additionally the PID of sc_serv is listed in the log file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Run as a Non-Daemon====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
./sc_serv &amp;lt;conf&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;conf&amp;gt; - File path to the configuration file (can be relative or absolute)&lt;br /&gt;
 If no file / an invalid file is specified then sc_serv will abort loading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Additional Signals===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
When run on Linux / Mac OS X / BSD then some additional signals are supported to allow for additional control over the running daemon instance of sc_serv.&lt;br /&gt;
&lt;br /&gt;
The following signals can be used with the 'kill' command (in the manner of your choosing for using the kill command) along with the &amp;lt;pid&amp;gt; of the daemon instance to do one of the following actions:&lt;br /&gt;
&lt;br /&gt;
    SIGKILL   -  Stops sc_trans (also SIGTERM, SIGINT and SIGQUIT will work)&lt;br /&gt;
    SIGHUP    -  Rotates logfile, w3clog and streamw3clog&lt;br /&gt;
&lt;br /&gt;
The result of SIGHUP is that the current log file contents will be moved into &amp;lt;logfile&amp;gt;_1 e.g. sc_serv_1.log, &amp;lt;logfile&amp;gt;_1 will be moved into &amp;lt;logfile&amp;gt;_2 e.g. sc_serv_2.log and so on for all log files which can be found which match the current log file's name. This is useful if timed to have it create day specific log files.&lt;br /&gt;
&lt;br /&gt;
 These signals are not supported by the Windows version of sc_serv which will only&lt;br /&gt;
 respond to the Ctrl + C / Ctrl + Break / console close commands the OS provides.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuration File==&lt;br /&gt;
&lt;br /&gt;
Here you can find a complete list of all of the configuration options which are provided by sc_serv which ranges from logging to networking configuration and control over the media being used when streaming via the server.&lt;br /&gt;
&lt;br /&gt;
Configuration entries labelled as ''&amp;lt;MULTI&amp;gt;'' can be used to set up simultaneous connections to the server or allow for multiple connections from various sources. These are specified by adding _# to the end of the option's name as shown below where # begins with one. If you are only working with a single instance then you do not need to add the _# part as any instances of a configuration option will assume it is for _1.&lt;br /&gt;
&lt;br /&gt;
Note: The ''&amp;lt;MULTI&amp;gt;'' system is not hierarchical and all values beyond the default must be specified for all connections. So for example, if you wanted to connect to two servers on the same port you must do:&lt;br /&gt;
&lt;br /&gt;
    serverport_1=8080&lt;br /&gt;
    serverport_2=8080&lt;br /&gt;
    serverip_1=www.server1.com&lt;br /&gt;
    serverip_2=www.server2.com&lt;br /&gt;
&lt;br /&gt;
Note that you CANNOT do it like this as it leads to not all values being set:&lt;br /&gt;
&lt;br /&gt;
    serverport=8080&lt;br /&gt;
    serverip_1=www.server1.com&lt;br /&gt;
    serverip_2=www.server2.com&lt;br /&gt;
&lt;br /&gt;
The configuration files also allow for comments/notes or options to be disabled by the use of a semi-colon (''';''') or a left bracket ('''[''') or the hash / pound symbol ('''#''') at the start of a line which can be seen in all of the configuration examples.&lt;br /&gt;
&lt;br /&gt;
Known options in the configuration files are recognised irrespective of the case they are entered in the configuration file so maxuser and MaXuSer will be handled the same way.&lt;br /&gt;
&lt;br /&gt;
Any items found in the configuration file which are not known (as detailed in following sections) or is not processed as a comment will be reported in the following manner:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;date + time&amp;gt; W msg:[CONFIG] Invalid item on line XX&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;date + time&amp;gt; is the date and time the event happens at and XX is the line in the configuration file where the error has been found to occur at.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Banning===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''banfile''' : File to store the list of banned IP addresses    ''[Default = sc_serv.ban]''&lt;br /&gt;
&lt;br /&gt;
'''savebanlistonexit''' : Re-write the 'banfile' on server exit    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the file into then you need to ensure that the&lt;br /&gt;
 folder already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Client Behaviour===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''maxuser''' : Specify the maximum number of clients allowed to connect to the server    ''[Default = 32]''&lt;br /&gt;
 This is used in conjunction with 'streammaxuser' (see [[#Stream_Configuration|section 4.12]]) to control the&lt;br /&gt;
 maximum limit on the number of client connections allowed to connect to the server instance.&lt;br /&gt;
&lt;br /&gt;
'''listenertime''' : Specify the maximum time in minutes a client can listen to the stream    ''[Default = 0]''&lt;br /&gt;
 A value of zero means there will be no time limit.&lt;br /&gt;
&lt;br /&gt;
'''autodumpusers''' : Enable to allow the server to disconnect clients if the source disconnects    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''srcip''' : Specify the server side binding address for sources to connect on    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''dstip''' or '''destip''' or '''publicip''' : Specify the server side binding address for clients    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
 If 'any' or no value is specified then sc_serv listens to all addresses.&lt;br /&gt;
&lt;br /&gt;
If you specify a value for 'dstip / destip' then this will be used by the listen feature on the Administration Pages (see section 5.1) so it can provide a valid stream url in the generated playlist. If 'dstip / destip' is not specified then the server will attempt to auto-generate the IP required for the client to be able to connect. If this fails the generated playlist is likely to return a stream url like &amp;lt;nowiki&amp;gt;http://0.0.0.0:&amp;lt;portbase&amp;gt;/&amp;lt;path&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The IP provided needs to be in a valid format like &amp;lt;nowiki&amp;gt;http://&amp;lt;my-ip&amp;gt;&amp;lt;/nowiki&amp;gt; or an address which can be resolved to an IP otherwise the internal lookups done are likely to fail (depends upon the server configuration and OS being used). Also you cannot set srcip and dstip / destip to be the same IP value and if this happens then the server will close. Closing of the server will also happen if the IP cannot be resolved or correctly bound to i.e. server is not there or an invalid value was entered.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''titleformat''' : Specify a string to be used in-place of the default icy-name string being used    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''urlformat''' : Specify a string to be used in-place of the default icy-url string being used    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
''' '''&lt;br /&gt;
&lt;br /&gt;
===Debugging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
In all cases, the default value is for no debug logging for the options listed below.&lt;br /&gt;
&lt;br /&gt;
'''yp1debug''' : Enable debug logging of YP connections&lt;br /&gt;
&lt;br /&gt;
'''yp2debug''' : Enable debug logging of YP2 connections&lt;br /&gt;
&lt;br /&gt;
'''shoutcastsourcedebug''' : Enable debug logging of SHOUTcast source connections&lt;br /&gt;
&lt;br /&gt;
'''uvox2sourcedebug''' : Enable debug logging of SHOUTcast 2 source connections&lt;br /&gt;
&lt;br /&gt;
'''shoutcast1clientdebug''' : Enable debug logging of SHOUTcast streaming clients&lt;br /&gt;
&lt;br /&gt;
'''shoutcast2clientdebug''' : Enable debug logging of SHOUTcast 2 streaming clients&lt;br /&gt;
&lt;br /&gt;
'''relayshoutcastdebug''' : Enable debug logging for SHOUTcast relays&lt;br /&gt;
&lt;br /&gt;
'''relayuvoxdebug''' : Enable debug logging for SHOUTcast 2 relays&lt;br /&gt;
&lt;br /&gt;
'''relaydebug''' : Enable debug logging of common relay code&lt;br /&gt;
&lt;br /&gt;
'''streamdatadebug''' : Enable debug logging of common streaming code&lt;br /&gt;
&lt;br /&gt;
'''httpstyledebug''' : Enable debug logging of http style requests&lt;br /&gt;
&lt;br /&gt;
'''statsdebug''' : Enable debug logging of statistics&lt;br /&gt;
&lt;br /&gt;
'''microserverdebug''' : Enable debug logging of common server activity&lt;br /&gt;
&lt;br /&gt;
'''threadrunnerdebug''' : Enable debug logging of the thread manager&lt;br /&gt;
&lt;br /&gt;
'''rtmpclientdebug''' : Enable debug logging of rtmp clients&lt;br /&gt;
&lt;br /&gt;
'''admetricsdebug''' : Enable debug logging of ad metrics (v2.5 and newer)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' '''&lt;br /&gt;
''' '''&lt;br /&gt;
&lt;br /&gt;
===Flash Security===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''flashpolicyfile''' : Name of file containing flash crossdomain policies on the server    ''[Default = crossdomain.xml]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Introduction and Backup Files===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Note that intro and backup audio files must precisely match the format and bitrate for the stream! If they do not match, there will be a break in the stream and the listener will be disconnected. &lt;br /&gt;
&lt;br /&gt;
'''introfile''' : File to play when a client first connects to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: This is used globally and also is default for stream #1 on DNAS versions greater than 2.0. To apply a specific intro file to a stream, use streamintrofile_X. &lt;br /&gt;
&lt;br /&gt;
'''streamintrofile_X''' : File to play when a client first connects to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''backupfile''' : File to play if the source disconnects from the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
Note: This is used globally and also is default for stream #1 on DNAS versions greater than 2.0. To apply a specific backup file to a stream, use streambackupfile_X. &lt;br /&gt;
&lt;br /&gt;
'''streambackupfile_X''' : assigns a specific backup file to a streamID X [Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''streambackupurl_X''' : assigns a specific backup stream to a streamID X (v2.6 Premium feature)''&lt;br /&gt;
&lt;br /&gt;
'''specialfiletmpdir''' : place to store intro and backup files uploaded by sc_trans    ''[Default = /tmp/ (*nix only)]''&lt;br /&gt;
&lt;br /&gt;
'''maxspecialfilesize''' : Change the maximum size in bytes of the backup and intro files    ''[Default = 30000000]''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Logging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''log''' : Enable logging of the servers output    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''screenlog''' :  Enable logging of servers output to the console    ''[Default = 1]''&lt;br /&gt;
 If log=0 then this option is ignored due to no logging happening.&lt;br /&gt;
&lt;br /&gt;
'''logfile''' : Specify a different logfile to save the logs into ''[Default = %temp%\sc_serv.log or /tmp/sc_serv.log]''&lt;br /&gt;
&lt;br /&gt;
'''logclients''' : Enable logging of details about client connections and disconnections made ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the logs into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''configrewrite''' :  Re-write the 'config file' on server exit    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''songhistory''' : Specify the maximum song history to preserve    ''[Default = 10]''&lt;br /&gt;
&lt;br /&gt;
'''cpucount''' : Specify the number of cpu's present instead of the calculated number if non-zero    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''unique''' : Specify a substitution string for the '$' character to be used when processing filenames which if specified will set any occurences of '$' to the value set. This will be used in the processing of the following filenames: '''logfile''', '''introfile''', '''streamintrofile''', '''backupfile''', '''streambackupfile''', '''banfile''', '''streambanfile''', '''ripfile''', '''streamripfile''', '''include''', '''w3clog''', '''streamw3clog'''&lt;br /&gt;
&lt;br /&gt;
 So when 'unique' is changed from '$' to say 'test' then the following happens if 'logfile' is&lt;br /&gt;
 set to '/usr/local/shoutcast/$.log' then this would be converted to '/usr/local/shoutcast/test.log'&lt;br /&gt;
&lt;br /&gt;
'''include''' : Specify an additional include file containing settings to be processed from the current point in the main configuration file    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
You can do multiple calls of this allowing for a basic configuration file with then 'specific' stream configurations set in individual conf files though you need to ensure not to include a reference to the same file in itself.&lt;br /&gt;
&lt;br /&gt;
You can also specify a path with a wildcard for sc_serv to use to find multiple configuration files to include '''e.g.''' 'include=stream/*.conf'.  This can then be used along with the multiple stream configurations (see section 4.12) and the admin command 'admin.cgi?mode=reload' (see section 5.1) to add / remove / update stream configurations without having to close the server to apply them.&lt;br /&gt;
&lt;br /&gt;
'''admincssfile''' : Specify the css styling to be used on the index.html and admin pages    ''[Default = v2]''&lt;br /&gt;
&lt;br /&gt;
This can accept the following parameters:&lt;br /&gt;
&lt;br /&gt;
:admincssfile='''v1'''  -  Uses the v1 DNAS style&lt;br /&gt;
:admincssfile='''v2'''  -  Uses the newer SHOUTcast 2 style&lt;br /&gt;
:admincssfile='''path_to_local_css_file'''  e.g. my_index.css&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 If using a custom css file, if it does not exist on the first try to load it the server will revert to&lt;br /&gt;
 the default css style. As well the style is cached once loaded so changes require a restart of sc_serv.&lt;br /&gt;
&lt;br /&gt;
'''faviconfile''' : Specify the file to be returned as the favicon.ico when the administration pages are being queried by the client's browser    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
The default behaviour is to use a SHOUTcast themed built-in icon file and support / handling the update of this will entirely depend on the browser.&lt;br /&gt;
&lt;br /&gt;
'''faviconmimetype''' : Specify the mime type for actual file to be served in the favicon.ico response    ''[Default = image/x-icon]''&lt;br /&gt;
&lt;br /&gt;
Ensure this is correct for the type of image being used so it is valid.&lt;br /&gt;
&lt;br /&gt;
'''hidestats''' : Specify if the publically accessible stats?sid=# page can be accessed or if it is only available via the private administration pages   ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''robotstxtfile''' : Specify the file to be returned as the robots.txt when queried by search engines, etc to attempt to prevent incorrect access to the server's pages which may cause invalid client connections    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
The default behaviour is to return a robots.txt reponse indicating not to look at any of the server's pages i.e.&lt;br /&gt;
::User-agent:*&lt;br /&gt;
::Disallow:/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Networking===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''namelookups''' : Enable to allow reverse DNS look-ups on incoming IP addresses    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''portbase''' : Specify the port which clients and sources need to use to connect to the server    ''[Default = 8000]''&lt;br /&gt;
 SHOUTcast 1 sources are only able to connect to 'portbase + 1'.&lt;br /&gt;
&lt;br /&gt;
'''autodumpsourcetime''' : Specify how long before an idle source is dumped from the server (in seconds)    ''[Default: 30]''&lt;br /&gt;
 A value of zero means there is no timeout of an idle source.&lt;br /&gt;
 Also if you set this too low then it is likely that valid sources will&lt;br /&gt;
 fail to connect during the initial stages of a source connection.&lt;br /&gt;
&lt;br /&gt;
'''maxheaderlinesize''' : Specify the maximum size of an HTTP header line    ''[Default = 2048]''&lt;br /&gt;
&lt;br /&gt;
'''maxheaderlinecount''' : Specify the maximum header lines in an HTTP style exchange    ''[Default = 100]''&lt;br /&gt;
&lt;br /&gt;
'''adminpassword''' : Specify the administrator password for accessing the remote server features    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
'''password''' : Specify the password for broadcasters when connecting to the server    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
 This matches the 'uvoxauth' value in the sc_trans configuration file (see [[SHOUTcast_DNAS_Transcoder_2#Network_Options|sc_trans.txt - section 3.11]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Network Buffers===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''buffertype''' : Specify whether the buffer size is fixed [0] or adaptive [1]    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
'''adaptivebuffersize''' : Specify the buffer size in seconds if buffer is set to adaptive    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''fixedbuffersize''' : Specify the buffer size in bytes if the buffer is set to fixed    ''[Default = 1048576]''&lt;br /&gt;
&lt;br /&gt;
'''bufferhardlimit''' : Specify the maximum buffer size in bytes which it can never go above    ''[Default = 16777216]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Relaying===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''allowrelay''' : Enable to allow a relay to connect to the server    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''allowpublicrelay''' : Enable to allow relays to list themselves in the YP directory    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''relayreconnecttime''' : Specify how many seconds to wait to reconnect on a relay failure    ''[Default = 30]''&lt;br /&gt;
 Setting this to 0 will disable attempts for the relay to reconnect.&lt;br /&gt;
&lt;br /&gt;
'''relayconnectretries''' : Specify the number of times relays are attempted to be connected to if it is initially unable to connect    ''[Default = 3]''&lt;br /&gt;
 This generally applies only to YP1 connections and is related to the&lt;br /&gt;
 actual attempts to make and get a http response from the YP server.&lt;br /&gt;
&lt;br /&gt;
'''maxhttpredirects''' : Specify the maximum number of times we can redirect when relaying    ''[Default = 5]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;Legacy Options&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
'''relayport''' : Port of the source to use for the relay    ''[Default: 80]''&lt;br /&gt;
&lt;br /&gt;
'''relayserver''' : Url of the source to relay    ''[Default = &amp;lt;no value&amp;gt;]''&lt;br /&gt;
&lt;br /&gt;
 Using the stream configuration options (see [[#Stream_Configuration|section 4.12]]) is the preferred method&lt;br /&gt;
 of setting up a relay. These options are only provided as a means for loading&lt;br /&gt;
 legacy configuration files. If found then these are mapped to 'streamrelayurl_1'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Reserved List===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''ripfile''' : File to store the list of reserved IP addresses    ''[Default = sc_serv.rip]''&lt;br /&gt;
&lt;br /&gt;
'''saveriplistonexist''' : Re-write the 'ripfile' on server exit    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''riponly''' : Only allow connections to be made from reserved IP addresses    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the file into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Stream Configuration===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Important Note:''' If you do not specify an identifier (_#) on the end of the above options then it will be treated like _1 (effectively acting like SHOUTcast 1). Additionally, _0 is not a supported identifier and will be mapped to _1.&lt;br /&gt;
&lt;br /&gt;
'''requirestreamconfigs''' : Only allow sources to connect if a stream configuration has been set in your configuration file    ''[Default = 0]''&lt;br /&gt;
 With this enabled, you will need to ensure that any sources have their configuration details&lt;br /&gt;
 setup to match those in sc_trans's configuration, in particular the 'uvoxstreamid' value with&lt;br /&gt;
 sc_trans (see [[SHOUTcast_DNAS_Transcoder_2#Network_Options|sc_trans.txt - section 3.11]]).&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;MULTI&amp;gt;'' (one set for each stream configuration):&lt;br /&gt;
&lt;br /&gt;
'''streamid''' : Specify the numerical identifier of the stream for control or referencing the stream configuration. This can only be a numeric value from 1 to 2147483647.&lt;br /&gt;
&lt;br /&gt;
 If you use multiple stream configurations then you will need to ensure the _X&lt;br /&gt;
 part is specified and correct for each stream configuration group&lt;br /&gt;
 e.g.&lt;br /&gt;
   streamid=1&lt;br /&gt;
   streampath=random&lt;br /&gt;
     or&lt;br /&gt;
   streamid_1=1&lt;br /&gt;
   streampath_1=random_stream_path&lt;br /&gt;
   streamid_2=2&lt;br /&gt;
   streampath_2=another_stream_path&lt;br /&gt;
&lt;br /&gt;
'''streamauthhash''' : The authorisation key needed for YP2 directory registration.&lt;br /&gt;
 This is a requirement for using the YP2 system and without it you will not be able to&lt;br /&gt;
 successfully connect to the YP2 directory (see [[#Getting_Started|section 3.0]]).&lt;br /&gt;
 &lt;br /&gt;
 This can be used for multiple streams you are providing or can be different (as long&lt;br /&gt;
 as valid) so you can infact provide multiple stations from the same server if desired.&lt;br /&gt;
&lt;br /&gt;
'''streampath''' : Specify the path clients need to use to access the stream&lt;br /&gt;
 If a / is not specified on the start of the string then the server will add&lt;br /&gt;
 it to the generated path in playlist entries or other places as required so&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;http://&amp;lt;serverurl&amp;gt;/&amp;lt;streampath&amp;gt;&amp;lt;/nowiki&amp;gt; will work so clients are able to connect.&lt;br /&gt;
 streampath is the mountpoint, e.g. streampath_1=mystation would result in ip:port/mystation&lt;br /&gt;
 &lt;br /&gt;
 If this is not specified then &amp;lt;nowiki&amp;gt;http://&amp;lt;serverurl&amp;gt;/stream/&amp;lt;streamid&amp;gt;/&amp;lt;/nowiki&amp;gt; will be&lt;br /&gt;
 used for client access and in generated playlist entries so that it will&lt;br /&gt;
 always be possible for clients to connect to the server somehow. See [[SHOUTcast_DNAS_Server_2#Stream_Addresses|section 6.0]] for more information on the&lt;br /&gt;
 server's stream address support.&lt;br /&gt;
&lt;br /&gt;
'''streamrelayurl''' : Specify the full url of source to relay (if this is a relay).&lt;br /&gt;
 Make sure if you use this that the full url is entered and that it is&lt;br /&gt;
 the url which clients would connect to for the stream to be relayed.&lt;br /&gt;
&lt;br /&gt;
'''streammaxuser''' : Specify the maximum number of clients allowed to connect to the stream    ''[Default = 0]''&lt;br /&gt;
If set to zero, not specified or higher than 'maxuser' then the value set for 'maxuser' (see [[#Client_Behaviour|section 4.2]]) will be used for all knwon streams.&lt;br /&gt;
&lt;br /&gt;
Changing this to a value between zero and 'maxuser' will enforce the user connection limit for the specified value in the stream configuration '''e.g.'''&lt;br /&gt;
 streammaxuser_1 = 8&lt;br /&gt;
 maxuser = 32&lt;br /&gt;
&lt;br /&gt;
This allows a total of 32 connections to the server but specifies the maximum number of connections to the first stream configuration is 8.&lt;br /&gt;
&lt;br /&gt;
With the following stream configuration&lt;br /&gt;
 streammaxuser_1 = 64&lt;br /&gt;
 maxuser = 32&lt;br /&gt;
&lt;br /&gt;
This allows a total of 32 connections to the server but with a per stream limit above the maximum means the maximum number of connections to the first stream group will be 32. However this also depends upon any other stream configurations and their limits as to whether 32 clients will be able to connect to this stream configuration.&lt;br /&gt;
&lt;br /&gt;
Finally unless a valid stream configuration is specified then this value will only be applied to the first stream configuration found i.e. there is a need to specify a streamid_XXX for streammaxuser_XXX (where XXX is the stream identifier of the stream configuration group.&lt;br /&gt;
&lt;br /&gt;
'''streamadminpassword''' : Specify the administrator password for accessing the remote server features for the specified stream configuration group. If this is not specified then 'adminpassword' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streampassword''' : Specify the password for broadcasters when connecting to the server for the specified stream configuration group. If this is not specified then 'password' will be used.&lt;br /&gt;
 This matches the 'uvoxauth' value in the sc_trans configuration file (see sc_trans.txt - section 3.11).&lt;br /&gt;
&lt;br /&gt;
'''streampublicserver''' : This allows you to override the public flag received from the source when a connection is being made to the YP directory. If this is not specified or is set to empty then 'publicserver' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamallowrelay''' : Enable to allow a relay to connect to the server. If this is not specified then 'allowrelay' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamallowpublicrelay''' : Enable to allow relays to list themselves in the YP directory. If this is not specified then 'allowpublicrelay' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamriponly''' : Enable to only allow connections to be made from reserved IP addresses. If this is not specified then 'riponly' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamautodumpsourcetime''' : Specify how long before an idle source will be dumped from the server (in seconds). A value of zero means there is no timeout of an idle source. If not specified then 'autodumpsourcetime' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamautodumpusers''' : Enable to allow the server to disconnect clients if the source disconnects. If not specified then 'autodumpusers' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamlistenertime''' : Specify the maximum time in minutes a client is allowed to listen to the stream. A value of zero means there will be no time limit. If not specified then 'listenertime' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamintrofile''' : File to play when a client first connects to the server. If this is not specified then 'introfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streambackupfile''' : File to play if the source disconnects from the server. If this is not specified then 'backupfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streammovedurl_X''' : redirects a permanently stopped or moved stream to a different working stream url.&lt;br /&gt;
&lt;br /&gt;
'''streambanfile''' : File to store the list of banned IP addresses. If this is not specified then 'banfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamripfile''' : File to store the list of banned IP addresses. If this is not specified then 'ripfile' will be used.&lt;br /&gt;
&lt;br /&gt;
'''streamw3clog''' : File to store the web connections logs into. If this is not specified then 'w3clog' will be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''DNAS v2.6 and newer'''&lt;br /&gt;
&lt;br /&gt;
'''sslCertificateFile''' : For https:// streams, specify .crt file e.g. sslCertificateFile=/path/to/ssl.crt&lt;br /&gt;
&lt;br /&gt;
'''sslCertificateKeyFile''' : specify key file, e.g. sslCertificateKeyFile=/path/to/key.pem&lt;br /&gt;
&lt;br /&gt;
 Put the whole certificate chain in the .crt file, and only the key in the .key file&lt;br /&gt;
 Note: Requires Premium subscription to unlock Premium features.&lt;br /&gt;
 SSL Cert needs to be assigned to a DNS e.g. stream.mysite.com&lt;br /&gt;
 Be sure to also add destip=stream.mysite.com and alternateports=443 lines to DNAS config file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' '''&lt;br /&gt;
&lt;br /&gt;
===Web Connection (W3C) Logging===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''w3cenable''' : Enable logging of web connections to describe the duration a client has listened to a specific title    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
'''w3clog''' : File to store the web connections logs into    ''[Default = sc_w3c.log]''&lt;br /&gt;
&lt;br /&gt;
 If you are using a folder for saving the log into then you need to ensure that the folder&lt;br /&gt;
 already exists as sc_serv will not attempt to the create the folder for you.&lt;br /&gt;
&lt;br /&gt;
'''webclientdebug''' : Enable logging of web client connections    ''[Default = 0]''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===YP Server Behaviour===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''uvoxcipherkey''' : Specify the key used to obfuscate the initial handshaking with the source    ''[Default = foobar]''&lt;br /&gt;
 This is a SHOUTcast 2 only feature and it matches the 'djcipher' value in the sc_trans&lt;br /&gt;
 configuration file (see [[SHOUTcast_DNAS_Transcoder_2#DJ_Support|sc_trans.txt - section 3.3]]).&lt;br /&gt;
&lt;br /&gt;
Only change this if you really need to do so as not all SHOUTcast 2 clients will allow you to edit this value from the default value. If using the Source DSP plug-in then see [[Source_DSP_Plug-in#SHOUTcast_2_Cipher_Key|dsp_sc.txt - section 5.0]] for details on how to change the plug-in to use a differnet value.&lt;br /&gt;
&lt;br /&gt;
'''metainterval''' : Specify the metadata transmission interval in bytes    ''[Default = 8192]''&lt;br /&gt;
 YP1 only&lt;br /&gt;
&lt;br /&gt;
'''yp2''' : Enable to use the SHOUTcast 2 protocol and related server features for access to the YP2 directory    ''[Default = 1]''&lt;br /&gt;
&lt;br /&gt;
If this is enabled and not all of the required values are set then the server will throw an error and will abort from its start-up attempt. It should be indicated what needs to be set to allow the server to start with this set.&lt;br /&gt;
&lt;br /&gt;
Additionally if there is an issue then the server will report an error in its log ouput of 'Connection attempt failed. YP2 error code is XXX (&amp;lt;message&amp;gt;)' where XXX is one of the following error codes and &amp;lt;message&amp;gt; is a message set in the error response to indicate a bit more what the error relates to. All current error codes can be found [[#YP_Server_Errors|here]].&lt;br /&gt;
&lt;br /&gt;
'''ypaddr''' : Allows you to specify a different YP server if required    ''[Default = yp.shoutcast.com]''&lt;br /&gt;
&lt;br /&gt;
'''ypport''' : Allows you to specify the port of the YP server if required    ''[Default = 80]''&lt;br /&gt;
&lt;br /&gt;
'''ypPath''' : Allows you to specify the path to YP2 services on the server    ''[Default = /yp2]''&lt;br /&gt;
&lt;br /&gt;
'''ypTimeout''' : Specify the timeout interval in seconds for requests made to the YP server    ''[Default = 60]''&lt;br /&gt;
&lt;br /&gt;
'''ypmaxretries''' : Specify the maximum number of times a YP request will be attempted    ''[Default = 10]''&lt;br /&gt;
 This generally applies only to YP1 connections and is related to the&lt;br /&gt;
 actual attempts to make and get a http response from the YP server.&lt;br /&gt;
&lt;br /&gt;
'''ypreportinterval''' : Specify the maximum time in which the YP must have contacted our server in seconds    ''[Default = 300]''&lt;br /&gt;
&lt;br /&gt;
'''ypminreportinterval''' : Specify the minimum time in which the YP can contact our server in seconds    ''[Default = 10]''&lt;br /&gt;
&lt;br /&gt;
'''publicserver''' : This allows you to override the public flag from the connected source when a connection is being made to the YP directory    ''[Default = default]''&lt;br /&gt;
This can be one of the following values:&lt;br /&gt;
 '''default''' - use the flag provided by the source&lt;br /&gt;
 '''always''' - force the source to be public&lt;br /&gt;
 '''never''' - never allow the use the flag provided by the source&lt;br /&gt;
&lt;br /&gt;
When using sc_trans this would match with the 'public' value (see [[SHOUTcast_DNAS_Transcoder_2#Metadata_Control|sc_trans.txt - section 3.8]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===YP Server Errors===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
If not all of the required values are set for a public listing then the DNAS server will throw an error and will abort its attempt to be listed in the Directory. It should be indicated the error is with one of the error codes provided below so it can be resolved.&lt;br /&gt;
&lt;br /&gt;
Additionally if there is an issue during Directory updates or removals, then the server will report an error in its log ouput as one of the following error codes and &amp;lt;message&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px thin black; margin: .46em 0 0 .2em;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Status Code&lt;br /&gt;
! Status Message&lt;br /&gt;
|-&lt;br /&gt;
| 400 || Generic error ''(covers all other cases usually from internal failures)''&lt;br /&gt;
|-&lt;br /&gt;
| 457 || Unrecoverable error while updating station information - DNAS restart required.&lt;br /&gt;
|-&lt;br /&gt;
| 470 || Invalid authorization hash&lt;br /&gt;
|-&lt;br /&gt;
| 471 || Invalid stream type (could be a bad bitrate or mime type)&lt;br /&gt;
|-&lt;br /&gt;
| 472 || Missing or invalid stream url&lt;br /&gt;
|-&lt;br /&gt;
| 473 || Server unreachable by YP&lt;br /&gt;
|-&lt;br /&gt;
| 474 || Relay url does not exist&lt;br /&gt;
|-&lt;br /&gt;
| 475 || Invalid server ID&lt;br /&gt;
|-&lt;br /&gt;
| 476 || Invalid max clients (value out of range or missing)&lt;br /&gt;
|-&lt;br /&gt;
| 477 || Terms of Service violator.  You are being reported.&lt;br /&gt;
|-&lt;br /&gt;
| 478 || Incompatible protocol.&lt;br /&gt;
|-&lt;br /&gt;
| 479 || Streams requiring authorization are not public and cannot list here.&lt;br /&gt;
|-&lt;br /&gt;
| 480 || Cannot see your station/computer (URL: &amp;lt;streamurl&amp;gt;) from the Internet, disable Internet Sharing/NAT/firewall/ISP cache.&lt;br /&gt;
|-&lt;br /&gt;
| 481 || Cannot verify server since all listener slots are full.  Please wait.&lt;br /&gt;
|-&lt;br /&gt;
| 482 || This network has been permanently banned due to a previous violation of the SHOUTcast directory terms of service&lt;br /&gt;
|-&lt;br /&gt;
| 483 || Invalid listeners (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 484 || Invalid avglistentime (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 485 || Invalid newsessions (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 486 || Invalid connects (value out of range / missing)&lt;br /&gt;
|-&lt;br /&gt;
| 487 || Request &amp;amp; Response objects are null&lt;br /&gt;
|-&lt;br /&gt;
| 488 || Request xml is null&lt;br /&gt;
|-&lt;br /&gt;
| 489 || YP command not specified&lt;br /&gt;
|-&lt;br /&gt;
| 490 || Generic error, while doing xml parsing&lt;br /&gt;
|-&lt;br /&gt;
| 491 || Generic error, while reading xml request&lt;br /&gt;
|-&lt;br /&gt;
| 492 || Error closing buffer / HTTP connection&lt;br /&gt;
|-&lt;br /&gt;
| 493 || Internal error - unable to acquire data source&lt;br /&gt;
|-&lt;br /&gt;
| 494 || Error updating information - DNAS restart required&lt;br /&gt;
|-&lt;br /&gt;
| 495 || Error acquiring station ID - DNAS restart required&lt;br /&gt;
|-&lt;br /&gt;
| 496 || Error converting data type&lt;br /&gt;
|-&lt;br /&gt;
| 497 || Inconsistent stream behaviour&lt;br /&gt;
|-&lt;br /&gt;
| 498 || Invalid Request (Invalid request received)&lt;br /&gt;
|-&lt;br /&gt;
| 499 || Error while getting information&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Administration==&lt;br /&gt;
&lt;br /&gt;
With sc_serv there are administration pages available for accessing and controlling the server remotely which allows you to monitor and control clients connected to the stream (or not if banning them). These pages can now be accessed through a summary page at /index.html which will show a link to any active stream(s) or you explicitly access them via the /index.html?sid=# path where # is the ID of the stream (see [[#Stream_Configuration|section 4.12]] for more about using 'streamid') '''e.g.'''&lt;br /&gt;
 &amp;lt;streamurl&amp;gt;/index.html?sid=1&lt;br /&gt;
&lt;br /&gt;
If no sid or an invalid sid is passed then you will be taken to the summary /index.html and this will be applied even if you were on a page with a known ID and then enter an invalid sid or remove it purposefully.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Administration Pages===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
As part of the administrative features provided there are the following pages where # is the streamid you want to use). This is not a complete list but should cover all of the pages which allow for a direct http url to be entered to get an administation action to work. The ban and reserve IP actions require input fields and do not map to direct sends.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Public Pages====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''index.html'''  -  Shows a summary page with links to get to any active stream(s)&lt;br /&gt;
&lt;br /&gt;
'''currentsong?sid=#'''  -  Returns the current song title or a null response&lt;br /&gt;
&lt;br /&gt;
'''nextsong?sid=#'''  -  Returns the next song title (if known) or a null response&lt;br /&gt;
 currentsong and nextsong both provide a UTF-8 encoded string of the song title&lt;br /&gt;
 otherwise it will return effectively no response (ignoring the http header).&lt;br /&gt;
&lt;br /&gt;
'''nextsongs?sid=#'''  -  Returns in an xml format the next song title(s) (if known) to be played when using a compatible v2 stream source. See [[#XML_Responses|section 5.2]] for more details on the format of the xml returned).&lt;br /&gt;
&lt;br /&gt;
'''index.html?sid=#'''  -  Shows current status of the specified stream&lt;br /&gt;
&lt;br /&gt;
'''played.html?sid=#'''  -  Song history of specified playing history&lt;br /&gt;
:or&lt;br /&gt;
'''played?sid=#'''&lt;br /&gt;
&lt;br /&gt;
'''listen.pls?sid=#'''  -  Provides a PLS for file clients to use to connect to the stream.&lt;br /&gt;
:or&lt;br /&gt;
'''listen?sid=#'''&lt;br /&gt;
&lt;br /&gt;
'''listen.m3u?sid=#'''  -  Provides a M3U file for clients to use to connect to the stream.&lt;br /&gt;
&lt;br /&gt;
'''listen.asx?sid=#'''  -  Provides a ASX file for clients to use to connect to the stream.&lt;br /&gt;
&lt;br /&gt;
 With the listen pages you either need to have specified an IP with 'dstip / destip'&lt;br /&gt;
 (see section 4.2) or leave empty and allow the server to attempt to auto-generate&lt;br /&gt;
 the IP required for the client to be able to connect. If this fails the generated&lt;br /&gt;
 playlist is likely to return a stream url like &amp;lt;nowiki&amp;gt;http://0.0.0.0:&amp;lt;portbase&amp;gt;/&amp;lt;path&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''home.html?sid=#''' or '''home?sid=#'''  -  Opens in a new window or tab (depending on the client browser) the 'streamurl' as specified by the stream source. If this is not set then the client will be redirected to the shoutcast.com main page.&lt;br /&gt;
&lt;br /&gt;
'''stats?sid=#'''  -  Provides an xml response for public accessibility which matches the private version from admin.cgi?sid=#&amp;amp;mode=viewxml&amp;amp;page=1. This is the modern version of the 7.html page as provided by the legacy v1 servers. See [[#XML_Responses|section 5.2]] for information on what is provided in the xml response.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Private Pages====&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 By passing &amp;amp;pass=password where password is the 'adminpassword' (see section [[#Networking|4.8]]) then it is possible&lt;br /&gt;
 to directly access the administration page(s) required. As well the base64 encoded version of the password&lt;br /&gt;
 can be passed as long as it is prefixed with ''YWRtaW46''&lt;br /&gt;
 e.g.&lt;br /&gt;
     &amp;amp;pass=changeme is the same as &amp;amp;pass=YWRtaW46Y2hhbmdlbWU=&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi'''  -  Shows the an overal summary admin page for the streams provided by the server including direct links to certain information pages (see notes about the 'admin.cgi?sid=#&amp;amp;mode=viewxml' command for more info)&lt;br /&gt;
:or&lt;br /&gt;
'''admin.cgi?sid=0'''&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#'''  -  Shows the base admin page for the stream and information&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=updinfo&amp;amp;song=title'''           &lt;br /&gt;
:or&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=updinfo&amp;amp;type=xml&amp;amp;song=xml'''    &lt;br /&gt;
 If 'title' is not empty then it will be set as the current song title for the stream&lt;br /&gt;
 specified until the next use of this action or the next title update is received from&lt;br /&gt;
 the source. Specifying '&amp;amp;type=xml' will process the value of 'song' as [[SHOUTcast_XML_Metadata_Specification|v2 XML metadata]]&lt;br /&gt;
 instead of a v1 title.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewlog'''  -  View logfile&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewlog&amp;amp;viewlog=tail'''  -  View logfile (tailing)&lt;br /&gt;
&lt;br /&gt;
 The tailing option keeps adding additional log entries to the end of the view whilst the view is active.&lt;br /&gt;
 As well any html or xml data in the log will not be shown correctly in the view as &amp;lt; &amp;gt; &amp;amp; are not escaped&lt;br /&gt;
 to their html entities. See [[#Logging|section 4.6]] for more information on the log file.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewban'''  -  Ban view which matches the ban file and allows you to ban a single IP or an IP range from it (see [[#Banning|section 4.1]] for more info on the file)&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewrip'''  -  Reserved IP list that matches the rip file (see [[#Reserved_IP_.28RIP.29|section 4.11]] for more info on the file)&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=art''' or '''admin.cgi?sid=#&amp;amp;mode=art&amp;amp;art=playing'''  -  Displays the artwork SHOUTcast v2 compatible clients may be able to display if the SHOUTcast v2 source does provide it.&lt;br /&gt;
  &lt;br /&gt;
 The artwork mode is primarily intended as a debugging option to make it possible&lt;br /&gt;
 to see what (if anything) has been provided by the SHOUTcast v2 source.&lt;br /&gt;
 &lt;br /&gt;
 If no '&amp;amp;art=' is specified or not a matching option then the stream artwork (if&lt;br /&gt;
 available) will be shown. If no '&amp;amp;art=playing' is specified then this will show&lt;br /&gt;
 the playing file's artwork (if available).&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=viewxml''' or '''admin.cgi?sid=#&amp;amp;mode=viewxml&amp;amp;page=#'''  -  Returns an xml output of the current stream information&lt;br /&gt;
&lt;br /&gt;
 If page is not set or is outside of the range zero to 6 then this will output all of the&lt;br /&gt;
 information as the standard viewxml action does. Otherwise this only display information&lt;br /&gt;
 depending on the value assigned to page which can be from 1 to 6 which maps as follows:&lt;br /&gt;
 &lt;br /&gt;
     1 - Server Summary (this is the same as using the public stats?sid=# action)&lt;br /&gt;
     2 - Not used (previously used for Webdata Stats but not in current builds)&lt;br /&gt;
     3 - Listener Stats&lt;br /&gt;
     4 - Song History&lt;br /&gt;
     5 - Stream Metadata        (if supported by the source otherwise can just be title)&lt;br /&gt;
     6 - Stream Configurations  (displays all of the known stream configurations though this is only available on admin.cgi)&lt;br /&gt;
 &lt;br /&gt;
 If accessing the standard viewxml or the listener stats (page = 3), you can also send&lt;br /&gt;
 '&amp;amp;iponly=1' which will filter the listener information (if there are any) to just output&lt;br /&gt;
 the IP instead of the additional information provided normally.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=resetxml&amp;amp;sid=#'''  -  Will flush the held stream information to refresh it&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=kicksrc'''  -  Will allow you to kick the currently connected source for the specified stream.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unripdst&amp;amp;ripdst=&amp;lt;IP&amp;gt;'''  -  Where &amp;lt;IP&amp;gt; is the IP to reserve (see [[#Reserved_IP_.28RIP.29|section 4.11]] for more information).&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unbandst&amp;amp;bandst=&amp;lt;IP&amp;gt;.0&amp;amp;banmsk=0'''  -  Where &amp;lt;IP&amp;gt; is the first 3 parts of a subnet IP to unban.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?sid=#&amp;amp;mode=unbandst&amp;amp;bandst=&amp;lt;IP&amp;gt;&amp;amp;banmsk=255'''  -  Where &amp;lt;IP&amp;gt; is that of a single IP to unban.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=rotate''' or '''admin.cgi?mode=rotate&amp;amp;files=log|w3c'''  -  This will rotate the log files set via the 'logfile', 'w3clog' and 'streamw3clog' options.&lt;br /&gt;
 If &amp;amp;files is specified then passing log or w3c will allow you to only&lt;br /&gt;
 rotate one type of file otherwise both will be rotated by this command.&lt;br /&gt;
&lt;br /&gt;
'''admin.cgi?mode=reload''' or '''admin.cgi?mode=reload&amp;amp;force=1'''  -  This reloads the stream configuration details in the main configuration file the server used when started and is only available on the admin summary page and so can only be run by the master administrator password.&lt;br /&gt;
&lt;br /&gt;
 This command works on the server as a whole (hence no sid parameter) and it will add or&lt;br /&gt;
 remove or update any stream configuration as applicable which will cause any connected&lt;br /&gt;
 sources and clients to be kicked as applicable (usually if a stream configuration was removed).&lt;br /&gt;
 &lt;br /&gt;
 This will recognise any configurations included via 'include' entries so you can have 'include=stream/*.conf'&lt;br /&gt;
 in your main configuration file which the server can then use to detect different stream configurations.&lt;br /&gt;
 &lt;br /&gt;
 If '&amp;amp;force=1' is passed then the reload will treat the updating of active stream configurations in the&lt;br /&gt;
 same manner as a stream configuration removal instead of trying to update compatible stream configuration&lt;br /&gt;
 details without resetting the stream '''e.g.''' not increasing the 'streammaxuser' when it could be increased.&lt;br /&gt;
 &lt;br /&gt;
 The following configuration options are updated when using this command:&lt;br /&gt;
 &lt;br /&gt;
     password or streampassword (*)            streamadminpassword (#)&lt;br /&gt;
     requirestreamconfigs                      streamid&lt;br /&gt;
     streamauthhash                            streampath&lt;br /&gt;
     streamrelayurl                            streammaxuser&lt;br /&gt;
     streampublicserver                        streamallowrelay&lt;br /&gt;
     streamallowpublicrelay                    streamriponly&lt;br /&gt;
     streamautodumpsourcetime                  streamautodumpusers&lt;br /&gt;
     streamlistenertime                        streamintrofile&lt;br /&gt;
     streambackupfile                          streambanfile&lt;br /&gt;
     streamripfile&lt;br /&gt;
 &lt;br /&gt;
 (*) This will depend upon the current values versus the new configuration values&lt;br /&gt;
 (#) The master 'adminpassword' can only be changed after a restart of the server&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XML Responses===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
As detailed in the previous sections, some of the administration actions will provide the information in an xml response. For information on what is actually returned in these xml responses see [[SHOUTcast_DNAS_Server_2_XML_Reponses|sc_serv2_xml_responses.txt]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stream Addresses==&lt;br /&gt;
&lt;br /&gt;
Clients connecting to the streams provided by sc_serv are able to so in a number of ways depending upon how the streams have been configured and also depending upon the number of streams you have available.&lt;br /&gt;
&lt;br /&gt;
The two main ways for a client to connect to a stream are as follows:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;serverurl&amp;gt;/stream/&amp;lt;streamid&amp;gt;/&lt;br /&gt;
or&lt;br /&gt;
 &amp;lt;serverurl&amp;gt;/&amp;lt;streampath&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;serverurl&amp;gt; is typically formed as &amp;lt;nowiki&amp;gt;http://dstip:portbase&amp;lt;/nowiki&amp;gt; (see sections [[#Client_Behaviour|4.2]] and [[#Networking|4.8]])&lt;br /&gt;
 &amp;lt;streamid&amp;gt; is the 'streamid' set from the stream configuration (see [[#Stream_Configuration|section 4.12]])&lt;br /&gt;
 &amp;lt;streampath&amp;gt; is the 'streampath' set from the stream configuration (see [[#Stream_Configuration|section 4.12]])&lt;br /&gt;
&lt;br /&gt;
If the client attempting to connect to the server instance does not specify &amp;lt;streampath&amp;gt; or &amp;lt;streamid&amp;gt; in the stream url it attempts to access or if only one stream is provided then the server will usually default to the first stream it knows about and will allow the client to make a valid connection (though this is not guaranteed to happen).&lt;br /&gt;
&lt;br /&gt;
This handling of the stream addresses provided is something to keep in mind especially if you are providing multiple streams as this will allow you to provide different addresses for certain clients to be able to use a specific stream '''e.g.''' if you wanted to have mobile clients connect to a lower bandwidth stream then you could direct them to '&amp;lt;serverurl&amp;gt;/mobile'&lt;br /&gt;
&lt;br /&gt;
The server options available for controlling how the stream's path is specified can be seen in [[#Stream_Configuration|section 4.12]] which also details the equivalent values needing to be set in the sc_trans configuration if you use sc_trans to provide a source to sc_serv.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Locale Error (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
If you receive the following error then you have a locale related issues:&lt;br /&gt;
&lt;br /&gt;
 terminate called after throwing an instance of 'std::runtime_error'&lt;br /&gt;
 what():  locale::facet::_S_create_c_locale name not valid&lt;br /&gt;
 Abort trap&lt;br /&gt;
&lt;br /&gt;
If this happens then you need to set the 'POSIX' locale in your terminal's environment values. If this does not happen then everything is fine or you are using a newer version of sc_serv from the end of 2010 which should no longer exhibit this issue.&lt;br /&gt;
&lt;br /&gt;
Linux:&lt;br /&gt;
 export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
BSD:&lt;br /&gt;
 setenv LC_ALL POSIX&lt;br /&gt;
&lt;br /&gt;
Mac OS X:&lt;br /&gt;
 export LC_ALL=POSIX&lt;br /&gt;
&lt;br /&gt;
You can test to see if this has worked by checking the shell command &amp;quot;locale&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 LANG=&lt;br /&gt;
 LC_COLLATE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_CTYPE=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_MESSAGES=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_MONETARY=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_NUMERIC=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_TIME=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
 LC_ALL=&amp;quot;POSIX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Virtual Memory Footprint (Linux / Mac OS X / BSD)==&lt;br /&gt;
&lt;br /&gt;
Due to how sc_serv works it will create a large number of threads which may become an issue due to the default virtual memory stack allocation per thread potentially being large (typically 10MB per thread). For most people this should not be an issue as the memory is not really allocated unless it is used. If however if you have a resource constrained system or if you plan on running many copies of sc_trans then you could potentially run out of virtual memory.&lt;br /&gt;
&lt;br /&gt;
The default thread allocation can be reduced by issuing a &amp;quot;ulimit&amp;quot; command before running sc_trans and in the example reduces it to 512KB per-thread '''e.g.'''   ulimit -s 512&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Maximum Client Connection Limits==&lt;br /&gt;
&lt;br /&gt;
In general, there are inherent limits on the maximum number of client connections which may be made to a running instances of sc_serv which can either be set by configuration limits e.g. 'maxuser', Operating System limits or bandwidth limits being reached.&lt;br /&gt;
&lt;br /&gt;
The first two are easy to resolve whereas the last (bandwidth limits) is something which will usually require obtaining additional hosting or paying for more available bandwidth.&lt;br /&gt;
&lt;br /&gt;
If reaching the Operating System limit, this is usually indicated by the maximum number of clients never going above a fixed value even if there is the bandwidth and the server has been configured to go higher. This usually appears as around 1016 maximum connections (though this can vary a bit)&lt;br /&gt;
&lt;br /&gt;
If using a non-Windows Operating System then you can use the 'ulimit -n xxxx' command to change the upper limit from what is already set which can be found from just 'ulimit -n' e.g. to change the limit to 4096 connections you would run ulimit -n 4096&lt;br /&gt;
&lt;br /&gt;
If using a Windows Operating System then there isn't any real way to change such things due to the OS hopefully being configured with limits that will not be reached when using sc_serv. If in doubt then consult the Microsoft support documentation for the OS used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Example Configurations==&lt;br /&gt;
&lt;br /&gt;
Include as part of the sc_serv installation are a number of example configurations to get things started with using some of the features of the server. The provided examples are:&lt;br /&gt;
&lt;br /&gt;
 sc_serv_basic.conf&lt;br /&gt;
 sc_serv_public.conf&lt;br /&gt;
 sc_serv_relay.conf&lt;br /&gt;
 sc_serv_simple.conf&lt;br /&gt;
&lt;br /&gt;
All of the configuration examples are documented and will relate back to details in this file appropriately. You will need to change some details in these example files or to obtain any applicable authorisation keys for the setup you are making ([[#Getting_Started|see section 3.0]]). In all cases the examples are designed to work from the same install folder as sc_serv.&lt;br /&gt;
&lt;br /&gt;
Remember these examples are a way to get you up and running faster though you are still likely to have to adjust things depending upon the systems you are using and how you want to manage your sources and server connections which are covered in previous sections.&lt;br /&gt;
&lt;br /&gt;
Additionally if you are not happy with editing the files or find it still too confusing then you can use the configuration builder which (if installed) can be found in the 'config_builder'. Open 'config_builder.html' in your browser and then use this graphical tool to setup a configuration file for the server (and additionally the transcoder).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_basic===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This is the base configuration from which the other configuration examples are based and this will get a sc_serv instance running as a local setup with no connection made to the YP directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_public===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_serv_basic configuration to get a sc_serv instance running as a public setup with a connection made to the YP for listing the stream in the directory. This shows the use of the 'include' option (see section [[#Miscellaneous|4.7]]) and how specifying a configuration option twice uses the last value found.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_relay===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file changes the required options in the sc_serv_public configuration to get a sc_serv instance running as a public setup with a source coming in from a relay server providing a SHOUTcast 2 stream.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_debug===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
This configuration file can be included in any other configuration files to allow you to get debug logging output when trying to investigate any issues you may be experiencing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===sc_serv_simple===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
 Use this if you just need to get a very basic server running or are impatient&lt;br /&gt;
 or are struggling to get it running despite the previous example configurations.&lt;br /&gt;
&lt;br /&gt;
This configuration file is designed to be used just as is and is the simplest form of the configuration file you can have which will allow you to get a running server to appear on the YP. This works on using the default settings of the server though does change some of the file paths inorder to fit in with the existing setup as used in the other examples.&lt;br /&gt;
&lt;br /&gt;
All you need to do when using this configuration file is to enter your authorisation key in the 'streamauthhash' line '''e.g.''' if your authorisation key is '''123456789''' then you change ''streamauthhash=&amp;lt;enter_your_auth_key_here&amp;gt;'' to ''streamauthhash='''123456789''''' and save the file.&lt;/div&gt;</summary>
		<author><name>Djegg</name></author>	</entry>

	</feed>