Sfoglia il codice sorgente

Add option to skip merging of downloaded files into video

Cammy 5 anni fa
parent
commit
10e67ea2d2
3 ha cambiato i file con 21 aggiunte e 5 eliminazioni
  1. 6 3
      pyinstalive/dlfuncs.py
  2. 3 1
      pyinstalive/pil.py
  3. 12 1
      pyinstalive/startup.py

+ 6 - 3
pyinstalive/dlfuncs.py

@@ -148,10 +148,13 @@ def merge_segments():
         if pil.comment_thread_worker and pil.comment_thread_worker.is_alive():
             logger.info("Waiting for comment downloader to finish.")
             pil.comment_thread_worker.join()
-        logger.info('Merging downloaded files into video.')
         try:
-            pil.broadcast_downloader.stitch(live_mp4_file, cleartempfiles=pil.clear_temp_files)
-            logger.info('Successfully merged downloaded files into video.')
+            if not pil.skip_merge:
+                logger.info('Merging downloaded files into video.')
+                pil.broadcast_downloader.stitch(live_mp4_file, cleartempfiles=pil.clear_temp_files)
+                logger.info('Successfully merged downloaded files into video.')
+            else:
+                logger.binfo("Merging of downloaded files has been disabled.")
             if pil.clear_temp_files:
                 helpers.remove_temp_folder()
             helpers.remove_lock()

+ 3 - 1
pyinstalive/pil.py

@@ -45,6 +45,7 @@ def initialize():
     global do_heartbeat
     global proxy
     global verbose
+    global skip_merge
     ig_api = None
     ig_user = ""
     ig_pass = ""
@@ -77,4 +78,5 @@ def initialize():
     has_guest = None
     do_heartbeat = False
     proxy = None
-    verbose = False
+    verbose = False
+    skip_merge = False

+ 12 - 1
pyinstalive/startup.py

@@ -84,6 +84,7 @@ def validate_inputs(config, args, unknown_args):
         pil.run_at_finish = config.get('pyinstalive', 'run_at_finish')
         pil.ffmpeg_path = config.get('pyinstalive', 'ffmpeg_path')
         pil.verbose = config.get('pyinstalive', 'verbose')
+        pil.skip_merge = config.get('pyinstalive', 'skip_merge')
         pil.args = args
         pil.config = config
         pil.proxy = config.get('pyinstalive', 'proxy')
@@ -114,6 +115,14 @@ def validate_inputs(config, args, unknown_args):
         else:
             pil.verbose = False
 
+        if helpers.bool_str_parse(config.get('pyinstalive', 'skip_merge')) == "Invalid":
+            pil.skip_merge = False
+            error_arr.append(['skip_merge', 'False'])
+        elif helpers.bool_str_parse(config.get('pyinstalive', 'skip_merge')):
+            pil.skip_merge = True
+        else:
+            pil.skip_merge = False
+
         if helpers.bool_str_parse(config.get('pyinstalive', 'use_locks')) == "Invalid":
             pil.use_locks = False
             error_arr.append(['use_locks', 'False'])
@@ -172,6 +181,8 @@ def validate_inputs(config, args, unknown_args):
 
         if args.verbose:
             pil.verbose = True
+        if args.skip_merge:
+            pil.skip_merge = True
 
         if not pil.dl_lives and not pil.dl_replays:
             logger.error("You have disabled both livestream and replay downloading.")
@@ -279,7 +290,7 @@ def run():
     parser.add_argument('-v', '--verbose', dest='verbose', action='store_true', help="PyInstaLive will output JSON "
                                                                                      "responses and some misc "
                                                                                      "variables.")
-
+    parser.add_argument('-sm', '--skip-merge', dest='skip_merge', action='store_true', help="PyInstaLive will not merge the downloaded livestream files.")
     parser.add_argument('-o', '--organize', action='store_true', help="Create a folder for each user whose livestream(s) you have downloaded. The names of the folders will be their usernames. Then move the video(s) of each user into their associated folder.")
 
     # Workaround to 'disable' argument abbreviations