Hörerzahlen auslesen für IceCast
Forum
Webentwicklung
Hörerzahlen auslesen für IceCast| Seiten: 1 | |
|
Tobias B. dabei seit: 28.02.2009 Beiträge: 12 Erstellt am: 12.05.2010 | 16:58 |
Auslesen der Hoererzahlen guten Tag ;-) heute habe ich ein kleines Tutorial vorbereitet, wie man die Hoererzahlen eines IceCast Mediaserver mittles PHP auslesen kann. Das ganze ist ein bisschen komplizierter als bei ShoutCast Servern, ich hoffe ich kann das Verfahren durch meine Erklaerung naeher bringen. Im folgenden der Quellcode: <?php // (c) Tobias Bambullis, streamfirma.de function get_icecast_info($server_ip, $server_port, $admin_user, $admin_password) { $index = @file_get_contents("http://".$admin_user.":".$admin_password."@". $server_ip.":".$server_port."/admin/stats.xml"); if($index) { $xml = new DOMDocument(); if(!$xml->loadXML($index)) return false; $arr = array(); $listItem = $xml->getElementsByTagName("source"); foreach($listItem as $element) { if($element->childNodes->length) { foreach($element->childNodes as $i) { $arr[$element->getAttribute("mount")][$i->nodeName] = $i->nodeValue; } } } return $arr; } return false; } $arr = get_icecast_info("sf1.streamfirma.de", "1502", "admin_user", "admin_password"); foreach($arr as $mount => $stats) echo "Auf dem Mountpoint ".$mount." befinden sich ".$stats["listeners"]." Listener!<br />"; ?> Wie funktioniert dieses Script? Die Auswertungsdatei bei einem Icecast Server ist unter /admin/stats.xml zu finden. Es handet sich um eine XML Datei, die wir mit Hilfe des DOMDocument bearbeiten. Wenn die XML erfolgreich eingelesen wurde, sucht das Script alle Elementblöcke, die "source" heissen. Dieser Block enthällt alle Informationen über die verschiedenen Mountpoints. Im folgendem wird der angesprochene Block in ein Array geladen, welches folgene Struktur ausweist: Array ( [/live.ogg] => Array ( [artist] => Laurent Wolf [audio_bitrate] => 112001 [audio_channels] => 2 [audio_info] => samplerate=0;channels=0;quality=3%2e00 [audio_samplerate] => 44100 [channels] => 0 [genre] => Various [ice-bitrate] => 112 [listener_peak] => 0 [listeners] => 0 [listenurl] => http://localhost:1502/live.ogg [max_listeners] => unlimited [public] => 1 [quality] => 3.00 [samplerate] => 0 [server_description] => Streamfirma Demo Account Auto DJ [server_name] => Streamfirma Demo Account Auto DJ [server_type] => application/ogg [server_url] => http://streamfirma.de [slow_listeners] => 0 [source_ip] => 127.0.0.1 [stream_start] => Wed, 12 May 2010 14:09:14 +0200 [subtype] => Vorbis [title] => Walk The Line [total_bytes_read] => 142131954 [total_bytes_sent] => 0 [user_agent] => IceS 2.0.1 [yp_currently_playing] => Laurent Wolf - Walk The Line ) ) Der erste Index enthällt den Mountpoint, der zweite die ausgelesenen Daten. LG Tobias
|
| Seiten: 1 | |










Sie brauchen dringend einen Stream?
Sie kaufen nicht gerne die Katze im Sack? Überzeugen Sie sich von unserem Service und melden sich 



