|
@ -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_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: |
|
|
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 |