Shoutcast Transcoder: Zwei DJ-Namen

Status
Für weitere Antworten geschlossen.

endy66

Benutzer
Guten Tag

Mich würde interessieren, wie der DJ Name im Stream angezeigt werden kann.
Wenn ich z.b. per Sam Broadcaster oder Virtual DJ auf den Stream gehe, wird
weiterhin das angezeigt, was der Transcoder (Playlist) vorher gesendet hat.
Lediglich das Titleupdate funktioniert, nicht aber der Stationname.

Hoffe, dass mir jmd helfen kann.

Mit freundlichen Grüssen
 
Hallo endy66,

Um deine Frage kurz und bündig zu beantworten: GARNICHT, zumindest nicht über die Metainformationen.
Alle derzeitigen Versionen des sc_trans leiten ausschließlich NUR die Metainformationen Artist und Title weiter, NICHT jedoch Station Name, Stream URL, Genre, AIM, ICQ, IRC.
Dies wird eventuell in folgenden Versionen nachgerüstet.

Bei Sam und soweit ich weiss auch bei mAirlist kannst du jedoch die Ausgabe der Titelinformationen formatieren.

In Sam z.B. so: DJ-SchlagMichTot mit $combine$
würde zu einer Titelanzeige führen die so aussieht:
DJ-SchlagMichTot mit Interpret - Titel

Falls es um den gr-radiostatus geht siehe auch hier-> http://www.radioforen.de/index.php?threads/gr-radiostatus-v2-6.33598/

- MAD
 
Ich hab hier eventuell eine Alternative aber auch nur weil ich gerade an etwas ähnlichem arbeite.

PHP:
function sct_get_djname()
{
    // IP oder Hostname des SC-Trans Servers
    $sc_host = 'stream.host.de';
 
    // API Port des SC-Trans
    $sc_port = '7999';
 
    // API User (Default: admin)
    $sc_user = 'admin';
 
    // API Adminpass (Default: goaway)
    $sc_pass = 'goaway';
 
    mt_srand((double)microtime()*1000000);
    $seq = mt_rand(1,100);
    $post = 'op=getstatus&seq=' . $seq;
 
    $ch = curl_init($sc_host . '/api');
    curl_setopt($ch, CURLOPT_PORT, $sc_port);
    curl_setopt($ch, CURLOPT_TIMEOUT, 5);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
    curl_setopt($ch, CURLOPT_USERPWD, $sc_user . ':' . $sc_pass);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    $curl = curl_exec($ch);
    $xml = new SimpleXMLElement($curl);
    curl_close($ch);
 
    if ($xml->data->status->activesource['source'] == 'dj')
    {
        return (string)$xml->data->status->activesource->name;
    }
    else
    {
        return 'Jukebox';
    }
}

Die Funktion liest den aktuellen DJ Namen (wie er beim SC Trans eingetragen ist) aus und gibt ihn zurück. Ist kein DJ on Air bzw. läuft die SC-Trans Playliste wird Jukebox ausgegeben.

Beispiele zum Aufruf der Funktion:
PHP:
// Echo Ausgabe z.B. im Browser
echo sct_get_djname();
 
//DJ Name einer Variablen zuordnen (z.B. in bestehenden Scripten)
$name = sct_get_djname();

Das Script verfügt über keinerlei Fehlerbehandlung, Kann keine Verbindung aufgebaut werden wird Jukebox zurückgegeben.

-MAD
 
kling nicht schlecht. danke dir schonmal. gibt es denn eine möglichkeit, damit der shoutcast server
den streamtitel auch vom transcoder (via dieser variabel) holen kann, bezüglich des Stationnamen?

Mit freundlichen Grüssen
 
nein, dies ist nicht möglich, da diese Daten wohl beim "Handshake" zwischen Streamserver und Sendequelle übertragen werden und nicht wie das Titelupdate über ein Urlaufruf. Das Script kann man nur nutzen für z.B. eine Streambox auf der Website.

- MAD
 
dann funktioniert das aber, wenn ich auf den transcoder streame, damit mir das script dann, z.b. auf meiner
Webseite, dann den dj namen anzeigen kann? Wie mach ich das am besten mit dem Script?

Mit freundlichen Grüssen
 
