A youtube-dl extension with pluggable extractors
dl-plus is an extension and a drop-in replacement of youtube-dl (or any compatible fork, e.g., yt-dlp). The main goal of the project is to add an easy-to-use extractor plugin system to youtube-dl while maintaining full backward compatibility.
dl-plus is not a fork of youtube-dl and does not contain code from youtube-dl, it is a pure dynamic wrapper (thanks to Python dynamic nature) hacking some youtube-dl internals.
-
Install
dl-plus:-
using pipx:
pipx install dl-plus -
using pip:
pip install dl-plus
(*nix) Alternatively, you can download a single file binary (zipapp) and put it somewhere in your
PATH:curl -L https://github.com/un-def/dl-plus/releases/latest/download/dl-plus -o dl-plus chmod a+x dl-plus -
-
Install a backend —
youtube-dlor any compatible package (fork), e.g.,yt-dlp:-
using
dl-plusitself:dl-plus --cmd backend install yt-dlp -
using pipx:
pipx inject dl-plus yt-dlp -
using pip:
pip install yt-dlp
-
-
(optional) Install some extractor plugins:
-
using
dl-plusitself:dl-plus --cmd extractor install un1def/goodgamePyPI package names are supported too:
dl-plus --cmd extractor install dl-plus-extractor-un1def-goodgame -
using pipx:
pipx inject dl-plus dl-plus-extractor-un1def-goodgame -
using pip:
pip install dl-plus-extractor-un1def-goodgame
-
-
(optional) Create
dl-plus→youtube-dlsymlink (for apps relying onyoutube-dlexecutable inPATH, e.g., mpv):-
*nix:
dlp=$(command -v dl-plus 2>&1) && ln -s "$dlp" "$(dirname "$dlp")/youtube-dl"
Use
ln -sfinstead ofln -sto overwrite an existingyoutube-dlexecutable. -
Windows (PowerShell, requires administrative privileges):
$dlp = (Get-Command -ErrorAction:Stop dl-plus).Path; New-Item -ItemType SymbolicLink -Path ((Get-Item $dlp).Directory.FullName + "\youtube-dl.exe") -Target $dlp
-
See docs/extractor-plugin-authoring-guide.md.
See docs/available-extractor-plugins.md.
The MIT License.