# Shoutcast mit Hilfe von PHP auslesen!



## marcel_notbohm (1. September 2003)

Wie kann ich mit Hilfe von PHP einen ShoutcastServer auslesen?

Ich habe im Internet schon gesucht ... habe das auf mehreren Internetseiten gesehen .. habe aber bislang noch kein tutorial gefunden.

Hat jemand vielleicht eine idee?


----------



## marcel_notbohm (1. September 2003)

Hat jemand von euch eine Idee? Ich wäre euch sehr dankbar!


----------



## Daxi (1. September 2003)

Es gibt für Winamp ein httpQ-Plugin, das es ermöglicht die Playlist abzufragen.
Den Shoutcast-Status weiß ich nicht, ob du damit abrufen kannst.
Dieses httpQ ist aber bereits ein Thema im Forum such doch mal danach...

*Etwas Geduld wäre bei dir auch nicht schlecht...*


----------



## JohannesR (1. September 2003)

Was meinst du mit "auslesen"? Willst du ihn aufzeichnen, nachschauen, ob er online oder offline ist oder die Playlist haben? Drück dich mal etwas genauer aus!


----------



## marcel_notbohm (1. September 2003)

Wie soll ich mich den genauer ausdrücken!

Hier nen Beispiel:

http://jayjay.musx.net/include.php?path=stream/status.php 

Hat jemand eine Idee wie man das so in der Art machen kann?


----------



## SepteraCore (1. September 2003)

wenn ich mich richtig erinne kann man mit shoutcast so eine seite selber erzeugen.
diese könnte man dann auslesen und dann halt die informationen wiedergeben wie man will.
oder, man formatiert die ausgegebene seite gleich so um,  wenn man templates oder so verwenden kann, dass es eine schöne xml datei ergibt die man dann auch wieder auslesen kann ^^
eigentlihc egal wie man es macht.


----------



## marcel_notbohm (1. September 2003)

Wie soll man sowas mit shoutcast erzeugen?

Ich möchte einfach nur so einen Shoutcast server auslesen und in meiner Hp in PHP einbinden.

http://sb.mthn.net:8000


----------



## marcel_notbohm (1. September 2003)

Hat jemand eine Idee`?


----------



## JohannesR (1. September 2003)

GEDULDE DICH GEFÄLLIGST!
Du bekommst nicht mehr produktive Antworten, wenn du jede Stunde drängelst, im Gegenteil!


----------



## SepteraCore (2. September 2003)

nach der schule werd' ich mal gucken wie das ging.
aber dauert noch ne weile bis dahin ^^


----------



## marcel_notbohm (2. September 2003)

Das wäre cool wenn du mir bei dem Script helfen könntest


----------



## GH@NDI (2. September 2003)

Ist relativ einfach.
Hab mir sowas mal mit Perl gecoded. War zwar keine perfekte Lösung aber ging auch ganz gut:

Und zwar einfach eine Socketverbindung zum Sohoutcast server öffnen.

Dann folgenden Header senden:

```
GET / HTTP/1.0
User-Agent:SHOUTcast PHP Proxy 0.1
icy-metadata:1
```

Nach 'icy-metadata:1' müssen 2 leerzeilen folgen, wie bei jedem HTTP-Header halt auch! 

Jetzt kann man einfach wie wild die Daten des Servers empfangen.

Jetzt einfach nur noch solange den Socket abfragen bis man mithilfe eines regulären Ausdrucks folgendes auffängt:

```
StreamTitle='(.*?)';
```

Hier mal noch das Perl Script, vielleicht hilfts ja weiter.


```
#!/usr/bin/perl -w

use IO::Socket;

my $socket = IO::Socket::INET->new(
			PeerAddr	=> '205.188.245.131',
			PeerPort	=> 8004,
			Type		=> SOCK_STREAM,
			Proto		=> 'tcp',
			) || die "Error Socketopen: $!";

print $socket "GET / HTTP/1.0\nUser-Agent:Perl_ShoutCAST_Parser\nicy-metadata:1\n\n";

print "Opened Connection to ShoutCAST-Server...\n";

