diff options
author | georgekav <> | 2023-03-05 10:34:49 +0100 |
---|---|---|
committer | georgekav <> | 2023-03-05 10:34:49 +0100 |
commit | 693629221814f79d6357403c436d96429ed14023 (patch) | |
tree | 85053883d53c5e2eb45a62510c0e8ac59159596e | |
parent | Add support for opus and wav (diff) | |
download | metube-693629221814f79d6357403c436d96429ed14023.tar.gz metube-693629221814f79d6357403c436d96429ed14023.tar.bz2 metube-693629221814f79d6357403c436d96429ed14023.zip |
Define the audio formats tuple in python backend
-rw-r--r-- | app/dl_formats.py | 8 | ||||
-rw-r--r-- | app/ytdl.py | 4 |
2 files changed, 8 insertions, 4 deletions
diff --git a/app/dl_formats.py b/app/dl_formats.py index 76c1b38..8de79e9 100644 --- a/app/dl_formats.py +++ b/app/dl_formats.py @@ -1,5 +1,7 @@ import copy +AUDIO_FORMATS = ("m4a", "mp3", "opus", "wav") + def get_format(format: str, quality: str) -> str: """ Returns format for download @@ -23,7 +25,7 @@ def get_format(format: str, quality: str) -> str: # Quality is irrelevant in this case since we skip the download return "bestaudio/best" - if format in ("m4a", "mp3", "opus", "wav"): + if format in AUDIO_FORMATS: # Audio quality needs to be set post-download, set in opts return "bestaudio/best" @@ -59,12 +61,14 @@ def get_opts(format: str, quality: str, ytdl_opts: dict) -> dict: if "postprocessors" not in opts: opts["postprocessors"] = [] - if format in ("m4a", "mp3", "opus", "wav"): + if format in AUDIO_FORMATS: opts["postprocessors"].append({ "key": "FFmpegExtractAudio", "preferredcodec": format, "preferredquality": 0 if quality == "best" else quality, }) + + #Audio formats without thumbnail if format not in ("wav"): opts["writethumbnail"] = True opts["postprocessors"].append({"key": "FFmpegThumbnailsConvertor", "format": "jpg", "when": "before_dl"}) diff --git a/app/ytdl.py b/app/ytdl.py index b72f883..c001a16 100644 --- a/app/ytdl.py +++ b/app/ytdl.py @@ -7,7 +7,7 @@ import asyncio import multiprocessing
import logging
import re
-from dl_formats import get_format, get_opts
+from dl_formats import get_format, get_opts, AUDIO_FORMATS
log = logging.getLogger('ytdl')
@@ -234,7 +234,7 @@ class DownloadQueue: if not self.queue.exists(entry['id']):
dl = DownloadInfo(entry['id'], entry['title'], entry.get('webpage_url') or entry['url'], quality, format, folder)
# Keep consistent with frontend
- base_directory = self.config.DOWNLOAD_DIR if (quality != 'audio' and format not in ("m4a", "mp3", "opus", "wav")) else self.config.AUDIO_DOWNLOAD_DIR
+ base_directory = self.config.DOWNLOAD_DIR if (quality != 'audio' and format not in AUDIO_FORMATS) else self.config.AUDIO_DOWNLOAD_DIR
if folder:
if not self.config.CUSTOM_DIRS:
return {'status': 'error', 'msg': f'A folder for the download was specified but CUSTOM_DIRS is not true in the configuration.'}
|