mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	Merge pull request #5588 from aajanki/encode_frag_filenames
[f4m] Fix encode error by sanitizing fragment filenames
This commit is contained in:
		| @@ -343,18 +343,19 @@ class F4mFD(FragmentFD): | |||||||
|                 success = ctx['dl'].download(frag_filename, {'url': url}) |                 success = ctx['dl'].download(frag_filename, {'url': url}) | ||||||
|                 if not success: |                 if not success: | ||||||
|                     return False |                     return False | ||||||
|                 with open(frag_filename, 'rb') as down: |                 (down, frag_sanitized) = sanitize_open(frag_filename, 'rb') | ||||||
|                     down_data = down.read() |                 down_data = down.read() | ||||||
|                     reader = FlvReader(down_data) |                 down.close() | ||||||
|                     while True: |                 reader = FlvReader(down_data) | ||||||
|                         _, box_type, box_data = reader.read_box_info() |                 while True: | ||||||
|                         if box_type == b'mdat': |                     _, box_type, box_data = reader.read_box_info() | ||||||
|                             dest_stream.write(box_data) |                     if box_type == b'mdat': | ||||||
|                             break |                         dest_stream.write(box_data) | ||||||
|  |                         break | ||||||
|                 if live: |                 if live: | ||||||
|                     os.remove(frag_filename) |                     os.remove(encodeFilename(frag_sanitized)) | ||||||
|                 else: |                 else: | ||||||
|                     frags_filenames.append(frag_filename) |                     frags_filenames.append(frag_sanitized) | ||||||
|             except (compat_urllib_error.HTTPError, ) as err: |             except (compat_urllib_error.HTTPError, ) as err: | ||||||
|                 if live and (err.code == 404 or err.code == 410): |                 if live and (err.code == 404 or err.code == 410): | ||||||
|                     # We didn't keep up with the live window. Continue |                     # We didn't keep up with the live window. Continue | ||||||
| @@ -375,6 +376,6 @@ class F4mFD(FragmentFD): | |||||||
|         self._finish_frag_download(ctx) |         self._finish_frag_download(ctx) | ||||||
|  |  | ||||||
|         for frag_file in frags_filenames: |         for frag_file in frags_filenames: | ||||||
|             os.remove(frag_file) |             os.remove(encodeFilename(frag_file)) | ||||||
|  |  | ||||||
|         return True |         return True | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Sergey M.
					Sergey M.