projects
/
youtube-dl
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
0eee52f
)
[downloader/fragment] Don't process ytdl file when it's not needed yet
author
Sergey M․
<dstftw@gmail.com>
Mon, 24 Apr 2017 16:05:56 +0000
(23:05 +0700)
committer
Sergey M․
<dstftw@gmail.com>
Mon, 24 Apr 2017 16:05:56 +0000
(23:05 +0700)
youtube_dl/downloader/fragment.py
patch
|
blob
|
history
diff --git
a/youtube_dl/downloader/fragment.py
b/youtube_dl/downloader/fragment.py
index bcff94cbe918c1bf6a984b29c780c550cad430af..25c8f18ecf2173421ff2d2b16b4b8b40e28944be 100644
(file)
--- a/
youtube_dl/downloader/fragment.py
+++ b/
youtube_dl/downloader/fragment.py
@@
-49,6
+49,10
@@
class FragmentFD(FileDownloader):
self._prepare_frag_download(ctx)
self._start_frag_download(ctx)
self._prepare_frag_download(ctx)
self._start_frag_download(ctx)
+ @staticmethod
+ def __do_ytdl_file(ctx):
+ return not ctx['live'] and not ctx['tmpfilename'] == '-'
+
def _read_ytdl_file(self, ctx):
stream, _ = sanitize_open(self.ytdl_filename(ctx['filename']), 'r')
ctx['fragment_index'] = json.loads(stream.read())['download']['current_fragment_index']
def _read_ytdl_file(self, ctx):
stream, _ = sanitize_open(self.ytdl_filename(ctx['filename']), 'r')
ctx['fragment_index'] = json.loads(stream.read())['download']['current_fragment_index']
@@
-81,7
+85,7
@@
class FragmentFD(FileDownloader):
try:
ctx['dest_stream'].write(frag_content)
finally:
try:
ctx['dest_stream'].write(frag_content)
finally:
- if
not (ctx.get('live') or ctx['tmpfilename'] == '-'
):
+ if
self.__do_ytdl_file(ctx
):
self._write_ytdl_file(ctx)
if not self.params.get('keep_fragments', False):
os.remove(ctx['fragment_filename_sanitized'])
self._write_ytdl_file(ctx)
if not self.params.get('keep_fragments', False):
os.remove(ctx['fragment_filename_sanitized'])
@@
-115,16
+119,21
@@
class FragmentFD(FileDownloader):
open_mode = 'ab'
resume_len = os.path.getsize(encodeFilename(tmpfilename))
open_mode = 'ab'
resume_len = os.path.getsize(encodeFilename(tmpfilename))
- ctx['fragment_index'] = 0
- if os.path.isfile(encodeFilename(self.ytdl_filename(ctx['filename']))):
- self._read_ytdl_file(ctx)
- else:
-
self._write_ytdl_file(ctx
)
+ # Should be initialized before ytdl file check
+ ctx.update({
+ 'tmpfilename': tmpfilename,
+ 'fragment_index': 0,
+
}
)
- if ctx['fragment_index'] > 0:
- assert resume_len > 0
- else:
- assert resume_len == 0
+ if self.__do_ytdl_file(ctx):
+ if os.path.isfile(encodeFilename(self.ytdl_filename(ctx['filename']))):
+ self._read_ytdl_file(ctx)
+ else:
+ self._write_ytdl_file(ctx)
+ if ctx['fragment_index'] > 0:
+ assert resume_len > 0
+ else:
+ assert resume_len == 0
dest_stream, tmpfilename = sanitize_open(tmpfilename, open_mode)
dest_stream, tmpfilename = sanitize_open(tmpfilename, open_mode)
@@
-194,9
+203,10
@@
class FragmentFD(FileDownloader):
def _finish_frag_download(self, ctx):
ctx['dest_stream'].close()
def _finish_frag_download(self, ctx):
ctx['dest_stream'].close()
- ytdl_filename = encodeFilename(self.ytdl_filename(ctx['filename']))
- if os.path.isfile(ytdl_filename):
- os.remove(ytdl_filename)
+ if self.__do_ytdl_file(ctx):
+ ytdl_filename = encodeFilename(self.ytdl_filename(ctx['filename']))
+ if os.path.isfile(ytdl_filename):
+ os.remove(ytdl_filename)
elapsed = time.time() - ctx['started']
self.try_rename(ctx['tmpfilename'], ctx['filename'])
fsize = os.path.getsize(encodeFilename(ctx['filename']))
elapsed = time.time() - ctx['started']
self.try_rename(ctx['tmpfilename'], ctx['filename'])
fsize = os.path.getsize(encodeFilename(ctx['filename']))