mirror of
				https://github.com/devine-dl/devine.git
				synced 2025-11-04 03:44:49 +00:00 
			
		
		
		
	Fix multiplexing of downloads without a video track
E.g., --subs-only and --audio-only
This commit is contained in:
		
							parent
							
								
									96aa7c1e0a
								
							
						
					
					
						commit
						86322159b6
					
				@ -15,6 +15,7 @@ from concurrent.futures import ThreadPoolExecutor
 | 
			
		||||
from copy import deepcopy
 | 
			
		||||
from functools import partial
 | 
			
		||||
from http.cookiejar import MozillaCookieJar
 | 
			
		||||
from itertools import zip_longest
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
from threading import Event, Lock
 | 
			
		||||
from typing import Any, Callable, Optional
 | 
			
		||||
@ -616,14 +617,15 @@ class dl:
 | 
			
		||||
                            total=None,
 | 
			
		||||
                            start=False
 | 
			
		||||
                        )
 | 
			
		||||
                        for x in title.tracks.videos
 | 
			
		||||
                        for x in title.tracks.videos or [None]
 | 
			
		||||
                    ]
 | 
			
		||||
                    with Live(
 | 
			
		||||
                        Padding(progress, (0, 5, 1, 5)),
 | 
			
		||||
                        console=console
 | 
			
		||||
                    ):
 | 
			
		||||
                        for track, task in zip(title.tracks.videos, tasks):
 | 
			
		||||
                            title.tracks.videos = [track]
 | 
			
		||||
                        for task, video_track in zip_longest(tasks, title.tracks.videos, fillvalue=None):
 | 
			
		||||
                            if video_track:
 | 
			
		||||
                                title.tracks.videos = [video_track]
 | 
			
		||||
                            progress.start_task(task)  # TODO: Needed?
 | 
			
		||||
                            muxed_path, return_code = title.tracks.mux(
 | 
			
		||||
                                str(title),
 | 
			
		||||
@ -636,7 +638,8 @@ class dl:
 | 
			
		||||
                            elif return_code >= 2:
 | 
			
		||||
                                self.log.error(f"Failed to Mux video to Matroska file ({return_code})")
 | 
			
		||||
                                sys.exit(1)
 | 
			
		||||
                            track.delete()
 | 
			
		||||
                            if video_track:
 | 
			
		||||
                                video_track.delete()
 | 
			
		||||
                        for track in title.tracks:
 | 
			
		||||
                            track.delete()
 | 
			
		||||
                else:
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user