Skip to main content

A thin wrapper around yt-dlp for parallel downloads

Project description

yt-dlpp

A thin wrapper around yt-dlp for parallel downloads

Description

yt-dlpp is just yt-dlp but starts downloads in parallel.
It supports passing multiple download URLs and unwrapping playlists.

Installation

Note: In addition to yt-dlpp, it is expected that you also have a valid yt-dlp install available in the command line.
Only Linux has been tested and validated, but feel free to open a PR to add support for other OS-es.

From pypi

pip install yt-dlpp

From source, on Linux

git clone https://github.com/GeoffreyCoulaud/yt-dlpp.git
cd yt-dlpp
python3 -m venv .venv
source .venv/bin/activate
pip install

Usage

yt-dlpp accepts all valid yt-dlp arguments and passes them mostly intact.
However, arguments related to CLI output will be ignored since that is handled by yt-dlpp.

Below, you can find a short list of the added arguments:

Argument Description Default value
--n-info-workers Number concurrent url info extraction workers Number of CPUs in the system
--n-dl-workers Number concurrent download workers Number of CPUs in the system

Architecture

yt-dlpp spreads the info getting and downloads to multiple worker processes. Here is an architecture overview of the project :

graph TD
    A[CLI Entry Point]-->B[Info Worker 1]
    A-->C[Info Worker 2]
    A-->D[...]
    A-->E[Info Worker N]
    B-->F[Download Deduplication Worker]
	C-->F
	D-->F
	E-->F
	F-->G[Download Worker 1]
	F-->H[Download Worker 2]
	F-->I[...]
	F-->J[Download Worker N]
	G-->K[Progress Display Worker]
	H-->K
	I-->K
	J-->K

Reason to exist

As you may be aware, starting multiple Youtube downloads in parallel will probably not change the overall time taken, since a rate limit is in place, and before reaching it, you may simply reach your ISP's limit.
But yt-dlp (and therefore yt-dlpp too) is not only used for Youtube! Other websites have different restrictions, and some may simply allow downloads at a slow speed, but no per IP throttling (eg. NHK World Japan).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yt_dlpp-1.0.2.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

yt_dlpp-1.0.2-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

File details

Details for the file yt_dlpp-1.0.2.tar.gz.

File metadata

  • Download URL: yt_dlpp-1.0.2.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.9.19

File hashes

Hashes for yt_dlpp-1.0.2.tar.gz
Algorithm Hash digest
SHA256 f6ffb130cb11c9be716e45a9d3f7b0380fcb766071c82b2f45b52d53eeca00be
MD5 3d4b1e57d2c764bae0cdaeecd2fc6b31
BLAKE2b-256 81b3675f823e26082c2a6a5b98da64136ca01700b9d42851c02fb63a06527414

See more details on using hashes here.

File details

Details for the file yt_dlpp-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: yt_dlpp-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 12.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.9.19

File hashes

Hashes for yt_dlpp-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 11f5eb05ce19daf020684323c67466cc7c1f26c4243a3608720ccb056c5647b0
MD5 72e918569fbba5a351d9cfa6ce1c5bf3
BLAKE2b-256 7b9b62bec42292e14cdacf9721f12605ee5d89f23e3a14135a00342a14e640be

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page