mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 06:35:12 +00:00 
			
		
		
		
	[hlsnative] Support test parameter
This commit is contained in:
		| @@ -42,6 +42,7 @@ class FileDownloader(object): | ||||
|     Subclasses of this one must re-define the real_download method. | ||||
|     """ | ||||
|  | ||||
|     _TEST_FILE_SIZE = 10241 | ||||
|     params = None | ||||
|  | ||||
|     def __init__(self, ydl, params): | ||||
|   | ||||
| @@ -7,6 +7,7 @@ import subprocess | ||||
| from .common import FileDownloader | ||||
| from ..utils import ( | ||||
|     compat_urlparse, | ||||
|     compat_urllib_request, | ||||
|     check_executable, | ||||
|     encodeFilename, | ||||
| ) | ||||
| @@ -71,15 +72,26 @@ class NativeHlsFD(FileDownloader): | ||||
|                     else compat_urlparse.urljoin(url, line)) | ||||
|                 segment_urls.append(segment_url) | ||||
|  | ||||
|         is_test = self.params.get('test', False) | ||||
|         remaining_bytes = self._TEST_FILE_SIZE if is_test else None | ||||
|         byte_counter = 0 | ||||
|         with open(tmpfilename, 'wb') as outf: | ||||
|             for i, segurl in enumerate(segment_urls): | ||||
|                 segment = self.ydl.urlopen(segurl).read() | ||||
|                 outf.write(segment) | ||||
|                 byte_counter += len(segment) | ||||
|                 self.to_screen( | ||||
|                     '[hlsnative] %s: Downloading segment %d / %d' % | ||||
|                     (info_dict['id'], i + 1, len(segment_urls))) | ||||
|                 seg_req = compat_urllib_request.Request(segurl) | ||||
|                 if remaining_bytes: | ||||
|                     seg_req.add_header('Range', 'bytes=0-%d' % (remaining_bytes - 1)) | ||||
|  | ||||
|                 segment = self.ydl.urlopen(seg_req).read() | ||||
|                 if remaining_bytes: | ||||
|                     segment = segment[:remaining_bytes] | ||||
|                     remaining_bytes -= len(segment) | ||||
|                 outf.write(segment) | ||||
|                 byte_counter += len(segment) | ||||
|                 if remaining_bytes <= 0: | ||||
|                     break | ||||
|  | ||||
|         self._hook_progress({ | ||||
|             'downloaded_bytes': byte_counter, | ||||
|   | ||||
| @@ -14,8 +14,6 @@ from ..utils import ( | ||||
|  | ||||
|  | ||||
| class HttpFD(FileDownloader): | ||||
|     _TEST_FILE_SIZE = 10241 | ||||
|  | ||||
|     def real_download(self, filename, info_dict): | ||||
|         url = info_dict['url'] | ||||
|         tmpfilename = self.temp_name(filename) | ||||
|   | ||||
| @@ -25,7 +25,7 @@ class VevoIE(InfoExtractor): | ||||
|  | ||||
|     _TESTS = [{ | ||||
|         'url': 'http://www.vevo.com/watch/hurts/somebody-to-die-for/GB1101300280', | ||||
|         "md5": "06bea460acb744eab74a9d7dcb4bfd61", | ||||
|         "md5": "95ee28ee45e70130e3ab02b0f579ae23", | ||||
|         'info_dict': { | ||||
|             'id': 'GB1101300280', | ||||
|             'ext': 'mp4', | ||||
| @@ -41,7 +41,7 @@ class VevoIE(InfoExtractor): | ||||
|     }, { | ||||
|         'note': 'v3 SMIL format', | ||||
|         'url': 'http://www.vevo.com/watch/cassadee-pope/i-wish-i-could-break-your-heart/USUV71302923', | ||||
|         'md5': '893ec0e0d4426a1d96c01de8f2bdff58', | ||||
|         'md5': 'f6ab09b034f8c22969020b042e5ac7fc', | ||||
|         'info_dict': { | ||||
|             'id': 'USUV71302923', | ||||
|             'ext': 'mp4', | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Philipp Hagemeister
					Philipp Hagemeister