Jump to content

Show Intro Skip Option


Liquidfire88

Recommended Posts

rbjtech
14 minutes ago, Micael456 said:

Yeah, we discussed specials a while back. @chef, I thought the plan was to compare specials / one-offs with an existing season until there was a match? Is this still in the pipeline? :)

There are two kinds of specials - ones which have season/episode info in them (in the 'Special Episode' Metadata) and those that are 'stand alone'.  I think for ones that have season data (ie if you select the option, they appear in the relevant 'season' - Holiday Episodes for example) then those can just use the already derived Intro sequence for that Season ?  For the 'stand alone' type specials - then I'm not sure as technically we have nothing to compare them against - they may have the Intro, they may not.  My personal view is we ignore these (for the time being) - you can always manually add it for those exceptions.

I'll add to the 'to do' list.. 👍

Link to comment
Share on other sites

rbjtech

Latest 'ToDo' and updates below - Please let me know if I've missed anything.

 

# Item Description Stage Latest Update Needs Core Updates ? ETA
1 FingerPrint(Chroma) Creates a template based on a percentage of the Audio runtime. Ready More efficient use of dB but good enough for release when used with scheduler No Complete
2 Detection Detects the 'repeating Audio' vs other episodes and calculates the IntroStart and IntroEnd Ready Possibly more accuracy but certainly good enough at the moment with 90-95% No Complete
3 Schedule Due to the Detection needing the FP database, a schedule needs to be run to ensure the data is available. In Progress Working now but needs manual config No ~ 1 Week
4 Scaling Depending on library size, these tasks can take days, even weeks - so it's important it's broken into manageable chunks. In Progress Needs more testing on low powered NAS devices No ~ 1 Week
5 Manual Skip The IntroStart/IntroEnd can be added into the existing chapter points without needing Core development work In Progress   No ~ 2 Weeks
6 IntroSkip - Manual Detection of an 'IntroStart/IntroEnd (in emby Chapters?) should bring a 'Skip Intro?' button to the front of the playback screen. Design   Yes ?
7 IntroSkip - Auto Assuming accuracy is good enough, then #6 could also be automatic if given the option. Concept   Yes ?
8 Community dB A community dB of existing IntroStart/End points Concept   No ?
9 Specials Handling of Special Episodes - both In Season and Out of Season Concept   No

?

 

  • Like 1
Link to comment
Share on other sites

rbjtech
11 hours ago, chef said:

That is why I originally thought we had to push chapters ahead by the duration of the title sequence. We might lose a chapter at the end of the stream, but we gained an intro chapter.  I wasn't sure. 

My thoughts are we just gain an 'Intro' chapter - either at the start or after chapter 1 (most liklely).  The chapters after retain their settings, but chapter 2 get's modified for the start of it to be directly after the Intro chapter.  This is what has been discussed here - chapters/times should not be moved.

Lets take an example - this one already has the IntroEnd effectively marked (as many do).

Chapter 1                             : :00:00:00.000
Chapter 2                             : :00:05:13.800
Chapter 3                              : :00:17:27.880
Chapter 4                              : :00:25:27.800
Chapter 5                              : :00:34:35.920
Chapter 6                              : :00:43:28.240
Chapter 7                              : :00:57:20.440

IntroSkip has picked this Intro to be from 03:49 to 05:13

Chapter 1                             : :00:00:00.000

Intro                                      : : 00:03:49.000
Chapter 2                             : :00:05:13.800
Chapter 3                              : :00:17:27.880
Chapter 4                              : :00:25:27.800
Chapter 5                              : :00:34:35.920
Chapter 6                              : :00:43:28.240
Chapter 7                              : :00:57:20.440

So this is a case of just inserting the Intro - No other modifications are necessary.  If you skip to next chapter when the Intro starts, you get to Chapter 2 - nothing is missed.  Do you need the Intro chapter if doing manually - no you don't, but emby will if it needs to bring up the 'Intro Skip' button.

Now lets assume this episode did not have defined chapters - and used the standard emby chapter points.

Chapter 1                             : :00:00:00
Chapter 2                             : :00:05:00
Chapter 3                              : :00:10:00
Chapter 4                              : :00:15:00
Chapter 5                              : :00:20:00
Chapter 6                              : :00:25:00
Chapter 7                              : :00:30:00

If we now insert the same Intro chapter point - we have an issue because we already have Chapter 2 @ 05:00

Chapter 1                             : :00:00:00

Intro                                      : : 00:03:49.000 (to 05:13)
Chapter 2                             : :00:05:00
Chapter 3                              : :00:10:00
Chapter 4                              : :00:15:00
Chapter 5                              : :00:20:00
Chapter 6                              : :00:25:00
Chapter 7                              : :00:30:00

My view is you simply change Chapter 2 - to start @ 05:13.  No other changes need to happen ?

Chapter 1                             : :00:00:00

