1
0
mirror of https://github.com/spaam/svtplay-dl.git synced 2024-11-23 19:55:38 +01:00

add support for only audio when its one media file

This commit is contained in:
Johan Andersson 2022-06-09 21:55:53 +02:00
parent 7cdb7f2345
commit 578b7f2754
2 changed files with 11 additions and 5 deletions

View File

@ -214,7 +214,7 @@ class HLS(VideoRetriever):
if self.audio and not self.config.get("only_video"): if self.audio and not self.config.get("only_video"):
# self._download(self.audio, file_name=(copy.copy(self.output), "audio.ts")) # self._download(self.audio, file_name=(copy.copy(self.output), "audio.ts"))
self._download(self.audio, True) self._download(self.audio, True)
if not self.config.get("only_audio"): if not self.audio or not self.config.get("only_audio"):
self._download(self.url) self._download(self.url)
else: else:

View File

@ -48,7 +48,7 @@ class postprocess:
audio_filename = orig_filename.with_suffix(".m4a") audio_filename = orig_filename.with_suffix(".m4a")
cmd = [self.detect] cmd = [self.detect]
if self.config.get("only_video") or not self.config.get("only_audio"): if self.config.get("only_video") or (not self.config.get("only_audio") or (not self.stream.audio and self.config.get("only_audio"))):
cmd += ["-i", str(orig_filename)] cmd += ["-i", str(orig_filename)]
if self.stream.audio and self.config.get("only_audio") or not self.config.get("only_video"): if self.stream.audio and self.config.get("only_audio") or not self.config.get("only_video"):
cmd += ["-i", str(audio_filename)] cmd += ["-i", str(audio_filename)]
@ -62,13 +62,19 @@ class postprocess:
logging.info("Merge audio and video into %s", new_name.name) logging.info("Merge audio and video into %s", new_name.name)
tempfile = orig_filename.with_suffix(".temp") tempfile = orig_filename.with_suffix(".temp")
arguments = ["-c:v", "copy", "-c:a", "copy", "-f", "matroska" if self.config.get("output_format") == "mkv" else "mp4"]
arguments = []
if self.config.get("only_audio"):
arguments += ["-vn"]
if self.config.get("only_video"):
arguments += ["-an"]
arguments += ["-c:v", "copy", "-c:a", "copy", "-f", "matroska" if self.config.get("output_format") == "mkv" else "mp4"]
if ext == ".ts": if ext == ".ts":
if audiotrack and "aac" in _getcodec(streams, audiotrack): if audiotrack and "aac" in _getcodec(streams, audiotrack):
arguments += ["-bsf:a", "aac_adtstoasc"] arguments += ["-bsf:a", "aac_adtstoasc"]
cmd = [self.detect] cmd = [self.detect]
if self.config.get("only_video") or not self.config.get("only_audio"): if self.config.get("only_video") or (not self.config.get("only_audio") or (not self.stream.audio and self.config.get("only_audio"))):
cmd += ["-i", str(orig_filename)] cmd += ["-i", str(orig_filename)]
if (self.stream.audio and self.config.get("only_audio")) or (self.stream.audio and not self.config.get("only_video")): if (self.stream.audio and self.config.get("only_audio")) or (self.stream.audio and not self.config.get("only_video")):
cmd += ["-i", str(audio_filename)] cmd += ["-i", str(audio_filename)]
@ -116,7 +122,7 @@ class postprocess:
return return
logging.info("Merging done, removing old files.") logging.info("Merging done, removing old files.")
if self.config.get("only_video") or not self.config.get("only_audio"): if self.config.get("only_video") or (not self.config.get("only_audio") or (not self.stream.audio and self.config.get("only_audio"))):
os.remove(orig_filename) os.remove(orig_filename)
if (self.stream.audio and self.config.get("only_audio")) or (self.stream.audio and not self.config.get("only_video")): if (self.stream.audio and self.config.get("only_audio")) or (self.stream.audio and not self.config.get("only_video")):
os.remove(audio_filename) os.remove(audio_filename)