github streamlink/streamlink 8.6.0
Streamlink 8.6.0

2 hours ago
  • 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() and HLSStreamWriter.{get,iter}_segment_content() for being able to modify segment data (#7059)
  • Added: itsoffset option to FFMPEGMuxer (#7081)
  • Added: nextjs_inline_rsc() to validate API (#7110)
  • Fixed: HTTP server of --player-http/--player-continuous-http binding to all interfaces (#7051)
  • Fixed: zero or negative duration values in HLS dateranges (#7074)
  • Fixed: incorrect t attribute evaluation in DASH SegmentTimeline.S nodes (#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

🗒️ 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

Don't miss a new streamlink release

NewReleases is sending notifications on new releases.