Remove Commercials is Removing Ending minutes of TV Shows

Server Version#: Version 1.24.4.5081
Player Version#: various
Tuner Make/Model: HD Homerun Connect Quatro Tuner

Even if i pad 1-5 minutes, I lose the ‘tag’ (ending final minute or 2) off all my sitcoms. I do have detect and delete commercials set. I tried using COMSKIP scripts I saw posted here a few years ago, but that didn’t help. Any ideas? If i pad i just see the beginning of the next TV show, the tag of the first show gets cut as if its a commercial. Is there any fix?

always_keep_last_seconds=x

Make a custom comskip.ini file with above: Removing Commercials | Plex Support

Thanks. I’m testing that out today. I added the last line below. Is that correct?

; See comskip.txt in the distribution zip file for many settable parameters, read manual.html, tuning.html and debugwindow.html for how to tune and debug comskip
detect_method=43 ; 1=black frame, 2=logo, 4=scene change, 8=fuzzy logic, 16=closed captions, 32=aspect ration, 64=silence, 128=cutscenes, 255=all
validate_silence=1 ; Default, set to 0 to force using this clues if selected above.
validate_uniform=1 ; Default, set to 0 to force using this clues (like pure white frames) if blackframe is selected above.
validate_scenechange=1 ; Default, set to 0 to force using this clues if selected above.
verbose=10 ; show a lot of extra info, level 5 is also OK, set to 0 to disable
max_brightness=60 ; frame not black if any pixels checked are greater than this (scale 0 to 255)
test_brightness=40 ; frame not pure black if any pixels checked are greater than this, will check average brightness (scale 0 to 255)
max_avg_brightness=25 ; maximum average brightness for a dim frame to be considered black (scale 0 to 255) 0 means autosetting
max_commercialbreak=600 ; maximum length in seconds to consider a segment a commercial break
min_commercialbreak=25 ; minimum length in seconds to consider a segment a commercial break
max_commercial_size=125 ; maximum time in seconds for a single commercial or multiple commercials if no breaks in between
min_commercial_size=4 ; mimimum time in seconds for a single commercial
min_show_segment_length=250 ; any segment longer than this will be scored towards show.
non_uniformity=500 ; Set to 0 to disable cutpoints based on uniform frames
max_volume=500 ; any frame with sound volume larger than this will not be regarded as black frame
min_silence=12 ; Any deep silence longer than this amount of frames is a possible cutpoint
ticker_tape=0 ; Amount of pixels from bottom to ignore in all processing
logo_at_bottom=0 ; Set to 1 to search only for logo at the lower half of the video, do not combine with subtitle setting
punish=0 ; Compare to average for sum of 1=brightness, 2=uniform 4=volume, 8=silence, 16=schange, set to 0 to disable
punish_threshold=1.3 ; Multiply when amount is above average * punish_threshold
punish_modifier=2 ; When above average * threshold multiply score by this value
intelligent_brightness=0 ; Set to 1 to use a USA specific algorithm to tune some of the settings, not adviced outside the USA
logo_percentile=0.92 ; if more then this amount of logo is found then logo detection will be disabled
logo_threshold=0.75
punish_no_logo=1 ; Default, set to 0 to avoid show segments without logo to be scored towards commercial
aggressive_logo_rejection=0
connect_blocks_with_logo=1 ; set to 1 if you want successive blocks with logo on the transition to be regarded as connected, set to 0 to disable
logo_filter=0 ; set the size of the filter to apply to bad logo detection, 4 seems to be a good value.
cut_on_ar_change=1 ; set to 1 if you want to cut also on aspect ratio changes when logo is present, set to 2 to force cuts on aspect ratio changes. set to 0 to disable
delete_show_after_last_commercial=0 ; set to 1 if you want to delete the last block if its a show and after a commercial
delete_show_before_or_after_current=0 ; set to 1 if you want to delete the previous and the next show in the recording, this can lead to the deletion of trailers of next show
delete_block_after_commercial=0 ; set to max size of block in seconds to be discarded, set to 0 to disable
remove_before=0 ; amount of seconds of show to be removed before ALL commercials
remove_after=0 ; amount of seconds of show to be removed after ALL commercials
shrink_logo=5 ; Reduce the duration of the logo with this amount of seconds
after_logo=0 ; set to number of seconds after logo disappears comskip should start to search for silence to insert an additional cutpoint
padding=0
ms_audio_delay=5
volume_slip=40
skip_b_frames=0 ; Set to 1 to force Comskip to skip frames for higher processing speed.
max_repair_size=200 ; Will repair maximum 200 missing MPEG frames in the timeline, set to 0 to disable repairing for players that don’t use PTS.
disable_heuristics=4 ; bit pattern for disabling heuristics, adding 1 disables heristics 1, adding 2 disables heristics 2, adding 4 disables heristics 3, 255 disables all heuristics
delete_logo_file=0 ; set to 1 if you want comskip to tidy up after finishing
output_framearray=0 ; create a big excel file for detailed analysis, set to 0 to disable
output_data=0 ; create a dump of the user data channel, used for CC and XDS (such as V-Chip info). Can be use together with output_framearray to remote debug CC decoding
output_videoredo=0 ; The old videoredo format
output_videoredo3=0 ; The new videoredo v3 format.
output_womble=0
output_mls=0 ; set to 1 if you want MPeg Video Wizard bookmark file output
output_cuttermaran=0
output_mpeg2schnitt=0
output_mpgtx=0
output_dvrcut=0
output_zoomplayer_chapter=0
output_zoomplayer_cutlist=0
output_edl=1
output_dvrmstb=0 ; Set to 1 if you’re running DVRMS-Toolbox
output_edlx=0
output_vcf=0
output_bsplayer=0
output_btv=0 ; set to 1 if you want Beyond TV chapter cutlist output
output_projectx=0 ; set to 1 if you want ProjectX cutlist output (Xcl)
output_avisynth=0
output_vdr=0 ; set to 1 if you want XBMC to skipping commercials
output_demux=0 ; set to 1 if you want comskip to demux the mpeg file while scanning
sage_framenumber_bug=0
sage_minute_bug=0
live_tv=0 ; set to 1 if you use parallelprocessing and need the output while recording
live_tv_retries=4 ; change to 16 when using live_tv in BTV, used for mpeg PS and TS
dvrms_live_tv_retries=300 ; only used for dvr_ms
standoff=0 ; change to 8000000 when using live_tv in BTV
cuttermaran_options=“cut=“true” unattended=“true” muxResult=“false” snapToCutPoints=“true” closeApp=“true””
mpeg2schnitt_options=“mpeg2schnitt.exe /S /E /R25 /Z %2 %1”
avisynth_options=“LoadPlugin(“MPEG2Dec3.dll”) \nMPEG2Source(”%s")\n"
dvrcut_options="dvrcut “%s.dvr-ms” “%s_clean.dvr-ms” "
windowtitle=“Comskip - %s”
always_keep_last_seconds=60 ; added to try to keep tag at end of file

This didn’t work. It did remove the commercials but, toward the end it included the 3 network show previews (which should be treated as commercials) and deleted the tag. It then included about 5 minutes of the next sitcom.

Any other ideas to fix this?

I haven’t used the feature in Plex, but I did use Comskip (paid version) with MCEBuddy back when I used Windows Media Center, it always did this. I never found a script that wouldn’t cut off the last little bit of sitcoms. In that case since I only converted the shows I was keeping I switched to manually cutting the commercials. Since switching to plex I just have it record the commercials. I’m sorry this doesn’t help you, but I wanted to let you know it seems to be an issue with Comskip.

Thats very helpful, because now I know it isn’t my Plex or Comskip configuration. I even wondered if it was my local TV netowrks. I guess I’ll go back to recording the commercials. Dissapointing.

What show(s) or channel(s) does this happen on?

I had this happen on some MeTV/LAFF/Antenna TV shows. I found the last tag to be going slightly past the scheduled airing, so I told Plex to record 1 extra minute, and then in my INI I said to always keep the last 80 seconds.

Also, have you tried the Detect & Mark for skip setting? That way you know if it’s at least recording, you just have to manually skip and the commercials will be taking up space.

I use MCEBuddy and Archive recorded shows, so if I know the cuts got wonky, I can go back, try a different INI or tweak what I have.

Below is one INI I’ve used for the subchannels like MeTV/LAFF and it seems to work pretty well.

detect_method=75 ; 1=black frame, 2=logo, 4=scene change, 8=fuzzy logic, 16=closed captions, 32=aspect ration, 64=silence, 128=cutscenes, 255=all
validate_silence=1 ; Default, set to 0 to force using this clues if selected above.
validate_uniform=1 ; Default, set to 0 to force using this clues (like pure white frames) if blackframe is selected above.
validate_scenechange=0 ; Default, set to 0 to force using this clues if selected above.
verbose=10 ; Show a lot of extra info, level 5 is also OK, set to 0 to disable
max_brightness=60 ; Frame not black if any pixels checked are greater than this (scale 0 to 255)
test_brightness=40 ; Frame not pure black if any pixels checked are greater than this, will check average brightness (scale 0 to 255)
max_avg_brightness=25 ; Maximum average brightness for a dim frame to be considered black (scale 0 to 255) 0 means autosetting
maxbright=1 ; New
brightness_jump=200 ; New
max_commercialbreak=400 ; Maximum length in seconds to consider a segment a commercial break
min_commercialbreak=24 ; Minimum length in seconds to consider a segment a commercial break, some sports require lower numbers than normal tv shows
max_commercial_size=315 ; Maximum time in seconds for a single commercial or multiple commercials if no breaks in between
min_commercial_size=4 ; Mimimum time in seconds for a single commercial
min_show_segment_length=180 ; Any segment longer than this will be scored towards show (sports and 30 minute programming), increase this to 250 for 1 hour long programming
non_uniformity=500 ; Set to 0 to disable cutpoints based on uniform frames
max_volume=500 ; Any frame with sound volume larger than this will not be regarded as black frame
max_silence=100 ;
min_silence=12 ; Any deep silence longer than this amount  of frames is a possible cutpoint
noise_level=5 ; New
ticker_tape=0 ; Amount of pixels from bottom to ignore in all processing
ignore_side=0 ; New, default 0
subtitles=0 ; New, default 0
logo_at_bottom=0 ; Set to 1 to search only for logo at the lower half of the video, do not combine with subtitle setting
use_existing_logo_file=1 ; Use logo file already created at beginning of show, default 0
two_pass_logo=1 ; New
punish=1 ; Compare to average for sum of 1=brightness, 2=uniform 4=volume, 8=silence, 16=schange, set to 0 to disable
punish_threshold=1.3 ; Multiply when amount is above average punish_threshold
punish_modifier=1.2 ; When above average * threshold multiply score by this value
intelligent_brightness=1 ; Set to 1 to use a USA specific algorithm to tune some of the settings, not advised outside the USA
logo_percentile=0.92 ; If more then this amount of logo is found then logo detection will be disabled
logo_threshold=0.8 ; Digital signals can be higher
global_threshold=1.95 ; New
min_black_frames_for_break=3 ; Default 1
punish_no_logo=1 ; Default, set to 0 to avoid show segments without logo to be scored towards commercial
aggressive_logo_rejection=0
connect_blocks_with_logo=1 ; Set to 1 if you want successive blocks with logo on the transition to be regarded as connected, set to 0 to disable
delay_logo_search=0 ;
logo_filter=0 ; Set the size of the filter to apply to bad logo detection, 4 seems to be a good value
edge_step=2 ; New, default 1
cut_on_ar_change=1 ; Set to 1 if you want to cut also on aspect ratio changes when logo is present, set to 2 to force cuts on aspect ratio changes. set to 0 to disable
delete_show_after_last_commercial=10 ; Set to 1 if you want to delete the last block if its a show and after a commercial
delete_show_before_first_commercial=10 ; New, default 0
delete_show_before_or_after_current=0 ; Set to 1 if you want to delete the previous and the next show in the recording, this can lead to the deletion of trailers of next show
delete_block_after_commercial=0 ; Set to max size of block in seconds to be discarded, set to 0 to disable
remove_before=0 ; Amount of seconds of show to be removed before ALL commercials
remove_after=2 ; Amount of seconds of show to be removed after ALL commercials
shrink_logo=5 ; Reduce the duration of the logo with this amount of seconds
after_logo=10 ; Set to number of seconds after logo disappears comskip should start to search for silence to insert an additional cutpoint
before_logo=45 ; Set to number of seconds before logo appears comskip should start to search for silence to insert an additional cutpoint
padding=2
ms_audio_delay=5
volume_slip=40
skip_b_frames=0 ; Set to 1 to force Comskip to skip frames for higher processing speed.
hardware_decode=0 ; Set to 1 to enable hardware accelerated video decoding, only available in donator version
thread_count=6 ; Set to utilize Quad Core
max_repair_size=200 ; Will repair maximum 200 missing MPEG frames in the timeline, set to 0 to disable repairing for players that don't use PTS
disable_heuristics=16 ; Bit pattern for disabling heuristics, adding 1 disables heristics 1, adding 2 disables heristics 2, adding 4 disables heristics 3, 255  disables all heuristics
delete_logo_file=1 ; Set to 1 if you want comskip to tidy up after finishing
output_framearray=0 ; Create a big excel file for detailed analysis, set to 0 to disable
output_data=0 ; Create a dump of the user data channel, used for CC and XDS (such as V-Chip info). Can be use together with output_framearray to remote debug CC decoding
output_videoredo=0 ; The old videoredo format
output_videoredo3=0 ; The new videoredo v3 format
output_womble=0
output_mls=0 ; Set to 1 if you want MPEG Video Wizard bookmark file output
output_cuttermaran=0
output_mpeg2schnitt=0
output_mpgtx=0
output_dvrcut=0
output_zoomplayer_chapter=0
output_zoomplayer_cutlist=0
output_edl=1
output_dvrmstb=0 ; Set to 1 if you're running DVRMS-Toolbox
output_edlx=0
output_vcf=0
output_bsplayer=0
output_btv=0 ; Set to 1 if you want Beyond TV chapter cutlist output
output_projectx=0 ; Set to 1 if you want ProjectX cutlist output (Xcl)
output_avisynth=0
output_vdr=0 ; Set to 1 if you want XBMC to skipping commercials
output_demux=0 ; Set to 1 if you want comskip to demux the mpeg file while scanning
sage_framenumber_bug=0
sage_minute_bug=0
live_tv=1 ; Set to 1 if you use parallelprocessing and need the output while recording
live_tv_retries=1 ; Change to 16 when using live_tv in BTV, used for mpeg PS and TS
dvrms_live_tv_retries=300 ; Only used for dvr_ms
standoff=0 ; Change to 8000000 when using live_tv in BTV
cuttermaran_options="cut=\"true\" unattended=\"true\" muxResult=\"false\" snapToCutPoints=\"true\" closeApp=\"true\""
mpeg2schnitt_options="mpeg2schnitt.exe /S /E /R25  /Z %2 %1"
avisynth_options="LoadPlugin(\"MPEG2Dec3.dll\") \nMPEG2Source(\"%s\")\n"
dvrcut_options="dvrcut \"%s.dvr-ms\" \"%s_clean.dvr-ms\" "
windowtitle="Comskip - %s"
always_keep_first_seconds=45
cc_correct_type_modifier=.78
excessive_length_modifier=1
logo_present_modifier=.2
cc_commercial_type_modifier=2
logo_percentage_threshold=.1
min_commercial_break_at_start_or_end=45
always_keep_last_seconds=80

It was my local network affiliates ABC and CBS recording the Connor’s and Young Sheldon. I will test your INI, thanks. I’ve just set my DVR default to Detect & Mark for skip. I’ve experiment with numerous padding intervals in the past with no luck. It treats the sitcom final segment as a commercials and I get the next aired show instead.

I’m not sure how well that last INI will work. It’s tuned towards the SD content (which sometimes has a 5 minute commercial!). I’ve done a ton of trial and error and sometimes I don’t know what worked. I do know the issues are it’s a small segment (which works against it) and often doesn’t have a logo (also works against it). Plus I know I’ve had issues with finding a common INI for CBS and ABC. Theoretically if you tell it to keep the last 60 seconds, it should keep it no matter what, I don’t recall ever having an issue with that.

It looks like Young Sheldon is on tonight, I’ll give it a go.

Your INI worked! Unfortunately, with all my fiddling of settings I somehow recorded the show from my secondary market. So I don’t know if that affiliate was the solution or your script. The recording had a few digital artifacts, likely from the distant antenna, so I’ll try to get it to record my locals channels for some other sitcoms that have tags at the end.

On a related note, with the previous INI I recorded the Conners as “Mark to Remove” and even that setting seemed to miss the tag. The tag is really burried in network sitcom previews. It was about a minute long.

I think we just lucked out with the tag on YS this week. I tried it with 3 different INIs, including the one you posted, and it had no problem not cutting the tag. From the MCEbuddy logs, it always had a logo so helped the scoring. My local EPG shows YS being 31 minutes, and the tag does come in that extra minute. I did set it to record one extra minute (so it recorded 32 minutes), but that may have not made a difference.

It looks like The Connors isn’t set to return until the end of the month. I think the challenge will be getting an INI to cut both shows well, let alone grab the tags. Both stations have always been hit or miss, I think mostly because how they handle their logos differently, but it could just be the shows I was recording. That’s why I like MCEBuddy, as you can assign a custom INI per show. If only Plex would make an advanced DVR option allowing us to do that.

I had no idea that INIs had that degree of specificity. Interesting. All of this, along with an HD Homerun that intermittently goes weak on me (1 or 2 out of 10 times) is why I havn’t cancelled my Directv yet. I enjoy experimenting with cord cutting but the Plex DVR really isn’t ready for prime time yet IMO.

The show that always gave me trouble was the Simpsons, maybe I’ll use your ini and see if it works.

Oh well, same as before with the Connors. No tag. It included the 3 network show previews (which should be treated as commercials) deleted the tag and then included about 5 minutes of the next sitcom.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.