Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/un-def/dl-plus
A youtube-dl extension with pluggable extractors
https://github.com/un-def/dl-plus
dl-plus youtube-dl
Last synced: 2 months ago
JSON representation
A youtube-dl extension with pluggable extractors
- Host: GitHub
- URL: https://github.com/un-def/dl-plus
- Owner: un-def
- License: mit
- Created: 2020-10-08T11:54:18.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2024-04-06T05:54:49.000Z (9 months ago)
- Last Synced: 2024-05-06T18:43:24.945Z (8 months ago)
- Topics: dl-plus, youtube-dl
- Language: Python
- Homepage:
- Size: 127 KB
- Stars: 41
- Watchers: 4
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# dl-plus
A [youtube-dl][youtube-dl-website] extension with pluggable extractors
## Description
`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.
## Installation
1. Install `dl-plus`:
* using [pipx][pipx-website]:
```
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
```2. 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-website]:
```
pipx inject dl-plus yt-dlp
```* using pip:
```
pip install yt-dlp
```3. (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-website]:
```
pipx inject dl-plus dl-plus-extractor-un1def-goodgame
```* using pip:
```
pip install dl-plus-extractor-un1def-goodgame
```4. (optional) Create `dl-plus` → `youtube-dl` symlink (for apps relying on `youtube-dl` executable in `PATH`, e.g., [mpv][mpv-website]):
- **\*nix**:
```shell
dlp=$(command -v dl-plus 2>&1) && ln -s "$dlp" "$(dirname "$dlp")/youtube-dl"
```Use `ln -sf` instead of `ln -s` to overwrite an existing `youtube-dl` executable.
- **Windows** (PowerShell, requires administrative privileges):
```powershell
$dlp = (Get-Command -ErrorAction:Stop dl-plus).Path; New-Item -ItemType SymbolicLink -Path ((Get-Item $dlp).Directory.FullName + "\youtube-dl.exe") -Target $dlp
```## Extractor Plugin Authoring Guide
See [docs/extractor-plugin-authoring-guide.md](https://github.com/un-def/dl-plus/blob/master/docs/extractor-plugin-authoring-guide.md).
## Available Extractor Plugins
See [docs/available-extractor-plugins.md](https://github.com/un-def/dl-plus/blob/master/docs/available-extractor-plugins.md).
## License
The [MIT License][license].
[youtube-dl-website]: https://youtube-dl.org/
[pipx-website]: https://pipxproject.github.io/pipx/
[mpv-website]: https://mpv.io/
[license]: https://github.com/un-def/dl-plus/blob/master/LICENSE