TVS 6.2.0 (2026-07-29)
Update Notes - 6.2.0 (2026-07-29)
This week's update expands the power of community IFrame plugins by adding multiple new capabilities to the TVS IFrame API.
✨ New Features
- Added a new
deepIntegrationsection to theIFrameengine that will allow configuration file authors the ability to grant permission to IFrames to access different APIs. For security, IFrames can't access these new APIs unless your config file allows it since they allow the IFrame to control TVS and read its data. - Added a new
capabilitiesproperty in the IFrame API that tells the IFrame which APIs the config file has given it access to, so if an IFrame doesn't have all the permissions it can take advantage of it can either fall back gracefully or display an error asking for more permissions if it needs them. - Added a Channel Info API which allows IFrames to query listing data for all channels or the current channel and also to get a number of current or upcoming programs. This allows for plugins like a dynamic "coming up next" animation or a 3rd party program guide.
- Added a Termination API which allows for the IFrame to signal to TVS that it's done and that we should advance to the next content if we're running in a
loopengine or some other context that supports dynamic scheduled content. - Added two new example plugins: Listings API example and Up Next API example. You can study the source code of these and use 'em as a template to make your own plugins. The code of each is a single HTML file with no external library dependencies so you can view the source code easily.
- number: 48
abbr: UPNEXT
loop:
- iframe: # This is an example of a plugin that uses the channel info API to display which listings are up next for the current channel. The plugin is hosted on a separate server and is loaded into the TV using an IFrame.
src: https://gcpw.art/tvs/engines/up-next
deepIntegration:
channelInfo: current-channel # The plugin will receive updates whenever the current content changes and can request listing info for the current channel.
canRequestTermination: true # You can grant permission for the plugin to signal that it's done and the loop should advance to the next content. The IFrame plugin must support this or it'll have no effect.
- image: placeholders/random-placeholder.jpg
duration: 10
- number: 49
abbr: UPNEXT2
iframe: # This is an example of a plugin that uses the channel info API to display program listings for different channels. The plugin is hosted on a separate server and is loaded into the TV using an IFrame.
src: https://gcpw.art/tvs/engines/listings
options:
channelRange: # You can pass in options to the plugin to control how it behaves; take a look at the source code of the IFrame for how we receive and use them.
min: 1
max: 5
deepIntegration:
channelInfo: all-channels # The plugin will receive updates whenever the current content changes and can request listing info for all channels.🔧 Bug Fixes
- Fixed bug in bulletin editor where placeholder text was showing up in the data tab rather than the data we were trying to preview.
⚙️ Other Changes
- For those participating in the Television Simulator Studio alpha I've made some breaking changes regarding how guide data is delivered: the
info.seriesproperty has been removed and in its place we've added a new property:info.subtitle. This is because in XMLTV and other systems, TV Shows usetitleto meanseriesandsub-titleto mean the episode title. In movies however they usetitleto mean the movie title and might usesub-titleto be a movie tagline or something else but series isn't used.