This solution replaces the former Clip radio playback embed set up that has been live since Q2 2017 when the Clip embed replaced the internal LSAP/Triton solution on websites and Airkast Radio apps in the Apple and Google Play stores.

NOTE: This release does not affect any part of the mobile applications, as they will be reverted back to the Airkast platform sometime in Q3 of 2020.

Release Team

Design: Brandon Douglas / Markus Robinson

Development: Isaac Rivera (Lead), Lucy Udalykh, Fede Jacobi

Product: Amee Mola / Markus Robinson


The iOne uLSAP player is built via the following components:

Triton API for Live Stream

– Triton SDK (for audio ads + synced VAST ad display – 300×250 or 320X50)

– Triton Now Playing API (for song title and artist)

Links to Triton documentation here

Quu Now Playing API (album art currently not supported per license) as a backup for song title and artist

Link to Quu documentation here (none found)


> Player is located in the new iOne Triton Radio Player widget

> Located in the Single Post Below Header sidebar using Visibility = Listen Live Page

> There is a pos = top ad unit in the same sidebar, above the radio widget

> Radio Logo Art is located in the site Media Library; all image titles are the same “LSAP Radio Logo 2020” – it is not a dynamic image

Prototype Location:

– Currently uses WHTA (Hotspot ATL) as test property

– Captures streaming events to aid in troubleshooting issues (song data, sync ads, etc.)

– Pending update that will allow Product to change station to test per support tickets

Player Workflow

  • Upon page launch, the player taps the Triton Now Playing API to display current song and song title, it then hits the Quu API for corresponding album art. If there is no match, then station logo displays. In either case, the image in the background is a blown up version of the corresponding image item.
  • User clicks “Listen Live” and the Triton Live Stream API responds, “Listen Live” button transforms to stop button and mute/volume control.
  • Every new pageload should result in an audio preroll; this will not happen if the page refreshed or reloaded within “N” mins/hours/days? (Mike D. confirming this logic)
  • When there is no song data present (advertising or station break or DJ “discussion,” the player will display “Program” (Song Title) / “In Progress” (Artist)
  • When an audio ad in the Triton Live Stream API returns a VAST=”true” event, there should be a companion 300×250 ad that displays over the player for the duration of the matching ad. Not all audio ads will have a companion ad, they return VAST=”false.” This can be verified via the Chrome console developer tools or via the prototype link here. You can append “?station=WRNBFM” using desired station ID to troubleshoot individual stations.

Troubleshooting Guide

  • Any stream data or playback issue that is unique to the web player (our listen live page) needs to be investigated immediately.
  • Any stream data or playback issue that applies to only a station’s mobile app, needs to be investigated by Airkast and Streamteam.
  • Any stream data or playback issue that applies to both the app and the listen live webpage player needs to be escalated to Streamteam immediately.
  • “Buffering” means the player has ceased playback in an effort to get enough streaming data in memory to deliver uninterrupted playback; indicates user’s slow connection
  • Any “stream failure” messages come directly from Triton, not from our player. Below is a list of the messages that come from the player:

LIVE_PAUSE: ‘Stopped’,

LIVE_PLAYING: ‘Connected’,

LIVE_STOP: ‘Stopped’,

LIVE_FAILED: ‘Unavailable’,

LIVE_BUFFERING: ‘Buffering…’,

LIVE_CONNECTING: ‘Connecting…’,

LIVE_RECONNECTING: ‘Reconnecting…’,

STREAM_GEO_BLOCKED: ‘Unavailable in this location’,

STATION_NOT_FOUND: ‘Station not found’,

PLAY_NOT_ALLOWED: ‘Playback not allowed’,


Leave a Reply