while($socket->recv($buf, 4096)) {
	# StreamTitle='Gatecrasher Resident Transmission 02 - CD2 mixed by Matt Hardwick';
	if($buf =~ /.*StreamTitle='(.*?)';.*/gi) {
		print "Found $1\n";
	}
}
close($socket);
```


----------



## marcel_notbohm (2. September 2003)

Hat jemand noch eine Idee wie man das mit PHP machen kann?


----------



## dacult (2. September 2003)

Ich habe so ein Script gefunden.Ich werde es selber in den nächsten Tagen ausprobieren, es ist nicht von mir. Ist mit deutscher Anleitung, gefunden in einem Winamp Forum.

http://www.mirkobraun.de/webradio.rar


----------



## JohannesR (2. September 2003)

```
<?php
$stream_ip = "http://sb.mthn.net";
$stream_port = "8000";

$fp = fsockopen($stream_ip, $stream_port, &$errno, &$errstr, 30);
if ($fp) {
    fputs($fp, "GET / HTTP/1.0\r\n\r\n");
    fputs($fp, "User-Agent: SHOUTcast PHP Proxy 10.1\r\n\r\n");
    fputs($fp, "icy-metadata:1\r\n\r\n");
    while(!feof($fp)) {
        echo fgets($fp,128) . "\n";
    }
} else {
    echo "Cannot open stream. ($errstr)";
    exit;
}
?>
```

So ungefähr, hab es nicht getestet, deshalb wird es wohl nicht laufen...
Aber du kannst ja *selber denken*.


----------



## marcel_notbohm (3. September 2003)

Das letzte Tutorial funktioniert nicht richtig


----------



## marcel_notbohm (3. September 2003)

Hat jemand noch eine Idee oder ein Tutorial?

SepteraCore hast du was zu dem thema gefunden?

Ich eure Hiilfe bedanke ich mich im voraus!


----------



## SepteraCore (3. September 2003)

hab grad mal shoutcast gezogen.
in der windows readme findet sich was.

```
http://host:port/admin.cgi?pass=yourpass&mode=viewxml&page=0
```

dazu steht noch folgendes:

Page 0 is all DNAS data
Page 1 is only Main data 
Page 2 is only Webdata Table
Page 3 is only Listener Table
Page 4 is only Songhistory Table

Your XML parser MUST send a User-Agent: HTTP header containing the
word "Mozilla" in order for the DNAS to recognize it as something
other than a listener.


----------



## marcel_notbohm (3. September 2003)

... und was sagt mir das jetzt


----------



## JohannesR (3. September 2003)

Mein Gott, willst oder kannst du es nicht verstehen? Wenn du dich weigerst selber zu denken wirst du hier *keinen* Schritt weiterkommen!


----------



## marcel_notbohm (4. September 2003)

Sorry aber sind nicht alle so schlau wie du ....  Allerdings solltest du noch was an deiner Umgehensweise mit  anderen ändern! 

Naja das mit Shoutcast ist eben nicht so einfach wie ich mir das vorgestellt habe ... in tcl war das einfacher ... man hat dafür auch wenigstens mal beispiele gefunden ... naja ...


----------



## JohannesR (4. September 2003)

> _Original geschrieben von marcel_notbohm _
> *Allerdings solltest du noch was an deiner Umgehensweise mit  anderen ändern! *



Halte dich einfach an bestehende Forenregeln:
1) Du spammst. Wenn man innerhalb von 1 Stunde keine Antwort bekommt ist das kein Grund nochmal zu pushen.
2) Du weigerst dich, mit zu denken. GH@NDI hat dir einen hervorragenden Ansatz geliefert, du warst nur zu Faul oder nicht fähig damit umzugehen. Wenn du zu Faul bist hast du hier eh nichts verloren, wenn es unfähigkeit ist musst du halt vorher PHP lernen, wir sind keine Scriptbots.
3) Ich schreibe hier keine Tutorials für dich. Ich habe dir einen Ansatz gegeben, an dem *Du* dich dann hättest orientieren könne. Hast du aber nicht, ich stelle mir abermals die Frage, unfähigkeit oder faulheit?



> _Original geschrieben von marcel_notbohm _
> *man hat dafür auch wenigstens mal beispiele gefunden ... naja ...*



Da platzt mir doch die Hutschnur! Was haben dacult, GH@NDI und ich denn getan?


----------



## Tim C. (4. September 2003)

Thread *closed*
Threadstarter *verwarnt*

Gründe sind nachzulesen im letzten Beitrag von *Johannes Röttger*


----------

