diff --git a/README.md b/README.md index 4366b8a..9490a89 100644 --- a/README.md +++ b/README.md @@ -83,7 +83,7 @@ Options: | -cr, --closest-resolution | If resolution specified is not found, defaults to closest resolution available | False | | -v, --vcodec | Video Codec | H264 | | -a, --acodec | Audio Codec | None | -| -vb, --vbitrate | Video Bitrate | Max | +| -vb, --vbitrate | Video Bitrate, "Min" or a number based on --list | Max | | -ab, --abitrate | Audio Bitrate | Max | | -aa, --atmos | Prefer Atmos Audio | False | | -r, --range | Video Color Range `HDR`, `HDR10`, `DV`, `SDR` | SDR | diff --git a/vinetrimmer/commands/dl.py b/vinetrimmer/commands/dl.py index 74740f3..a3c66a2 100644 --- a/vinetrimmer/commands/dl.py +++ b/vinetrimmer/commands/dl.py @@ -201,7 +201,7 @@ def get_credentials(service, profile="default"): help="Video Codec, defaults to H264.") @click.option("-a", "--acodec", callback=acodec_param, default=None, help="Audio Codec") -@click.option("-vb", "--vbitrate", "vbitrate", type=int, +@click.option("-vb", "--vbitrate", "vbitrate", type=str, default=None, help="Video Bitrate, defaults to Max.") @click.option("-ab", "--abitrate", "abitrate", type=int, @@ -402,10 +402,19 @@ def result(ctx, service, quality, closest_resolution, range_, wanted, alang, sla closest_res = min(available_resolutions, key=lambda x: abs(x - quality)) log.warning(f" - No {quality}p resolution available, using closest available: {closest_res}p") quality = closest_res - #title.tracks.select_videos(by_quality=quality, by_range=range_, one_only=True) + + # Modified video track selection to choose lowest bitrate if vbitrate == min + if vbitrate.lower() == "min": + available_bitrate = [int(track.bitrate) for track in title.tracks.videos] + if not available_resolutions: + log.error(" - No video tracks available") + continue + vbitrate = min(available_bitrate) + log.warning(f" - Choosing minimum bitrate: {vbitrate}") + else: + vbitrate = int(vbitrate) title.tracks.select_videos(by_quality=quality, by_vbitrate=vbitrate, by_range=range_, one_only=True) title.tracks.select_audios(by_language=alang, by_bitrate=abitrate, with_descriptive=audio_description) - # title.tracks.select_audios(by_language=alang, with_descriptive=audio_description) title.tracks.select_subtitles(by_language=slang, with_forced=True) except ValueError as e: log.error(f" - {e}") diff --git a/vinetrimmer/key_store.db b/vinetrimmer/key_store.db index 87b8c01..aea49be 100644 Binary files a/vinetrimmer/key_store.db and b/vinetrimmer/key_store.db differ