steamcast command line web interface

Steamcast is a stand alone server that combines the features of SHOUTcast and Icecast2 and more to make one mega awesome server.
akrall
Posts: 31
Joined: Fri Jan 23, 2004 11:57 am

steamcast command line web interface

Post by akrall »

Jay.

How can I use this kind of command like in dnas but for steamcast?

Like adding and removing ips from the vip table.

Example:

"http://intruder.com.mx:8002/admin.cgi?p ... 20&ip4=146

or

http://www.intruder.com.mx:8002/admin.cgi?mode=viewrip

or

the direct url for removing a vipip?

Thx!

Also, no clustering yet but, how can I advertise or manage multiple streams that relay from the same server? one has max 10 users and the other max 40 users... how can My users connect to each of them? by clickin gon each or just one?
User avatar
Jay
Will work for food (Administrator)
Posts: 3020
Joined: Mon Jan 14, 2002 12:48 am
Location: Next Door
Contact:

Post by Jay »

well the ultimate goal is to not have to hack your way into the server like that in the first place. I manage vip and ban lists by passing the pointer rather then the ip, this seemed safer to me at design time. If you need something to control it programatically then it would be tons easier for me to build an API for you to do this rather then trying to hack around the web interface.

I am not sure what you are asking on your 2nd question. Steamcast servers (at this time) are not aware of each other, in the future they will be so it will be easier to just hand out a single address for your entire cluster. For now you can use icecast or steamcasts yp to see your server's clustered.
- Jay
akrall
Posts: 31
Joined: Fri Jan 23, 2004 11:57 am

Post by akrall »

Well, its going to be nice when clustering is enabled.. :) I certanly would like to help test it out :)

About the API, since shoutcast was a closed software, I hacked my way into the web interface the add or remove vip ips... but if you could make an ip for managaing vip lists and stuff like bans, etc.. would be awesome!!!!!!!!!!

As soon as that is done I will bring down my dnas servers :)

BTW an you explain to me what the info in these lines mean? steamcast interface gives out more info than shoutcast, which is great! but I dont get it all yet.

First, the admin interface is showing there is not source... but clients are connected and seems there is source, yp services report:

[TV] -=[ TamalTV ]=- TV Shows All Day Long (h...
Playing: Star Trek Voyager 3x10 Warlord.nsv

but

Steamcast Status
Server currently has no source

Tail Log Ban Tables VIP Table


also, what do these lines mean:

24.23.47.99 /;stream.nsv - Winamp NSV Player/5.... 0h 00m 27s 1.16 MB 350 kbps 0 [27] {29} 8192 Kick Ban Ban Net Ban Agent MkVIP

207.36.86.205 /live.nsv Encoder 2/5 0h 00m 27s 696.83 KB 206 kbps [28] 0 Kick


More exactly, the parts about buffers and average datarate... the stream is encoded at 150 kbps.. for I see datarates of 2xx+ as you can see in the examples.

Last question... when configuring mount points.. I see requests for stream for /;stream.nsv and so on... I only configured one mountpoint on the config file...

SourceMount=/live.nsv
SourcePass=pass
SourceRelay=http://intruder.com.mx:8002/
SourceIsSC=Yes
SourceIsDefault=Yes

This means that of a user requests a mount point that doesnt exist, he will connect by default to the mount point mentioned above right?

Just checking...

Thx for all the help Jay!!!
User avatar
Jay
Will work for food (Administrator)
Posts: 3020
Joined: Mon Jan 14, 2002 12:48 am
Location: Next Door
Contact:

Post by Jay »

lotta questions here, I will try to nail them all but if you have more don't hesitate to ask:
akrall wrote:...BTW an you explain to me what the info in these lines mean? steamcast interface gives out more info than shoutcast, which is great! but I dont get it all yet.

First, the admin interface is showing there is not source... but clients are connected and seems there is source, yp services report:

[TV] -=[ TamalTV ]=- TV Shows All Day Long (h...
Playing: Star Trek Voyager 3x10 Warlord.nsv

but

Steamcast Status
Server currently has no source

Tail Log Ban Tables VIP Table


also, what do these lines mean:

24.23.47.99 /;stream.nsv - Winamp NSV Player/5.... 0h 00m 27s 1.16 MB 350 kbps 0 [27] {29} 8192 Kick Ban Ban Net Ban Agent MkVIP

207.36.86.205 /live.nsv Encoder 2/5 0h 00m 27s 696.83 KB 206 kbps [28] 0 Kick


More exactly, the parts about buffers and average datarate... the stream is encoded at 150 kbps.. for I see datarates of 2xx+ as you can see in the examples.
the buffer field is more or less there for my benefit while testing, it shows where a listener is on the server's internal buffer as well as buffer statistics about size and block size. It really is not beneficial to know any of that information from the standpoint of a broadcaster. It allows me to analyze from problems with the network code. I don't use any outside libs so I am sort of doing this all by hand and stuff like this helps me see if there is a problem before I release it. I am not sure about your first question regarding the yp and the source, maybe reword that question.
akrall wrote:
Last question... when configuring mount points.. I see requests for stream for /;stream.nsv and so on... I only configured one mountpoint on the config file...

SourceMount=/live.nsv
SourcePass=pass
SourceRelay=http://intruder.com.mx:8002/
SourceIsSC=Yes
SourceIsDefault=Yes

This means that of a user requests a mount point that doesnt exist, he will connect by default to the mount point mentioned above right?

Just checking...

Thx for all the help Jay!!!
the SourceIsDefault part of this code is what you are really asking about. When you make a source a default this makes it available to a player requesting http://yourserver:8000/ or http://yourserver:8000/;anything.ext or by it's SourceMount name, in this case http://yourserver:8000/live.nsv If you set SourceIsDefault to No then the only way to get the stream is by the source mount specified in the config. This was setup so we could list on legacy yp systems like yp.shoutcast.com which do not support mounts.
- Jay
akrall
Posts: 31
Joined: Fri Jan 23, 2004 11:57 am

Post by akrall »

Thanks for the answers Jay. Regarding the first question, seems there is a bug somewhere... I configured steamcast to relay from a dnas server but when loggin into steam's admin interface it says there is no source but in fact its serving the relay and there are users connected... any ideas why the info been relayed from dnas is not showing ?
akrall
Posts: 31
Joined: Fri Jan 23, 2004 11:57 am

Post by akrall »

BTW any news on the API?
User avatar
Jay
Will work for food (Administrator)
Posts: 3020
Joined: Mon Jan 14, 2002 12:48 am
Location: Next Door
Contact:

Post by Jay »

hmm does it always display that there are no sources when in relay? Or is this happening after a relay get's booted or dropped by it's master server?

As for the API, it's going to take time. I have to focus on core functionality before getting to the api stuff.
- Jay
akrall
Posts: 31
Joined: Fri Jan 23, 2004 11:57 am

Post by akrall »

it shows no source from the start when relaying.
User avatar
Jay
Will work for food (Administrator)
Posts: 3020
Joined: Mon Jan 14, 2002 12:48 am
Location: Next Door
Contact:

Post by Jay »

that's really odd. can you post/pm your config file minus passwords of course.
- Jay
akrall
Posts: 31
Joined: Fri Jan 23, 2004 11:57 am

Post by akrall »

Here is my steamcast.conf file... remember, this is relaying a stream from a DNAS server.

; Steamcast Configuration File
; ================================
; This is the default Steamcast server configuration file, feel free to use
; it as a template for your server's configuration. All lines beginning with ;
; or blank are ignored by the server's configuration parser.

; Server Configuration
; ====================

; PortBase [*8000]: The port that Steamcast will listen for connections on, generally it is
; acceptable to just leave this at the default, change it if you use port
; 8000 and/or 8001 for some other server. Ports < 1024 are reserved, so try to
; stay above that.
PortBase=8000

; MaxUser [*20]: The maximum amount of streaming clients Steamcast should
; handle, this is a global setting for all multimedia connections. Set this
; to a smart number. Setting this too high could cause your network connection
; to be flooded and cause real problems for all end users.
MaxUser=20

; IPMaxUser [*0]: The maximum amount of streaming clients Steamcast should
; handle per IP, this is a global setting for all multimedia connections.
; A setting of 0 disables this feature.
IPMaxUser=1

; LogFile [None|*steamcast.log]: The location you would like Steamcast to store
; it's log file, setting this to 'None' or blank disables this feature.
LogFile=steamcast.log

; YPLog [*Yes|No]: Enable the logging of YP Touches. This setting has no effect on
; YP Errors, or YP Add or YP Removes. It will only hide logging of Successful touches
; when set to No.
YPLog=Yes

; PidFile [None|*steamcast.pid]: The file location you would like Steamcast to store
; it's PID or Process ID, setting this to 'None' or blank disables this feature.
; Regardless of this setting, Process ID's will be stored in the Log on each startup.
PidFile=steamcast.pid

; NameLookups [Yes|*No]: Setting NameLookup to Yes will have Steamcast
; do a reverse dns lookup on each connection made to the server. High Traffic servers
; should leave this setting disabled until I can come up with a better threading method.
NameLookups=No

; ClientTimeout [*30]: Number of seconds a listener/viewer should stay connected while no source
; exists for thier mount.
ClientTimeout=30

; OnDemand Configuration
; ======================

; The directories you would like Steamcast to share
; OnDemandDir=D:\My Music

; User Configuration
; ==================

; AdminUser & Admin Pass: This is the credentials that allow full control of the server remotely
; so be very careful in determining what to put here. Essentially with these settings
; a user would be able to connect to the server using a CNTRL application and use
; the server as if they are sitting in front of it.
AdminUser=xxxx

AdminPass=xxxx

; Source Configuration
; ====================
; Each source that you wish to allow on the server needs to be configured
; here first. The parser will read strait down the file so if you have
; multiple source mounts and you declare a new mount before finishing
; configuration of another, then those configurations after the new
; declaration will go to the new mount.

; SourceMount: This is the mount you would like to create, if you set
; this to /ghey.mp3 then you would be able to access this mount by
; going to http://localhost:8000/ghey.mp3 It is critical that you
; make sure to include the slash at the beginning.
SourceMount=/live.nsv

; SourceUser: The last SourceMount declared will require this Username
; in order to become a source for this mount. Note: if you are running
; this mount in shoutcast compatibility mode, this is not required. However
; it's best to set this anyhow as it allows your encoder users to administrate
; their mounts from a CNTRL app or web panel.
SourceUser=Encoder

; SourcePass: This is the last Source Mount's password, this is required
; for all connecting encoders. Mounts without passwords are invalid.
SourcePass=XXXXX

; SourceUserMax [*5]: This particular mount's UserMax, if all of your source
; UserMaxes combined exceed the global UserMax then the UserMax takes presedence.
SourceUserMax=5

; SourceRelay: This particular mount will pull data from the location specified below.
; Doesn't currently work with OGG streams (soon, I promise it will :)
SourceRelay=http://intruder.com.mx:8002/

; SourceBitrateLimit: Set this to have Steamcast kick sources that exceed a
; certain average data rate. This value is based on actual data transfer and not any particular
; format headers. This is a great way to control users in community or hosting
; environments. Default is no limits. Be careful with this, sometimes there can be
; transfer spikes that can set this off.
; SourceAvgBitrateLimit=128

; SourceIsSC [*Yes|No]: Setting this to Yes will allow source applications
; which do not have a username capability to use the last source
; declared anyway.
SourceIsSC=Yes

; SourceIsDefault [*Yes|No]: Setting this to Yes will make this particular
; mount available globally. There can be only one global mount. This
; is also the only mount that will be able to list at shoutcast.com
SourceIsDefault=Yes

; SourceBuffUtil [*100]: This value allows you to control the start position
; of connecting clients within the buffer. 0 would effectively set a new connecting
; client to the write point of the buffer giving a more real-time like experience
; although due to the way the internet really works it can never be truely real-time.
; Setting this to 100 would start them all the way at the back of the buffer which
; gives most clients no buffer wait times. It is highly recommended that you not mess
; with this parameter except in instances where the bitrate of the stream is extremely
; low and you require an interactive experience from the users connected to the server.
; (i.e. A talk show or other low bitrate interactive live program) Most other broadcasts
; SHOULD NOT CHANGE THIS SETTING!!! Doing so will make the connecting users feel like
; they are on dialup in 1996 listening to Real Player. :)
; SourceBuffUtil=100

; Directory Configuration
; =======================
Directory=http://www.radiotoolbox.com/mediatoolbox/yp-cgi.php
Directory=http://www.oddsock.org/cgi-bin/yp-cgi
Directory=http://dir.xiph.org/cgi-bin/yp-cgi

; Advanced Configuration
; ======================
; Do not mess with these configuration values unless you know what you are
; doing, typically these are setting which should not need adjusting. But
; are here for those users who feel they need more control over how the
; server behaves.

; coming soon
User avatar
Jay
Will work for food (Administrator)
Posts: 3020
Joined: Mon Jan 14, 2002 12:48 am
Location: Next Door
Contact:

Post by Jay »

i am not able to duplicate this, which os are you running this on?
- Jay
akrall
Posts: 31
Joined: Fri Jan 23, 2004 11:57 am

Post by akrall »

Jay wrote:i am not able to duplicate this, which os are you running this on?
Linux Redhat 9
amps
Posts: 6
Joined: Tue Oct 14, 2003 10:42 pm
Contact:

Post by amps »

Jay, just make the server be able to read a flat text file for reserve/ban lists. Have it re-read the file with a sighup. I though this would work with the DNAS, but a sighup causes the rip/ban files to be overwritten... probably not what they really intended, since I doubt rotating rip/ban files is really neccesary.

Also make some sort of limit as to how many same-ip connections can be made (a setting perhaps).
-amps
User avatar
Jay
Will work for food (Administrator)
Posts: 3020
Joined: Mon Jan 14, 2002 12:48 am
Location: Next Door
Contact:

Post by Jay »

amps wrote:Also make some sort of limit as to how many same-ip connections can be made (a setting perhaps).
this already exists as for your other request this is already planned.
- Jay
bingo
Posts: 24
Joined: Sat Dec 04, 2004 8:18 am

Post by bingo »

Got the same error. The DNAS source disconnected, Steamcast relays when it came back but the interface says "no source"

Image
Post Reply