about summary refs log tree commit diff
path: root/youtube_dl/downloader
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2018-03-24 15:59:48 +0700
committerSergey M․ <dstftw@gmail.com>2018-03-24 16:04:23 +0700
commit0ff2c1ecb67b61e1410e1d0fe1966a7680e18947 (patch)
treee4d66324275af9e4268eb0057b70a6c166f63d9d /youtube_dl/downloader
parent16132cff7231d591bc4e6e3a12c02f9110d54e11 (diff)
downloadyoutube-dl-0ff2c1ecb67b61e1410e1d0fe1966a7680e18947.tar.gz
youtube-dl-0ff2c1ecb67b61e1410e1d0fe1966a7680e18947.tar.xz
youtube-dl-0ff2c1ecb67b61e1410e1d0fe1966a7680e18947.zip
[downloader/fragment] Fix download finalization when writing file to stdout (closes #15799)
Diffstat (limited to 'youtube_dl/downloader')
-rw-r--r--youtube_dl/downloader/fragment.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/youtube_dl/downloader/fragment.py b/youtube_dl/downloader/fragment.py
index ea5e3a4b5..927c7e491 100644
--- a/youtube_dl/downloader/fragment.py
+++ b/youtube_dl/downloader/fragment.py
@@ -241,12 +241,16 @@ class FragmentFD(FileDownloader):
             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']))
+
+        if ctx['tmpfilename'] == '-':
+            downloaded_bytes = ctx['complete_frags_downloaded_bytes']
+        else:
+            self.try_rename(ctx['tmpfilename'], ctx['filename'])
+            downloaded_bytes = os.path.getsize(encodeFilename(ctx['filename']))
 
         self._hook_progress({
-            'downloaded_bytes': fsize,
-            'total_bytes': fsize,
+            'downloaded_bytes': downloaded_bytes,
+            'total_bytes': downloaded_bytes,
             'filename': ctx['filename'],
             'status': 'finished',
             'elapsed': elapsed,