Introduce --keep-fragments
authorSergey M․ <dstftw@gmail.com>
Sun, 23 Apr 2017 20:09:08 +0000 (03:09 +0700)
committerSergey M․ <dstftw@gmail.com>
Sun, 23 Apr 2017 20:09:08 +0000 (03:09 +0700)
youtube_dl/__init__.py
youtube_dl/downloader/fragment.py
youtube_dl/options.py

index f15606568d062b6981076e8739d14037e2d5a5eb..c4589411e1977d2ae8b4a69620ad2a9d1325fdac 100644 (file)
@@ -343,6 +343,7 @@ def _real_main(argv=None):
         'retries': opts.retries,
         'fragment_retries': opts.fragment_retries,
         'skip_unavailable_fragments': opts.skip_unavailable_fragments,
+        'keep_fragments': opts.keep_fragments,
         'buffersize': opts.buffersize,
         'noresizebuffer': opts.noresizebuffer,
         'continuedl': opts.continue_dl,
index 62de0a75bad4553ff963c7919f035975097af1f3..bcff94cbe918c1bf6a984b29c780c550cad430af 100644 (file)
@@ -29,6 +29,8 @@ class FragmentFD(FileDownloader):
                         and hlsnative only)
     skip_unavailable_fragments:
                         Skip unavailable fragments (DASH and hlsnative only)
+    keep_fragments:     Keep downloaded fragments on disk after downloading is
+                        finished
     """
 
     def report_retry_fragment(self, err, frag_index, count, retries):
@@ -81,7 +83,8 @@ class FragmentFD(FileDownloader):
         finally:
             if not (ctx.get('live') or ctx['tmpfilename'] == '-'):
                 self._write_ytdl_file(ctx)
-            os.remove(ctx['fragment_filename_sanitized'])
+            if not self.params.get('keep_fragments', False):
+                os.remove(ctx['fragment_filename_sanitized'])
             del ctx['fragment_filename_sanitized']
 
     def _prepare_frag_download(self, ctx):
index 2d2f5e47be99623d34e1acb4f8eb14f137c0021c..52309fb8421a0e1017646572f369b56443371a81 100644 (file)
@@ -468,6 +468,10 @@ def parseOpts(overrideArguments=None):
         '--abort-on-unavailable-fragment',
         action='store_false', dest='skip_unavailable_fragments',
         help='Abort downloading when some fragment is not available')
+    downloader.add_option(
+        '--keep-fragments',
+        action='store_true', dest='keep_fragments', default=False,
+        help='Keep downloaded fragments on disk after downloading is finished; fragments are erased by default')
     downloader.add_option(
         '--buffer-size',
         dest='buffersize', metavar='SIZE', default='1024',