Intro                                      : : 00:03:49.000
Chapter 2                             : :00:05:13
Chapter 3                              : :00:10:00
Chapter 4                              : :00:15:00
Chapter 5                              : :00:20:00
Chapter 6                              : :00:25:00
Chapter 7                              : :00:30:00

It doesn't matter where Intro is 'inserted' - you just change the next chapter start time (effectively shortening the chapter as required).

 

Edited by rbjtech
  • Agree 2
Link to comment
Share on other sites

Cheesegeezer
13 minutes ago, rbjtech said:

If we now insert the same Intro chapter point - we have an issue because we already have Chapter 2 @ 05:00

Chapter 1                             : :00:00:00

Intro                                      : : 00:03:49.000 (to 05:13)
Chapter 2                             : :00:05:00
Chapter 3                              : :00:10:00
Chapter 4                              : :00:15:00
Chapter 5                              : :00:20:00
Chapter 6                              : :00:25:00
Chapter 7                              : :00:30:00

My view is you simply change Chapter 2 - to start @ 05:13.  No other changes need to happen ?

It doesn't matter where Intro is 'inserted' - you just change (shorten) the next chapter start time (effectively by the Intro duration).

 

This is where the real issue lies but I think it's fairly easy to append the next chapter start time.

  • Agree 2
Link to comment
Share on other sites

Cheesegeezer

@chef I'm currently working on implementing the chapters side of it now.  However i'm a bit lost in your code, where does the item id or name pass to the Chapter Edit.  The execute code in the ChapterEditSheduleTask Class simply states "40" as the long id.

I will organise it so it works as intended but the task is consistently failing at the moment.

  • Like 1
Link to comment
Share on other sites

37 minutes ago, Cheesegeezer said:

@chef I'm currently working on implementing the chapters side of it now.  However i'm a bit lost in your code, where does the item id or name pass to the Chapter Edit.  The execute code in the ChapterEditSheduleTask Class simply states "40" as the long id.

I will organise it so it works as intended but the task is consistently failing at the moment.

Yeah, that was a quick and dirty test.  I hardcoded the internalId for testing.

40 is an episode in my library.

It can be replaced by some kind of query and loop over baseItems.

 

😂

 

You can use the Repository with  GetResult(InternalId)

But it expects string, not long. So there is always a ToString() coercion. 🙃

Edited by chef
  • Like 1
Link to comment
Share on other sites

Cheesegeezer
16 minutes ago, chef said:

Yeah, that was a quick and dirty test.  I hardcoded the internalId for testing.

40 is an episode in my library.

It can be replaced by some kind of query and loop over baseItems.

 

😂

 

You can use the Repository with a TitleSequenceQuery to grab by internalId (GetResult)

But it expects string, not long. So there is always a ToString() coercion. 🙃

Gotcha, I'm just adding in some code to get the episode id's now.  There is a lot of code to get thru to know a good entry point lol.  But i'll try out the quick and dirty method first lol :S

  • Thanks 1
Link to comment
Share on other sites

Actually, I think it would be better, if we switched the ToString inside the GetResult method. I bet it would follow solid principals more.

 

I wrote a query limit last night for the two tasks.

That will make it easier for people to join in the fun.

Ive been working as an institutional chef recently, and pureeing all that food keeps me working late.  😳 I'll update the git this morning.

 

 

  • Like 1
Link to comment
Share on other sites

Cheesegeezer
2 minutes ago, chef said:

Actually, I think it would be better, if we switched the ToString inside the GetResult method. I bet it would follow solid principals more.

 

I wrote a query limit last night for the two tasks.

That will make it easier for people to join in the fun.

Ive been working as an institutional chef recently, and pureeing all that food keeps me working late.  😳 I'll update the git this morning.

 

 

 

Sounds good fella :D 

  • Haha 1
Link to comment
Share on other sites

rbjtech
58 minutes ago, chef said:

I wrote a query limit last night for the two tasks.

Sounds great @chef

I currently use another instance of emby and then use a library made up of a limited number (5) symlinks to my main media storage.

If we can query based on number of 'shows' - then this would be fantastic to get the numbers up for testing 👍 

  • Like 1
Link to comment
Share on other sites

Cheesegeezer

I have an issue with westworld season 1 on my test laptop.  This is the only season i have on it and always comes up the same after several rescans.  2 episodes are always incorrect.

What do you need from me.  The log doesn't say much.

image.thumb.png.cb2366766f894a053d10931def284098.png

Link to comment
Share on other sites

crusher11

So fingerprinting took a few hours. Not sure exactly how long. But it completed overnight.

Intro detection got to 25% after a few hours, I manually stopped it briefly, dropped the parallel thing to two, then resumed it, and several more hours later the second run is at 29%. So it's looking like it's going to take multiple days?

  • Thanks 1
Link to comment
Share on other sites

rbjtech
19 minutes ago, Cheesegeezer said:

I have an issue with westworld season 1 on my test laptop.  This is the only season i have on it and always comes up the same after several rescans.  2 episodes are always incorrect.

What do you need from me.  The log doesn't say much.

image.thumb.png.cb2366766f894a053d10931def284098.png

Let me try and reproduce this.

Link to comment
Share on other sites

rbjtech
18 minutes ago, rbjtech said:

Let me try and reproduce this.

Hmm - I can't reproduce this - all my S1 have the intro @ 01:41 ..

Did you check the actual episodes - 2 & 6 I believe ?

west2.PNG.41c380fa7f3f74aba41502ceccfe217b.PNG

 

west.PNG.3c6417a523e9c8718f213be412737abd.PNG

Edited by rbjtech
Link to comment
Share on other sites

rbjtech

btw @chef - low on the priority list - but can you change the Detect log message to be consistent with the FP ones - then it's much easier to filter in my log app with resorting to complex RegEx ! ..  Thanks :)

  • Like 1
Link to comment
Share on other sites

v2.0.2.9

  • Added Limit Testing
  • Series Query now sorts the data by 'SortName' to ensure we grab the same series for both tasks while the limit is enabled.
  • Default MaxDegreeOfParalellism is changed to: 2 (this can be maxed out at 20 for really badass systems, most PC's with a decent CPU can handle at least 4 to 5)

 

How to enable Limit Testing for series:

  1. Find' IntroSkip.xml'  - Found: "Emby-Server/programdata/plugins/configurations/IntroSkip.xml"
  2. If it exists from testing prior releases, delete it, and restart the server.
  3. Open the xml file
  4. find the following xml node:
    <Limit xsi:nil="true" />

     

  5. Replace with:
    <Limit>4</Limit>

    Where 4 is the amount of series you would like to test the plugin on. This number can be what ever you want it to be.

  6. Save the xml

  7. Restart the server

How to remove the Limit:

  1. Find' IntroSkip.xml'  - Found: "Emby-Server/programdata/plugins/configurations/IntroSkip.xml"
  2. Open the xml file
  3. find the Limit node you created during limit testing.
  4. Remove the node
  5. add this in its place:
    <Limit xsi:nil="true" />

     

  6. Save the xml

  7. Restart the server

IntroSkip_v2.0.2.9.zip

 

  • Like 1
Link to comment
Share on other sites

Cheesegeezer
7 minutes ago, rbjtech said:

Hmm - I can't reproduce this - all my S1 have the intro @ 01:41 ..

Did you check the actual episodes - 2 & 6 I believe ?

west2.PNG.41c380fa7f3f74aba41502ceccfe217b.PNG

 

west.PNG.3c6417a523e9c8718f213be412737abd.PNG

Yeah I physically checked it, I'll show you some screenshots in a sec after running the chapter tool, and you can see that the screen at the end is very different.

Link to comment
Share on other sites

rbjtech

While checking S2 & S3 - I did notice some Intro were after the 10mins we discussed earlier.  Looks to have picked them up ok though ?

west3.PNG.2c9bd02d9c792d05ac30f1486126fa10.PNG

west4.PNG.03b6f74507e2ea2d99fc17701a353ebb.PNG

Link to comment
Share on other sites

1 hour ago, crusher11 said:

So fingerprinting took a few hours. Not sure exactly how long. But it completed overnight.

Intro detection got to 25% after a few hours, I manually stopped it briefly, dropped the parallel thing to two, then resumed it, and several more hours later the second run is at 29%. So it's looking like it's going to take multiple days?

This is possible. Each block of percentage in the slider will be a series completed.

If you are doing 2 at once, it may sit at 29% for a while, then jump to 35-40%.

 

Link to comment
Share on other sites

Cheesegeezer
1 minute ago, rbjtech said:

While checking S2 & S3 - I did notice some Intro were after the 10mins we discussed earlier.  Looks to have picked them up ok though ?

west3.PNG.2c9bd02d9c792d05ac30f1486126fa10.PNG

west4.PNG.03b6f74507e2ea2d99fc17701a353ebb.PNG

This looks like a good season to test all the chapter logic on then!!

  • Agree 1
Link to comment
Share on other sites

57 minutes ago, Cheesegeezer said:

Yeah I physically checked it, I'll show you some screenshots in a sec after running the chapter tool, and you can see that the screen at the end is very different.

Yeah, I wouldn't automatically assume anything when  it comes to the data.

We shouldn't automatically mess with peoples chapters. 

They need time to edit the results in the UI table. 

We'll have a button in the UI they can press if they are satisfied with the results we are producing, and that will edit chapters for them.

 

  • Agree 1
Link to comment
Share on other sites

55 minutes ago, Cheesegeezer said:

This looks like a good season to test all the chapter logic on then!!

Where is the actual intro start on that episode? Did we get any of it right? the end?

Edited by chef
Link to comment
Share on other sites

rbjtech
2 minutes ago, Cheesegeezer said:

This looks like a good season to test all the chapter logic on then!!

Yep - because 12:13 takes it in-between Chapter 3 (10:00) and 4 (15:00) ... :( 

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...