]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/downloader/fragment.py
[webvtt] Merge daisy-chained duplicate cues (#638)
[yt-dlp.git] / yt_dlp / downloader / fragment.py
index 1cc99a4e92a8bb3d7426b7cd0755174f514102a2..e3af140fde3a85ffc1c461d60b852afe45f5a7fc 100644 (file)
@@ -329,7 +329,7 @@ def _prepare_external_frag_download(self, ctx):
             'fragment_index': 0,
         })
 
-    def download_and_append_fragments(self, ctx, fragments, info_dict, pack_func=None):
+    def download_and_append_fragments(self, ctx, fragments, info_dict, *, pack_func=None, finish_func=None):
         fragment_retries = self.params.get('fragment_retries', 0)
         is_fatal = (lambda idx: idx == 0) if self.params.get('skip_unavailable_fragments', True) else (lambda _: True)
         if not pack_func:
@@ -424,5 +424,8 @@ def _download_fragment(fragment):
                 if not result:
                     return False
 
+        if finish_func is not None:
+            ctx['dest_stream'].write(finish_func())
+            ctx['dest_stream'].flush()
         self._finish_frag_download(ctx, info_dict)
         return True