I have to have all the content on attached storage since I don't want to rely on online sources. But then of course the app is simply pulling up a file at a given time of the day and playing it with a media playback library in Python.
Unlike television when I was young, there are no commercials. Dead time is filled at random from lists of "shorts" that are kept on the hard drive as filler. (These in fact might include Looney Tunes cartoons or shorts, music videos, etc. scraped from YouTube.)
The schedule aspect means that there is a theme to the content and when it plays rather than just serving up random content from the drive. The Wednesday evening movie is always a western for example. Learning shows (courseware) and yoga in the morning, kid's shows around after-school time, a comedy series in the evening, mysteries on Mondays, etc.
The biggest shortcoming of the app is that I have no trial way to create the schedule short of a Mac OS app where you have to hand-add each show. When I get time I want to have a mechanism to specify "time slots" for content and have the app do an adequate job of preparing at least a stand-in schedule. (Maybe I'll finally get around to getting this going this Fall or Winter. I hesitate to even point out the repo since it is so half-baked, but if you check my GitHub and look for "UHF", you'll find the last checked-in versions.)
On any given day, I can load a web page I set up that shows today's schedule. Since the schedule that the app uses is just a JSON file, the web front-end just uses the same JSON file: parses to find today's content: