This is an old revision of the document!
Show the current RCS Zetta title on OnAirScreen
OnAirScreen has no native Zetta integration. RCS Zetta sends the current title through Live Metadata (older names: Now Playing Export / Billboard) to the OnAirScreen API. The NOW footer line accepts NOW:TEXT.
Same idea for Myriad Playout: Show the current Myriad Playout title on OnAirScreen
API reference: OnAirScreen API / UDP / HTTP / MQTT
What OnAirScreen expects
| Channel | Target (default) | Example |
|---|---|---|
| UDP | Port 3310 | NOW:Artist - Title |
| HTTP | Port 8010 | http://<oas-ip>:8010/?cmd=NOW:Artist%20-%20Title |
| MQTT | Topic {base}/text/now/set | Payload: Artist - Title |
Optionally the same for the second footer line: NEXT:…. Maximum 500 characters.
OnAirScreen does not parse Zetta XML. Default HTTP POST of Zetta Lite / Zetta Full XML (iono.fm, MetaRadio, and similar) does not set the footer. Commands are GET /?cmd=… or UDP plaintext. There is no TCP command port.
First check that OnAirScreen shows the title at all. After startup the IP is in the first footer line.
On Linux / macOS:
echo "NOW:Artist - Title" > /dev/udp/<oas-ip>/3310 curl "http://<oas-ip>:8010/?cmd=NOW:Artist%20-%20Title"
On Windows (Zetta runs on Windows) use oas_send.exe from the OnAirScreen licence:
oas_send.exe --ip 192.168.23.5 "NOW:Artist - Title" oas_send-noconsole.exe --ip 192.168.23.5 "NOW:Artist - Title"
If OnAirScreen runs on the same PC as Zetta, use 127.0.0.1 as the target.
Recommended path: Live Metadata → HTTP GET or UDP
In Zetta this lives under Configuration → System → Live Metadata. Older versions use the Now Playing Export or Billboard tab. You need a Supervisor login.
After saving, restart the Live Metadata service in Startup Manager on the workstation that processes the export (that machine must stay on).
Placeholders (confirm in your Zetta version; Radioplayer uses the same tokens):
| Token | Meaning |
|---|---|
%SONG_ARTIST% | Artist, now |
%SONG_TITLE% | Title, now |
Option A — HTTP GET (usually the simplest)
Add a Live Metadata entry:
- Active: on
- Station / Processed By: the on-air station and a computer that is always running
- Number of items: 1
- Data encoding: UTF-8
- Device: HTTP
- Method: GET (not POST)
- URL:
http://<onairscreen-ip>:8010/?cmd=NOW:%SONG_ARTIST% - %SONG_TITLE%
Some builds put the tokens in the Output field instead of the URL. Then use URL http://<onairscreen-ip>:8010/ and Output cmd=NOW:%SONG_ARTIST% - %SONG_TITLE%.
Zetta must URL-encode spaces, &, and non-ASCII characters. If titles arrive truncated, check encoding in the HTTP options. Firewall: allow TCP 8010 to the OnAirScreen host.
A second Live Metadata entry can send the upcoming title as NEXT:… if your version exposes a next-item placeholder.
Option B — UDP (same pattern as RDS)
RDS encoders often take a custom string over UDP/TCP plus optional XSLT. OnAirScreen wants the same idea, on UDP 3310:
- Device: UDP
- IP address: OnAirScreen host (or
127.0.0.1) - Port: 3310
- Output (or XSLT result):
NOW:%SONG_ARTIST% - %SONG_TITLE%
If Output is empty, Zetta sends XML — OnAirScreen will ignore that. Use Output tokens or an XSLT on Zetta Lite that emits the NOW:… line (the same approach DEVA and other RDS setups use with DPSTEXT=…).
No HTTP encoding needed. Firewall: allow UDP 3310 to the OnAirScreen host.
Do not use TCP XML to OnAirScreen (SOUND4 / MetaRadio style). OnAirScreen has no TCP command listener.
Songs only, not spots
Otherwise commercials and jingles land in the footer. Restrict the export to songs in the XSLT (filter item type SONG), or only fire Live Metadata on song events if your version allows that.
Notes
- Replace IPs after 10s: After startup, NOW often shows IP addresses. The next
NOW:command overwrites that. If 10 seconds pass first and Replace is on, the replacement text (replacenowtext) appears instead. - WARN hides NOW and NEXT — with an active warning the title is missing even if it was set.
- Leave Output blank only when the receiver speaks Zetta XML. OnAirScreen does not.
- Questions: Contact