> **_NOTE_:**
>
> Since version 2023.01.06 yt-dlp natively supports plugins from python packages.
> The listed plugins will be soon updated and dependency to this package will be removed.
>
> For further details see https://github.com/yt-dlp/yt-dlp#plugins
# a plugin manager for yt-dlp
## about ytdlp-plugins
`ytdlp-plugins` extends the possibilities of yt-dlp by allowing to install new extractors from python packages that are not part of yt-dlp.
The following plugin packages are currently available:
* [ytdlp-auf1](https://pypi.org/project/ytdlp-auf1/)
* [ytdlp-bittube](https://pypi.org/project/ytdlp-bittube/) *(service is inoperative)*
* [ytdlp-brighteon](https://pypi.org/project/ytdlp-brighteon/)
* [ytdlp-dtube](https://pypi.org/project/ytdlp-dtube/)
* [ytdlp-servustv](https://pypi.org/project/ytdlp-servustv/)
* [ytdlp-youmaker](https://pypi.org/project/ytdlp-youmaker/)
## installation
You can install ytdlp-plugins via pip:
* Use [PyPI package](https://pypi.org/project/ytdlp-plugins):
`python3 -m pip install --upgrade ytdlp-plugins`
* Install from GitHub branch:
`python3 -m pip install -U https://github.com/flashdagger/ytdlp-plugins/archive/refs/heads/master.zip`
Note that on some systems, you may need to use `py` or `python` instead of `python3`
## running from command-line
On the command-line line simply use `ytdlp-plugins` executable instead `yt-dlp`.
This enables all plugins and forwards all parameters to yt-dlp.
You will get a detailed overview of installed plugins by running in verbose mode:
`ytdlp-plugins -v`
## embedding in your code
```python
import ytdlp_plugins
from yt_dlp import YoutubeDL
# add found plugin extractors to yt-dlp
ytdlp_plugins.add_plugins()
URLS = ['https://www.servustv.com/allgemein/p/jetzt-live/119753/']
with YoutubeDL() as ydl:
ydl.download(URLS)
```
For more details see [embedding yt-dlp](https://github.com/yt-dlp/yt-dlp#embedding-yt-dlp)
## running tests
You can run the extractor unittests on all installed plugins:
`python3 -m unittest ytdlp_plugins.test_download`
or with pytest
`pytest --pyargs ytdlp_plugins.test_download`
## creating packages
Want to create your own extractor package or simply apply
a patch to an existing (internal) yt-dlp extractor? Awesome.
Just check out the [minimal branch](https://github.com/flashdagger/ytdlp-plugins/tree/minimal)
and follow the instructions in the provided README.md:
`git clone https://github.com/flashdagger/ytdlp-plugins.git --branch minimal`
## about yt-dlp
[yt-dlp](https://github.com/yt-dlp/yt-dlp) is a [youtube-dl](https://github.com/ytdl-org/youtube-dl) fork based on the now inactive [youtube-dlc](https://github.com/blackjack4494/yt-dlc). The main focus of this project is adding new features and patches while also keeping up to date with the original project
Note that **all** plugins are imported even if not invoked, and that **there are no checks** performed on plugin code. Use plugins at your own risk and only if you trust the code
Raw data
{
"_id": null,
"home_page": "https://github.com/flashdagger/ytdlp-plugins",
"name": "ytdlp-plugins",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "",
"keywords": "yt-dlp,youtube-dl,extractors,plugins",
"author": "flashdagger",
"author_email": "flashdagger@googlemail.com",
"download_url": "",
"platform": "any",
"description": "> **_NOTE_:** \r\n> \r\n> Since version 2023.01.06 yt-dlp natively supports plugins from python packages.\r\n> The listed plugins will be soon updated and dependency to this package will be removed.\r\n> \r\n> For further details see https://github.com/yt-dlp/yt-dlp#plugins\r\n\r\n# a plugin manager for yt-dlp\r\n\r\n## about ytdlp-plugins\r\n`ytdlp-plugins` extends the possibilities of yt-dlp by allowing to install new extractors from python packages that are not part of yt-dlp.\r\n\r\nThe following plugin packages are currently available:\r\n* [ytdlp-auf1](https://pypi.org/project/ytdlp-auf1/)\r\n* [ytdlp-bittube](https://pypi.org/project/ytdlp-bittube/) *(service is inoperative)*\r\n* [ytdlp-brighteon](https://pypi.org/project/ytdlp-brighteon/)\r\n* [ytdlp-dtube](https://pypi.org/project/ytdlp-dtube/)\r\n* [ytdlp-servustv](https://pypi.org/project/ytdlp-servustv/)\r\n* [ytdlp-youmaker](https://pypi.org/project/ytdlp-youmaker/)\r\n\r\n\r\n## installation\r\nYou can install ytdlp-plugins via pip:\r\n* Use [PyPI package](https://pypi.org/project/ytdlp-plugins): \r\n\r\n `python3 -m pip install --upgrade ytdlp-plugins`\r\n* Install from GitHub branch: \r\n\r\n `python3 -m pip install -U https://github.com/flashdagger/ytdlp-plugins/archive/refs/heads/master.zip`\r\n\r\nNote that on some systems, you may need to use `py` or `python` instead of `python3`\r\n\r\n## running from command-line\r\nOn the command-line line simply use `ytdlp-plugins` executable instead `yt-dlp`.\r\nThis enables all plugins and forwards all parameters to yt-dlp.\r\n\r\nYou will get a detailed overview of installed plugins by running in verbose mode:\r\n\r\n`ytdlp-plugins -v`\r\n\r\n\r\n## embedding in your code\r\n\r\n```python\r\nimport ytdlp_plugins\r\nfrom yt_dlp import YoutubeDL\r\n\r\n# add found plugin extractors to yt-dlp\r\nytdlp_plugins.add_plugins()\r\n\r\nURLS = ['https://www.servustv.com/allgemein/p/jetzt-live/119753/']\r\nwith YoutubeDL() as ydl:\r\n ydl.download(URLS)\r\n```\r\n\r\nFor more details see [embedding yt-dlp](https://github.com/yt-dlp/yt-dlp#embedding-yt-dlp)\r\n\r\n\r\n## running tests\r\nYou can run the extractor unittests on all installed plugins:\r\n\r\n`python3 -m unittest ytdlp_plugins.test_download`\r\n\r\nor with pytest\r\n\r\n`pytest --pyargs ytdlp_plugins.test_download`\r\n\r\n\r\n## creating packages\r\nWant to create your own extractor package or simply apply \r\na patch to an existing (internal) yt-dlp extractor? Awesome.\r\nJust check out the [minimal branch](https://github.com/flashdagger/ytdlp-plugins/tree/minimal)\r\nand follow the instructions in the provided README.md:\r\n\r\n`git clone https://github.com/flashdagger/ytdlp-plugins.git --branch minimal`\r\n\r\n\r\n## about yt-dlp\r\n[yt-dlp](https://github.com/yt-dlp/yt-dlp) is a [youtube-dl](https://github.com/ytdl-org/youtube-dl) fork based on the now inactive [youtube-dlc](https://github.com/blackjack4494/yt-dlc). The main focus of this project is adding new features and patches while also keeping up to date with the original project\r\n\r\nNote that **all** plugins are imported even if not invoked, and that **there are no checks** performed on plugin code. Use plugins at your own risk and only if you trust the code\r\n",
"bugtrack_url": null,
"license": "The Unlicense",
"summary": "a plugin manager for yt-dlp",
"version": "2023.1.11",
"split_keywords": [
"yt-dlp",
"youtube-dl",
"extractors",
"plugins"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "c19fa112b9ee3db75e1fc97bf4016ea4e97497ad07771c7c49f0467512869255",
"md5": "4dc3889a16d6d630e208cbfe5d180849",
"sha256": "7bc09df8f81195745990b3423a89264e3f39e6eb5f84dbb47975a81c4d1a4831"
},
"downloads": -1,
"filename": "ytdlp_plugins-2023.1.11-py3-none-any.whl",
"has_sig": false,
"md5_digest": "4dc3889a16d6d630e208cbfe5d180849",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 21731,
"upload_time": "2023-01-11T23:52:52",
"upload_time_iso_8601": "2023-01-11T23:52:52.988474Z",
"url": "https://files.pythonhosted.org/packages/c1/9f/a112b9ee3db75e1fc97bf4016ea4e97497ad07771c7c49f0467512869255/ytdlp_plugins-2023.1.11-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-01-11 23:52:52",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "flashdagger",
"github_project": "ytdlp-plugins",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": null,
"specs": []
},
{
"name": "astroid",
"specs": [
[
"==",
"2.13.2"
]
]
},
{
"name": "attrs",
"specs": [
[
"==",
"22.2.0"
]
]
},
{
"name": "black",
"specs": [
[
"==",
"22.12.0"
]
]
},
{
"name": "bleach",
"specs": [
[
"==",
"5.0.1"
]
]
},
{
"name": "brotli",
"specs": [
[
"==",
"1.0.9"
]
]
},
{
"name": "bump2version",
"specs": [
[
"==",
"1.0.1"
]
]
},
{
"name": "certifi",
"specs": [
[
"==",
"2022.12.7"
]
]
},
{
"name": "cfgv",
"specs": [
[
"==",
"3.3.1"
]
]
},
{
"name": "charset-normalizer",
"specs": [
[
"==",
"2.1.1"
]
]
},
{
"name": "click",
"specs": [
[
"==",
"8.1.3"
]
]
},
{
"name": "colorama",
"specs": [
[
"==",
"0.4.6"
]
]
},
{
"name": "commonmark",
"specs": [
[
"==",
"0.9.1"
]
]
},
{
"name": "dill",
"specs": [
[
"==",
"0.3.6"
]
]
},
{
"name": "distlib",
"specs": [
[
"==",
"0.3.6"
]
]
},
{
"name": "docutils",
"specs": [
[
"==",
"0.19"
]
]
},
{
"name": "exceptiongroup",
"specs": [
[
"==",
"1.1.0"
]
]
},
{
"name": "execnet",
"specs": [
[
"==",
"1.9.0"
]
]
},
{
"name": "filelock",
"specs": [
[
"==",
"3.9.0"
]
]
},
{
"name": "identify",
"specs": [
[
"==",
"2.5.13"
]
]
},
{
"name": "idna",
"specs": [
[
"==",
"3.4"
]
]
},
{
"name": "importlib-metadata",
"specs": [
[
"==",
"6.0.0"
]
]
},
{
"name": "iniconfig",
"specs": [
[
"==",
"2.0.0"
]
]
},
{
"name": "isort",
"specs": [
[
"==",
"5.11.4"
]
]
},
{
"name": "jaraco-classes",
"specs": [
[
"==",
"3.2.3"
]
]
},
{
"name": "keyring",
"specs": [
[
"==",
"23.13.1"
]
]
},
{
"name": "lazy-object-proxy",
"specs": [
[
"==",
"1.9.0"
]
]
},
{
"name": "mccabe",
"specs": [
[
"==",
"0.7.0"
]
]
},
{
"name": "more-itertools",
"specs": [
[
"==",
"9.0.0"
]
]
},
{
"name": "mutagen",
"specs": [
[
"==",
"1.46.0"
]
]
},
{
"name": "mypy",
"specs": [
[
"==",
"0.991"
]
]
},
{
"name": "mypy-extensions",
"specs": [
[
"==",
"0.4.3"
]
]
},
{
"name": "nodeenv",
"specs": [
[
"==",
"1.7.0"
]
]
},
{
"name": "packaging",
"specs": [
[
"==",
"23.0"
]
]
},
{
"name": "pathspec",
"specs": [
[
"==",
"0.10.3"
]
]
},
{
"name": "pkginfo",
"specs": [
[
"==",
"1.9.6"
]
]
},
{
"name": "platformdirs",
"specs": [
[
"==",
"2.6.2"
]
]
},
{
"name": "pluggy",
"specs": [
[
"==",
"1.0.0"
]
]
},
{
"name": "pre-commit",
"specs": [
[
"==",
"2.21.0"
]
]
},
{
"name": "pycryptodomex",
"specs": [
[
"==",
"3.16.0"
]
]
},
{
"name": "pyflakes",
"specs": [
[
"==",
"3.0.1"
]
]
},
{
"name": "pygments",
"specs": [
[
"==",
"2.14.0"
]
]
},
{
"name": "pylint",
"specs": [
[
"==",
"2.15.10"
]
]
},
{
"name": "pytest",
"specs": [
[
"==",
"7.2.0"
]
]
},
{
"name": "pytest-subtests",
"specs": [
[
"==",
"0.9.0"
]
]
},
{
"name": "pytest-xdist",
"specs": [
[
"==",
"3.1.0"
]
]
},
{
"name": "pywin32-ctypes",
"specs": [
[
"==",
"0.2.0"
]
]
},
{
"name": "pyyaml",
"specs": [
[
"==",
"6.0"
]
]
},
{
"name": "readme-renderer",
"specs": [
[
"==",
"37.3"
]
]
},
{
"name": "requests",
"specs": [
[
"==",
"2.28.1"
]
]
},
{
"name": "requests-toolbelt",
"specs": [
[
"==",
"0.10.1"
]
]
},
{
"name": "rfc3986",
"specs": [
[
"==",
"2.0.0"
]
]
},
{
"name": "rich",
"specs": [
[
"==",
"13.0.1"
]
]
},
{
"name": "six",
"specs": [
[
"==",
"1.16.0"
]
]
},
{
"name": "tomli",
"specs": [
[
"==",
"2.0.1"
]
]
},
{
"name": "tomlkit",
"specs": [
[
"==",
"0.11.6"
]
]
},
{
"name": "twine",
"specs": [
[
"==",
"4.0.2"
]
]
},
{
"name": "typing-extensions",
"specs": [
[
"==",
"4.4.0"
]
]
},
{
"name": "urllib3",
"specs": [
[
"==",
"1.26.14"
]
]
},
{
"name": "virtualenv",
"specs": [
[
"==",
"20.17.1"
]
]
},
{
"name": "webencodings",
"specs": [
[
"==",
"0.5.1"
]
]
},
{
"name": "websockets",
"specs": [
[
"==",
"10.4"
]
]
},
{
"name": "wrapt",
"specs": [
[
"==",
"1.14.1"
]
]
},
{
"name": "yt-dlp",
"specs": [
[
"==",
"2023.1.6"
]
]
},
{
"name": "zipp",
"specs": [
[
"==",
"3.11.0"
]
]
}
],
"lcname": "ytdlp-plugins"
}