Skip to content

TVS 6.2.0 (2026-07-29)

Choose a tag to compare

@zshall zshall released this 29 Jul 22:15
9119814

Update Notes - 6.2.0 (2026-07-29)

image

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 deepIntegration section to the IFrame engine 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 capabilities property 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 loop engine 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.series property 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 use title to mean series and sub-title to mean the episode title. In movies however they use title to mean the movie title and might use sub-title to be a movie tagline or something else but series isn't used.