[xiph-commits] r8478 - websites/icecast.org
oddsock at motherfish-iii.xiph.org
oddsock at motherfish-iii.xiph.org
Fri Dec 17 11:39:54 PST 2004
Author: oddsock
Date: 2004-12-17 11:39:53 -0800 (Fri, 17 Dec 2004)
New Revision: 8478
Modified:
websites/icecast.org/spec.php
Log:
updates to the YP spec..
Modified: websites/icecast.org/spec.php
===================================================================
--- websites/icecast.org/spec.php 2004-12-17 19:11:21 UTC (rev 8477)
+++ websites/icecast.org/spec.php 2004-12-17 19:39:53 UTC (rev 8478)
@@ -26,6 +26,7 @@
* Ability to create a new entry in the listing<br></br>
* Ability to update an existing entry in the listing<br></br>
* Ability to remove an entry from the listing<br></br>
+* Ability to group related broadcasts<br></br>
* Ability to cluster relayed broadcasts into a single listing<br></br>
* Support for icecast/icecast2 mountpoints<br></br>
* Listing should be done by the streaming server (i.e. no manual effort required)<br></br>
@@ -34,7 +35,6 @@
<br>
<p>Additionally, the protocols which define the conversations above should NOT be proprietary, and should be well defined.</p>
<br>
-<p>For the first release of the YP, clustering (combining the same broadcasts from multiple relays into a single listing) will not be supported. If the need arises for this type of functionality, it will be built at that time.</p>
<h3>Protocol</h3>
<p>HTTP protocol will be used for all communication between the listing client (icecast2 in this case) and the listing server (listing script(s))</p>
<p>
@@ -56,7 +56,7 @@
<center><table border=1 width="80%">
<tr><td>action</td><td>Action (add in this case)</td></tr>
<tr><td>sn</td><td>Server Name</td></tr>
-<tr><td>type</td><td>Server Type</td></tr>
+<tr><td>type</td><td>Server Type (content type)</td></tr>
<tr><td>genre</td><td>Server Genre</td></tr>
<tr><td>b</td><td>Server Bitrate</td></tr>
<tr><td>listenurl</td><td>Listen URL (url which listeners use to listen)</td></tr>
@@ -67,11 +67,12 @@
</p>
<center>
<table border=1 width="80%">
-<tr><td>cpswd</td><td>Cluster Password (broadcasts with the same Server Name and cluster password will be displayed together in the directory server) - this is currently not implemented, servers are clustered based off server name and listing IP.</td></tr>
+<tr><td>cpswd</td><td>Cluster Password (broadcasts with the same Server Name and cluster password will be displayed together in the directory server).</td></tr>
<tr><td>user</td><td>YP userid - not necessilarily all YP implementation will support users and passwords</td></tr>
<tr><td>pass</td><td>YP password - not necessilarily all YP implementation will support users and passwords</td></tr>
<tr><td>desc</td><td>Server Description</td></tr>
<tr><td>url</td><td>Stream URL (not the listen url, usually a link to the broadcasters website)</td></tr>
+<tr><td>stype</td><td>Server Sub type. Used normally for multi-codec streams (ogg/theora, vp6/aac). Codecs should be separated by a '/' delimiter.</td></tr>
</table>
</center>
<p>
@@ -98,7 +99,7 @@
Listing Client Request
-----------------
-GET /yp-cgi?action=add&sn=Oddsock+Server&listenurl=http://localhost:8000/oddsock.ogg&<br>genre=Rock&b=64&type=Ogg+Vorbis
+GET /yp-cgi?action=add&sn=Oddsock+Server&listenurl=http://localhost:8000/oddsock.ogg&<br>genre=Rock&b=64&type=application/ogg
Listing Server Response
@@ -140,8 +141,16 @@
</p>
<center><table border=1 width="80%">
<tr><td>st</td><td>Song Title</td></tr>
-<tr><td>listeners</td><td>Number of listeners</td></tr>
+<tr><td>listeners</td><td>Number of listeners ***</td></tr>
+<tr><td>max_listeners</td><td>Maximum capacity of station ***</td></tr>
+<tr><td>alt</td><td>Average Listening time ***</td></tr>
+<tr><td>ht</td><td>Stream Hits (tuneins) ***</td></tr>
+<tr><td>cm</td><td>5 minute tunein ***</td></tr>
+<tr><td>stype</td><td>Server Sub type. Used normally for multi-codec streams (ogg/theora, vp6/aac). Codecs should be separated by a '/' delimiter. - Note that since it is possible to change codecs mid stream in some container formats, so this field is updatable on a touch.</td></tr>
</table>
+<p>
+*** = due to the open-source nature of icecast, these metrics may not be reliable (i.e. they may be fake), it is up to the YP administrator to decide whether to include these stats.
+</p>
</center>
<p>
The listing scripts will respond with the following HTTP headers
@@ -253,53 +262,72 @@
<table border=0 width="70%">
<tr><td>
<pre>
-mysql> desc servers;
-+-------------+--------------+------+-----+---------+----------------+
-| Field | Type | Null | Key | Default | Extra |
-+-------------+--------------+------+-----+---------+----------------+
-| id | mediumint(9) | | PRI | NULL | auto_increment |
-| server_name | varchar(100) | YES | | NULL | |
-| listing_ip | varchar(25) | YES | | NULL | |
-| listeners | int(11) | YES | | NULL | |
-| rank | int(11) | YES | | NULL | |
-+-------------+--------------+------+-----+---------+----------------+
-5 rows in set (1.46 sec)
-mysql> desc servers_touch;
-+-------------+--------------+------+-----+---------+-------+
-| Field | Type | Null | Key | Default | Extra |
-+-------------+--------------+------+-----+---------+-------+
-| id | varchar(200) | | PRI | | |
-| server_name | varchar(100) | YES | | NULL | |
-| listing_ip | varchar(25) | YES | | NULL | |
-| last_touch | datetime | YES | | NULL | |
-+-------------+--------------+------+-----+---------+-------+
-4 rows in set (0.04 sec)
+--
+-- Table structure for table 'server_details'
+--
-mysql> desc server_details;
-+------------------+--------------+------+-----+---------+----------------+
-| Field | Type | Null | Key | Default | Extra |
-+------------------+--------------+------+-----+---------+----------------+
-| id | mediumint(9) | | PRI | NULL | auto_increment |
-| parent_id | mediumint(9) | YES | | NULL | |
-| server_name | varchar(100) | YES | | NULL | |
-| listing_ip | varchar(25) | YES | | NULL | |
-| description | varchar(255) | YES | | NULL | |
-| genre | varchar(100) | YES | | NULL | |
-| sid | varchar(200) | YES | | NULL | |
-| cluster_password | varchar(50) | YES | | NULL | |
-| url | varchar(255) | YES | | NULL | |
-| current_song | varchar(255) | YES | | NULL | |
-| listen_url | varchar(200) | YES | | NULL | |
-| server_type | varchar(25) | YES | | NULL | |
-| bitrate | varchar(25) | YES | | NULL | |
-| listeners | int(11) | YES | | NULL | |
-| channels | varchar(25) | YES | | NULL | |
-| samplerate | varchar(25) | YES | | NULL | |
-+------------------+--------------+------+-----+---------+----------------+
-16 rows in set (0.00 sec)
+CREATE TABLE if not exists server_details (
+ id mediumint(9) NOT NULL auto_increment,
+ parent_id mediumint(9) default NULL,
+ server_name varchar(100) default NULL,
+ listing_ip varchar(25) default NULL,
+ description varchar(255) default NULL,
+ genre varchar(100) default NULL,
+ sid varchar(200) default NULL,
+ cluster_password varchar(50) default NULL,
+ url varchar(255) default NULL,
+ current_song varchar(255) default NULL,
+ listen_url varchar(200) default NULL,
+ playlist_id mediumint(9) default NULL,
+ server_type varchar(25) default NULL,
+ server_subtype varchar(255) default NULL,
+ bitrate varchar(25) default NULL,
+ listeners int(11) default NULL,
+ channels varchar(25) default NULL,
+ samplerate varchar(25) default NULL,
+ PRIMARY KEY (id)
+) TYPE=MyISAM;
+create table if not exists playlists (
+ id mediumint(9) NOT NULL,
+ listen_url varchar(200) default NULL
+) TYPE=MyISAM;
+create table if not exists clusters (
+ id mediumint(9) NOT NULL auto_increment,
+ server_name varchar(255) default NULL,
+ cluster_password varchar(50) default NULL,
+ PRIMARY KEY (id)
+) TYPE=MyISAM;
+
+--
+-- Table structure for table 'servers'
+--
+
+CREATE TABLE if not exists servers (
+ id mediumint(9) NOT NULL auto_increment,
+ server_name varchar(100) default NULL,
+ listing_ip varchar(25) default NULL,
+ listeners int(11) default NULL,
+ rank int(11) default NULL,
+ PRIMARY KEY (id)
+) TYPE=MyISAM;
+
+--
+-- Table structure for table 'servers_touch'
+--
+
+CREATE TABLE if not exists servers_touch (
+ id varchar(200) NOT NULL default '',
+ server_name varchar(100) default NULL,
+ listing_ip varchar(25) default NULL,
+ last_touch datetime default NULL,
+ PRIMARY KEY (id)
+) TYPE=MyISAM;
+
+
+
</pre>
</td></tr></table>
</p>
More information about the commits
mailing list