mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-11-04 08:35:12 +00:00 
			
		
		
		
	[downloader] Fix throttledratelimit
The timer should not reset at start of each block
This commit is contained in:
		@@ -58,6 +58,7 @@ class HttpFD(FileDownloader):
 | 
				
			|||||||
        ctx.block_size = self.params.get('buffersize', 1024)
 | 
					        ctx.block_size = self.params.get('buffersize', 1024)
 | 
				
			||||||
        ctx.start_time = time.time()
 | 
					        ctx.start_time = time.time()
 | 
				
			||||||
        ctx.chunk_size = None
 | 
					        ctx.chunk_size = None
 | 
				
			||||||
 | 
					        throttle_start = None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if self.params.get('continuedl', True):
 | 
					        if self.params.get('continuedl', True):
 | 
				
			||||||
            # Establish possible resume length
 | 
					            # Establish possible resume length
 | 
				
			||||||
@@ -197,6 +198,7 @@ class HttpFD(FileDownloader):
 | 
				
			|||||||
                raise RetryDownload(err)
 | 
					                raise RetryDownload(err)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        def download():
 | 
					        def download():
 | 
				
			||||||
 | 
					            nonlocal throttle_start
 | 
				
			||||||
            data_len = ctx.data.info().get('Content-length', None)
 | 
					            data_len = ctx.data.info().get('Content-length', None)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            # Range HTTP header may be ignored/unsupported by a webserver
 | 
					            # Range HTTP header may be ignored/unsupported by a webserver
 | 
				
			||||||
@@ -225,7 +227,6 @@ class HttpFD(FileDownloader):
 | 
				
			|||||||
            # measure time over whole while-loop, so slow_down() and best_block_size() work together properly
 | 
					            # measure time over whole while-loop, so slow_down() and best_block_size() work together properly
 | 
				
			||||||
            now = None  # needed for slow_down() in the first loop run
 | 
					            now = None  # needed for slow_down() in the first loop run
 | 
				
			||||||
            before = start  # start measuring
 | 
					            before = start  # start measuring
 | 
				
			||||||
            throttle_start = None
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            def retry(e):
 | 
					            def retry(e):
 | 
				
			||||||
                to_stdout = ctx.tmpfilename == '-'
 | 
					                to_stdout = ctx.tmpfilename == '-'
 | 
				
			||||||
@@ -326,7 +327,7 @@ class HttpFD(FileDownloader):
 | 
				
			|||||||
                        if ctx.stream is not None and ctx.tmpfilename != '-':
 | 
					                        if ctx.stream is not None and ctx.tmpfilename != '-':
 | 
				
			||||||
                            ctx.stream.close()
 | 
					                            ctx.stream.close()
 | 
				
			||||||
                        raise ThrottledDownload()
 | 
					                        raise ThrottledDownload()
 | 
				
			||||||
                else:
 | 
					                elif speed:
 | 
				
			||||||
                    throttle_start = None
 | 
					                    throttle_start = None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if not is_test and ctx.chunk_size and ctx.data_len is not None and byte_counter < ctx.data_len:
 | 
					            if not is_test and ctx.chunk_size and ctx.data_len is not None and byte_counter < ctx.data_len:
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user