1.. |br| raw:: html
2
3  <br />
4
5Installation
6============
7
8Windows
9-------
10
11.. rst-class:: table-custom-layout
12
13==================================== ===========================================
14Method                               Installing
15==================================== ===========================================
16Installers                           See the `Windows binaries`_ section below
17
18Portable                             See the `Windows portable version`_ section below
19
20Python pip                           See the `PyPI package and source code`_ section below
21
22`Chocolatey`_                        .. code-block:: bat
23
24                                        choco install streamlink
25
26                                     `Installing Chocolatey packages`_
27
28`Windows Package Manager`_           .. code-block:: bat
29
30                                        winget install streamlink
31
32                                     `Installing Winget packages`_
33==================================== ===========================================
34
35.. _Chocolatey: https://chocolatey.org/packages/streamlink
36
37.. _Windows Package Manager: https://github.com/microsoft/winget-pkgs/tree/master/manifests/s/Streamlink/Streamlink
38
39.. _Installing Chocolatey packages: https://chocolatey.org
40
41.. _Installing Winget packages: https://docs.microsoft.com/en-us/windows/package-manager/
42
43macOS
44-----
45
46.. rst-class:: table-custom-layout
47
48==================================== ===========================================
49Method                               Installing
50==================================== ===========================================
51Python pip                           See the `PyPI package and source code`_ section below
52
53`Homebrew`_                          .. code-block:: bash
54
55                                        brew install streamlink
56
57                                     `Installing Homebrew packages`_
58==================================== ===========================================
59
60.. _Homebrew: https://github.com/Homebrew/homebrew-core/blob/master/Formula/streamlink.rb
61.. _Installing Homebrew packages: https://brew.sh
62
63
64Linux and BSD
65-------------
66
67.. rst-class:: table-custom-layout
68
69==================================== ===========================================
70Distribution                         Installing
71==================================== ===========================================
72AppImage                             See the `AppImages`_ section below
73
74Python pip                           See the `PyPI package and source code`_ section below
75
76`Arch Linux`_                        .. code-block:: bash
77
78                                        sudo pacman -S streamlink
79
80`Arch Linux (aur, git)`_             .. code-block:: bash
81
82                                        git clone https://aur.archlinux.org/streamlink-git.git
83                                        cd streamlink-git
84                                        makepkg -si
85
86                                     `Installing AUR packages`_
87
88`Debian (sid, testing)`_             .. code-block:: bash
89
90                                        sudo apt update
91                                        sudo apt install streamlink
92
93`Debian (stable)`_                   .. code-block:: bash
94
95                                        # If you don't have Debian backports already (see link below):
96                                        echo "deb http://deb.debian.org/debian buster-backports main" | sudo tee "/etc/apt/sources.list.d/streamlink.list"
97
98                                        sudo apt update
99                                        sudo apt -t buster-backports install streamlink
100
101                                     `Installing Debian backported packages`_
102
103`Fedora`_                            .. code-block:: bash
104
105                                        sudo dnf install streamlink
106
107`Gentoo Linux`_                      .. code-block:: bash
108
109                                        sudo emerge net-misc/streamlink
110
111`NetBSD (pkgsrc)`_                   .. code-block:: bash
112
113                                        cd /usr/pkgsrc/multimedia/streamlink
114                                        sudo make install clean
115
116`NixOS`_                             .. code-block:: bash
117
118                                        nix-env -iA nixos.streamlink
119
120                                     `NixOS channel`_
121
122`OpenBSD`_                           .. code-block:: bash
123
124                                        doas pkg_add streamlink
125
126`Solus`_                             .. code-block:: bash
127
128                                        sudo eopkg install streamlink
129
130`Ubuntu`_                            .. code-block:: bash
131
132                                        sudo add-apt-repository ppa:nilarimogard/webupd8
133                                        sudo apt update
134                                        sudo apt install streamlink
135
136`Void`_                              .. code-block:: bash
137
138                                        sudo xbps-install streamlink
139==================================== ===========================================
140
141Please see the `PyPI package and source code`_ or `AppImages`_ sections down below
142if a package is not available for your distro or platform, or if it's out of date.
143
144.. _Arch Linux: https://www.archlinux.org/packages/community/any/streamlink/
145.. _Arch Linux (aur, git): https://aur.archlinux.org/packages/streamlink-git/
146.. _Debian (sid, testing): https://packages.debian.org/unstable/streamlink
147.. _Debian (stable): https://packages.debian.org/unstable/streamlink
148.. _Fedora: https://src.fedoraproject.org/rpms/python-streamlink
149.. _Gentoo Linux: https://packages.gentoo.org/package/net-misc/streamlink
150.. _NetBSD (pkgsrc): https://pkgsrc.se/multimedia/streamlink
151.. _NixOS: https://github.com/NixOS/nixpkgs/tree/master/pkgs/applications/video/streamlink
152.. _OpenBSD: https://openports.se/multimedia/streamlink
153.. _Solus: https://dev.solus-project.com/source/streamlink/
154.. _Ubuntu: http://ppa.launchpad.net/nilarimogard/webupd8/ubuntu/pool/main/s/streamlink/
155.. _Void: https://github.com/void-linux/void-packages/tree/master/srcpkgs/streamlink
156
157.. _Installing AUR packages: https://wiki.archlinux.org/index.php/Arch_User_Repository#Installing_packages
158.. _Installing Debian backported packages: https://wiki.debian.org/Backports#Using_the_command_line
159.. _NixOS channel: https://search.nixos.org/packages?show=streamlink&query=streamlink
160
161
162Package maintainers
163-------------------
164
165.. rst-class:: table-custom-layout
166
167==================================== ===========================================
168Distribution/Platform                Maintainer
169==================================== ===========================================
170Arch                                 Giancarlo Razzolini <grazzolini at archlinux.org>
171Arch (aur, git)                      Josip Ponjavic <josipponjavic at gmail.com>
172Chocolatey                           Scott Walters <me at scowalt.com>
173Debian                               Alexis Murzeau <amubtdx at gmail.com>
174Fedora                               Mohamed El Morabity <melmorabity at fedoraproject.org>
175Gentoo                               soredake <fdsfgs at krutt.org>
176NetBSD                               Maya Rashish <maya at netbsd.org>
177NixOS                                Tuomas Tynkkynen <tuomas.tynkkynen at iki.fi>
178OpenBSD                              Brian Callahan <bcallah at openbsd.org>
179Solus                                Bryan T. Meyers <bmeyers at datadrake.com>
180Ubuntu                               Alin Andrei <andrew at webupd8.org>
181Void                                 wkuipers <wietse at kuiprs.nl>
182Windows binaries                     beardypig <beardypig at protonmail.com>
183Windows port. version                beardypig <beardypig at protonmail.com>
184==================================== ===========================================
185
186
187PyPI package and source code
188----------------------------
189
190If a package is not available on your platform, or if it's out of date,
191Streamlink can be installed via `pip`_, the Python package manager.
192
193Before running :command:`pip`, make sure that it's the Python 3 version of `pip`_ (to check, run :command:`pip --version`).
194On some systems, this isn't the case by default and an alternative, like :command:`pip3` for example, needs to be run instead.
195
196.. note::
197
198    On some Linux distributions, the Python headers package needs to be installed before installing Streamlink
199    (``python-devel`` on RedHat, Fedora, etc.).
200
201    Ensure that you are using an up-to-date version of `pip`_. At least version **6** is required.
202
203.. warning::
204
205    On Linux, when not using a virtual environment, it is recommended to **install custom python packages like this
206    only for the current user** (see the ``--user`` parameter below), since system-wide packages can cause conflicts with
207    the system's regular package manager.
208
209    Those user-packages will be installed into ``~/.local`` instead of ``/usr`` and entry-scripts for
210    running the programs can be found in ``~/.local/bin``, eg. ``~/.local/bin/streamlink``.
211
212    In order for the command line shell to be able to find these executables, the user's ``PATH`` environment variable
213    needs to be extended. This can be done by adding ``export PATH="${HOME}/.local/bin:${PATH}"``
214    to ``~/.profile`` or ``~/.bashrc``.
215
216.. rst-class:: table-custom-layout
217
218==================================== ===========================================
219Version                              Installing
220==================================== ===========================================
221`Latest release`_                    .. code-block:: bash
222
223                                        pip install --user --upgrade streamlink
224
225`Master branch`_                     .. code-block:: bash
226
227                                        pip install --user --upgrade git+https://github.com/streamlink/streamlink.git
228
229`Specific tag/branch or commit`_     .. code-block:: bash
230
231                                        pip install --user --upgrade git+https://github.com/USERNAME/streamlink.git@BRANCH-OR-COMMIT
232==================================== ===========================================
233
234.. _pip: https://pip.pypa.io/en/stable/
235.. _Latest release: https://pypi.python.org/pypi/streamlink
236.. _Master branch: https://github.com/streamlink/streamlink/commits/master
237.. _Specific tag/branch or commit: https://pip.pypa.io/en/stable/reference/pip_install/#git
238
239Virtual environment
240^^^^^^^^^^^^^^^^^^^
241
242Another method of installing Streamlink in a non-system-wide way is
243using `virtualenv`_, which creates a user owned Python environment instead.
244
245.. code-block:: bash
246
247    # Create a new environment
248    virtualenv ~/myenv
249
250    # Activate the environment
251    source ~/myenv/bin/activate
252
253    # Install Streamlink in the environment
254    pip install --upgrade streamlink
255
256    # Use Streamlink in the environment
257    streamlink ...
258
259    # Deactivate the environment
260    deactivate
261
262    # Use Streamlink without activating the environment
263    ~/myenv/bin/streamlink ...
264
265.. note::
266
267    This may also be required on some macOS versions that seem to have weird
268    permission issues.
269
270.. _virtualenv: https://virtualenv.readthedocs.io/en/latest/
271
272Dependencies
273^^^^^^^^^^^^
274
275To install Streamlink from source you will need these dependencies.
276
277.. rst-class:: table-custom-layout
278
279==================================== ===========================================
280Name                                 Notes
281==================================== ===========================================
282`Python`_                            At least version **3.6**.
283`python-setuptools`_
284
285**Automatically installed by the setup script**
286--------------------------------------------------------------------------------
287`python-requests`_                   At least version **2.21.0**.
288`pycryptodome`_                      Required to play some encrypted streams
289`iso-639`_                           Used for localization settings, provides language information
290`iso3166`_                           Used for localization settings, provides country information
291`isodate`_                           Used for MPEG-DASH streams
292`PySocks`_                           Used for SOCKS Proxies
293`websocket-client`_                  At least version **0.58.0**. (used for some plugins)
294
295**Optional**
296--------------------------------------------------------------------------------
297`RTMPDump`_                          Required to play RTMP streams.
298`ffmpeg`_                            Required to play streams that are made up of separate
299                                     audio and video streams, eg. YouTube 1080p+
300==================================== ===========================================
301
302Using pycrypto and pycountry
303^^^^^^^^^^^^^^^^^^^^^^^^^^^^
304
305With these two environment variables it is possible to use `pycrypto`_ instead of
306`pycryptodome`_ and `pycountry`_ instead of `iso-639`_ and `iso3166`_.
307
308.. code-block:: console
309
310    $ export STREAMLINK_USE_PYCRYPTO="true"
311    $ export STREAMLINK_USE_PYCOUNTRY="true"
312
313.. _Python: https://www.python.org/
314.. _python-setuptools: https://pypi.org/project/setuptools/
315.. _python-requests: https://requests.readthedocs.io/en/master/
316.. _RTMPDump: https://rtmpdump.mplayerhq.hu/
317.. _pycountry: https://pypi.org/project/pycountry/
318.. _pycrypto: https://www.dlitz.net/software/pycrypto/
319.. _pycryptodome: https://pycryptodome.readthedocs.io/en/latest/
320.. _ffmpeg: https://www.ffmpeg.org/
321.. _iso-639: https://pypi.org/project/iso-639/
322.. _iso3166: https://pypi.org/project/iso3166/
323.. _isodate: https://pypi.org/project/isodate/
324.. _PySocks: https://github.com/Anorov/PySocks
325.. _websocket-client: https://pypi.org/project/websocket-client/
326
327
328Windows binaries
329----------------
330
331.. rst-class:: table-custom-layout
332
333==================================== ====================================
334Release                              Notes
335==================================== ====================================
336`Stable release`_                    Download the installer from the `GitHub releases page`_.
337
338`Development build`_                 For testing purposes only! Built each day at midnight (UTC). |br|
339                                     Download the zipped installer from the `build artifacts`_ section of one of
340                                     the recent scheduled builds. Build artifacts are stored by Github for 90 days. |br|
341                                     See the `commit log`_ for a list of changes since the last stable release.
342==================================== ====================================
343
344.. note::
345
346    **The Streamlink installer for Windows is currently based on Python 3.8.** |br|
347    Versions of Windows prior to 7 are not supported.
348
349    Be aware that the packages for `Chocolatey`_ and the `Windows Package Manager`_ are just wrappers
350    around the stable installer and thus depend on Windows 7+ as well.
351
352    Alternatively, :ref:`Streamlink can be installed via python-pip <install:PyPI package and source code>`
353    in a :ref:`compatible <install:Dependencies>` Python environment.
354
355.. _Stable release:
356.. _GitHub releases page: https://github.com/streamlink/streamlink/releases/latest
357.. _Development build:
358.. _build artifacts: https://github.com/streamlink/streamlink/actions?query=event%3Aschedule+is%3Asuccess+branch%3Amaster
359.. _commit log: https://github.com/streamlink/streamlink/commits/master
360
361These installers contain:
362
363- A compiled version of Streamlink that **does not require an existing Python
364  installation**
365- `RTMPDump`_ for viewing RTMP streams
366- `ffmpeg`_ for muxing streams
367
368and perform the following tasks:
369
370- Add Streamlink to the system's list of installed applications. |br|
371  An uninstaller will automatically be created during installation.
372- Add Streamlink's installation directory to the system's ``PATH`` environment variable. |br|
373  This allows the user to run the ``streamlink`` command globally
374  from the command prompt or powershell without specifying its directory.
375
376To build the installer on your own, ``NSIS`` and ``pynsist`` need to be installed.
377
378
379Windows portable version
380^^^^^^^^^^^^^^^^^^^^^^^^
381
382.. rst-class:: table-custom-layout
383
384==================================== ===========================================
385Maintainer                           Links
386==================================== ===========================================
387Beardypig                            `Latest precompiled stable release`__ |br|
388                                     `Latest builder`__ |br|
389                                     `More info`__
390==================================== ===========================================
391
392__ https://github.com/beardypig/streamlink-portable/releases/latest
393__ https://github.com/beardypig/streamlink-portable/archive/master.zip
394__ https://github.com/beardypig/streamlink-portable
395
396
397AppImages
398---------
399
400Download & Setup
401^^^^^^^^^^^^^^^^
402
403First, download the latest `Streamlink AppImage`_ which matches your system's
404architecture from the `Streamlink AppImage releases page`_. Then simply set the
405executable flag and run the app.
406
407.. code-block:: bash
408
409   # Set the executable flag. Note that all AppImage release file names include
410   # the release version, Python version, platform name and CPU architecture
411   chmod +x streamlink-2.0.0-1-cp39-cp39-manylinux2014_x86_64.AppImage
412
413   # Run the Streamlink AppImage with any parameter supported by Streamlink
414   ./streamlink-2.0.0-1-cp39-cp39-manylinux2014_x86_64.AppImage --version
415
416What are AppImages?
417^^^^^^^^^^^^^^^^^^^
418
419AppImages are portable apps for Linux which are independent of the distro and
420package management.
421
422Note: Check out `AppImageLauncher`_, which automates the setup and system
423integration of AppImages. AppImageLauncher may also be available via your
424distro's package management.
425
426Additional information, like for example how to inspect the AppImage contents or
427how to extract the contents if `FUSE`_ is not available on your system, can be
428found in the `AppImage documentation`_.
429
430.. _Streamlink AppImage: https://github.com/streamlink/streamlink-appimage
431.. _Streamlink AppImage releases page: https://github.com/streamlink/streamlink-appimage/releases
432.. _AppImageLauncher: https://github.com/TheAssassin/AppImageLauncher
433.. _FUSE: https://docs.appimage.org/user-guide/troubleshooting/fuse.html
434.. _AppImage documentation: https://docs.appimage.org/user-guide/run-appimages.html
435