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-dl
or any compatible package (fork), e.g.,yt-dlp
:-
using
dl-plus
itself: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-plus
itself:dl-plus --cmd extractor install un1def/goodgame
PyPI 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-dl
symlink (for apps relying onyoutube-dl
executable inPATH
, e.g., mpv):-
*nix:
dlp=$(command -v dl-plus 2>&1) && ln -s "$dlp" "$(dirname "$dlp")/youtube-dl"
Use
ln -sf
instead ofln -s
to overwrite an existingyoutube-dl
executable. -
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.