aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey M. <dstftw@gmail.com>2015-08-31 02:18:15 +0600
committerSergey M. <dstftw@gmail.com>2015-08-31 02:18:15 +0600
commit55801fc76e2813de9a84eaa830d70ed73cb44463 (patch)
tree35d90fe81935e0b748f51bd6204317e823279c14
parentd3d89c325681b1f2d9dcc8d8dea3439aad570f1f (diff)
parent233c1c0e76d64c9e13dc8968bfd8a014c49e66a8 (diff)
Merge pull request #5588 from aajanki/encode_frag_filenames
[f4m] Fix encode error by sanitizing fragment filenames
-rw-r--r--youtube_dl/downloader/f4m.py23
1 files changed, 12 insertions, 11 deletions
diff --git a/youtube_dl/downloader/f4m.py b/youtube_dl/downloader/f4m.py
index 275564b59..f478fc03c 100644
--- a/youtube_dl/downloader/f4m.py
+++ b/youtube_dl/downloader/f4m.py
@@ -343,18 +343,19 @@ class F4mFD(FragmentFD):
success = ctx['dl'].download(frag_filename, {'url': url})
if not success:
return False
- with open(frag_filename, 'rb') as down:
- down_data = down.read()
- reader = FlvReader(down_data)
- while True:
- _, box_type, box_data = reader.read_box_info()
- if box_type == b'mdat':
- dest_stream.write(box_data)
- break
+ (down, frag_sanitized) = sanitize_open(frag_filename, 'rb')
+ down_data = down.read()
+ down.close()
+ reader = FlvReader(down_data)
+ while True:
+ _, box_type, box_data = reader.read_box_info()
+ if box_type == b'mdat':
+ dest_stream.write(box_data)
+ break
if live:
- os.remove(frag_filename)
+ os.remove(encodeFilename(frag_sanitized))
else:
- frags_filenames.append(frag_filename)
+ frags_filenames.append(frag_sanitized)
except (compat_urllib_error.HTTPError, ) as err:
if live and (err.code == 404 or err.code == 410):
# We didn't keep up with the live window. Continue
@@ -375,6 +376,6 @@ class F4mFD(FragmentFD):
self._finish_frag_download(ctx)
for frag_file in frags_filenames:
- os.remove(frag_file)
+ os.remove(encodeFilename(frag_file))
return True