Laufenden Stream kicken per Eventsteuerung

Ich befasse mich seit einiger Zeit mit dem Aufbau einer Automation.

Mittlerweile habe ich mAirList auch klargemacht, dass es zwei unterschiedliche “configs” kennt - eine für den Live-Sendebetrieb mit Micro und Mischpult, eine andere für die Automation, wo die Player 1 und 2 direkt an den Encoder gehen und wo die Eventsteuerung den gesamten Betrieb übernimmt.

Aber leider nur fast:
Denn ich bekomme natürlich meine Automation nicht dazu, den Stream zu kicken, bevor er selber connectet.

Ein Script habe ich als PHP-Datei (allerdings noch ungetestet) und einen weiteren Entwickler habe ich auch schon angeschrieben.

Kann mir von Euch jemand sagen, wie und wo dieses Script in mAirList einbinden kann, um es

  1. in der Automation per Event auszuführen, bevor dann die Playlist-Wiedergabe startet und
  2. im Live-Sendebetrieb mit einem Button manuell auszuführen.

Es wäre toll, wenn Ihr mir da einen (vermutlich entscheidenden) Tipp geben könntet. Irgendwie hab ich ein Brett vor dem Kopf - und komme deshalb nicht auf die Lösung.

Lieber Gruß aus der Nordheide,

TomTom

Habe es dank Unterstützung hinbekommen.

Falls es jemand benötigt:

begin HTTPGetAsync('http://URL.de/Pfad/Stream_Kick-Datei.php'); end.

Herzlichen Dank an Ralf (von Granade.eu).

TomTom, wie genau hast Du das mit den unterschiedlichen Config’s realisiert? Würde mich interessieren.

Gruss
Maic

Einfach die Zip-Variante nehmen und an zwei unterschiedlichen Stellen entpacken. Der config-Ordner ist dann jeweils lokal im Programmordner.

Alternativ kann man den Parameter “-rootfolder c:\woauchimmer” auf der Kommandozeile verwenden.

Hörzlichen Schrank!

Irgendwie hatte ich das vermutet, befürchtete aber, das die Lizenz das möglicherweise nicht zulässt.

Danke danke!

Gruss
Maic

Zwei Instanzen gleichzeitig laufen zu lassen geht nicht ohne Zusatzlizenz (Multi-Instanz-Option). Mehrere Installationen sind aber kein Problem.

Das habe ich mir fast gedacht. In meinem Fall würden die aber nicht paralell laufen, von daher also ausreichend.

Ja - so.
Torben hat mir die Antwort vorweg genommen … ;-))

Öhm, da hab ich doch mal ne Frage …

Ist es eigentlich möglich die Steuerung von Strem und Encoder in die Oberfläche zu integrieren?

Also ich habe zum Beispiel mehrere Encoder eingerichtet, da ich mal auf den Teststream, oder den Livestream gehen will oder nur den Aircheck oder eine Kombi usw…
Bei SAM glaube ich konnte man das Fenster mit den Encodern anzeigen lassen und die anhaken mit denen man aktiv werden wollte. Ist soetwas in mAirList auch möglich?

Das zweite ist, ob man einen Button in mAirList einfügen kann, mit dem ich per klick den Strem kicken kann? Also dirket mit einem Befehl wie “http://stream.TEST.com/admin.cgi?mode=kicksrc” aber irgendwie muß ja auch der Login und Passwort mitgeschickt werden.

Weiß da von Euch jemand ob das möglich ist?

[quote=“Anna On Air, post:9, topic:7941”]Öhm, da hab ich doch mal ne Frage …

Ist es eigentlich möglich die Steuerung von Strem und Encoder in die Oberfläche zu integrieren?

Also ich habe zum Beispiel mehrere Encoder eingerichtet, da ich mal auf den Teststream, oder den Livestream gehen will oder nur den Aircheck oder eine Kombi usw…
Bei SAM glaube ich konnte man das Fenster mit den Encodern anzeigen lassen und die anhaken mit denen man aktiv werden wollte. Ist soetwas in mAirList auch möglich?[/quote]
Ich gehe mal davon aus, Du hast schon ein Bildschirmelement mit den Encoder Bedienelementen (Live Button, Peakmeter).
Dort findest Du eine Textzeile, die den Status (Online/ Offline) anzeigt. Klick die mal doppelt…

[quote=“Anna On Air, post:9, topic:7941”]Das zweite ist, ob man einen Button in mAirList einfügen kann, mit dem ich per klick den Strem kicken kann? Also dirket mit einem Befehl wie “http://stream.TEST.com/admin.cgi?mode=kicksrc” aber irgendwie muß ja auch der Login und Passwort mitgeschickt werden.

Weiß da von Euch jemand ob das möglich ist?[/quote]
Du brauchst ein kleines Script

