djp952 / pvr.hdhomerundvr

Unofficial Kodi HDHomeRun DVR PVR Client
https://github.com/djp952/pvr.hdhomerundvr/wiki
Other
60 stars 9 forks source link

Future timers #45

Closed BGI-YYZ closed 5 years ago

BGI-YYZ commented 6 years ago

Is it possible to add a timer for a show that will be upcoming? Perhaps months from now? Or to find keywords that may not exist yet?

For instance, there is a show that we regularly watch, but it is on hiatus right now. If I try and add a timer, it does a search of the EPG and if there's nothing like it available, it rejects it. I'm not sure if it stored away somewhere for when a show matching those parameters shows up, but if it does, I can't find it anywhere.

Thanks for your hard work...I love the HDHomerun device, but, man, do I hate their DVR software.

djp952 commented 5 years ago

Ah yes the SD DVR quirks! In order to add a Recording Rule to the DVR engine it needs me to supply a value called a series id. These are values that come from SD's backend, like "C15942219ENR8LU". They provide a search API that I use if you try to add a series rule through Kodi to match a name to the series id. But, as you clearly know, that only goes out so far into the future and I worse I believe it's limited to just channels that you are subscribed to (at least I've seen no evidence to the contrary).

Without a series id that matches what they expect, the rule can't be added. I've never tried using an old series id to see if that might work, or find out where they come from. Theoretically if we could scrounge up a series id, perhaps if you still have existing recordings (** idea!) or if there was a known source to pull them from we could hook up an alternate search mechanism.

(** idea!) Would you happen to have recorded TV for that series still? I've never considered it until right now, but I could try to hook up some type of "if series is not found, check the user's recordings" fallback in the PVR. It could probably even be a fuzzy match on the title (as opposed to an exact match). It wouldn't solve the problem if there are no recordings around for that series, but I don't think it can hurt?

Let me know what you think, if that would be useful or just a dumb idea :) Other than that I think we'd have to ask SiliconDust to provide some new API that could search all series in existence and I'll bet you money that there are some restrictions on that with their guide provider(s) or they probably already would.

BGI-YYZ commented 5 years ago

I'm afraid I only just got into OTA TV using the HDHomeRun, so I don't have any old series ID's. Also, and I failed to mention it in my original post, that only works for existing shows. We often see ads for for some new show that is "Coming this January!" that we will inevitably forget about.

I am used to a PVR from my satellite provider and in that there was a section where you could input a keyword (whether title or description) and even if it didn't find it in the current EPG, it would keep it on file and when it came up, it would start recording it ("Coming this January!). Maybe there is a way to save searches and have Kodi search again every few days and if the keyword comes up, record it, if it doesn't, accept that it isn't available and try again next time.

I have no idea how you would implement this or if it's even possible.

BGI-YYZ commented 5 years ago

Further to the timers, I can't say I understand what is happening here. On the right Kodi says there are 5 timers, but on the left it says 8 are enabled. If I highlight the word Timers on the left, it doesn't go into anything like a menu or list. I kind of assumed that would be where the list of all timers would exist. 20181126_235201_hdr

djp952 commented 5 years ago

The way the Kodi timers work is a little weird when you try to apply that methodology to the HDHomeRun DVR. What I think you're seeing here (I don't know what skin that is?) is that there might be 8 "Timer Rules" in place, 5 of which have potentially scheduled recordings. The list of 5 timers are definitely individual timers, I can tell from the description.

It's (poorly) documented on the very out of date wiki, but I'll try to give you the short version here :)

HDHomeRun requires what they call a Recording Rule to record anything. There are a few types, the common ones being "Record Series" or "Record Once". These are always associated with a Series. After the recording rule is in place you can then query about the series to get information about the Episodes. In the Episode data there is a flag that indicates if the Episode matches a Recording Rule, meaning the DVR might** record it.

Taking all that into account, I translate the Recording Rules into Kodi "Timer Rules" and the flagged Episodes as Kodi "Timers". Until Leia there was some additional weirdness I won't get into, but they accepted my change so that got cleaned up. Anyway ... for every HDHomeRun Recording Rule you get a Timer Rule, and I'm guessing you have 8 of those. From those 8 rules 5 Episodes have been flagged as might record, so you get 5 Timers. The timers aren't even very accurate (see "might" below) but it's the best I can do with the data that is available.

