Installation#

Windows#

Method

Installing

Installers

See the Windows binaries section below

Portable

See the Windows binaries section below

Nightly builds

See the Windows nightly builds section below

Python pip

See the PyPI package and source code section below

Chocolatey

choco install streamlink

Installing Chocolatey packages

Scoop

scoop bucket add extras
scoop install streamlink

Installing Scoop packages

Windows Package Manager

winget install streamlink

Installing Winget packages

macOS#

Method

Installing

Python pip

See the PyPI package and source code section below

Homebrew

brew install streamlink

Installing Homebrew packages

Linux and BSD#

Distribution

Installing

AppImage

See the AppImages section below

Python pip

See the PyPI package and source code section below

Arch Linux

sudo pacman -S streamlink

Arch Linux (aur, git)

git clone https://aur.archlinux.org/streamlink-git.git
cd streamlink-git
makepkg -si

Installing AUR packages

Debian (sid, testing)

sudo apt update
sudo apt install streamlink

Debian (stable)

# If you don't have Debian backports already (see link below):
echo "deb http://deb.debian.org/debian bullseye-backports main" | sudo tee "/etc/apt/sources.list.d/streamlink.list"

sudo apt update
sudo apt -t bullseye-backports install streamlink

Installing Debian backported packages

Fedora

sudo dnf install streamlink

Gentoo Linux

sudo emerge net-misc/streamlink

NetBSD (pkgsrc)

cd /usr/pkgsrc/multimedia/streamlink
sudo make install clean

NixOS

nix-env -iA nixos.streamlink

NixOS channel

openSUSE

sudo zypper install streamlink

Solus

sudo eopkg install streamlink

Void

sudo xbps-install streamlink

Package maintainers#

Distribution/Platform

Maintainer

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>

Gentoo

soredake <fdsfgs at krutt.org>

NetBSD

Maya Rashish <maya at netbsd.org>

NixOS

Tuomas Tynkkynen <tuomas.tynkkynen at iki.fi>

openSUSE

Simon Puchert <simonpuchert at alice.de>

Solus

Joey Riches <josephriches at gmail.com>

Void

Michal Vasilek <michal at vasilek.cz>

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, 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.

Note

On some Linux distributions, the Python headers package needs to be installed before installing Streamlink (python-devel on RedHat, Fedora, etc.).

Ensure that you are using an up-to-date version of pip. At least version 6 is required.

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, eg. ~/.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

Latest release

pip install --user --upgrade streamlink

Master branch

pip install --user --upgrade git+https://github.com/streamlink/streamlink.git

Specific tag/branch or commit

pip install --user --upgrade git+https://github.com/USERNAME/streamlink.git@BRANCH-OR-COMMIT

Virtual environment#

Another method of installing Streamlink in a non-system-wide way is using virtualenv, which creates a user owned Python environment instead.

# Create a new environment
virtualenv ~/myenv

# Activate the environment
source ~/myenv/bin/activate

# Install Streamlink in the environment
pip install --upgrade streamlink

# Use Streamlink in the environment
streamlink ...

# Deactivate the environment
deactivate

# Use Streamlink without activating the environment
~/myenv/bin/streamlink ...

Note

This may also be required on some macOS versions that seem to have weird permission issues.

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

Python

At least version 3.7.

build

setuptools

At least version 45.0.0.
Used as build backend.

build

wheel

Used by the build frontend for creating Python wheels.

build

versioningit

At least version 2.0.0.
Used for generating the version string from git when building, or when running in an editable install.

runtime

isodate

Used for parsing ISO8601 strings

runtime

lxml

Used for processing HTML and XML data

runtime

pycountry

Used for localization settings, provides country and language data

runtime

pycryptodome

Used for decrypting encrypted streams

runtime

PySocks

Used for SOCKS Proxies

runtime

requests

Used for making any kind of HTTP/HTTPS request

runtime

websocket-client

Used for making websocket connections

optional

FFmpeg

Required for muxing multiple video/audio/subtitle streams into a single output stream.

  • DASH streams with video and audio content always have to get remuxed.

  • HLS streams optionally need to get remuxed depending on the stream selection.

Windows binaries#

Windows installers and portable builds for Streamlink can be found at streamlink/windows-builds, with support for different architectures and different Python versions.

These installers and portable builds contain:

and they are available in the following flavors:

  • Python 3.10 - x86_64 (64 bit)

  • Python 3.10 - x86 (32 bit)

  • Python 3.8 - x86_64 (64 bit) - for Windows 7

  • Python 3.8 - x86 (32 bit) - for Windows 7

For further information, please see the README in the streamlink/windows-builds repository.

Windows stable builds#

Stable installers and stable portable builds of Streamlink's latest release can be downloaded from the releases page of the streamlink/windows-builds repository.

Windows nightly builds#

Built once each day at midnight UTC from Streamlink's master branch.
This includes the most recent changes, but is not considered "stable".
Download from the build-artifacts of the scheduled nightly build runs (requires a GitHub login).
See the commit log of Steamlink's master branch for all the recent changes.

AppImages#

Download & Setup#

First, download the latest Streamlink AppImage which matches your system's architecture from the Streamlink AppImage releases page. Then simply set the executable flag and run the app.

# Set the executable flag. Note that all AppImage release file names include
# the release version, Python version, platform name and CPU architecture
chmod +x streamlink-2.0.0-1-cp39-cp39-manylinux2014_x86_64.AppImage

# Run the Streamlink AppImage with any parameter supported by Streamlink
./streamlink-2.0.0-1-cp39-cp39-manylinux2014_x86_64.AppImage --version

What are AppImages?#

AppImages are portable apps for Linux which are independent of the distro and package management.

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.