begin HTTPGet('http://stream.TEST.com/admin.cgi?pass=supergeheimespasswort&mode=kicksrc'); end.
Das speicherst Du als kick.mls irgendwohin ab, wo Du es wieder findest. Damit hast Du Dein erstes mAirList Script geschrieben.
Jetzt noch ein Bildschirmobjekt “Button” anlegen und mit dem Script verknüpfen.
RUNSCRIPT c:\woauchimmer\kick.mls

Greetz
Malte

Hallo Malte,

ersmal vielen lieben Dank für die ausführliche Hilfe.

zu 1. Das hilft mir schon mal, da man die Encoder schneller aufrufen kann … :slight_smile: Danke - Mein Gedanke war irgendwo ein Bildschirmobjekt zu haben, bei dem ich einfach eine Liste der Encoder habe und für diejenigen die ich benötige ein Häkchen setzen kann. Aber das ist mehr Bequemlichkeit und Spielerei. :slight_smile: - Dein Tipp hilft mir jedenfalls gut weiter.

zu 2. HURRA mein erstes Script … Dache ich lach Aber so einfach wars dann doch nicht.
Das Script habe ich wie von Dir vorgegeben angelegt und sowohl “TEST” als auch “supergeheimespasswort” entsprechend ersetzt.
Dann habe ich unter “GUI” - “Bildschirmobjekte” einen “Erweiterten Button” anglegt. Unter dem Reiter “Aktionen” habe ich “Verschiedenes” - “Script ausführen” gewählt und dort beim Dateinamen die Datei eingelesen “K:\mAirList\Scripts\kick_TEST.mls”

Aber der böse Button will nicht kicken … Siehst Du noch einen Fehler in dem was ich gemacht habe?

Lieben Gruß
Anna

Funktioniert es wenn Du das Script über “Datei->Script Ausführen” startest?
Wenn nicht mach mal aus den HTTPGet ein HTTPGetAsync, so wie Tom Tom das oben schreibt.

Vielleicht stimmt auch das Passwort nicht? Wir haben doch einen ähnlichen Effekt beim Logging… (anderer Thread).

Ein Blick ins Systemprotokoll könnte auch helfen, ob da ein Fehler steht.

Puh … also so langsam bin ich am verzweifeln …

Stand der Dinge ist nun folgender:

  1. Es sind zwei Streams um die es gerade geht:
    a. der Teststream - stream.XXXXXXXXX.com:7777
    Encoder-PW1 = Admin-PW1
    b. der Mainstream - stream.XXXXXXXXX.com:80
    Encoder-PW2 = Admin-PW2

Beide Streams haben zwar unterschiedliche Passwörter, aber Encoder PW und das Admin-PW beim einloggen über den Browser sind jeweils identisch.
Frage: muß im Logging bei der Server URL stream.XXXXXXXXX.com:7777 oder die IP XX.XXX.XXX.XXX:7777 stehen oder sollte das egal sein?

Das doofe ist, heute Nachmittag ging das Logging plötzlich und nachdem ich mAirList neu gestartet hatte ging es wieder nicht mehr. Genauso wie StereoTool plötzlich trotz erfolgter Registrierung die “DEMO-Ansdage” einblendet. :frowning:

Ich könnte echt verzweifeln heul

In der Log steht nun folgende Fehlermeldung:

2012-06-01 19:25:09 Fehler Fehler beim Logging (Shoutcast - XX.XXX.XXX.XXX:80): Protocol field is empty

In dem Zusammenhang wie kann ich denn überhaupt ein Logging an einen bestimmten Stream koppeln? Ich meine wenn ich bei Encoder1 streame, kann ich ja nicht zusätzlich die Loggingdaten an Encoder2 schicken!

  1. Zum kicken des Streams:

Das folgende Script

begin HTTPGet('http://stream.pride1radio.com:7777/admin.cgi?pass=XXXXXXX&mode=kicksrc'); end.
ist über “Öffnen” - “Script ausführen” zumindest fähig den kick auszuführen, bringt aber dann folgende Fehlermeldung

Error running script: Laufzeitfehler: (2, 3) Exception: HTTP/1.0 302 Found

Und beim Button passiert garnichts :frowning: … Hab ich den falschen Button oder was mach ich da falsch?

In der Konfiguration habe ich dazu folgendes gewählt “GUI” - “Bildschirmobjekte” - “Hinzufügen” - “Erweiterter Button” - “Aktionen” - “Verschiedenes” - “Script ausführen” - “Dateiname: K:\mAirlist\Scripts\kick.mls”

Mehr hab ich nicht gemacht.

Verzweifelte Grüße :smiley:
Anna

Vorab: Ich hab mal das Passwort aus dem Script rausgelöscht :slight_smile:

