TVS and Television Simulator.svg

Version 2.0 public beta

Zach Hall, 2017-2024

Credits, Thanks, Acknowledgements, Licenses

<aside> 🚧 While I strive to keep this documentation up to date with what has been done, not everything implemented is documented and not everything documented is implemented. If you see a discrepancy, report it!

</aside>

Television Simulator '99 is a web-based media frontend that simulates an analog TV, tuner, receiver and cable headend.

This new version of Television Simulator is designed to be more extensible, realistic and simpler to customize than the previous version. The biggest change in this new version is the new channel system and content engines. Rather than being the only channel, the program guide is one of many possible channels you can define in the config.tvs.yml file. There are content engines for the following:

Test Patterns

Static images

Slideshows

Videos (from files, HLS, and YouTube)

Program Guides

Weather

Audio Visualizations

Background Audio

YouTube Playlists

IFrames

Keno

Video Games

Alternate OSDs including cable boxes

Basic Text

Line Input (TODO)

Layouts

And you can add your own easily! Television Simulator 2.0 is built with SvelteKit, TailwindCSS, YAML and many other modern tools this time around, simplifying and speeding the development experience. Give it a try!

Examples

Tutorials

Live Channel Research Center

Distributions

The official distributions of Television Simulator are available from the project’s GitHub repository and its public demo website. This documentation site only covers the official distributions. Anyone can fork the project so what you see on someone else’s version may not be compatible with the official version.

Docker Image

Standalone Version (Electron)

Static Website

Compatibility

As of publication, Baseline 2023 web features are observed. If you’re using an out of date browser you may encounter problems. I’m using Chromium 122 at the moment. I have not tested on Firefox. For the best user experience, you’ll likely need to change permission settings to allow autoplaying audio and video. Since the project is designed around flipping through channels, clicking a play button would make it less enjoyable, therefore autoplay is essential.

I’m working on an Electron-powered build that allows for features that aren’t easily available in Chromium browsers without changing settings or launching with flags. Specifically, opening configuration or media files from your local filesystem instead of needing to serve them through a web browser and starting the app without automatically muting.

Without modifying any browser settings, the simulator starts off muted and you must press M to unmute, which hopefully will meet the browser’s threshold for interaction to allow videos and audio to play. Similarly, you must press R to initiate a remote connection which is a key-press.

If you install the app as a web app using Chromium’s “Create Desktop Shortcut” feature, this should also instruct it to allow autoplaying video and audio. I’m hoping to create an offline version in the future with an Electron shell or something similar to completely eliminate problems caused by standard browser limitations.