Sendeplan-Signale (Now Playing)#

Das Sendesystem signalisiert jeden Start und jeden Stopp eines Audio-Elements an den Replacer. Sobald eine Stelle im Sendeplan erreicht ist, an dem ein Replacement sinnvoll und möglich ist, beginnt der Replacer seine Arbeit.

Die Signalisierung erfolgt über den Aufruf einer URL der Replacer-API. Drei Parameter müssen übermittelt werden:

  • send_id: Die eindeutige ID die im Sendeplan dem Start des Elements zugeordnet ist. Etwa 81655954446880

  • isplaying: Dieses Flag gibt an, ob das Audio gerade startet oder stoppt. Werte: true|false

  • api_key: Der Zugangs-Schlüssel zur API.

Aufbau der Request URL#

replacer-<station_key>.radio-creator.com:5008/api/signal?send_id=<send_id>&isplaying=<true|false>&api_key=<api_key>

Beispiel:

replacer-ffh.radio-creator.com:5008/api/signal?send_id=81655954446880&isplaying=true&api_key=12345678-1234-5678-1234-123456789012

Das Einrichten der Signalisierung für das Sendesystem Zenon ist im Artikel Zenon Signalisierung genau beschrieben.

Replacer-Signale#

Umgekehrt kann der Replacer die Start/Stopp-Events eines jeden Audio-Elements als HTTP-GET-Request oder HTTP-POST-Request an eine API bei Ihnen signalisieren. Mehrere verschiedene APIs können angesteuert werden und die gesendeten Events können pro API gefiltert und konfiguriert werden.

Der Replacer berücksichtigt dabei das gerade herrschende Delay, so dass Sie etwa synchrone Now Playing Informationen erhalten oder Werbe-Inserts triggern können.

Folgende Parameter kann der Replacer signalisieren:

  • send_time: Start/Stopp-Zeitpunkt in ms.

  • timestamp: Start/Stopp-Zeitpunkt in s. (Float)

  • utc_str: UTC Startzeitpunkt als String YYYY-MM-DDTHH:MM:SS - Dieses Format nimmt der Radioplayer-Ingest entgegen. (String)

  • total_delay: Gesamtes Delay vom Replacer-Eingang zum Ausgang.

  • channel_key: Kanal-Schlüssel. Zum Beispiel „plus80er“

  • isplaying: true | false. Gibt an, ob ein Element startet (true) oder stoppt (false).

  • type_name: „ad“, „song“, „dropper“…

  • planner_id: ID aus der Musik-Planung.

  • audio_id: ID aus dem Sendeplan.

  • next_audio_id: Die audio_id des folgenden Titels.

  • replaced: true | false. Gibt an, ob der Replacer den Titel ersetzt hat.

  • original_playlist: true | false. Gibt an, ob das ein Titel aus der ursprünglichen Playlist/Sendeplan war.

  • artist: Interpret.

  • title: Song-Titel.

  • artist_title: Interpret - Titel (Kombi-Feld zur Belieferung von icecast)

  • length: Länge des Elements in ms. (Integer)

  • length_s: Länge des Elements in s. (Integer)

Die Signale werden im Radio Creator Manager konfiguriert. Dazu dient ein JSON-Ausdruck, der die Ziel-URL <url> definiert, die Bedingungen <conditions> unter denen der HTTP-Request ausgeführt wird, und die Daten <payload>, die übermittelt werden sollen.

<payload> definiert Parameter, die an die URL angehängt werden. Bei einem POST-Request können auch Formular-Felder (body) an die API geschickt werden. Dazu dient die Kofiguration im optionalen Feld data.

Weitere Einstell-Möglichkeiten:

  • mode: GET oder POST Request: get|post. Wird die Einstellung weggelassen, erfolgt ein GET-Request.

  • signal_delay: Jeder API-Aufruf kann um den individuellen Wert signal_delay in Millisekunden verzögert werden. Dazu muss noch der Wert r_additional_signal_delay aus den station_settings hinzugerechnet werden, der für alle APIs gilt.

  • send_time_delay: Damit wird den Werten send_time, timestamp und utc_str ein Offset in ms hinzugefügt. Das Signal wird dadurch nicht verzögert. Die genannten Zeitwerte werden nur erhöht. (Radioplayer-Ingest)

  • additional_params: Damit können weitere, feststehende URL-Parameter an die API übergeben werden.

  • additional_data: Damit können weitere, feststehende Datenfelder bei einem Post-Request als Formular-Daten (body) an die API übergeben werden.

[
  {
   "url": "<url>",
   "conditions": {<conditions>},
   "payload": {<payload>},
   "data": {<data>},
   "mode": "get|post",
   "send_time_delay": <send_time_delay>,
   "additional_params": {<additional_params>},
   "additional_data": {<additional_data>}
  }
]

Beispiel: Beim Start von Werbespots, den channel_key und die audio_id an eine API senden

[
  {
   "url": "http://0.0.0.1/instreamads/trigger.php",
   "conditions": {"isplaying": [true], "type_name": ["ad"]},
   "payload": {"station": "channel_key", "numrotation": "audio_id"}
  }
]

Diese Konfiguration erzeugt zum Beispiel den folgenden HTTP-GET-Request:

http://0.0.0.1/instreamads/trigger.php?station=plus80er&numrotation=12345