blog / 25 August 2025

creating self-hosted cable tv

home-automation

What was automated? Selecting what to watch.

How? Traditional television removes streaming choice paralysis. However, traditional channels do not offer the range of content that, for example, streaming providers do. QuasiTV solves this problem by presenting a media library in a TV schedule format (pictured). Although the media is not constantly playing—instead (as a guess) the content is started at a time from a pre-determined schedule when a channel is selected—this creates an effective illusion of live television.

quasitv main ui
quasitv main ui

API

QuasiTV also offers an API that can be used to automatically create channels and specify the content. A scheduled OpenFaaS function was created to periodically create/update the following channels:

  1. Premiere (Film): a channel showing unwatched films. While starting an unwatched film anywhere but at the start might seem counterintuitive, this is a homage to Sky’s Premiere Film Channel. New films are added on each update.
  1. Franchises (Film and TV): channels showing films from the same franchise, or related TV shows. As with the remaining channels described, these are all watched items. Franchise channels are based on Trakt liked lists to allow for automatic update (e.g. with the release of new media) and for backup. A separate function first creates collections from these lists in Plex (to also organise there), which are then, in turn, picked up for QuasitTV (pictured).
functions supporting collections channels
functions supporting collections channels
  1. Seasonal (Film): channels showing films appropriate to the current season (Valentines, Halloween and Christmas), if the current date falls within a certain window. The content for these channels is again grabbed from Trakt.

  2. Actors/Directors (Film): channels showing films from the same actor or director. Using Plex metadata, directors (actors) who have made (starred in) a number of films above a certain threshold are given ‘showcase’ channels, e.g. ‘Films by David Fincher’ or ‘Starring Colin Farrell’. This is randomised on each update.

  3. Genre (Film): channels showing films from the same genre. Although this is provided by default by QuasiTV, again using Plex metadata for these purposes provides finer-grained control. Each film’s lowest-ranked genre classification is used for grouping to ensure channels for popular genres (e.g. action) don’t have too much content (and thus certain media items are rarely played). In addition, if the number of films in a particular channel exceeds a certain cut-off value, additional versions of that channel are created (e.g. ‘Action One’ and ‘Action Two’) and media items are split equally between them.

  4. Long-running TV shows (TV): channels showing TV series in the current collection with more than one season, in an attempt to identify comfort shows.