angrycamel.com

There's a crack in the interweb

Improving Live TV on XBMC (my way)

My challenge with live TV on XBMC is familiarity for the wife and friends. I would like to kick the rental habit for the Set Top Box (STB) but poor user experience in XBMC gets in the way.

I currently pay over $50 a month in STB rental fees to Verizon for their FiOS service. It’s about time that I execute on this half baked plug-pulling plan and get some real use out of the HDHomeRun I purchased a few months ago. Unfortunately for that goal, the user experience for live TV on XBMC is so drastically different that FiOS that my wife finds it difficult to navigate around. To be honest, it’s not just her. The lack of a consistent experience when navigating from one addon to another, back to the library, then back to programs to choose an addon tests the patience of even a dedicated XBMC like myself. I’ve become quite familiar with the FiOS STB interface and I enjoy it, I just don’t enjoy the high price tag that comes with it, so maybe I can use it as a model to build something better in XBMC.

In order to achieve a better user experience, I intend to mimic the STB experience as best I can through an XBMC addon. Rather than starting from scratch, I have been getting familiar with and making some mods to the great addon from Twinther called TV Guide. His addon provides a base with existing XMLTV parsing, Electronic Programing Guide (EPG) rendering, and stream url support.

My approach to accomplishing this is a bit different than what I’ve seen before. Instead of focusing on a MythTV like setup where a backend is recording shows on a schedule using a tuner, I would rather use the HDHomeRun for live TV only, then use SickBeard and CouchPotato as my recording services. Using these services, running on a local system, the addon interface can be setup in such a way as to present series management from SickBeard as if it were series management from a FiOS DVR. The same would go for managing a recording of an upcoming movie on any given movie channel; just select the moving in the EPG and choose add to CouchPotato. The benefit with this approach is that the EPG becomes a discovery mechanism for content that can be immediately accessible (after a brief download period) from a DVR like interface, completely free of commercials.

Let’s take a look at how FiOS handles scheduling a series to be recorded in their DVR:

That was all accessible from the EPG by selecting an episode currently playing or in the guide for the future then hitting the record button. From there are options to “Tune to Channel”, “Record Episode”, “Record Series”, “Record Series with Options”, “Set Reminder”, and view “Upcoming Shows”. Selecting “Record Series with Options” brings up the above modal dialog to set the series recording attributes and once you select save, the newest episodes will just appear on your DVR with the newest at the top. This process could easily be imitated when setting a new show up in SickBeard from the EPG in the TV Guide addon. Presenting the latest shows with the newest at the top just like a DVR could be done by accessing the XBMC library by date as well.

The key is allowing the user to run the TV Guide addon and then stay there for all consumption of TV whether it be “recorded” stuff on the “DVR” (AKA: media downloaded by SickBeard or CouchPotato on a network PC then automatically updated in the XBMC library) or live TV from the EPG.

I’ve started working on this already and have made some progress getting the foundation in. Check out my TV Guide fork on Github. The following details the functionality introduced in the first commit:

Added support for categories as found in the XMLTV data, lookups and storage of additional meta data such as the TVDBId, TMDBId, season and episode
Added a TVDB library
Added a TMDB library
Added a SickBeard library
Added a CouchPotato library
Added columns to the programs table in the sqlite database to capture seriesId (tvdb), movieId (imdb), episode and season numbers, new flag, category.
Removed all of the test code sent yesterday that was replacing the behavior of a button
Added loading of the new program database columns when those database rows for each program in the source are inserted. (no matter the source type XMLTV, YOUSEE, etc, all will be able to use these features so long as the source parser is updated to pull the information from somewhere in the source data)
Enhanced the XMLTV parser to load the new program attributes (columns) listed above from the XMLTV data combined with additional sources such as TVDB & TMDB
Modified the epg viewer code to apply a color to the program based upon it’s category (dark green = sports, light green = news, red = movies, orange = kids). This actually mirrors verizon fios color coding.
The icons for each program in the EPG were swapped out while changing the category colors to use a vertical gradient instead of a horizontal one (stretches better horizontally, and again, matches the verizon fios interface)
Added “Record with SickBeard” option in the menu for a program. It will add the show to sickbeard with all prior episodes set to “skipped’
Added an icon to the info panel on the EPG view for showing the sickbeard logo when the show is managed by sickbeard
Added settings pages for each of the new libraries to configure the baseurl’s, api keys, and enable flag


Categorised as: DVR, fios, HDHomerun Prime, Programming, python, Television, TV, WAF, XBMC


Leave a Reply