- SECURITY: fixed arbitrary local file read via HTTP(S) redirection to
file://URL (CVE-2026-TO-BE-ASSIGNED/GHSA-vf2x-4v53-pm7v) (4b99c64d) - SECURITY: fixed insecure cross-scheme redirection (HTTPS -> HTTP) (
CVE-2026-TO-BE-ASSIGNED/GHSA-vf2x-4v53-pm7v) (4b99c64d) - Added: official support for Python 3.15 (#7026)
- Added: support for HLS packed audio streams (#7083, #7082)
- Added:
HLSSegment.{get,iter}_content()andHLSStreamWriter.{get,iter}_segment_content()for being able to modify segment data (#7059) - Added:
itsoffsetoption toFFMPEGMuxer(#7081) - Added:
nextjs_inline_rsc()tovalidateAPI (#7110) - Fixed: HTTP server of
--player-http/--player-continuous-httpbinding to all interfaces (#7051) - Fixed: zero or negative duration values in HLS dateranges (#7074)
- Fixed: incorrect
tattribute evaluation in DASHSegmentTimeline.Snodes (#7075) - Updated plugins:
- ard_live: removed plugin (#7091)
- ard_mediathek: rewritten and fixed plugin (#7090)
- atresplayer: refactored stream retrieval (#7062)
- bigo: added MPEG-TS packet header decryption due to Bigo's web-protection (#7056, #7059)
- bigo: worked around account requirements (#7106, #7109)
- cdnbg: fixed player_url schema (#7036)
- douyu: fixed API call failures on systems with unsynced clocks (#7065)
- filmon: updated URL matcher and switched to v2 APIs (#7105)
- goodgame: fixed stream retrieval (#7086)
- kick: fixed VODs (#7108)
- nimotv: fixed access to streams (#7111)
- okru: fixed metadata schema (#7092)
- piczel: removed plugin (#7102)
- pluto: fixed URL matcher, channel ID resolver and VODs (#7048, #7100)
- tiktok: rewritten and fixed stream data schema for access to origin streams (#7077)
- twitch: added support for portrait-format streams (#7087)
- twitch: fixed missing category stream metadata breaking all stream metadata (#7025)
- vidio: rewritten and fixed plugin (#7063)
- zdf_mediathek: rewritten and fixed plugin (#7093)
- Dependencies: bumped min. version requirement of lxml to
5.0.0(#7029)
📦 Download and Installation
Please see the installation instructions for a list of available install methods and packages on the supported operating systems.
⚙️ Configuration and Usage
Please see the CLI documentation for how to configure and use Streamlink.
❤️ Support
If you think that Streamlink is useful and if you want to keep the project alive, then please consider supporting its maintainers by sending a small and optionally recurring tip via the available options.
Your support is very much appreciated, thank you!
🙏 Contributors
- 67: @bastimeyer
- 3: @Mehavoid
- 2: @winklemad
- 1: @Mehavoid
- 1: @fl-Henry
- 1: @hatienl0i2612
- 1: @serrolido
- 1: @streamlinkbot
🗒️ Full changelog
Madan kumar <winklemad@outlook.com> (2):
stream.dash: fix t attr in SegmentTimeline
stream.hls: fix 0 and <0 DATERANGE DURATION values
Mehavoid <63477090+Mehavoid@users.noreply.github.com> (1):
plugins.nimotv: restore access for streams
Mehavoid <tontole@riseup.net> (3):
plugins.goodgame: fix stream retrieval
plugins.goodgame: fix sequence gaps
plugins.okru: update metadata scheme
bastimeyer <mail@bastimeyer.de> (66):
plugins.twitch: fix optional category metadata
build: bump shtab to 1.9.3
build: bump min version req of lxml to 5.0.0
build: add Python 3.15 to package classifiers
ci.github: add py315 to default test matrix
tools: bump ty to 0.0.69 and fix issues
docs: remove wheel from dependencies section
docs: replace zstandard with backports.zstd
docs: update extras marker notes for optional deps
docs: fix table.docutils stylesheets
docs: fix column width of dependencies table
ci.readthedocs: fix fetch tags
tools: disable ruff rule missing-trailing-comma
plugins.cdnbg: fix player_url schema
build: remove redundant env markers from uv.lock
build: bump setuptools to 84.0.0
build: bump types-setuptools to 84.0.0.20260812
build: bump trio to 0.34.0
tools: bump ruff to 0.16.4
tools: bump ty to 0.0.73
tools: bump mypy to 2.3.1
cli: fix bound ifaces of non-external HTTP output
tools: bump ty to 0.0.74 and fix issues
cli: fix status code on setup error
plugins.bigo: implement web-protection
plugins: fix invalid protocol-plugin input URLs
plugins.douyu: use timestamp from API date header
chore: remove custom blank GH issue template link
stream.hls: refactor HLSStreamWriter
stream.hls: add {get,iter}_content() to HLSSegment
plugins.bigo: override HLSSegment.iter_content()
plugins.vidio: rewrite plugin
stream.hls: allow custom format in MuxedHLSStream
build: bump websocket-client to 1.9.2
utils.thread: add wait_for_all_events()
stream.ffmpegmux: refactor MuxedStream.open()
stream.ffmpegmux: add itsoffset option
ci: ensure git fetch depth on all CI services
stream.hls: refactor stream name logic
plugins.twitch: add support for portrait streams
utils.id3v2: add basic ID3v2 parser
stream.hls: add packed audio ID3v2 parser
stream.hls: refactor buffer writes in HLS writer
stream.hls: parse packed audio timestamps
stream.hls: set packed audio itsoffset values
plugins.ard_mediathek: rewrite and fix plugin
plugins.ard_live: remove plugin
plugins.zdf_mediathek: rewrite and fix plugin
docs: add CVE-fix commit links to 8.4.0 changelog
stream.hls: refactor more stream name logic
stream.hls: refactor external audio logic
stream.hls: fix minor MuxedHLSStream typing issue
stream.dash: add __reader__ + __parser__ factories
plugins.pluto: fix FullEpisodesData GQL query ID
plugins.filmon: rewrite based on v2 APIs
utils.crypto: add encrypt_openssl()
plugins.bigo: add "token" API parameter
plugins.kick: fix VODs
plugins.bigo: fix token
validate: add nextjs_inline_rsc() validator
plugins: switch to validate.nextjs_inline_rsc()
plugins.piczel: remove plugin
docs: replace pipx section with uvx
session.http: fix HTTP redirects
tests.session.http: add FileAdapter test
tests.session: fix test failure on macOS-py310
dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> (7):
ci.github: bump actions/checkout to 7.0.1
ci.github: bump actions/setup-python to 7.0.0
ci.github: bump astral-sh/setup-uv to 9.0.0
build: bump shtab to 1.10.0
build: bump shtab to 1.11.0
ci.github: bump astral-sh/setup-uv to 10.0.1
build: bump lxml to 6.1.3
fl-henry <fl.henry.jefferson@gmail.com> (1):
plugins.pluto: fix URL matching and channel resolution
hatienl0i2612 <hatienloi261299@gmail.com> (1):
plugins.tiktok: rewrite and fix stream data schema
serrolido <serrolido@gmail.com> (1):
plugins.atresplayer: refactor stream retrieval
streamlinkbot <streamlinkbot@users.noreply.github.com> (1):
session.http_useragents: update useragents