Thomas's Site
May 7, 2023

TV Watcher

Combining live TV from different sources into one interface


Having seen the rise of many different live TV providers (e.g. Plex, BBC iPlayer, Pluto TV), and the user experience nightmare which happens when trying to find a specific TV channel, I decided to create a project which would simplify all of these providers into one interface. TV Watcher is an app which has the flexibility for adding custom sources and channel listings, whilst also having the ability to provide a unified experience, allowing everything to be viewed using VLC media player (or any similar app).


Architecture & Coding

The main portions of the project are coded using TypeScript, giving some of the benefits of static typing whilst also allowing the flexibility of avoiding this when required. This is especially useful for the plugin system, which allows users to add their own sources from different websites or locations, with the program automatically understanding which channel is which using details from the IPTV Database (available on GitHub). Connectors for TVHeadEnd and Plex were also created using JavaScript, interfacing using HTTP to allow other people (or other programming languages) to have an easier experience when extending the features. The system also features a custom Ffmpeg-based Pipeline system, where multiple filters or operations can be chained together dynamically just using TypeScript - no command line interfacing required.