| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

03-11-2006, 11:27
|
|
sodah
Registrierter Benutzer
|
|
Registriert seit: Jan 2004
Beiträge: 67
|
|
[Funktion] Filename herausfinden
Hi,
ich habe mehrere URLs, welche ohne Filename sind. z.B.:
http://scfire-chi0l-2.stream.aol.com:80/stream/1012
Ich möchte herausfinden, wie der Filename heißt, welcher aufgerufen wird, wenn man die URLs besucht.
Die URLs sind Streaming-URLs (MP3), welche leider immer einen anderen Dateinamen haben.
Wie kommt man an den Filename?
Geändert von sodah (03-11-2006 um 11:44 Uhr)
|

03-11-2006, 12:22
|
|
hall
Registrierter Benutzer
|
|
Registriert seit: Jun 2004
Ort: Berlin
Beiträge: 815
|
|
das ist ein mp3-stream. was hat das mit php zu tun? was hast du vor? rippen?
__________________
mfg
Geändert von hall (03-11-2006 um 12:25 Uhr)
|

03-11-2006, 12:33
|
|
sodah
Registrierter Benutzer
|
|
Registriert seit: Jan 2004
Beiträge: 67
|
|
nein nicht rippen. Das ist ein offizieller ICECAST-Stream. Radiostream.
Ich arbeite derzeit mit ICECAST-Streams, welche in meinem Player abgespielt werden können. Ich möchte aber noch SHOUTCAST-Streams integrieren können.
z.B: http://205.188.215.228:8024
Diese sind aber so inteligent, dass sie wissen, ob ein Browser oder ein Dateisystem sie aufruft. Beim Browser wird dann die index.html geladen, welche die Informationen über den Sender ausspuckt.
http://205.188.215.228:8024/index.html
Ich will aber den MP3-Stream. Da mein Tool ein Webbasierendes Interface hat, kann ich den Shoutcast-Stream nicht integrieren, es wird immer die HTML-Seite geöffnet.
Daher das Interesse an den FILENAME ranzukommen. Zum Rippen braucht man den nicht. Man könnte einfach Record drücken in irgendeiner Audiosoftware. Ist aber nicht mein Interesse.
|

03-11-2006, 13:23
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Original geschrieben von sodah
Diese sind aber so inteligent, dass sie wissen, ob ein Browser oder ein Dateisystem sie aufruft.
|
Ein "Dateisystem" ...?
Du meinst vermutlich, ein Media-Player wie bspw. WinAmp.
Dessen Request wird sich vermutlich in irgendwas von dem eines Browsers unterscheiden - da wäre also vielleicht ein Netzwerk-Sniffer das geeignete Werkzeug, um sowas rauszufinden.
Vielleicht wird aber auch gleich ein anderes Protokoll benutzt ...
Zitat:
|
Daher das Interesse an den FILENAME ranzukommen.
|
Da muss ja gar kein wirklicher "Dateiname" dahinterstecken. Ressourcen im HTTP-Umfeld und in anderen Protokollen auch haben nicht zwangsweise was mit physisch existenten Dateien zu tun.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

03-11-2006, 13:28
|
|
sodah
Registrierter Benutzer
|
|
Registriert seit: Jan 2004
Beiträge: 67
|
|
Danke für die Aufklärung.
Winamp öffnet mit dieser URL direkt den Stream und der Browser öffnet darüber die HTML Seite. Somit bin ich davon ausgegangen, dass auf der Gegenseite eine Prüfung stattfindet. Schade, dann kann ich leider nur das alte ICECAST-Modell unterstützen: http://demo.sodah.de/icecast (flash 9.0 Plugin required)
Geändert von sodah (03-11-2006 um 13:33 Uhr)
|

