Php shoutcast auslesen STREAMTITEL

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Php shoutcast auslesen STREAMTITEL

    so ja ähm hab nen script mit kollegen geschrieben vor monaten, was ich jetzt wieder brauche aber mir Probleme macht.

    Quellcode

    1. <?php
    2. ## shoutcast by Pr3mu on ##
    3. $server = "88.198.7.243"; //hier deinen server eintragen z.b. musik.de oder 213.61.885.8
    4. $port = 8000; //hier den port eintragen (ist standard (autom.korrigiert) 8000)
    5. $fp = @fsockopen($server, $port, $errno, $errstr, 30);
    6. if ($fp) {
    7. fputs($fp, "GET /7.html HTTP/1.0\r\nUser-Agent: XML Getter (Mozilla Compatible)\r\n\r\n");
    8. while(!feof($fp))
    9. $page .= fgets($fp, 1000);
    10. fclose($fp);
    11. $page = ereg_replace(".*<body>", "", $page);
    12. $page = ereg_replace("</body>.*", ",", $page);
    13. $numbers = explode(",", $page);
    14. $shoutcast_currentlisteners = $numbers[0]; //variable ueber die aktuelle anzahl der zuhoerer
    15. $connected = $numbers[1]; //variable zum anzeigen ob ein sender verbunden sind
    16. if($connected == 1) {
    17. $radio_status = 1; //variable zum anzeigen ob radio an ist oder nicht
    18. $wordconnected = "yes"; //zusaetzliche variable die ich brauchte ;)
    19. }
    20. else
    21. $wordconnected = "no"; //zusaetzliche variable die ich brauchte
    22. $shoutcast_peaklisteners = $numbers[2]; //variable die die anzahl der peaks angiebt
    23. $shoutcast_maxlisteners = $numbers[3]; //variable ueber die maximal moegliche anzahl der zuhoerer
    24. $shoutcast_reportedlisteners = $numbers[4]; //
    25. $shoutcast_bitrate = $numbers[5]; //bitrate ;)
    26. $shoutcast_cursong = $numbers[6]; //aktueller song
    27. $shoutcast_curbwidth = $shoutcast_bitrate * $shoutcast_currentlisteners; //gesamtbandbreite
    28. $shoutcast_peakbwidth = $shoutcast_bitrate * $shoutcast_peaklisteners; //gesamtpeakbandbreite
    29. }
    30. ## output on ##
    31. echo '<html><title>Shoutcast by Pr3mu</title><body>';
    32. if ($radio_status == 1) {
    33. echo 'Anzahl der hoerer: ' . $shoutcast_currentlisteners . '<br />';
    34. echo 'Gesamtbandbreite: ' . $shoutcast_curbwidth . ' kb/s<br />';
    35. echo 'Bitrate: ' . $shoutcast_bitrate .' kb/s <br />';
    36. echo 'Zuhoerer Peak: ' . $shoutcast_peaklisteners . '<br />';
    37. echo 'Bandbreite Peak: ' . $shoutcast_peakbwidth . ' kb/s<br />';
    38. echo 'Max. moegliche Zuhoerer: ' . $shoutcast_maxlisteners . '<br />';
    39. echo 'Aktueller Song: >>' . $shoutcast_cursong . '<< <br />';
    40. }
    41. else {
    42. echo '<h1>Sorry aber das radio ist zur zeit offline!</h1>';
    43. }
    44. echo '</body></html>';
    45. ## output off ##
    46. ## shoutcast by Pr3mu off ##
    47. ?>
    Alles anzeigen


    und zwar will ich dass er den Streamtitel ausliest, weis aber ned welchen command , habs probiert mit $shoutcast_streamtitle und $shoutcast_servertitle , aber vergebens, ich weis auch nicht ob das script soweit kommt bis zum Server/Streamtitle.... bitte um hilfe, verzweifel langsam, ich komm ned drauf oder muss ich das wieder alles mit nem sockopen machen !?

    btw bräuchte auch ein script was alle x min nen link öffnet, so kann man shoutcast bescheissen , in dem link kann man den currentsong setzten zb als nen Punkt, wenn das script dann zb jede 2 mins nen punkt setzt hat man schön den stationname und kein zurückgebliebenes vom letzten DJ oder Playliste

    MFG
    Pr3mu
  • oder kann mir jmd das script so herschneiden, dass ich nur die aller erste Zeile habe ? http://88.198.7.243/dj/streamst.php

    Quellcode

    1. <?php
    2. /*******************************************************************
    3. * shoutcast.class.php
    4. * Version: 0.1
    5. * Author: Henrik Malmberg
    6. * Copyright (C) 2002, Henrik Malmberg
    7. * henrik@ih.nut
    8. * http://yoda.ih.nu/
    9. *
    10. *******************************************************************
    11. This program is free software; you can redistribute it and/or modify it
    12. under the terms of the GNU General Public License as published by the
    13. Free Software Foundation; either version 2 of the License, or (at your
    14. option) any later version.
    15. This program is distributed in the hope that it will be useful, but
    16. WITHOUT ANY WARRANTY; without even the implied warranty of
    17. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    18. General Public License for more details.
    19. You should have received a copy of the GNU General Public License along
    20. with this program; if not, write to the Free Software Foundation, Inc.,
    21. 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
    22. *******************************************************************/
    23. class ShoutCast {
    24. // Public
    25. var $host;
    26. var $port;
    27. var $passwd;
    28. //Private
    29. var $_xml;
    30. var $_error;
    31. function openstats() {
    32. $fp = fsockopen($this->host, $this->port, $errno, $errstr, 10);
    33. If (!$fp) {
    34. $this->_error = "$errstr ($errno)";
    35. return(0);
    36. } else {
    37. fputs($fp, "GET /admin.cgi?pass=".$this->passwd."&mode=viewxml HTTP/1.0\r\n");
    38. fputs($fp, "User-Agent: Mozilla\r\n\r\n");
    39. while (!feof($fp)) {
    40. $this->_xml .= fgets($fp, 512);
    41. }
    42. fclose($fp);
    43. if (stristr($this->_xml, "HTTP/1.0 200 OK") == true) {
    44. // <-H> Thanks to Blaster for this fix.. trim();
    45. $this->_xml = trim(substr($this->_xml, 42));
    46. } else {
    47. $this->_error = "Bad login";
    48. return(0);
    49. }
    50. $xmlparser = xml_parser_create();
    51. if (!xml_parse_into_struct($xmlparser, $this->_xml, $this->_values, $this->_indexes)) {
    52. $this->_error = "Unparsable XML";
    53. return(0);
    54. }
    55. xml_parser_free($xmlparser);
    56. return(1);
    57. }
    58. }
    59. function GetCurrentListenersCount() {
    60. return($this->_values[$this->_indexes["CURRENTLISTENERS"][0]]["value"]);
    61. }
    62. function GetPeakListenersCount() {
    63. return($this->_values[$this->_indexes["PEAKLISTENERS"][0]]["value"]);
    64. }
    65. function GetMaxListenersCount() {
    66. return($this->_values[$this->_indexes["MAXLISTENERS"][0]]["value"]);
    67. }
    68. function GetReportedListenersCount() {
    69. return($this->_values[$this->_indexes["REPORTEDLISTENERS"][0]]["value"]);
    70. }
    71. function GetAverageListenTime() {
    72. return($this->_values[$this->_indexes["AVERAGETIME"][0]]["value"]);
    73. }
    74. function GetServerGenre() {
    75. return($this->_values[$this->_indexes["SERVERGENRE"][0]]["value"]);
    76. }
    77. function GetServerURL() {
    78. return($this->_values[$this->_indexes["SERVERURL"][0]]["value"]);
    79. }
    80. function GetServerTitle() {
    81. return($this->_values[$this->_indexes["SERVERTITLE"][0]]["value"]);
    82. }
    83. function GetCurrentSongTitle() {
    84. return($this->_values[$this->_indexes["SONGTITLE"][0]]["value"]);
    85. }
    86. function GetIRC() {
    87. return($this->_values[$this->_indexes["IRC"][0]]["value"]);
    88. }
    89. function GetAIM() {
    90. return($this->_values[$this->_indexes["AIM"][0]]["value"]);
    91. }
    92. function GetICQ() {
    93. return($this->_values[$this->_indexes["ICQ"][0]]["value"]);
    94. }
    95. function GetWebHitsCount() {
    96. return($this->_values[$this->_indexes["WEBHITS"][0]]["value"]);
    97. }
    98. function GetStreamHitsCount() {
    99. return($this->_values[$this->_indexes["STREAMHITS"][0]]["value"]);
    100. }
    101. function GetStreamStatus() {
    102. return($this->_values[$this->_indexes["STREAMSTATUS"][0]]["value"]);
    103. }
    104. function GetBitRate() {
    105. return($this->_values[$this->_indexes["BITRATE"][0]]["value"]);
    106. }
    107. function GetSongHistory() {
    108. for($i=1;$i<sizeof($this->_indexes['TITLE']);$i++) {
    109. $arrhistory[$i-1] = array(
    110. "playedat"=>$this->_values[$this->_indexes['PLAYEDAT'][$i]]['value'],
    111. "title"=>$this->_values[$this->_indexes['TITLE'][$i]]['value']
    112. );
    113. }
    114. return($arrhistory);
    115. }
    116. function GetListeners() {
    117. for($i=0;$i<sizeof($this->_indexes['USERAGENT']);$i++) {
    118. $arrlisteners[$i] = array(
    119. "hostname"=>$this->_values[$this->_indexes['HOSTNAME'][$i]]['value'],
    120. "useragent"=>$this->_values[$this->_indexes['USERAGENT'][$i]]['value'],
    121. "underruns"=>$this->_values[$this->_indexes['UNDERRUNS'][$i]]['value'],
    122. "connecttime"=>$this->_values[$this->_indexes['CONNECTTIME'][$i]]['value'],
    123. "pointer"=>$this->_values[$this->_indexes['POINTER'][$i]]['value'],
    124. "uid"=>$this->_values[$this->_indexes['UID'][$i]]['value'],
    125. );
    126. }
    127. return($arrlisteners);
    128. }
    129. function geterror() { return($this->_error); }
    130. }
    131. ?>
    Alles anzeigen



    Quellcode

    1. <?php
    2. include("shoutcast.class.php");
    3. function ConvertSeconds($seconds) {
    4. $tmpseconds = substr("00".$seconds % 60, -2);
    5. if ($seconds > 59) {
    6. if ($seconds > 3599) {
    7. $tmphours = substr("0".intval($seconds / 3600), -2);
    8. $tmpminutes = substr("0".intval($seconds / 60 - (60 * $tmphours)), -2);
    9. return ($tmphours.":".$tmpminutes.":".$tmpseconds);
    10. } else {
    11. return ("00:".substr("0".intval($seconds / 60), -2).":".$tmpseconds);
    12. }
    13. } else {
    14. return ("00:00:".$tmpseconds);
    15. }
    16. }
    17. $shoutcast = new ShoutCast();
    18. $shoutcast->host = "localhost";
    19. $shoutcast->port = "8000";
    20. $shoutcast->passwd = "****";
    21. if ($shoutcast->openstats()) {
    22. // We got the XML, gogogo!..
    23. if ($shoutcast->GetStreamStatus()) {
    24. echo "<b>".$shoutcast->GetServerTitle()."</b> (".$shoutcast->GetCurrentListenersCount()." of
    25. ".$shoutcast->GetMaxListenersCount()." listeners, peak: ".$shoutcast->GetPeakListenersCount().")<p>\n\n";
    26. echo "<table border=0 cellpadding=0 cellspacing=0>\n";
    27. echo "<tr><td width=\"180\"><b>Server Genre:
    28. </b></td><td>".$shoutcast->GetServerGenre()."</td></tr>\n";
    29. echo "<tr><td><b>Server URL: </b></td><td><a
    30. href=\"".$shoutcast->GetServerURL()."\">".$shoutcast->GetServerURL()."</a></td></tr>\n";
    31. echo "<tr><td><b>Server Title: </b></td><td>".$shoutcast->GetServerTitle()."</td></tr><tr><td
    32. colspan=2>&nbsp;</td></tr>\n";
    33. echo "<tr><td><b>Current Song: </b></td><td>".$shoutcast->GetCurrentSongTitle()."</td></tr>\n";
    34. echo "<tr><td><b>BitRate: </b></td><td>".$shoutcast->GetBitRate()."</td></tr><tr><td
    35. colspan=2>&nbsp;</td></tr>\n";
    36. echo "<tr><td><b>Average listen time:
    37. </b></td><td>".ConvertSeconds($shoutcast->GetAverageListenTime())."</td></tr><tr><td
    38. colspan=2>&nbsp;</td></tr>\n";
    39. echo "<tr><td><b>IRC: </b></td><td>".$shoutcast->GetIRC()."</td></tr>\n";
    40. echo "<tr><td><b>AIM: </b></td><td>".$shoutcast->GetAIM()."</td></tr>\n";
    41. echo "<tr><td><b>ICQ: </b></td><td>".$shoutcast->GetICQ()."</td></tr><tr><td
    42. colspan=2>&nbsp;</td></tr>\n";
    43. echo "<tr><td><b>WebHits Count: </b></td><td>".$shoutcast->GetWebHitsCount()."</td></tr>\n";
    44. echo "<tr><td><b>StreamHits Count: </b></td><td>".$shoutcast->GetStreamHitsCount()."</td></tr>\n";
    45. echo "</table><p>";
    46. echo "<b>Song history;</b><br>\n";
    47. $history = $shoutcast->GetSongHistory();
    48. if (is_array($history)) {
    49. for ($i=0;$i<sizeof($history);$i++) {
    50. echo "[".$history[$i]["playedat"]."] - ".$history[$i]["title"]."<br>\n";
    51. }
    52. } else {
    53. echo "No song history available..";
    54. }
    55. echo "<p>";
    56. echo "<b>Listeners;</b><br>\n";
    57. $listeners = $shoutcast->GetListeners();
    58. if (is_array($listeners)) {
    59. for ($i=0;$i<sizeof($listeners);$i++) {
    60. echo "[".$listeners[$i]["uid"]."] - ".$listeners[$i]["hostname"]." using
    61. ".$listeners[$i]["useragent"].", connected for ".ConvertSeconds($listeners[$i]["connecttime"])."<br>\n";
    62. }
    63. } else {
    64. echo "Noone listens right now..";
    65. }
    66. } else {
    67. echo "Server is up, but no stream available..";
    68. }
    69. } else {
    70. // Ohhh, damnit..
    71. echo $shoutcast->geterror();
    72. }
    73. ?>
    Alles anzeigen


    WÄre echt super nett ich dreh jetzt dann allmälich druch mit dem ganzen ^^
  • Re: Php shoutcast auslesen STREAMTITEL

    also das script aus post1 ist von dir...
    aber diese variablen "$shoutcast_streamtitle und $shoutcast_servertitle" - wo stehen die denn?

    so wie ich das sehe, stehen alle verwendbaren informationen im array $numbers
    mach doch mal ein explode($numbers)

    wenn du scripts in gewissen zeitabständen ausführen willst, informier dich zum thema cronjobs
    falls dein anbieter keine unterstützt gibt es dazu auch externe dienstleister

    zu deinem 2ten post
    in welchem zusammenhang steht denn das script mit dem angegebenen link?

    wenn du den text von der url laden willst, dann kannst du das mit

    Quellcode

    1. $text = strip_tags(file_get_contents('http://88.198.7.243/dj/streamst.php'));


    ist ja auch nur eine zeile...
  • joar wie gesagt es gibt ne winamplin http://admin:pass:8000uswswsw=TITEL , das titel kann man durch verschienden sachen ersetzten wie zb http://admin:pass:8000uswswsw=playlist, oder http://admin:pass:8000uswswsw?=.

    ich will das das script jede 2 mins den link öffnet, und den punkt setzt, was ja der link macht .

    MFG
    Pr3mu


    //UND HIER GEHTS WEITER
    http://www.easy-coding.de/script-soll-stream-oeffnen-hillfeee-t2114.html
  • DJ bild anzeige

    hi kann mir jemand einen script machen wo man denn DJ anzeigen kann also wer grad sendet bei uns im radio hat jeder seinen namen hinter den radio namen also wenn es möglich wer würde ich mich mega doll freunen ich such schon monate danach

    LG Mario
    :wink: