Jump to content

ComSkipper ... A Emby Plugin that skips commercials


Recommended Posts

BillOatman
Posted
2 hours ago, Spaceboy said:

hey @BillOatman - i assume i'm being overoptimistic here but i thought i would ask anyway. is there any way to include the time that has been skipped in the on screen pop up? detection is actually pretty good for me, although i need to work out a way to only use it on certain channels as i'm occasionally getting false positives on a channel that has no commercial breaks, but i thought this might be helpful for those times where it is wrong. the user could quickly consult the on screen time skipped and navigate manually back. cheers

Yeah I could probably add that and make it an option.  Like "Commercial Skipped (20 sec)" or something like that.

  • Like 2
  • Thanks 1
Posted
On 12/22/2022 at 12:47 PM, crusher11 said:

realpath: ‘./Bad Tales/Bad Tales 2022_11_28_18_30_00.ts’: No such file or directory

That is simply a file access error ether the file doesn’t exist or the calling user doesn’t have permissions to it, since it was working before and your running beta versions you really should take this problem to the beta forum.

Posted (edited)
9 hours ago, Spaceboy said:

i need to work out a way to only use it on certain channels

You can pass the channel # to a script and have it decide if comskip should be run or not. If your using post processing you can add {channelname} {channelnumber} to the ‘Post-processor command line arguments:’. If your using scripter-x then add %recording.channel.number%. I’m doing something similar to run comskip differently for channel # over 99 (ATSC 3.0).

Edited by TMCsw
crusher11
Posted
3 hours ago, TMCsw said:

That is simply a file access error ether the file doesn’t exist or the calling user doesn’t have permissions to it, since it was working before and your running beta versions you really should take this problem to the beta forum.

But as I said, the error is occurring in Putty while the script runs fine in Emby, and the script isn't part of Emby itself.

BillOatman
Posted (edited)
On 12/23/2022 at 10:31 AM, Spaceboy said:

hey @BillOatman - i assume i'm being overoptimistic here but i thought i would ask anyway. is there any way to include the time that has been skipped in the on screen pop up? detection is actually pretty good for me, although i need to work out a way to only use it on certain channels as i'm occasionally getting false positives on a channel that has no commercial breaks, but i thought this might be helpful for those times where it is wrong. the user could quickly consult the on screen time skipped and navigate manually back. cheers

Just released.  Link in first post. Clear your browser cache since there is a UI change.

Edited by BillOatman
  • Like 1
  • Thanks 1
Posted
23 hours ago, TMCsw said:

You can pass the channel # to a script and have it decide if comskip should be run or not. If your using post processing you can add {channelname} {channelnumber} to the ‘Post-processor command line arguments:’. If your using scripter-x then add %recording.channel.number%. I’m doing something similar to run comskip differently for channel # over 99 (ATSC 3.0).

Love to get some more details on this.

Posted (edited)
6 hours ago, BillOatman said:

Just released.  Link in first post. Clear your browser cache since there is a UI change.

Nice release Bill. Maybe upgrade instructions to the PDF (sorry if I missed them)?

Did you want me to create a full Linux PDF to include?

Edited by vdrover
BillOatman
Posted
3 hours ago, vdrover said:

Did you want me to create a full Linux PDF to include?

If you wanted to create one I'd certainly include it!

Posted (edited)

Is there any way to get comskip to look at previous recording and make edl file.  When I used comskip as a post processing app it made 3 files and text files and the comskipper wouldn't work.  Any ideas on why that was.  Now mcBuddy only produces edl files when it wants to.  This is all on a windows machine. Any help is much appreciated.1858500821_Screenshot2022-12-26161215.png.bfea4677aeaf07458114b6f58cfd37c5.png

The system info is from emby. As you all can see it makes the edl file with a bunch extra, and when a file is deleted that has been watched it will delete the ts file and the edl file but not the others.

Edited by Dont1982
BillOatman
Posted (edited)
17 hours ago, Dont1982 said:

Is there any way to get comskip to look at previous recording and make edl file.  When I used comskip as a post processing app it made 3 files and text files and the comskipper wouldn't work.  Any ideas on why that was.  Now mcBuddy only produces edl files when it wants to.  This is all on a windows machine. Any help is much appreciated.1858500821_Screenshot2022-12-26161215.png.bfea4677aeaf07458114b6f58cfd37c5.png

The system info is from emby. As you all can see it makes the edl file with a bunch extra, and when a file is deleted that has been watched it will delete the ts file and the edl file but not the others.

To generate edl files for older recordings  you would run comskip manually using the same parameters as you have set in the post processing.

The extra files are likely from comskip, logs etc. I cant see what these are because you aren't showing extensions for "common" file types. The files comskip creates can be controlled in the comskip ini file.

As to comskipper not working, if you look at the emby log you should see why it didn't skip.  Some Emby clients don't allow skipping and you would see that in the log.  If you can't figure it out from the log, turn on debug logging and get another log and send that log file to me.

Edited by BillOatman
Posted (edited)
On 12/24/2022 at 6:53 PM, vdrover said:
On 12/23/2022 at 7:12 PM, TMCsw said:

I’m doing something similar to run comskip differently for channel # over 99 (ATSC 3.0).

Love to get some more details on this.

Sure, sorry for the delay... ...got lazy

I actually abandoned this because I found a better way to do what i want to...

I do this  because I don’t like the results from running comskip live while I’m watching but I do want the results as soon as the program finishes recording…

So I was/am still using the scripter-x event “onLiveRecordingStart” but differently, my old way was to use the [parameters] "%recording.path%" “%recording.channel.number%" "%recording.date.end%" "%recording.postpadsecs%", the new way just uses "%recording.path%"

This clipped from 2 slightly different and more complex scripts (so there cold be some eerors)

Common to both:

#!/bin/bash

# set comskip and ini to use
CskipCMD='/bin/comskip'
CskipINI='/emby/comskip-1_live.ini'

# slpit file name param # 1 
  #  get name.ext                                                                                                       
  NameExt="${1##*/}"        
  #  get .ext
  Ext="${NameExt##*.}"
  #  get name
  Name="${NameExt%.*}"
  #  get full path
  Path=$(realpath -s "${1}")
  Path="${Path%/*}"
# (not all of this is necessary left in just fyi) 

# create a empty edl so comSkipper knows it’s a live recording
touch "${Path}/${Name}”.edl

Next the old way used the times info passed to the script to delay the start of comskip until it is 90% complete. NOT used in new way.

Delay code not shown here although you can ask for it.

Next in the old way use the channel # to determine if it ATSC 3.0 or not and changes the # of threads comskip will use (1 for ATSC 1.0 or 3 for ATSC 3.0) because it takes more cpu time for the latter to complete (the #’s used make it complete a few seconds after the recording is done, well works for my machine anyway).

# channel is param # 2 check for it’s existence if true=get the integer part(decimal portion is not needed and native bash doesn’t like them)  false=set to 0
[ "${2}" ] && cno="${2%.*}" || cno=0
[ "${cno}" -gt "99" ] && CskipPARAM=’--threads=3’ || CskipPARAM=’--threads=1’

# run comskip
"${CskipCMD}" ${CskipPARAM} --ini="${CskipINI}" "${Path}/${NameExt}"

For my new way I don’t need the channel # as comskip starts when the recording starts but the edl is placed in a separate directory by using the optional trailing [<file>] (see cmdline: comskip –help). Then when complete it is moved to the recording directory. I use the parent folder because it is always accessible to emby.

# run comskip
"${CskipCMD}" --threads=1 --ini="${CkipINI}" "${Path}/${NameExt}" "${Path%/*}"
# replace the original edl ‘touched file’ while presrving it’s original ‘stats’
cat "${Path%/*}/${Name}".edl >> "${Path}/${Name}".edl                                                                                                         
rm "${Path%/*}/${Name}".edl

does this make any sense?

Edited by TMCsw
typo's more?
  • Agree 1
Spaceboy
Posted
On 24/12/2022 at 17:51, BillOatman said:

Just released.  Link in first post. Clear your browser cache since there is a UI change.

works great thanks! only thing is, i wonder if having a mm-ss format (if possible) might be quicker to mentally convert to button presses? cheers

BillOatman
Posted
17 minutes ago, Spaceboy said:

works great thanks! only thing is, i wonder if having a mm-ss format (if possible) might be quicker to mentally convert to button presses? cheers

Seems like skip times are in seconds so more straightforward as seconds, right?

image.png.7ec5151ede89dba52c4087ba12c1143f.png

Spaceboy
Posted
10 hours ago, BillOatman said:

Seems like skip times are in seconds so more straightforward as seconds, right?

image.png.7ec5151ede89dba52c4087ba12c1143f.png

i was going to add i could go either way on this - but my initial thought was that it would be easier to convert 3m48s into button presses (knowing each button press is 30s) than 228s. using that as it was the first example i saw being returned by the plugin. but i'm not sure either way

crusher11
Posted

