How to Use Streamlink to Play a Stream from a URL

Updated

Run streamlink <URL> <quality> in a terminal, and Streamlink will resolve the URL through a matching plugin, list the available stream qualities, and open the selected one in VLC by default. For example, streamlink twitch.tv/CHANNEL best plays the highest available quality of that Twitch channel in VLC. This assumes Streamlink is already installed and VLC is available on your system — the documentation points to the User guide for installation instructions.

The basic command

The syntax is:

streamlink URL QUALITY
  • URL — the page address of the stream, such as twitch.tv/CHANNEL. Streamlink matches it against its plugin system, which supports popular services like Twitch, YouTube, and many others; the full list is on the plugins page.
  • QUALITY — the stream quality you want, such as best, worst, or a specific resolution like 720p.

The Quickstart example from the documentation:

$ streamlink twitch.tv/CHANNEL best
[cli][info] Found matching plugin twitch for URL twitch.tv/CHANNEL
[cli][info] Available streams: audio_only, 160p (worst), 360p, 480p, 720p, 720p60, 1080p60 (best)
[cli][info] Opening stream: 1080p60 (hls)
[cli][info] Starting player: vlc

Reading the output

The example shows the three things Streamlink reports before playback starts:

  1. Plugin match — Found matching plugin twitch for URL twitch.tv/CHANNEL confirms Streamlink recognized the service.
  2. Available streams — a list of qualities the stream offers, with (worst) and (best) labels marking the extremes. In the example these range from audio_only and 160p up to 1080p60.
  3. Selected stream and player — Opening stream: 1080p60 (hls) shows which quality was chosen, and Starting player: vlc shows the player being launched.

If you pick a quality that isn't listed, the available-streams line tells you what you can choose instead.

Default behavior and where to go next

By default, Streamlink plays streams in VLC. Its stated purpose is to avoid resource-heavy and unoptimized websites while still letting you watch streamed content. For installation steps, configuration files, plugin sideloading, proxy support, and other options, the documentation directs you to the User guide. Developers who want direct access to stream data can use the separate Python API.