{"id":13827659,"url":"https://github.com/flashdagger/ytdlp-plugins","last_synced_at":"2026-04-07T04:32:08.670Z","repository":{"id":37429595,"uuid":"420398321","full_name":"flashdagger/ytdlp-plugins","owner":"flashdagger","description":"plugin manager for yt-dlp which enables releases of extractors as separate python package","archived":false,"fork":false,"pushed_at":"2025-11-09T19:08:23.000Z","size":500,"stargazers_count":59,"open_issues_count":0,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-12-17T03:10:43.542Z","etag":null,"topics":["auf1","brighteon","dtube","python3","servustv","youmaker","youtube-dl","yt-dlp","yt-dlp-plugins","ytdlp-plugins"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flashdagger.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-10-23T11:52:11.000Z","updated_at":"2025-12-16T04:42:35.000Z","dependencies_parsed_at":"2024-04-04T06:30:40.153Z","dependency_job_id":"f27eab16-005d-455b-8af8-6fc50d0446df","html_url":"https://github.com/flashdagger/ytdlp-plugins","commit_stats":{"total_commits":158,"total_committers":1,"mean_commits":158.0,"dds":0.0,"last_synced_commit":"7cd8931969035e4273a7039de1cceda3e109fdc8"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/flashdagger/ytdlp-plugins","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flashdagger%2Fytdlp-plugins","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flashdagger%2Fytdlp-plugins/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flashdagger%2Fytdlp-plugins/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flashdagger%2Fytdlp-plugins/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flashdagger","download_url":"https://codeload.github.com/flashdagger/ytdlp-plugins/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flashdagger%2Fytdlp-plugins/sbom","scorecard":{"id":402671,"data":{"date":"2025-08-11","repo":{"name":"github.com/flashdagger/ytdlp-plugins","commit":"c3975b76336f95f0be5ab5df1a914cb1360fecc2"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":1.6,"checks":[{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":9,"reason":"binaries present in source code","details":["Warn: binary detected: test/ytdlp_auf1-2022.11.28-py3-none-any.whl:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: The Unlicense: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":0,"reason":"19 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2024-230 / GHSA-248v-346w-9cwc","Warn: Project is vulnerable to: PYSEC-2023-135 / GHSA-xqr8-7jwr-rhp7","Warn: Project is vulnerable to: PYSEC-2024-60 / GHSA-jjg7-2v4v-x38h","Warn: Project is vulnerable to: PYSEC-2024-3 / GHSA-j225-cvw7-qrx7","Warn: Project is vulnerable to: PYSEC-2023-117 / GHSA-mrwq-x4v8-fh7p","Warn: Project is vulnerable to: GHSA-9hjg-9r4m-mvj7","Warn: Project is vulnerable to: GHSA-9wx4-h78v-vm56","Warn: Project is vulnerable to: PYSEC-2023-74 / GHSA-j8r2-6x86-q33q","Warn: Project is vulnerable to: GHSA-34jh-p97f-mpxf","Warn: Project is vulnerable to: PYSEC-2023-212 / GHSA-g4mx-q9vg-27p4","Warn: Project is vulnerable to: GHSA-pq67-6m6q-mj2v","Warn: Project is vulnerable to: PYSEC-2023-192 / GHSA-v845-jxx5-vc9f","Warn: Project is vulnerable to: PYSEC-2024-187 / GHSA-rqc4-2hc7-8c8v","Warn: Project is vulnerable to: GHSA-3ch3-jhc6-5r8x","Warn: Project is vulnerable to: GHSA-42h4-v29r-42qg","Warn: Project is vulnerable to: GHSA-79w7-vh3h-8g4j","Warn: Project is vulnerable to: GHSA-hjq6-52gw-2g7p","Warn: Project is vulnerable to: GHSA-v8mc-9377-rwjj","Warn: Project is vulnerable to: GHSA-jfmj-5v4g-7637"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-18T20:26:18.466Z","repository_id":37429595,"created_at":"2025-08-18T20:26:18.466Z","updated_at":"2025-08-18T20:26:18.466Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31500397,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["auf1","brighteon","dtube","python3","servustv","youmaker","youtube-dl","yt-dlp","yt-dlp-plugins","ytdlp-plugins"],"created_at":"2024-08-04T09:02:04.681Z","updated_at":"2026-04-07T04:32:08.638Z","avatar_url":"https://github.com/flashdagger.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"\u003e **_NOTE_:**  \n\u003e \n\u003e Since version 2023.01.06 yt-dlp natively supports plugins from python packages.\n\u003e The listed plugins will be soon updated and dependency to this package will be removed.\n\u003e \n\u003e For further details see https://github.com/yt-dlp/yt-dlp#plugins\n\n# a plugin manager for yt-dlp\n\n## about ytdlp-plugins\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.\n\nThe following plugin packages are currently available:\n* [ytdlp-auf1](https://pypi.org/project/ytdlp-auf1/)\n* [ytdlp-bittube](https://pypi.org/project/ytdlp-bittube/) *(service is inoperative)*\n* [ytdlp-brighteon](https://pypi.org/project/ytdlp-brighteon/)\n* [ytdlp-dtube](https://pypi.org/project/ytdlp-dtube/)\n* [ytdlp-servustv](https://pypi.org/project/ytdlp-servustv/)\n* [ytdlp-youmaker](https://pypi.org/project/ytdlp-youmaker/)\n\n\n## installation\nYou can install ytdlp-plugins via pip:\n* Use [PyPI package](https://pypi.org/project/ytdlp-plugins): \n\n  `python3 -m pip install --upgrade ytdlp-plugins`\n* Install from GitHub branch: \n\n  `python3 -m pip install -U https://github.com/flashdagger/ytdlp-plugins/archive/refs/heads/master.zip`\n\nNote that on some systems, you may need to use `py` or `python` instead of `python3`\n\n## running from command-line\nOn the command-line line simply use `ytdlp-plugins` executable instead `yt-dlp`.\nThis enables all plugins and forwards all parameters to yt-dlp.\n\nYou will get a detailed overview of installed plugins by running in verbose mode:\n\n`ytdlp-plugins -v`\n\n\n## embedding in your code\n\n```python\nimport ytdlp_plugins\nfrom yt_dlp import YoutubeDL\n\n# add found plugin extractors to yt-dlp\nytdlp_plugins.add_plugins()\n\nURLS = ['https://www.servustv.com/allgemein/p/jetzt-live/119753/']\nwith YoutubeDL() as ydl:\n  ydl.download(URLS)\n```\n\nFor more details see [embedding yt-dlp](https://github.com/yt-dlp/yt-dlp#embedding-yt-dlp)\n\n\n## running tests\nYou can run the extractor unittests on all installed plugins:\n\n`python3 -m unittest ytdlp_plugins.test_download`\n\nor with pytest\n\n`pytest --pyargs ytdlp_plugins.test_download`\n\n\n## creating packages\nWant to create your own extractor package or simply apply \na patch to an existing (internal) yt-dlp extractor? Awesome.\nJust check out the [minimal branch](https://github.com/flashdagger/ytdlp-plugins/tree/minimal)\nand follow the instructions in the provided README.md:\n\n`git clone https://github.com/flashdagger/ytdlp-plugins.git --branch minimal`\n\n\n## about yt-dlp\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\n\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\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflashdagger%2Fytdlp-plugins","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflashdagger%2Fytdlp-plugins","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflashdagger%2Fytdlp-plugins/lists"}