Plugin sideloading¶

Streamlink will attempt to load standalone plugins from these directories:

Platform

Location

Linux, BSD

Path

  • ${XDG_DATA_HOME:-${HOME}/.local/share}/streamlink/plugins

Example

  • /home/USERNAME/.local/share/streamlink/plugins

Deprecated

  • ${XDG_CONFIG_HOME:-${HOME}/.config}/streamlink/plugins

macOS

Path

  • ${HOME}/Library/Application¬†Support/streamlink/plugins

Example

  • /Users/USERNAME/Library/Application¬†Support/streamlink/plugins

Deprecated

  • ${XDG_CONFIG_HOME:-${HOME}/.config}/streamlink/plugins

Windows

Path

  • %APPDATA%\streamlink\plugins

Example

  • C:\Users\USERNAME\AppData\Roaming\streamlink\plugins

Note

If a plugin is added with the same name as a built-in plugin, then the added plugin will take precedence. This is useful if you want to upgrade plugins independently of the Streamlink version.

In this case, a log message will be written to log level debug:

[session][debug] Plugin PLUGINNAME is being overridden by PATH-TO-PLUGIN-FILE

Warning

If one of the sideloaded plugins fails to load, e.g. due to a SyntaxError being raised by the parser, then this exception won't get caught by Streamlink and the execution will stop, even if the input stream URL does not match the faulty plugin.