forked from kenzuya/unshackle
fix(dl): add bitrate tolerance for video track selection
- Implement bitrate selection with a tolerance of +100 kbps and -800 kbps - Ensure minimum bitrate does not go below 0 when calculating lower bound - Update error message to reflect bitrate range instead of exact value - Enhance logging for cases with no matching video tracks within tolerance range
This commit is contained in:
@@ -640,9 +640,12 @@ class dl:
|
||||
self.log.warning(f"Skipping {color_range.name} video tracks as none are available.")
|
||||
|
||||
if vbitrate:
|
||||
title.tracks.select_video(lambda x: x.bitrate and x.bitrate // 1000 == vbitrate)
|
||||
# Tolerance: +100 kbps (upper), -800 kbps (lower)
|
||||
min_bitrate = max(0, vbitrate - 800) # Don't go below 0
|
||||
max_bitrate = vbitrate + 100
|
||||
title.tracks.select_video(lambda x: x.bitrate and min_bitrate <= x.bitrate // 1000 <= max_bitrate)
|
||||
if not title.tracks.videos:
|
||||
self.log.error(f"There's no {vbitrate}kbps Video Track...")
|
||||
self.log.error(f"There's no Video Track with bitrate between {min_bitrate}-{max_bitrate}kbps (requested {vbitrate}kbps)...")
|
||||
sys.exit(1)
|
||||
|
||||
video_languages = [lang for lang in (v_lang or lang) if lang != "best"]
|
||||
|
||||
Reference in New Issue
Block a user