Dann ganz schnell:

“Protocol field is empty” - versuch mal “http://” vor den Hostnamen zu schreiben bei den Logging-Einstellungen.

“HTTP 302 Found” - rein technisch will der Shoutcast-Server dir damit sagen, dass er dich nun zu einer anderen Seite umleiten möchte (redirect) - vermutlich auf die Status-Seite nach erfolgtem Kick. Das Script interpretiert dies als Fehler, denn es rechnet eigentlich mit dem normalen Status-Code 200. Du kannst die Meldung aber einfach unterdrücken, wenn du willst:

begin
  try 
    HTTPGet('http://stream.pride1radio.com:7777/admin.cgi?pass=XXXXXXX&mode=kicksrc');
  except
  end;
end.

Vorab: DANKE :smiley: - Alles hab ich gelöscht und das übersehen >:(

Ich habe das Logging jetzt von IP auf http://stream… umgestellt und was soll ich sagen? plötzlich funktioniert es. :-[ Als hätte ich das nicht schon so oft in allen Variationen versucht.

Ich lehne mich mal gant weit aus dem Fenster und stelle die Vermutung an, dass die folgende Fehlermeldung vom zweiten Logging (dem Encoder zu dem ich gerade nicht connected bin) kommt?

2012-06-01 23:19:15 Fehler HTTP-Aufruf fehlgeschlagen: HTTP/1.0 401 Unauthorized

Wo noch die Frage auftaucht, soll ich das einfach ignorieren oder gibt es eine Methode einen Logging zu einem bestimmten Encoder zu verknüpfen?

Die Fehlermeldung vom Script ist nun auch weg … sehr schön … Danke vielmals dafür.

Interessanter Weise lies sich folgendes Phänomen replizieren.
Lege ich einen “erweiterten Button” mit einem Scriptaufruf an, ohne dass das Script schon in einem anderen Element eingebettet ist, so funktioniert der Button nicht.
Setze ich einen “normalen Button” zusätzlich mit diesem Script, funktionieren beide Buttons.

Wie auch immer, das Logging funktioniert und der Streamkick ebenfalls …

Vielen vielen Dank dafür. :slight_smile:

Tja, das war damals nicht die endgültige Lösung und der Grund, sondern nur ein Teil davon. Was final dann der Ausöser für meine Logging Probleme war kann man hier lesen. https://www.mairlist.com/forum/index.php/topic,5849.msg41944.html#msg41944

Das mit dem kicken des Streams macht mir aber noch immer Probleme.
Seltsamer Weise funktioniert es auf dem Teststream, aber nicht auf dem eigentlichen Stream.

Ich habe in mAirList zwei einfache Buttons mit dem folgenden Scripts belegt.
Teststream:

begin try HTTPGet('http://stream.TESTSTREAM.com:XXXX/admin.cgi?pass=XXXXXXXXXXXXXXXX&mode=kicksrc'); except end; end.

Hauptstream:

begin try HTTPGet('http://stream.HAUPTSTREAM.com:YY/admin.cgi?pass=YYYYYYYYYYYYYYYYYYY&mode=kicksrc'); except end; end.

Wenn ich die Zeile |http://stream…=kicksrc| direkt in den Browser kopiere kann ich damit beide Streams kicken, egal ob es die Automation oder ich selbst bin. Innerhalb mAirList geht das aber nur mit dem Teststream, der Hauptstream läßt sich über Mairlist nicht kicken. Weder über den Button, noch wenn ich das Script direkt aufrufe. Richtig geschrieben muß dieser Teil ja sein, sonst würde sich die Kopie davon im Browser nicht umsetzen lassen.

Ich verstehs grad nimmer :frowning:

LG
Anna

Zu diesem mir nicht nachvollziehbaren Problem habe ich bis heute leider keine Lösung gefunden.

Ich verstehs einfach nicht, warum ich über den Browser mit der Eingabe der kompletten Zeile “http://stream… … … … … mode=kicksrc” sowohl die Automation vom Hauptstream, als auch mich selbst vom Teststream kicken kann.

Soblad ich aber das ganze in mAirList integriere, egal ob ich das Script direkt aufrufe, oder übr einen Button oder was sonst noch alles geht, klappt das nur noch beim Teststream, den Hauptstream bekomme ich aus mAirList raus nicht gekickt. :frowning:

Kann mir denn bei dem Problem niemand helfen ? :frowning:

Damit steht und fällt der gesamte Gedanke meiner Automation.

Ich verstehs nciht, was auch imemr ich versuche …

über den Browser mit eingabe der Zeile http:// …mode=kicksrc bekomme ich den Stream gekickt

Über das Script vom mAirList aber keine Chance :frowning:

Ich könnte echt langsam heulen, denn dann war alle Mühe umsonst.