Installation

Version

Installing

Latest release(pip)

# Current user
pip install --upgrade --user git+https://github.com/Billy2011/streamlink-27/tree/release-1.27.5.0.git

# System wide
sudo pip install --upgrade git+https://github.com/Billy2011/streamlink-27/tree/release-1.27.5.0.git

Latest release(git)

# Current user
git clone https://github.com/Billy2011/streamlink-27/tree/release-1.27.5.0.git
cd streamlink
python setup.py install --user

# System wide
git clone https://github.com/Billy2011/streamlink-27/tree/release-1.27.5.0.git
cd streamlink
sudo python setup.py install

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.

Name

Notes

Python

At least version 2.7 or 3.6.

python-setuptools

Automatically installed by the setup script

python-futures

Only needed on Python 2.7.

python-requests

At least version 2.26.0

python-singledispatch

Only needed on Python 2.7.

pycryptodome

Required to play some encrypted streams

iso-639

Used for localization settings, provides language information

iso3166

Used for localization settings, provides country information

isodate

Used for MPEG-DASH streams

lxml

Used for processing HTML and XML data

PySocks

Used for SOCKS Proxies

websocket-client

At least version 0.58.0. (used for some plugins)

shutil_get_terminal_size

Only needed on Python 2.7.

shutil_which

Only needed on Python 2.7.

Optional

RTMPDump

Required to play RTMP streams.

ffmpeg

Required to play streams that are made up of separate audio and video streams, eg. YouTube 1080p+

Using pycrypto and pycountry

With these two environment variables it is possible to use pycrypto instead of pycryptodome and pycountry instead of iso-639 and iso3166.

$ export STREAMLINK_USE_PYCRYPTO="true"
$ export STREAMLINK_USE_PYCOUNTRY="true"