Metadaten-Anbindung eines externen Stream-Encoders

Hallo zusammen,
ich versuche derzeit einen externen Stream-Encoder (Omnia.9) mit Metadaten aus mairlist über HTTP zu versorgen.
Der Encoder akzeptiert die Daten über die folgende Adresse: http://x.x.x.x:7380/parameter/stream1/strm/stream_metadata=ARTIST - TITLE.
Da es in der aufzurufenden URL ansich keine Parameter gibt, weiss ich nicht, wie ich den Export in mAirlist einrichten soll.
Im Prinzip muss hier nur die URL mit den angehangenen Daten aufgerufen werden. Wahrscheinlich ist die Lösung so einfach, dass ich gezielt drumherum denke. :slight_smile: Für sachdienliche Hinweise wäre ich dankbar.
Grüße,
zunder

Bist du dir wegen der URL sicht? Dass das wirklich stream_metadata=xxx heißt und nicht stream_metadata?xxx - letzteres wäre irgendwie “normaler”.

Ansonsten geht das wohl nur per Script :frowning:

Ja, die aufzurufende URL lautet exakt so. Der Text der nach dem “=” steht, wird später im Stream angezeigt.

Problem ist inzwischen gelöst. Der Hersteller hat auf meine Anfrage hin ein Tool zur Verfügung gestellt, das mir die Metadaten aus einem von mAirlist generierten Logfile ausliest und an den Encoder sendet. Funktioniert einwandfrei.

Spiitze!

Just for others who want to use Omnia 9 with mAirlist I created a background script that will update the title on player start and leaves out the jingles.

[code]procedure OnPlayerStart(PlaylistIndex: integer; PlayerIndex: integer; Item: IPlaylistItem);

var
CurrentItemType: string;
piType: TPlaylistItemType;

begin

piType := Item.GetItemType();
CurrentItemType := ‘’;

case piType of
  pitJingle:       CurrentItemType := 'JINGLE';
end;

if CurrentItemType <> ‘JINGLE’ then
begin
HTTPGetAsync(‘http://127.0.0.1:7380/parameter/pgm_0/enc/stream_metadata=’ + Item.GetArtist + Item.GetTitle);
end
end;[/code]

Why not just use an “HTTP GET” logging configured through the GUI for this?

Because it can not work with the format that the Omnia 9 requires. The HTTP GET expect the parameter to be http://localhost/?Parameter where for the Omnia 9 it is http://localhost/parameter=. It woud be great if the HTTP get could have a custom mode where we can put in a different format.

If they really think that the part after “=” is supposed to be the URL query parameter, then maybe they should read RFC 3986, Section 3.4:

The query component is indicated by the first [b]question mark ("?") character[/b] and terminated by a number sign ("#") character or by the end of the URI.

The = part in their URLs is actually part of the document path, not the query parameters.

In theory, you could use an URL like this: http://127.0.0.1:7380/parameter/pgm_0/enc/stream_metadata=%a%20%b

But mAirList does not do variable substitution inside the base URL right now; for a good reason, because the % sign is used frequently in URLs, and this would clash with mAirList’s % syntax for variables. The above URL is a very good example.

I totally understand why Torben :slight_smile: And I agree with you, but unfortunately I cannot change how the Omnia 9 HTTP API works so I thought it would be good to share this script with the community :slight_smile:

(And sorry for hijacking a topic in German with English ;-))

[quote=“Torben, post:9, topic:8113”]If they really think that the part after “=” is supposed to be the URL query parameter, then maybe they should read RFC 3986, Section 3.4:

The query component is indicated by the first [b]question mark ("?") character[/b] and terminated by a number sign ("#") character or by the end of the URI.

The = part in their URLs is actually part of the document path, not the query parameters.

In theory, you could use an URL like this: http://127.0.0.1:7380/parameter/pgm_0/enc/stream_metadata=%a%20%b

But mAirList does not do variable substitution inside the base URL right now; for a good reason, because the % sign is used frequently in URLs, and this would clash with mAirList’s % syntax for variables. The above URL is a very good example.[/quote]