If you use 10s increments, having it in seconds is easier. If you use 20 or 30s increments, minutes and seconds is probably easier.

Spaceboy
Posted

ok - just throwing out ideas so feel free to say theyre stupid or don't work. rather than showing the time skipped, how about showing the time when the skip initiated. as you skip back the timeline is shown so perhaps this is more helpful rather than requiring the user to do some maths?

BillOatman
Posted
1 hour ago, Spaceboy said:

ok - just throwing out ideas so feel free to say theyre stupid or don't work. rather than showing the time skipped, how about showing the time when the skip initiated. as you skip back the timeline is shown so perhaps this is more helpful rather than requiring the user to do some maths?

There are no stupid ideas :)  The plugin would need to monitor or at least figure out the time parameters for everything being played.  That's a bit above and beyond what this plugin is for.  But it is open source if someone wants it bad enough.

  • Like 1
Posted

Bill, is it possible to specify the display time for the notification? The default is a bit too quick :)

Also, Minutes and seconds would be nice vs. "204 seconds" for example. What do you think?

BillOatman
Posted
5 minutes ago, vdrover said:

Bill, is it possible to specify the display time for the notification? The default is a bit too quick :)

Also, Minutes and seconds would be nice vs. "204 seconds" for example. What do you think?

Well heck, seems to be 3 against 1 on the format so I'll change it to minutes:seconds :)

Also I can make the display duration configurable.

BillOatman
Posted (edited)

All set, everything is in Git.  Link in first post.

Version 1.6.0.0 - Allows configuration of time message is displayed on the screen.
                              Allows configuration of message displayed on the screen.
                              Optionally displays the skipped time in minutes:seconds.

image.thumb.png.5166d64e46c868e39d82a78c2e15d8a1.png

 

As before, there was a configuration UI change so clear your browser cache.

Edited by BillOatman
  • Thanks 2
Posted
On 12/30/2022 at 5:07 PM, BillOatman said:

Version 1.6.0.0 - Allows configuration of time message is displayed on the screen.
                              Allows configuration of message displayed on the screen.
                              Optionally displays the skipped time in minutes:seconds.

Simply superb. TY!

Spaceboy
Posted

this is odd. i can't see comskipper listed among my plugins anymore. i tried clearing the browser cache but in my experience that usually relates to seeing the new options rather than seeing the plugin at all. i noticed that i needed to "unblock" the dll in explorer, but even that didnt do anything.

logs dont show it to be loaded on system start... is it possible its not compatible with the stable server?

BillOatman
Posted (edited)
2 hours ago, Spaceboy said:

this is odd. i can't see comskipper listed among my plugins anymore. i tried clearing the browser cache but in my experience that usually relates to seeing the new options rather than seeing the plugin at all. i noticed that i needed to "unblock" the dll in explorer, but even that didnt do anything.

logs dont show it to be loaded on system start... is it possible its not compatible with the stable server?

Its probably only compatible with stable server, that's all I run.  I did update to the latest stable Emby nuget.  But like I said I run stable and it shows up on mine.  What is "unblock" the dll?  Is your firewall preventing something?

image.thumb.png.f28fe6499d8d80b39ddb5b8798cae8e6.png

Edited by BillOatman
Spaceboy
Posted
1 hour ago, BillOatman said:

Its probably only compatible with stable server, that's all I run.  I did update to the latest stable Emby nuget.  But like I said I run stable and it shows up on mine.  What is "unblock" the dll?  Is your firewall preventing something?

image.thumb.png.f28fe6499d8d80b39ddb5b8798cae8e6.png

you are on 4.7.11 too?

windows doesnt typically like you downloading dll's from the internet. until a couple of versions ago you've supplied it in a .zip file so its not been an issue (not actually sure its an issue here). but unblock dll is this

image.png.271f8fa999f035779686e4bde799891b.png

regardless, since the last version the plugin is not being loaded by emby. for me at least

BillOatman
Posted
13 hours ago, Spaceboy said:

you are on 4.7.11 too?

windows doesnt typically like you downloading dll's from the internet. until a couple of versions ago you've supplied it in a .zip file so its not been an issue (not actually sure its an issue here). but unblock dll is this

image.png.271f8fa999f035779686e4bde799891b.png

regardless, since the last version the plugin is not being loaded by emby. for me at least

Oh its the ini file.  Odd because I don't think I did anything different this time than the others. The shouldn't stop the DLL from working.

I'll build with the older Emby nuget and see if that works for you.

I'm running whatever the latest stable Emby is, I'm not home not to take a look at the number.  

  • Thanks 1

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...