Added a minimum video bitrate select feature
This commit is contained in:
		
							parent
							
								
									d7b3b4ff81
								
							
						
					
					
						commit
						dffb6afec9
					
				@ -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                              |
 | 
			
		||||
 | 
			
		||||
@ -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}")
 | 
			
		||||
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user