feat(dl): Add *new* --workers to set download threads/workers

The previously named --workers which is now --downloads specified how many tracks to download, not how many threads/workers are used per-download.

It defaults to nothing, which each downloader then has their own defaults. All current downloaders though currently default to `min(32, (os.cpu_count() or 1) + 4)`, which is also the default for `ThreadPoolExecutor` in general.

This also brings a side effect of changing DASH and HLS's forced max_workers of 16 to now a more appropriate default but more importantly actually configurable. You can set a default in your config under `dl.workers`.
This commit is contained in:
rlaphoenix
2024-04-02 23:42:37 +01:00
parent 0cf20f84a9
commit 10285c3819
6 changed files with 22 additions and 4 deletions

View File

@@ -236,6 +236,7 @@ class DASH:
progress: partial,
session: Optional[Session] = None,
proxy: Optional[str] = None,
max_workers: Optional[int] = None,
license_widevine: Optional[Callable] = None
):
if not session:
@@ -472,7 +473,7 @@ class DASH:
headers=session.headers,
cookies=session.cookies,
proxy=proxy,
max_workers=16
max_workers=max_workers
):
file_downloaded = status_update.get("file_downloaded")
if file_downloaded: