-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Description
Let's talk about updating the plugin request/inclusion rules... The last time these rules were updated was in October 2020 and June 2018.
While not being mentioned directly anywhere except in some buried discussions from years ago, there are still plugins on the master branch despite them violating the (current) rules. We never deleted any of those plugins unless they broke and required major changes in order to fix them. Others however were removed with the addition of certain rules.
Current plugin request rules
https://github.com/streamlink/streamlink/blob/6.7.2/CONTRIBUTING.md#plugin-requests
- Any kind of streaming service that uses DRM protection
- Sites which are hosting stolen content as their main source of content
- Sites which are primarily rehosting content that is available from a legitimate source (TV shows, sports, news, etc.)
- Sites which require any sort of cable login or subscription
- NSFW sites of a pornographic nature (cam sites, porn sites, etc.)
- Sites which don't provide any real live streaming content, eg. only VODs or VODs being rebroadcasted
- Sites which don't provide any video streaming content, eg. radio stations
- Sites where the maintainer has requested we not add their site to Streamlink
- Sites which are unmaintained, are in beta or are undergoing heavy amounts of development and may change rapidly
- Sites which have no way to determine viewership numbers
- Sites which are static cameras of a physical location
Rule "categories"
There are mainly two different kinds of rules, excluding three of the eleven rules:
- Ones which prevent plugins from being added due to the site's content
- 1 (DRM content)
- 2 (stolen content)
- 3 (rehosted content)
- 5 (NSFW content)
- 6 (only VOD content)
- Ones which were added in order to keep the number of plugins low
- 7 (no video streams)
- 10 (unknown number of viewers)
- 11 (static cameras)
The other three rules are this:
- 4 (cable logins / subscriptions)
- 8 (site asked for the plugin to be removed)
- 9 (unmaintained / in-development sites)
Category 1 is pretty much self-explanatory.
Rules of category 2 were added either because of maintenance cost or due to plugins deemed being "not useful" or "too niche" and unnecessarily causing bloat in Streamlink's code base and session memory during runtime. Another reason for adding those rules were people who made daily low-effort requests for sites they didn't even use themselves and probably just found via Google.
Rule change discussions
With the addition of lazy plugin loading in 6.6.0, rules of category 2 could be changed or removed entirely. The only concern would be whether a plugin could be maintained, even if it's "unpopular". This is kind of an important question though, because merging bad plugins doesn't make much sense, and if there's no rule we can point to, then the choice of rejection is arbitrary and always questionable. Ideally we want plugin code to be submitted in a PR instead of plugins to be requested, but allowing plugins of this kind doesn't solve the maintenance issue if nobody is able to fix future issues, even if code is submitted initially. And figuring out which plugins are broken because nobody uses them is also a problem, which means we'd carry around broken plugins for a long time.
Rule 6 may be lifted at some point, but with Streamlink's current VOD support which is pretty bad in terms of viewing and recording, it should stay. The focus is still on live streaming.
No idea about rule 4. AFAICR, this was added because of some sports TV channel requests which required some silly authentication. This rule is not very clear and should be updated or removed.