You are reading the documentation for the in-development version of Streamlink.

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

AppImage nightly builds

See the AppImage nightly builds 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.

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.

Install with virtualenv and pip commands#

# Create a new environment
virtualenv ~/myenv

# Activate the environment
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 with pipx command#

The pipx command combines the functionality of the virtualenv and pip commands. 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 ...

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

certifi

Used for loading the CA bundle extracted from the Mozilla Included CA Certificate List

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

urllib3

Used internally by requests, defined as direct dependency

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 archives for Streamlink are built at streamlink/windows-builds, with support for different architectures and different Python versions.

These installers and portable archives contain:

and they are available in the following flavors:

  • Latest Python - x86_64 (64 bit) - recommended

  • Latest Python - x86 (32 bit)

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

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

Note

The installers automatically create a config file if it doesn't exist yet and set the value of the --ffmpeg-ffmpeg CLI parameter to the path of the included FFmpeg binary. The portable archives can't do that, and users need to do that themselves.

Please see the README of the streamlink/windows-builds repository for further information.

Windows stable builds#

streamlink/windows-builds releases page

Windows nightly builds#

streamlink/windows-builds nightly builds artifacts

Built once each day at midnight UTC from Streamlink's master branch.
This includes the most recent changes, but is not considered "stable".
A GitHub account is required in order to access build artifacts.

AppImages#

Linux AppImages for Streamlink are built at streamlink/streamlink-appimage.

These AppImages contain:

  • a Python environment

  • Streamlink and its dependencies

and they are available for the following CPU architectures:

  • x86_64

  • i686

  • aarch64

  1. Download the latest Streamlink AppImage matching your CPU architecture

    If unsure, run uname -m to check the CPU's architecture.

  2. Set the executable flag

    This can either be done in a regular file browser, or a command line shell via chmod +x filename.

    # AppImage 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
    
  3. Run the AppImage

    Set any command-line parameters supported by Streamlink, e.g. --version:

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

AppImage stable builds#

streamlink/streamlink-appimage releases page

AppImage nightly builds#

streamlink/streamlink-appimage nightly builds artifacts

Built once each day at midnight UTC from Streamlink's master branch.
This includes the most recent changes, but is not considered "stable".
A GitHub account is required in order to access build artifacts.

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.