A companion addon for Streamlink.
Listing on AMO: Streamlink Helper.
This add-on adds an entry to the context menu for URLs and the current page. Clicking it will launch streamlink
with the URL/page as its first argument.
This allows you to watch livestreams, for example from twitch, with a custom media player without the hassle of inputting commands.
You need to do multiple things for this to work:
- Install Python, and add it to your
PATH
environment variable. - Install Streamlink, propably using
pip install streamlink
. Add the executable to your path. - Set
default-stream best
(or another quality) and a defaultplayer
in thestreamlinkrc
(found on Windows at%APPDATA%\streamlink\streamlinkrc
, on Linux at~/.streamlinkrc
). - Download and unzip
streamlink_helper.zip
from Releases somewhere you can read and write to. Note that location. Then:- Windows:
- Edit
registry.reg
with the path tostreamlink_helper_windows.json
in that location and execute it, or edit the registry on your own. - Edit
streamlink_helper_windows.json
with the path tostreamlink_helper.bat
. - Edit
streamlink_helper.bat
with the path tostreamlink_helper.py
(and to Python, if it's not on your path). - If
streamlink.exe
is not on your path, editstreamlink_helper.py
, replacingstreamlink.exe
with the location to it. -
- If
streamlink.exe
IS on your path, but firefox still refuses to find it, you can find out the path tostreamlink.exe
withwhere streamlink
and put that instreamlink_helper.py
.
- If
- Edit
- Linux:
- Ensure Python is in your path. If you can call
python
from a terminal, that is propably the case. - Execute
chmod +x streamlink_helper.py
. - Edit
streamlink_helper.json
with the path tostreamlink_helper.py
. - Copy
streamlink_helper.json
to the appropriate directory according to this documentation (most likely you want to docp streamlink_helper.json ~/.mozilla/native-messaging-hosts/
). - If
streamlink
is not in your path, editstreamlink_helper.py
, replacingstreamlink
with the location to it. - If
streamlink
IS on your path, but firefox still refuses to find it, you can find out the path tostreamlink
withwhich streamlink
and put that instreamlink_helper.py
.
- Ensure Python is in your path. If you can call
- Windows:
To do any kind of troubleshooting, go to about:debugging
in your firefox, enable debugging and click on "Debug" under the extension "Streamlink Helper".
Two windows open:
- A message asking if you want to debug → click "Ok"
- A console window. This will display any error messages. Some are found below. Note that I might not know of all errors, or all causes. If you find some more please create a new issue so I can add them. If you know how to resolve them, even better!
- The path to
streamlink_helper_windows.json
is wrong or missing in your registry - The path to
streamlink_helper.bat
is wrong instreamlink_helper_windows.json
- The path to
streamlink_helper.py
is wrong instreamlink_helper.bat
or python is not on your path. Paths with spaces need to be enclosed in double quotes, for example
call "C:\Program Files\Python36\bin\python.exe" "C:\Streamlink Helper\streamlink_helper.py"
- python couldn't find
streamlink
. Put it on your path or tell python where it is (instreamlink_helper.py
).
-
"This is all too complicated! Is this really neccessary? Couldn't you have made this easier?"
Yes, its way too complicated, but neccessary for FF57. Maybe I could have made it easier, but relative paths don't seem to work in all these files. If you want, you could create an installer for this ;)
-
"Does this work on MacOS?"
Probably, but you have to consult the official documentation for how to configure your equivalent of a registry, point directly to the python file instead of a bat and make it executable. YMMV.
-
"Why only FF57?"
The templates (1, 2) I used to create this had some lower version limits, so I took the upper one. Since there is already a functioning addon for FF ≤ 56, I didn't check if this addon works with lower versions.
To use Open with Livestreamer, just set the path to "livestreamer" to the streamlink executable, and it works with streamlink.
browser.runtime.sendMessage("[email protected]", "https://example.com/your/url/here")
.then(onSuccess)
.catch(onError);
You can use the built-in management API to check if the extension is installed.