** "might" because the flag just says "hey, this matches a rule" but it doesn't mean it will actually be recorded. The main reason the DVR will skip it is because it's already recorded it once. The backend does not filter this out for us :(

Does this make sense? It's a shame that we can't get the absolute list of what will and won't be recorded, but the API is intended for SD's HDHomeRun App UI as opposed to Kodi's UI and interpretation of Timers.

BGI-YYZ commented 5 years ago

Some of that went over my head, but it seems like what I was hoping for doesn't work. I did try HDHomeRun's version DVR for a little while and hated it. And forget about trying to show my wife how to use it.

Did a little research and came across yours which is just more logical and better laid out and is generally superior. Just this search for future shows thing that irks me (and probably you).

So, if I'm understanding things correctly, if there is a show I want to record all new episodes indefinitely into the future, I have to wait until the show arrives in my EPG and then I can set it up telling it to record all future new episodes and it will.

What is unknown, at least to me, is when the show goes on hiatus, does the timer freak out say "hey, this show isn't in the EPG, out it goes". Then it is up to me to monitor when the show is back and set up another timer.

Another problem that just popped into my head is if you can't edit timers or even see them, how do you stop it from recording a show you're no longer interested in?

Maybe I should be trying TVHeadend again. :smiley:

Oh, the Kodi skin is "Grid" - I've tried loads of them and always come back to it.

djp952 commented 5 years ago

So, if I'm understanding things correctly, if there is a show I want to record all new episodes indefinitely into the future, I have to wait until the show arrives in my EPG and then I can set it up telling it to record all future new episodes and it will.

As much as I'd like to disagree ... yup. Without knowing the magic Series ID there is no way to add the recording rule.

What is unknown, at least to me, is when the show goes on hiatus, does the timer freak out say "hey, this show isn't in the EPG, out it goes". Then it is up to me to monitor when the show is back and set up another timer.

In my experience so far (more than 2 years now with SD DVR - wow) ... maybe :) If the series maintains the same title, for example PBS's "Victoria" I've not run into a problem with it just picking up where it left off. If the title of the series changes the Series ID also seems to change. Best example I can come up with it my daughter's "Tangled Ever After" series. When Disney changed the title to "Rapunzel's Tangled Adventure" I had to add a new rule for it.

Another problem that just popped into my head is if you can't edit timers or even see them, how do you stop it from recording a show you're no longer interested in?

Excellent question. With the series rules, you basically can't. You are forced to rely upon SiliconDust's DVR logic to record what you want and have to live with manually deleting things you didn't actually want. With the "record once" rules you can actually delete them. Under Jarvis and Krypton, my PVR forces you to do that by deleting the Timer Rule in Kodi as opposed to the individual timer, but under Leia I was able to get some tweaks through that lets you do it with a right-click on the Timer. All versions should allow you to prevent a "record once" timer via an EPG right-click, it's just how it gets there that changed.

Maybe I should be trying TVHeadend again. 😃

I would love to be able to disagree, but if you want/need the fine-tuned scheduling granularity that the HDHomeRun DVR can't (currently?) provide, I actually agree with this! DVR/PVRs that handle everything themselves like TVHeadend are going to give you the utmost flexibility. My PVR pretty much needs you to buy into SiliconDust's vision. Coming from Windows Media Center myself, there were the standard five stages of grief, but once I bought into just letting the DVR do what it wants we honestly haven't had any problems. It's a bit wierd, but is apparently very very stable.

Oh, the Kodi skin is "Grid" - I've tried loads of them and always come back to it.

Thanks!! It looks cool, I'll have to try that one out!

djp952 commented 5 years ago

Marking issue as Closed due to inactivity. If SiliconDust ever provides the ability to do this, I promise to implement it -- it's something I would want too!! Please feel free to reopen this or add a new Issue if you have additional questions or concerns :) Thanks for trying my PVR, sorry it wasn't able to suit all of your needs my friend.