streamlink
Streamlink is a command-line utility that extracts streams from various services and pipes them into a video player of choice.
What it is and what it does
Streamlink is a command-line tool and Python library that extracts video streams from online services and sends them directly to a video player or file. It was forked from the abandoned Livestreamer project in 2016 and uses a plugin system to support many popular streaming platforms. Rather than loading resource-heavy website interfaces, Streamlink retrieves the underlying stream URL and plays it in your choice of player—VLC by default, but with options to write to disk, read metadata, or integrate into Python code.
The package depends on 13 runtime libraries covering HTTP requests, cryptography, XML parsing, and async I/O (trio and trio-websocket). It supports Python 3.10 through 3.14 and runs on Windows, macOS, and POSIX systems. The library is actively maintained, with a recent release and ongoing commits, making it suitable for both CLI use and programmatic integration into Python applications.
Use it for:
- Watch Twitch or YouTube streams without loading the website's player or ads in a browser.
- Record live streams to disk by redirecting Streamlink output to a file instead of playing in VLC.
- Automate stream monitoring or archival by calling Streamlink's Python API from a script.
- Extract stream metadata (resolution, bitrate, codec) for analysis or logging without playback.
- Integrate stream extraction into a custom media application using Streamlink as a library.
- Access streams from services that require authentication or have region restrictions via plugin configuration.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Streamlink extracts video streams from various online services and pipes them into a video player or file, bypassing resource-heavy websites to access streamed content directly.
Yes. Streamlink is actively maintained, has low install friction, carries no known vulnerabilities, and uses a permissive license. It solves a real problem—lightweight stream extraction—and is well-suited for both command-line and programmatic use. Install if you regularly watch or record streams from online services.
Install
streamlink on PyPI
pip
pip install streamlinkuv
uv add streamlinkpoetry
poetry add streamlinkInstalling streamlink
Before you install
Low friction: pure Python wheel with 13 runtime dependencies including standard HTTP and cryptography libraries. Active maintenance with a release 13 days ago and 11689 GitHub stars; last commit 2026-08-12 signals ongoing development.
License in practice
BSD-2-Clause is permissive; you can use, modify, and distribute Streamlink with minimal restrictions, provided you retain the license notice.
Quickstart
pip install streamlink
streamlink "https://example.com/stream" best
Requires Python >=3.10. A video player (VLC by default) must be installed and in PATH for playback; alternatively, output can be redirected to a file.
Verify before relying
- Whether all 13 runtime dependencies are always required or if some are optional for specific plugins or use cases.
- Which specific streaming services are currently supported beyond the general mention of Twitch and YouTube.
- Performance characteristics when handling high-bitrate or long-duration streams.
Package facts
| License | BSD-2-Clause (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 13 — certifi, exceptiongroup, isodate, lxml, pycountry, pycryptodome, PySocks, requests, trio, trio-websocket, typing-extensions, urllib3, websocket-client |
| Maintenance | actively maintained — 13 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 217,968/month — #9,347 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: streamlink-8.5.0-py3-none-any.whl
Tags
More WWW/HTTP packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
h11h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
httpxHTTPX is a fully featured HTTP client library…
permissive · top 100 on PyPI
httpcoreA minimal low-level HTTP client library that…
permissive · top 100 on PyPI
aiohttpaiohttp is an async HTTP client and server…
permissive · top 100 on PyPI
pytubepytube downloads YouTube videos and playlists…
permissive · top 5,000 on PyPI
youtube_dlCommand-line tool to download videos from…
permissive · top 15,000 on PyPI
pytubefixDownloads YouTube videos, playlists, and…
permissive · top 15,000 on PyPI
ffmpeg-pythonffmpeg-python provides a Python interface to…
permissive · top 5,000 on PyPI
sentence-streamSplits text streams into sentences even when…
permissive · top 15,000 on PyPI
nominal-streamingStreams time-series data to Nominal Core with…
permissive · top 15,000 on PyPI
python-vlcPython ctypes-based bindings to libvlc that let…
copyleft · top 15,000 on PyPI
m3u8Parses and generates m3u8 playlist files (HLS…
permissive · top 5,000 on PyPI
quixstreamsQuix Streams is a Python framework for building…
permissive · top 15,000 on PyPI
mux-pythonOfficial Python wrapper for the Mux API,…
permissive · top 5,000 on PyPI