Einzelnen Beitrag anzeigen

Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#5

Re: Zuhörer von einem Internetstream abfragen

  Alt 24. Mär 2007, 18:44
Mit ShoutCast-Servern und Streams hab ich mich schon näher beschäftigt, wenn du das Administrations-Passwort nicht hast, bleibt dir definitiv nichts anderes übrig als die von dir gesuchten Informationen aus der Webseite rauszuparsen. Etwas kürzer sind die auch immer noch in der 7.html "verpackt", um bei deinem Beispiel zu bleiben da: http://drumheads.de:1367/7.html

Wenn das Passwort bekannt ist kann man sich eine XML-Datei runterladen, die man dann aber letztendlich natürlich auch parsen muss (Parsen musst du immer irgendwas ), die gibts in der admin.cgi und zwar so:
Code:
admin.cgi?pass=password&mode=viewxml
Der Output sieht dann in etwa so aus:
Code:
<?xml version="1.0" standalone="yes" ?>
  <!DOCTYPE SHOUTCASTSERVER (View Source for full doctype...)>
- <SHOUTCASTSERVER>
  <CURRENTLISTENERS>5</CURRENTLISTENERS>
  <PEAKLISTENERS>5</PEAKLISTENERS>
  <MAXLISTENERS>5</MAXLISTENERS>
  <REPORTEDLISTENERS>0</REPORTEDLISTENERS>
  <AVERAGETIME>1</AVERAGETIME>
  <SERVERGENRE>Alternative</SERVERGENRE>
  <SERVERURL>http://stream.acira.net</SERVERURL>
  <SERVERTITLE>Acira On Air</SERVERTITLE>
  <SONGTITLE>Good Charlotte - In This World(Murder)</SONGTITLE>
  <SONGURL>http://stream.acira.net</SONGURL>
  <IRC>N/A</IRC>
  <ICQ>NA</ICQ>
  <AIM>NA</AIM>
  <WEBHITS>23</WEBHITS>
  <STREAMHITS>0</STREAMHITS>
  <STREAMSTATUS>1</STREAMSTATUS>
  <BITRATE>32</BITRATE>
  <CONTENT>audio/mpeg</CONTENT>
  <VERSION>1.9.7</VERSION>
- <WEBDATA>
  <INDEX>7</INDEX>
  <LISTEN>0</LISTEN>
  <PALM7>0</PALM7>
  <LOGIN>0</LOGIN>
  <LOGINFAIL>1</LOGINFAIL>
  <PLAYED>7</PLAYED>
  <COOKIE>0</COOKIE>
  <ADMIN>1</ADMIN>
  <UPDINFO>5</UPDINFO>
  <KICKSRC>0</KICKSRC>
  <KICKDST>0</KICKDST>
  <UNBANDST>0</UNBANDST>
  <BANDST>0</BANDST>
  <VIEWBAN>0</VIEWBAN>
  <UNRIPDST>0</UNRIPDST>
  <RIPDST>0</RIPDST>
  <VIEWRIP>0</VIEWRIP>
  <VIEWXML>1</VIEWXML>
  <VIEWLOG>0</VIEWLOG>
  <INVALID>1</INVALID>
  </WEBDATA>
  <LISTENERS />
- <SONGHISTORY>
- <SONG>
  <PLAYEDAT>1174757399</PLAYEDAT>
  <TITLE>Good Charlotte - In This World(Murder)</TITLE>
  </SONG>
- <SONG>
  <PLAYEDAT>1174757379</PLAYEDAT>
  <TITLE>Good Charlotte - Mountain</TITLE>
  </SONG>
- <SONG>
  <PLAYEDAT>1174757366</PLAYEDAT>
  <TITLE>Good Charlotte - I Just Wanna Live</TITLE>
  </SONG>
- <SONG>
  <PLAYEDAT>1174757352</PLAYEDAT>
  <TITLE>Good Charlotte - Misery</TITLE>
  </SONG>
- <SONG>
  <PLAYEDAT>1174757279</PLAYEDAT>
  <TITLE>Good Charlotte - Misery</TITLE>
  </SONG>
  </SONGHISTORY>
  </SHOUTCASTSERVER>
Das zu parsen wäre natürlich etwas einfacher als die index.html, da man immer nur nach <WASIMMER></WASIMMER> regexen müssste, aber die 7.html kann man auch relativ leicht splitten mittels ExplodeExplode beispielsweise

In der ist natürlich nicht alles enthalten, konkret (in dieser Reihenfolge):
  • Derzeitige Zuhörerzahl
  • Streamstatus: 1 oder 0 für on- oder offline
  • Zuhörerrekord
  • Hörerlimit
  • Gemeldete Zuhörer
  • Bitrate
  • Titelinfo: was der Sender überträgt, meistens eben Interpret und Titel
Wenn das nicht reicht, musst du dich zwangsläufig durch den Quelltext der index.html wühlen, was aber nicht ganz so spassig ist

  Mit Zitat antworten Zitat