google / sagetv

SageTV is a cross-platform networked DVR and media management system
http://forums.sagetv.com/
Apache License 2.0
267 stars 174 forks source link

Time for a V9 STV xml #343

Open jusjoken opened 7 years ago

jusjoken commented 7 years ago

Thought I would start the discussion on building a new V9 STV. Comments welcome. This is likely a lengthy project but perhaps it's time. Some first thoughts...

...add your own thoughts...

stuckless commented 7 years ago

I do like the idea of a modular stv that is composed of many xmls and loaded on demand. I'd be ok if guide was considered a "module" as well, since I can't remember the last time I actually used the sagetv guide :)

CraziFuzzy commented 7 years ago

I think there's a lot in the phoenix API that could be built a lot simpler if much of those things were from scratch. A lot of what the phoenix core used to do is not really needed anymore, since pretty much everything is available via clean API's now from the likes of tvdb and themoviedb, instead of the page scraping of old. I do think that fanart could be made a part of the standard database system.

Since we have access to the sagetv core, I'd think metadata and fanart lookups could be done much 'cleaner', even as part of the EPG lookup process. We could actually implement a system by which EPG data could be passed through a plugin on it's way to the database. This would allow guide data to automatically include the 'better' data from tvdb, for instance - if someone decides to install the 'tvdb lookup' plugin. I can see a number of metadata plugins that might be nice. A sports one that would generate match specific fanart from the team logos for instance. Having a routed plugin that could pass each program through each individual plugin in a ordered list could provide a lot of flexibility, without a lot of actual work in the core.

stuckless commented 7 years ago

@CraziFuzzy I get what you are saying regarding EPG, but, I really don't think we want to put in a blocking operation of looking up metadata during the passthrough the database. I can see triggering a metadata lookup, in an async manner, if you access an item from the EPG, but not during a write. My EPG probably has 1000s of shows and yet I only care about 20-30 of them, so doing lookups on 1000s is unnecessary, and would likely result in many failed attempts (we already get kicked from the site due to too many requests).

And I agree that the phoenix metadata/fanart can be simplified. It was designed to allow for multiple fanart and metadata sources and over the years it has supported imdb, dvdprofiler, mymovies, tvdb, themoviedb, and while tvdb and themoviedv remain, it's only because they were the most widely used. Even if I were to rewrite it, there would still be an abstraction layer that would allow tvdb or themoviedb to be used, but i would never depend directly on those. Phoenix also supports the notion that "fanart" can be anywhere (ie, central, local, or possibly in movie folders, etc). That could likely all go away, if we re-do how we store fanart and agree that it's going to be done only in a single way, forever.

Phoenix was intended to be a set of APIs where the implementations could vary. So even today, things like weather, fanart, metadata, and how we store and access fanart are all modular and be swapped in and out (and over the years, many of the implementations of those things have changed, while the APIs and interfaces remained the same).

Having written all this stuff once, i can say, it's not a trivial process to reinvent everything. So, we are left with a hard decision. do we re-invent it, or do we try to leverage something that exists. The problem with phoenix, like sagetv, is that it evolved over time, and there are things in there that are not done as well as it should be because it was bolted on. I think phoenix needs to be separated out into multiple jars, like, phoenix-core, phoenix-util, phoenix-menus, phoenix-weather, phoenix-vfs, phoenix-props, etc, where they could cherry picked and used as needed.

jusjoken commented 7 years ago

I look at the phoenix integration as a necessity as if i was to take on all the work for the things phoenix already provides, just to create a v9 STV, then i would likely not bother to start. Something like the menu system greatly simplifies the entire process and at the same time would reduce my learning curve as i have already become familiar. Other parts of phoenix could be changed over time and as stuckless states the fanart area could use some simplifying, but that can occur while a new UI is built as well as into the future...but adopting phoenix as being needed for the core STV is key for me or others would need to join in and replace those features into the core as the STV is written...but that is reinventing and i see enough work without that.

Ranger-Z commented 7 years ago

I will leave the architecture to those who know more than I, but do agree an improved modular design would be a better approach.

I am a big fan of the simple design of V7. Anyone who comes by has no issue using it. I would like to suggest that the default be similar in it's simplicity at the current default presentation level. (To me, Kodi is a nav nightmare.)

I would like to retain ALL the basic TV, Video, Music, Photos, Online capabilities, though I realize many would opt to not want to use them all (disable). The modular approach would allow those with interest focus on these individually.

Not clear on how one can function with no EPG, but then I prefer lists to all the fan art. To much scrolling for me. I personally think graphics are only useful if you recognize them. That said, bling sells, and you need to have it. I would still like to retain the old codger menu option.

Music is the big hole for me. I have over 1000 ripped CD's in FLAC (and other formats) done with dbPowerAmp (best music tool eva!). I do not want to leave Sage. There are lots of opportunities for improvement (airplay for me) but at least add a continuous play option to the current player. Happy with basic cover art as the display (I lied, I do like the older iTune's album flipper circa V10.7 for selection). I'm sure some would want lyrics.

I can see that organizing media is not black and white (no pun intended). TV can come from DVD or recordings, same for Movies, Music can come form Concert DVDs, CDs, downloads (DRM issues I'm sure) or Online Sources like Pandora and Spotify. So classification or attribute management probably needs to be available for all objects.

Hopefully what ever tech is used will also support not only playing media on portable devices, but support control from these (phones in particular). Maybe pushing it here.