From cd5df121f3577178cb73bafe886677da9452dc42 Mon Sep 17 00:00:00 2001 From: pukkandan Date: Tue, 18 Oct 2022 23:19:25 +0530 Subject: [PATCH] [SponsorBlock] Relax duration check for large segments --- yt_dlp/postprocessor/sponsorblock.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/yt_dlp/postprocessor/sponsorblock.py b/yt_dlp/postprocessor/sponsorblock.py index bb15eb7096..188eb059aa 100644 --- a/yt_dlp/postprocessor/sponsorblock.py +++ b/yt_dlp/postprocessor/sponsorblock.py @@ -64,7 +64,8 @@ def duration_filter(s): if duration and duration - start_end[1] <= 1: start_end[1] = duration # SponsorBlock duration may be absent or it may deviate from the real one. - return s['videoDuration'] == 0 or not duration or abs(duration - s['videoDuration']) <= 1 + diff = abs(duration - s['videoDuration']) if s['videoDuration'] else 0 + return diff < 1 or (diff < 5 and diff / (start_end[1] - start_end[0]) < 0.05) duration_match = [s for s in segments if duration_filter(s)] if len(duration_match) != len(segments):