03-11-2006, 13:53
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Original geschrieben von sodah
Winamp öffnet mit dieser URL direkt den Stream und der Browser öffnet darüber die HTML Seite.
|
Sag ich doch :-) (Bzw. hab's vermutet.)
Zitat:
|
Somit bin ich davon ausgegangen, dass auf der Gegenseite eine Prüfung stattfindet.
|
Ja, ich auch - der Request von WinAmp und einem Browser müssen sich als signifikant unterscheiden - vielleicht bspw. im Accept-Header.
Zitat:
|
Schade, dann kann ich leider nur das alte ICECAST-Modell unterstützen
|
Mir ist noch nicht klar, in welcher Weise du es "unterstützen" willst.
Den Stream direkt vom Browser öffnen zu lassen, kann ja nicht allzu sinnvoll sein.
Aber irgendeinem Plugin/Player könnte man ja ggf. beibringen, seinen Request so aussehen zu lassen, dass er von der Gegenstelle akzeptiert bzw. wie gewünscht beantwortet wird ...
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

03-11-2006, 14:14
|
|
sodah
Registrierter Benutzer
|
|
Registriert seit: Jan 2004
Beiträge: 67
|
|
Zitat:
|
Mir ist noch nicht klar, in welcher Weise du es "unterstützen" willst.
|
Es wird von Flash gestreamt. Da Flash aus dem Browser heraus aggiert, wird somit nur die HTML-Seite geladen.
Ich könnte theoretisch über fsockopen...(s.u.) den Stream mit den passenden Headern auskleiden, aber dann wird mein Servertrafic zusätzlich genutzt und es wird PHP-timeouts geben.
Zitat:
|
Den Stream direkt vom Browser öffnen zu lassen, kann ja nicht allzu sinnvoll sein.
|
Doch schon, durch Flash wird es gestreamt.
Aber trotzdem Danke nochmal.
Beispiel für Browserfähigen Shoutcaststream:
PHP-Code:
$streamname = "64.236.34.97";
$port = "80";
$path = "/stream/1012/";
header('icy-notice1: <BR>This stream requires <a href="http://www.winamp.com/">Winamp</a><BR>');
header('icy-notice2: Firehose Ultravox/SHOUTcast Relay Server/Linux v2.3.0<BR>');
header('icy-name: Groove Salad: a nicely chilled plate of ambient beats and grooves. [SomaFM]');
header('icy-genre: Ambient Chill');
header('icy-url: $streamname');
header('icy-pub: 1');
header('icy-br: 128');
//[HTTP_USER_AGENT] => Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
if(!strpos(strtolower($_SERVER[HTTP_USER_AGENT]), "msie") === FALSE):
header("HTTP/1.x 205 OK");
else:
header("HTTP/1.x 200 OK");
endif;
header('content-type: audio/mp3');
header('Date: ' . date("D M j G:i:s T Y"));
header('Last-Modified: ' . date("D M j G:i:s T Y"));
header("Cache-Control: no-cache, cachehack=".time());
header("Cache-Control: no-store, must-revalidate");
header("Cache-Control: post-check=-1, pre-check=-1", false);
header('Content-type: application/force-download');
header("Content-Transfer-Encoding: Binary");
$sock = fsockopen($streamname, $port, $errno, $errstr, 30);
fputs($sock, "GET $path HTTP/1.0\r\n");
fputs($sock, "Host: $streamname\r\n");
fputs($sock, "Accept: */*\r\n");
fputs($sock, "Connection: close\r\n\r\n");
fpassthru($sock);
fclose($sock);
Geändert von sodah (03-11-2006 um 14:17 Uhr)
|

29-06-2009, 15:55
|
|
ph612
Registrierter Benutzer
|
|
Registriert seit: Jun 2009
Beiträge: 1
|
|
Hallo,
Sorry, dass ich das Thema jetzt nochmal aufgreife, aber es interessiert mich einfach.
Und zwar will ich wissen, ob mit diesem Tool auch Trackupdate möglich ist? also man trägt in das Script z.b. ein "Trackupdate ...".
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|