Kommt drauf an wie deine Seite aussieht und welche Möglichkeiten du zum einbinden hast. Das Script gibt übrigens den Moderatornamen zurück, welcher im SC-Trans als DJ angegeben ist nur um mißverständnissen vorzubeugen.

Greetz
-MAD
 
Achso, also das Script gibt nicht den Namen, den man beim Clienten im Stream angibt an? Benutze vbulletin als Forensoftware. Wie würdest du das ganze machen?
Hast du ev. icq o.ä.?

Mit freundlichen Grüssen
 
Nein, Du kannst ja bei sc_trans mehrere DJs anlegen (wieso nennen die diese eigentlich DJs?) und eben diese Namen gibt das Script zurück.
Ich würde für jeden Moderator (DJ) einen Login und Event anlegen, die Bilder wie die angelegten Moderatoren bennennen und dann halt die Funktion nutzen um den Bildnamen zu erhalten.
Beispiel:

PHP:
include (./sct_get_djname.php) // Datei mit der Funktion von oben
$currentDJ = sct_get_djname();
$picture = './pfad/zu/den/bildern/' . $currentDJ . 'jpg';
 
echo 'img src="' . $picture . '" alt="' . $currentDJ . '" />';

Kommt halt drauf an wie man dies in ein VBB einbauen kann. Denke aber die können dir da im Forum behilflich sein.

Gruss
-MAD

PS: sorry ich hab keine messanger mehr installiert.
 
Alles klar, das sieht aber wirklich nach dem aus, was ich suche. Also der DJ Name der zurückgegeben wird, ist derjenige,
welcher gerade eingeloggt ist auf dem sc_trans? Wie benutze ich das Script am besten? Könntest du mir das ev. per pn
zukommen lassen?
Hätte da nebenbei noch eine andere Frage. Benutze sc_trans2 zusammen mit sc_serv(1). Immer wenn ich die Source,
also den transcoder kicke, um auf den stream zu gehen, bleibt beim zuhörer der stream stehen und man muss erneut
play drücken. Selbes Problem wenn ich vom stream runter gehe und sich der transcoder wieder einschaltet. Weisst
du ev, was das sein könnte? Das einzige was bisher funktionierte, war autodumusers=1, dann machte das (leider auch
nur der winamp player) automatisch, also da war dann kein erneutes play drücken mehr nötig.

Mit freundlichen Grüssen
 
Wie du das Script am besten nutzt, bzw. in deine Seite einbindest kann ich dir leidern nicht sagen,
da ich mit dem VBB bisher nicht viel zu tun hatte.

Warum kickst du den SC-Trans2 als Source vom Shoutcast (sc_serv)?
Leg für jeden Moderator eine DJ und ein DJ Event im SC-Trans an und lass deine Moderatoren auf den SC-Trans verbinden statt auf den Shoutcast.
Der SC-Trans blendet dann sauber von seiner automatischen Playliste auf die Sendung vom Moderator über und wenn der Moderator Schluss macht wieder zurück zur automatischen Playliste.

Ist in der Doku aber auch recht gut beschrieben. Du musst halt nur für jeden Moderator einen DJ anlegen damit es mit den Namen klappt.

- MAD
 
Ja das weiss ich, hatte das auch so und funktionierte hervorragend. Der einzige Grund ist der Name des Moderators, der vom trans nicht an den serv
weitergegeben wird. Da in meinem vbb ein Addon, welches die Daten des sc_serv ausliest, drin ist, wird dort eben dieser Name nicht angezeigt und
so wissen viele nicht, wann jmd auf dem Stream ist. Das einbinden in vbb bekomm ich sicherlich iwie hin, könntest du mir aber ev. dein Script
als komplettes Beispiel geben und wie ich das anwende, da ich von php nicht sehr viel Ahnung hab. in vbb geht es eher um Templates, welche
in html geschrieben sind. Wäre wirklich sehr nett.

Mit freundlichen Grüssen
 
Sorry, aber ich kann dir gerade nicht so ganz folgen.
Was meinst du mit komplettes Beispiel?
Das Script aus Beitrag #4 ist das gesamte Script bzw. die gesamte Funktion, welche notwendig ist.
und in Beitrag #10 steht beschrieben, wie man es in eine vorhandene PHP Datei einbinden kann.

