PHP-Class :: HN ShoutcastInfo :: Documentation

Author:    Horst Nogajski
Licence:   GNU GPL (
Version:   1.0   (2005-01-06)

You can download the class at!


Retrieve Information from ShoutcastServers

Current version 1.0 supports direct connection to Shoutcast-Servers,
simple HTTP-Proxy-Connections and HTTP-Proxy-Connections with user:pass

Automatic handling of accidential connections to a stream instead to the HTML-Infopage!
(Maybe happen sometimes, if you automatically retrieve URLs from playlists and pass them to the class)
The class then try to connect to the server by it's root-dir and/or to the Shoutcast-Defaultport.

The class can be used in web-environment or with commandline-scripts.

Basic-Class "hn_shoutcast"


When calling classinstance, you can switch on/off debugging, and optional define a socket-timeout in seconds:
- hn_shoutcast($http_debug=FALSE, $socket_timeout=10)

Now there is only one method needed to query a server and retrieve all available Information:
- query_URL($url, $proxy=NULL)

$url is the server or server:port-combination to query,
optional argument $proxy can be something like: http://proxyhost:port or http://username:password@proxyhost:port.

The method doesn't send username and password in plain-text, it only needs the argument passed in this way.

If the station is online, the class-var $online is TRUE, otherwise FALSE.

If query_URL has success and the station is online, we have all available Infos stored in array $info:

    - 'Server Status'
    - 'Stream Status'
    - 'Stream Title'
    - 'Stream URL'
    - 'Content Type'
    - 'Bandwidth'
    - 'Stream Genre'
    - 'Current Song'
    - 'Listeners'
    - 'MaxListeners'
    - 'Listener Peak'
    - 'Average Listen Time'
    - 'Stream AIM'
    - 'Stream IRC'
    - 'Stream ICQ'

(And also all other infos what was served from the station.)

All empty fieldvalues in array $info becomes per default 'N/A'. This is set in class-var $NotAvailable. You can define another value if you like, (maybe FALSE).

Class-Extension "hn_shoutcastInfo"

With this extension you have easy access to each single information. If an Information is not available the value of class-var $NotAvailable is returned by the methods.

So, now it's up to you, to decide if you want access the infos in array $info['field name'] or by calling the below methods, ;-)


    - is_online()
    - station()
    - url()
    - content_type()
    - genre()
    - song()
    - bandwidth()
    - listeners()
    - maxlisteners()
    - listenerpeak()
    - aim()
    - irc()
    - icq()

Simple example with debugging can be tested here:

example for commandline- and web-environment