Reduce extract_info calls.
This commit is contained in:
parent
9560d0f7b6
commit
b56351cd05
2 changed files with 15 additions and 1 deletions
|
|
@ -9,6 +9,7 @@ import yt_dlp
|
||||||
from Utils import Notifier, get_format, get_opts, jsonCookie, mergeConfig
|
from Utils import Notifier, get_format, get_opts, jsonCookie, mergeConfig
|
||||||
from ItemDTO import ItemDTO
|
from ItemDTO import ItemDTO
|
||||||
from Config import Config
|
from Config import Config
|
||||||
|
|
||||||
import hashlib
|
import hashlib
|
||||||
|
|
||||||
LOG = logging.getLogger('download')
|
LOG = logging.getLogger('download')
|
||||||
|
|
@ -33,6 +34,8 @@ class Download:
|
||||||
notifier: Notifier = None
|
notifier: Notifier = None
|
||||||
canceled: bool = False
|
canceled: bool = False
|
||||||
is_live: bool = False
|
is_live: bool = False
|
||||||
|
info_dict: dict = None
|
||||||
|
"yt-dlp metadata dict."
|
||||||
|
|
||||||
bad_live_options: list = [
|
bad_live_options: list = [
|
||||||
"concurrent_fragment_downloads",
|
"concurrent_fragment_downloads",
|
||||||
|
|
@ -64,6 +67,7 @@ class Download:
|
||||||
temp_dir: str,
|
temp_dir: str,
|
||||||
output_template_chapter: str,
|
output_template_chapter: str,
|
||||||
default_ytdl_opts: dict,
|
default_ytdl_opts: dict,
|
||||||
|
info_dict: dict = None,
|
||||||
debug: bool = False
|
debug: bool = False
|
||||||
):
|
):
|
||||||
self.download_dir = download_dir
|
self.download_dir = download_dir
|
||||||
|
|
@ -87,6 +91,7 @@ class Download:
|
||||||
self.tempKeep = bool(Config.get_instance().temp_keep)
|
self.tempKeep = bool(Config.get_instance().temp_keep)
|
||||||
self.is_live = bool(info.is_live) or info.live_in is not None
|
self.is_live = bool(info.is_live) or info.live_in is not None
|
||||||
self.is_manifestless = 'is_manifestless' in self.info.options and self.info.options['is_manifestless'] is True
|
self.is_manifestless = 'is_manifestless' in self.info.options and self.info.options['is_manifestless'] is True
|
||||||
|
self.info_dict = info_dict
|
||||||
|
|
||||||
def _progress_hook(self, data: dict):
|
def _progress_hook(self, data: dict):
|
||||||
dataDict = {k: v for k, v in data.items() if k in self._ytdlp_fields}
|
dataDict = {k: v for k, v in data.items() if k in self._ytdlp_fields}
|
||||||
|
|
@ -163,7 +168,15 @@ class Download:
|
||||||
|
|
||||||
LOG.info(f'Downloading {os.getpid()=} id="{self.info.id}" title="{self.info.title}".')
|
LOG.info(f'Downloading {os.getpid()=} id="{self.info.id}" title="{self.info.title}".')
|
||||||
|
|
||||||
ret = yt_dlp.YoutubeDL(params=params).download([self.info.url])
|
cls = yt_dlp.YoutubeDL(params=params)
|
||||||
|
|
||||||
|
if isinstance(self.info_dict, dict) and len(self.info_dict) > 1:
|
||||||
|
LOG.debug(f'Downloading using pre-info.')
|
||||||
|
cls.process_ie_result(self.info_dict, download=True)
|
||||||
|
ret = cls._download_retcode
|
||||||
|
else:
|
||||||
|
LOG.debug(f'Downloading using url: {self.info.url}')
|
||||||
|
ret = cls.download([self.info.url])
|
||||||
|
|
||||||
self.status_queue.put({'id': self.id, 'status': 'finished' if ret == 0 else 'error'})
|
self.status_queue.put({'id': self.id, 'status': 'finished' if ret == 0 else 'error'})
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
|
|
|
||||||
|
|
@ -157,6 +157,7 @@ class DownloadQueue:
|
||||||
temp_dir=self.config.temp_path,
|
temp_dir=self.config.temp_path,
|
||||||
output_template_chapter=output_chapter,
|
output_template_chapter=output_chapter,
|
||||||
default_ytdl_opts=self.config.ytdl_options,
|
default_ytdl_opts=self.config.ytdl_options,
|
||||||
|
info_dict=entry,
|
||||||
debug=bool(self.config.ytdl_debug)
|
debug=bool(self.config.ytdl_debug)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue