Installation¶
Windows¶
Method |
Installing |
---|---|
Installers |
See the Windows binaries section below |
Portable |
See the Windows binaries section below |
Nightly builds |
See the Windows binaries section below |
Python pip |
See the PyPI package and source code section below |
choco install streamlink
|
|
scoop bucket add extras
scoop install streamlink
|
|
winget install streamlink
|
macOS¶
Method |
Installing |
---|---|
Python pip |
See the PyPI package and source code section below |
brew install streamlink
|
Linux and BSD¶
Method / Distribution |
Installing |
---|---|
AppImage |
See the Linux AppImages section below |
AppImage nightly builds |
See the Linux AppImages section below |
Python pip |
See the PyPI package and source code section below |
sudo apk add streamlink
|
|
sudo apt-get install streamlink
|
|
sudo pacman -S streamlink
|
|
git clone https://aur.archlinux.org/streamlink-git.git
cd streamlink-git
makepkg -si
|
|
sudo apt update
sudo apt install streamlink
|
|
# If you don't have Debian backports already (see link below):
echo "deb http://deb.debian.org/debian bookworm-backports main" | sudo tee "/etc/apt/sources.list.d/streamlink.list"
sudo apt update
sudo apt -t bookworm-backports install streamlink
|
|
sudo dnf install streamlink
|
|
pkg install multimedia/streamlink
|
|
cd /usr/ports/multimedia/streamlink
make config install clean
|
|
sudo emerge net-misc/streamlink
|
|
nix-env -iA nixos.streamlink
|
|
sudo zypper install streamlink
|
|
Not recommended. Ubuntu inherits the See Package availability. |
|
sudo eopkg install streamlink
|
|
sudo xbps-install streamlink
|
Package maintainers¶
Distribution / Platform |
Maintainer |
---|---|
Alpine Linux |
Hoang Nguyen <folliekazetani at protonmail.com> |
ALT Linux |
Vitaly Lipatov <lav at altlinux.ru> |
Arch |
Giancarlo Razzolini <grazzolini at archlinux.org> |
Arch (aur, git) |
Josip Ponjavic <josipponjavic at gmail.com> |
Chocolatey |
Scott Walters <me at scowalt.com> |
Debian |
Alexis Murzeau <amubtdx at gmail.com> |
Fedora |
Mohamed El Morabity <melmorabity at fedoraproject.org> |
FreeBSD |
Takefu <takefu at airport.fm> |
Gentoo |
soredake <fdsfgs at krutt.org> |
NixOS |
Tuomas Tynkkynen <tuomas.tynkkynen at iki.fi> |
openSUSE |
Simon Puchert <simonpuchert at alice.de> |
Solus |
Joey Riches <josephriches at gmail.com> |
Void |
Tom Strausbaugh <tstrausbaugh at straustech.net> |
Windows binaries |
Sebastian Meyer <mail at bastimeyer.de> |
Linux AppImages |
Sebastian Meyer <mail at bastimeyer.de> |
Package availability¶
Packaging is not done by the Streamlink maintainers themselves except for the PyPI package, the Windows installers + portable builds, and the Linux AppImages.
If a packaged release of Streamlink is not available for your operating system / distro or your system's architecture, or if it's out of date or broken, then please contact the respective package maintainers or package-repository maintainers of your operating system / distro, as it's up to them to add, update, or fix those packages.
Users of glibc-based Linux distros can find up-to-date Streamlink releases via the available AppImages.
Please open an issue or pull request on GitHub if an available, maintained and up-to-date package is missing from the install docs.
PyPI package and source code¶
If a package is not available on your platform, or if it's out of date, then Streamlink can be installed via pip, the Python package manager.
Before running pip, make sure that it's the Python 3 version of pip (to check, run pip --version). On some systems, this isn't the case by default and an alternative, like pip3 for example, needs to be run instead.
Warning
On Linux, when not using a virtual environment, it is recommended to install custom python packages like this
only for the current user (see the --user
parameter below), since system-wide packages can cause conflicts with
the system's regular package manager.
Those user-packages will be installed into ~/.local
instead of /usr
, and entry-scripts for
running the programs can be found in ~/.local/bin
, e.g. ~/.local/bin/streamlink
.
In order for the command line shell to be able to find these executables, the user's PATH
environment variable
needs to be extended. This can be done by adding export PATH="${HOME}/.local/bin:${PATH}"
to ~/.profile
or ~/.bashrc
.
Version |
Installing |
---|---|
pip install --user -U streamlink
|
|
pip install --user -U git+https://github.com/streamlink/streamlink.git
|
|
pip install --user -U git+https://github.com/USERNAME/streamlink.git@REVISION
|
Virtual environment¶
Another way of installing Streamlink in a non-system-wide way is using the venv or virtualenv Python packages, which both create a user-owned Python environment which is isolated from the system's main Python package environment.
While venv is part of Python's standard library since 3.3
, virtualenv is the project which venv was built from,
but it first needs to be installed, either via pip or from the system's package manager. It also implements more features,
so depending on your needs, you may want to use virtualenv instead of venv.
Install using venv
and pip
¶
# Create a new environment
python -m venv ~/myenv
# Activate the environment
# note: non-POSIX compliant shells like FISH or PowerShell have different activation script file names
# note: on Windows, the `bin` subdirectory is called `Scripts`
source ~/myenv/bin/activate
# *Either* install the latest Streamlink release from PyPI in the virtual environment
pip install --upgrade streamlink
# *Or*, install the most up-to-date development version from master on GitHub
pip install --upgrade git+https://github.com/streamlink/streamlink.git
# Use Streamlink in the environment
streamlink ...
# Deactivate the environment
deactivate
# Use Streamlink without activating the environment
~/myenv/bin/streamlink ...
Install using pipx
¶
The pipx project combines the functionality of both venv
and pip
. It may be necessary to
install it first, either with a system package manager, or using pip
, as detailed in the documentation.
# *Either* install the latest Streamlink release from PyPI in a virtual environment
pipx install streamlink
# *Or*, install the most up-to-date development version from master on GitHub
pipx install git+https://github.com/streamlink/streamlink.git
# Use Streamlink
streamlink ...
Source distribution¶
In addition to the pre-built wheels uploaded to PyPI, Streamlink's source distribution tarballs get uploaded to both PyPI and GitHub releases. These tarballs are meant for packagers and are signed using the following PGP key:
Please be aware that PyPI has dropped support for uploading new release file signatures in May 2023, so those can only be found on GitHub releases now.
See the Dependencies section down below for the required build- and runtime-requirements.
Warning
Please avoid building Streamlink from tarballs generated by GitHub from (tagged) git commits,
as they are lacking the built-in release version string. The versioningit
build-requirement also won't be able
to find the correct version, as the content is not part of a git repository.
Instead, build from Streamlink's signed source-distribution tarballs which are uploaded to PyPI and GitHub releases, or from the cloned git repository.
Dependencies¶
To install Streamlink from source, you will need these dependencies.
Since 4.0.0, Streamlink defines a build system according to PEP-517 / PEP-518.
Type |
Name |
Notes |
---|---|---|
python |
At least version 3.9 |
|
build |
At least version 65.6.0 |
|
build |
Used by the build frontend for creating Python wheels |
|
build |
At least version 2.0.0 |
|
runtime |
Used for loading the CA bundle extracted from the Mozilla Included CA Certificate List |
|
runtime |
Only required when |
|
runtime |
Used for parsing ISO8601 strings |
|
runtime |
Used for processing HTML and XML data |
|
runtime |
Used for localization settings, provides country and language data |
|
runtime |
Used for decrypting encrypted streams |
|
runtime |
Used for SOCKS Proxies |
|
runtime |
Used for making any kind of HTTP/HTTPS request |
|
runtime |
Used for async concurrency and I/O in some parts of Streamlink |
|
runtime |
Used for WebSocket connections on top of the async trio framework |
|
runtime |
Used for backporting runtime support of certain type hints on older Python versions |
|
runtime |
Used internally by requests, defined as direct dependency |
|
runtime |
Used for making websocket connections |
|
optional |
Required for muxing multiple video/audio/subtitle streams into a single output stream.
|
Windows binaries¶
Flavors
Contents
Python
embedded build
Streamlink
and dependencies
FFmpeg
for muxing streams
Linux AppImages¶
Architectures
Contents
Python
from the pypa/manylinux docker images
Streamlink
and dependencies
How-To
Verify that the system is running on at least glibc 2.28 (Aug 2018) (see ld.so --version)
Download the AppImage file matching the system's CPU architecture (see uname --machine)
Set the executable flag via a file browser or chmod +x filename from a command-line shell
# AppImage file names include the release version, # the Python version, platform name and CPU architecture chmod +x streamlink-7.0.0-1-cp312-cp312-manylinux_2_28_x86_64.AppImage
Run the AppImage with any command-line parameters supported by Streamlink
./streamlink-7.0.0-1-cp312-cp312-manylinux_2_28_x86_64.AppImage --loglevel=debug
What are AppImages?¶
AppImages are portable applications which are independent of the Linux distribution in use and its package management. Just set the executable flag on the AppImage file and run it.
The only requirement is having FUSE installed for being able to mount the contents of the AppImage's SquashFS, which is done automatically. Also, only glibc-based systems are currently supported.
Note: Check out AppImageLauncher, which automates the setup and system integration of AppImages. AppImageLauncher may also be available via your distro's package management.
Additional information, like for example how to inspect the AppImage contents or how to extract the contents if FUSE is not available on your system, can be found in the AppImage documentation.