Daten aus API extrahieren und auf Icecast schicken


Hallo ihr Lieben,

wir planen unsere Streambelieferung von einem Barix Instreamer auf einen Raspberry Pi umzustellen. Der entscheidende Vorteil ist der Wegfall des sinnlosen A/D-Gewandle.

Bisher bekommt unser Streamingserver nur das reine Radio ohne irgendwelche Zusatzdaten. Das soll sich ändern, geplant ist den laufenden Sendungstitel als Titel mitzusenden.

Die Infos liegen dafür in einer API:
https://radioco.radiocorax.de/api/2/transmissions/now

Der Datensatz unter "programme" und zwar "name" ist der gebrauchte.

Wie kriege ich den jetzt in ffmpeg gepiped oder über HTTP-Metadaten-Update:

http://source:[unserServer]/admin/metadata?charset=UTF-8&mount=/corax_256.mp3&mode=updinfo&song=[API-Inhalt]

Kennt sich da wer aus?

Liebe Grüße!
 
Bisher bekommt unser Streamingserver nur das reine Radio ohne irgendwelche Zusatzdaten. Das soll sich ändern, geplant ist den laufenden Sendungstitel als Titel mitzusenden.
Ich kenne mich bei euch zwar nicht aus, aber kann eure Software das nicht liefern?
Entschuldige bitte den vielleicht etwas billigen Vergleich, aber jedes bessere Webradio bekommt so was hin.

Was ist das besondere an eurem Datenfluss?
 

BroadcastMirror

Benutzer
Themeneröffner
Wir streamen den Optimod-Ausgang über einen Barix-Instreamer. Da können logischerweise keine Metadaten durchfließen.

Die Sendungstitel sind in der API verlinkt und die müsste man per HTTP Metadaten Update an den Icecast schicken.

Heißt: Irgendwie muss man automatisiert den Sendungstitel aus der API extrahieren und über die Update-URL an den Streamingserver schicken.
 
In einem anderen Thread hier in den Foren habe ich gelesen, dass bei euch mAirList im Einsatz ist.
Warum kannst du die Informationen aus der Log-Datei nicht direkt an den Streamingserver übergeben?

Vermutlich stehe ich gerade auf dem Schlauch oder denke zu einfach, aber die Informationen sind doch im Programm abrufbar. Täusche ich mich in eurem speziellen Fall?
 

BroadcastMirror

Benutzer
Themeneröffner
Weil unsere Sendungen über tausend unterschiedliche Wege angeliefert werden und nicht einheitlich belabelt sind. Freies Radio halt 😂
Außerdem ist unser Playout mit der mAirList vom Internet abgekoppelt.

Nur auf https://co.radiocorax.de/api/2/transmissions/now liegen alle Sendungsinfos zuverlässig vor.

JSON-Daten auf einen Icecast zu pushen sollte doch nicht schwer sein? (Nur fehlt mir das Know-How)
Ich finde aber nur für die Gegenrichtung tausende Scripts im Netz.
 

c120

Benutzer
Das hier könnte helfen:
(gefunden über google Suchbegriff "icecast update stream metadata")

Man kann nur den "Song Title" ändern:
Beispiel aus der Doku:

Falls deine Frage ist, wie man jetzt von dem ".../now" Endpunkt das macht: Da gibt's verschiedene Ansätze. Am einfachsten ist es, in einer Scriptssprache wie Python diesen Endpunkt alle paar Sekunden abzufragen und, wenn sich der Text ändert, die Änderung an die Icecast URL zu senden. Dieses Skript könnte auch auf dem Pi selbst laufen. Da der Server aber selbst eine Python Anwendung ist (nämlich Django) könnte man auch dem Server beibringen, jede Änderung von selbst weiterzugeben.

Ohne eine Kenntnis deiner Struktur ist es aber schwer, dir da einen Hinweis zu geben, wie du das selbst lösen kannst.

Noch ein Hinweis: Für freie Radios gibt's eine TECH Mailing Liste "BFR-TECH"
Siehe hier: http://www.freie-radios.de/mailinglisten.html
Wenn Dein Sender da Mitglied ist, ist das ein guter Ort um Hilfe dieser Art zu bekommen.
 
Oben