Du mußt also die PHP Datei, welche die Infos von deinem Shoutcast holt finden, die Funktion einbauen
und anschliessend schauen welche Variable den Moderatornamen vom Shoutcast "ausliest".
Diese Varibale änderst du wie in Beitrag #10 beschrieben so ab, das sie die Funktion aufruft.

-MAD
 
Also erstell ich einfach eine php Datei und kopiere das Script aus Beitrag 4 dort rein? Muss das nen
besonderen Namen haben? Das untere Script aus Beitrag 10, füge ich dann an die Stelle in meinen
vbb Templates ein, wo das angezeigt werden soll, richtig?

Mit freundlichen Grüssen
 
Du kannst das Script auch gleich in die PHP-Datei, welche für deine Streamanzeige zuständig ist, kopieren. Speicherst du es in einer extra Datei, musst du diese in der Datei welche für deine Streamanzeige zuständig ist includieren.
Der Scriptteil aus Beitrag #10 ist nur ein Beispiel. Du wirst schon schauen müssen, welche Varibale den Moderatornamen an das Template übergibt.
Dabei wird dir wohl am besten der Support vom VBB bzw. der Entwickler der Streamanzeige helfen können.
Da ich deine Streamanzeige weder kenne, noch weiss, welche du nutzt kann ich dir nicht mehr dazu sagen. Ich kenne den Code nicht.

-MAD
 
Also ich hab das jetzt mal so getestet. Eine php Datei mit dem Inhalt aus Beitrag 4 erstellt und
da die Daten ausgefüllt (API bn, pw und port). Dann hab ich eine zweite php Datei erstellt,
die dann die Anzeige simuliert. Da habe ich das Script included und per echo die Variabel
ausgegeben. Leider gibt er mir nur den kompletten Ihnhalt aus der includeten Datei (das Script),
aus. Was mache ich da bloss falsch?

Mit freundlichen Grüssen
 
Habs nun geschafft! Der Code von dir mit den Variablen stimmte nicht ganz, hab das geändert und nun funktioniert alles, wie es soll
Bedanke mich herzlich bei dir, warst eine super Hilfe:)!
Und nun geh ich schlafen^^.

Mit freundlichen Grüssen
 
ICh suche noch eine möglichkeit, das encoding dieser xml zu ändern in der sct_get_djname.php.
Wie mache ich das am besten? Hab was gelesen von curl_setopt($ch, CURLOPT_ENCODING)...

Mit freundlichen Grüssen
 
Achja, bei mir werden die Titel der Tracks nicht komplett angezeigt im Stream. Wenn die Playlist läuft,
funktioniert das bestens, allerdings, wenn ein Moderator auf dem Stream ist, wird meistens nur der
Interpret, wenn überhaupt, im Stream angezeigt. Mit usemetadata in der sc_trans config hab ich auch
schon rumprobiert, allerdings erfolglos. Woran kann das liegen?

Mit freundlichen Grüssen
 
Das Problem mit der Trackanzeige hat sich erledigt, lag an der sc_trans version. Hab ne andere Build genommen,
nun gehts. Das Problem mit den Tracks, welche ä,ö oder ü enthaltet, besteht leider immernoch.

Mit freundlichen Grüssen
 
Nutzt du zufällig noch einen SHOUTcast 1.9.x
Der scheint diverse Probleme mit UTF-8 encodierten Metadaten zu haben. Ansonsten kann es ebenfalls noch an den ID3 tags liegen, wenn diese nicht UTF-8 konform sind.
Geht erst ab ID3v2
 
Ja, nutze einen SC1 Server. Kann man denn dem Script nicht beibringen, dass es das iwie ignorieren soll?

Mit freundlichen Grüssen
 
Wenn die Statusseite deines Shoutcast 1.9 Servers und der Player die Titel mit Umlauten richtig anzeigen, wird es wohl am Script liegen, welches die Daten vom Shoutcast abruft. Da wirst du dich an den Programmierer des Scripts wenden müssen. Mein script liest ja nur die Moderatorennamen vom SC Trans und hat mit der Titelanzeige selber nichts zu tun.

- MAD
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben