Skip to content

Releases: streamlink/streamlink

Streamlink 8.1.0

14 Dec 18:07

Choose a tag to compare

  • Deprecated: --hls-segment-queue-threshold in favor of --stream-segmented-queue-deadline (#6734)
  • Improved: debug logging of segmented streams (#6730)
  • Updated plugins:
    • twitch: fixed clips GQL API query (#6744)
  • Tests: removed accidental pytest_cov dependency when running tests (#6727)

📦 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

bastimeyer <mail@bastimeyer.de> (18):
      tests: only load pytest_cov plugin in CI runners
      stream.hls: turn NamedTuples into dataclasses
      stream.segmented: hide repr of some segment attrs
      utils: add FormattedDataclass meta class
      stream.segmented: log queued segment in base class
      plugins.twitch: fix redundant ad trace logging
      stream.segmented: log fileext Segment property
      tools: bump ruff to 0.14.6
      stream.hls: refactor queue deadline logic
      stream.hls: rename --hls-segment-queue-threshold
      stream.segmented: move check_queue_deadline()
      stream.segmented: fix _queue_last attr init
      stream.segmented: send queued status to generator
      stream.hls: refactor wait_and_reload()
      tools: bump mypy to 1.19.0
      tools: bump ruff to 0.14.7 and fix issues
      stream.dash: improve representation lookup
      plugins.twitch: fix clips GQL persisted query

streamlinkbot <streamlinkbot@users.noreply.github.com> (1):
      session.http_useragents: update useragents

Streamlink 8.0.0

11 Nov 16:12

Choose a tag to compare

  • BREAKING: dropped support for EOL Python 3.9 (#6674)
  • BREAKING/API: removed deprecated url_master from HLSStream/MuxedHLSStream (#6688)
  • BREAKING/dependencies: bumped version requirement of urllib3 to >=2.0.0 (#6686)
  • Added: --stream-segmented-duration in favor of --hls-duration (now deprecated), which affects HLS, DASH and other segmented stream types (#6705)
  • Added: duration parameter to dash:// streams (DASHStream) (#6705)
  • Added: --ffmpeg-validation-timeout for being able to increase the time for validating the FFmpeg executable (--ffmpeg-ffmpeg) (#6716)
  • Added: Flatpak player detection for VLC and mpv (#6717, #6723)
  • Refactored: parts of the internal SegmentedStream, HLSStream and DASHStream implementations (WIP) (#6696, #6707, #6709)
  • Updated plugins:
    • aloula: fixed livestream schema (#6662)
    • btv: rewritten and fixed plugin (#6691)
    • chzzk: added support for in-progress VODs via live-rewind streams (#6675)
    • dlive: fixed streams expiring after 5 minutes (#6695)
    • goodgame: updated matches, switched API endpoints (#6714)
    • nhkworld: removed plugin (#6677)
    • rtve: fixed validation schema (#6701)
    • twitch: fixed access token acquirement and various persisted GraphQL query IDs (#6720, #6721)
    • twitch: added --twitch-supported-codecs for access to higher quality streams (#5769)
  • Dependencies: dropped optional zstandard dependency on Python 3.14 and above (#6683)
  • Tests: bumped version requirement of pytest to >=8.4.0 (#6612)
  • Docs: refactored docs config and custom Sphinx extensions, added make options for disabling various components for offline building (#6668, #6669)
  • Docs: fixed compatibility with docutils==0.22.2 (#6699)

📦 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

Alexis Murzeau <amubtdx@gmail.com> (1):
      docs: fix compatibility with docutils==0.22.2

Nesswit <rishubil@gmail.com> (1):
      plugins.chzzk: live-rewind for in-progress VODs

bastimeyer <mail@bastimeyer.de> (68):
      tools: bump ruff to 0.13.0
      chore: add "TC" rules to ruff config
      tools: bump mypy to 1.18.1
      session: fix HTTPSession typing
      plugins.aloula: fix livestream schema
      docs: reformat and clean up Sphinx's conf.py
      docs: move custom extensions to docs/sphinxext
      docs: remove ignored linting rules and fix issues
      docs: bump furo to 2025.09.25
      docs: add NO_ACKNOWLEDGEMENTS make option
      docs: add NO_INTERSPHINX make option
      docs: add NO_GITHUB_BUTTONS make option
      docs: reformat acknowledgements section
      docs: add JetBrains link to acknowledgements
      tools: bump ruff to 0.13.2 and fix issues
      tools: bump mypy to 1.18.2
      stream.segmented: fix typing of writer queue
      plugins.nhkworld: remove plugin
      ci.github: remove -dev suffix from py314 runners
      docs: use neutral example input URLs
      tools: bump ruff to 0.14.1
      ci.github: pycryptodome wheels on cp314-cp314t
      plugins.btv: rewrite and fix plugin
      plugins.dlive: refresh signed HLS playlist URL
      cli: disable colored CLI usage text output
      session.http: turn valid req args into a hashmap
      stream.hls: refactor playlist reload
      plugins.rtve: use xpath for data-setup attr
      docs: replace debian bookworm with trixie
      chore: drop support for Python 3.9
      chore: fix typing issues after Python 3.9 drop
      chore: fix linting issues after Python 3.9 drop
      chore: drop static method dummy context bindings
      cli: remove unneeded Path.resolve() workaround
      utils.url: replace implicit URI scheme regex
      chore: from typing import TypeAlias
      stream.hls: remove deprecated url_master arg+attr
      build: bump min version of urllib3 to 2.0.0
      session.http: remove urllib3 1.x workaround
      session.http: remove urllib3 1.x fallback import
      session.http: remove urllib3 1.x pct enc override
      tests.session.http: update percent encoding tests
      build: skip urllib3[zstd] on py>=314
      ci.github: drop zstandard temp-dep on cp314{,t}
      tests: req pytest>=8.4.0, load plugins explicitly
      ci.github: print pytest config in test runners
      stream.segmented: count duration in worker
      stream.segmented: add --stream-segmented-duration
      stream.dash: add duration parameter
      plugins.twitch: set ad segment duration to zero
      stream.hls: move sequence counter to base class
      stream.segmented: refactor sequence gap warning
      stream.dash: use worker sequence, check gaps
      stream.segmented: move check_sequence_gap()
      stream.segmented: kw_only dataclasses
      stream.segmented: move init+discontinuity attrs
      stream.file: switch to pathlib
      ci.github: use upstream brotli wheel on cp314
      plugins.goodgame: fix plugin
      plugins.twitch: new access_token GQL query
      plugins.twitch: fix live stream and VOD metadata
      plugins.twitch: fix clips metadata
      cli.output.player: refactor PlayerArgs factory
      cli.output.player: add flatpak detection
      plugins.twitch: add --twitch-supported-codecs
      stream.hls: warn on playlist_sequence access
      docs: add flatpak section to players page
      stream: fix HLS and DASH docstrings

oliviernes <olivier.nesme@gmail.com> (1):
      cli: add --ffmpeg-validation-timeout option

streamlinkbot <streamlinkbot@users.noreply.github.com> (2):
      session.http_useragents: update useragents
      session.http_useragents: update useragents

Streamlink 7.6.0

08 Sep 17:20

Choose a tag to compare

  • Added: official support for Python 3.14 (#6617)
  • Added: --skip for stopping on existing file outputs without user prompts (#6633)
  • Added: CDPClientSession.{apply,retrieve}_cookies() for copying cookies between Streamlink's HTTP session and the web browser (#6650)
  • Updated plugins:
    • chzzk: added support for live streams with a wider content availability window (#6652)
    • indihometv: removed plugin (#6615)
    • kick: added --kick-low-latency (#6605)
    • lrt: fixed plugin (#6608, #6637)
    • mediaklikk: fixed plugin (#6629)
    • vkvideo: renamed to vkvideolive, added VOD support (#6640, #6642)
  • Docs: fixed compatibility with docutils>=0.22 (transitive dependency) (#6625)

📦 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

Liam Rooney <80072393+lbrooney@users.noreply.github.com> (1):
      plugins.kick: add --kick-low-latency

Nesswit <rishubil@gmail.com> (1):
      plugins.chzzk: add live playback

bastimeyer <mail@bastimeyer.de> (28):
      plugins.lrt: rewrite and fix stream URL schema
      tools: add back faster-cache mypy extra
      tools: bump mypy to 1.17.0 and fix issues
      tools: bump ruff to 0.12.3
      plugins.indihometv: remove plugin
      build: add Python 3.14 to package classifiers
      tools: bump ruff to 0.12.5 and fix issues
      docs: bump furo to 2025.07.19
      tools: bump ruff to 0.12.7
      tools: bump mypy to 1.17.1
      docs: fix compatibility with docutils==0.22
      cli: replace sys.exit() calls
      cli: replace parser.error() call
      plugins.mediaklikk: fix player data regex
      cli: add --skip
      plugins.lrt: fix channels schema
      docs: add note about AUR mirror on GitHub
      plugins.vkvideo: refactor, add VOD support
      plugins.vkvideolive: rename vkvideo to vkvideolive
      plugins.vkvideolive: add missing VOD qualities
      tools: bump ruff to 0.12.11
      chore: add "PTH" rules to ruff config
      build: refactor setup.py
      docs: add note about revoking Twitch OAuth tokens
      webbrowser.cdp.client: apply/retrieve cookies
      plugins.kick: use retrieve_cookies()
      webbrowser.cdp.devtools: update to v0.0.1510116
      webbrowser.cdp.client: fix page.navigate ret type

streamlinkbot <streamlinkbot@users.noreply.github.com> (2):
      session.http_useragents: update useragents
      session.http_useragents: update useragents

Streamlink 7.5.0

08 Jul 19:23

Choose a tag to compare

  • Added: --no-plugin-sideloading for disabling plugin sideloading from the default location (#6602)
  • Added: --no-plugin-cache for disabling cache file I/O of the plugin key-value store (#6602)
  • Improved: cache file I/O of the plugin key-value store (#6568)
  • Changed: default log format on the trace/all log level, with included thread name (#6557)
  • Fixed: missing thread names for various segmented and muxed streams (#6556)
  • Fixed: pipe write error log messages when muxing streams (#6558)
  • Updated plugins:
    • aloula: updated plugin matchers to support new URLs (#6572)
    • goodgame: fixed HLS stream URLs (#6585)
    • mitele: removed plugin (#6586)
    • nowtvtr: restored plugin (#6560)
    • twitcasting: updated plugin to filter out preroll ads (#6601)
    • twitch: changed plugin to always filter out ads, deprecated --twitch-disable-ads (#6579)
    • twitch: forced default User-Agent on access token API request (#6578)
    • twitch: fixed clips validation schema (#6570)
  • Docs: rearranged CLI arguments that are related to the plugin system (#6602)
  • Build: removed {dev,docs}-requirements.txt in favor of PEP 735 (#6596)
  • Build: bumped lxml requirement to >=4.6.4,<7 (lxml>=6 now supports free-threaded mode) (#6587)
  • Tests: fixed test failures on Python 3.14.0b3 (#6589)
  • Tests: fixed test failures in free-threaded mode (#6591, #6595)

📦 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

Hakkin Lain <hakkin@github> (1):
      plugins.twitcasting: filter preroll segments

bastimeyer <mail@bastimeyer.de> (46):
      ci.github: bump create-pull-request action
      stream.ffmpegmux: make TSubstreams covariant
      stream.hls: make MuxedHLSStream generic
      stream.hls: return Self in parse_variant_playlist
      stream: set specific names for each thread
      cli: add thread name to trace logging format
      stream.ffmpegmux: ign pipe write err on stream end
      ci.github: temporarily disable py314 Linux runner
      plugins.nowtvtr: restore plugin
      cli: push console.close() to the atexit stack
      tools: bump ruff to 0.12.0
      tools: bump mypy to 1.16.1
      plugins.twitch: fix clips validation schema
      plugins.aloula: add aloula.sba.sa to URL matcher
      tests.cli: require metavar for args with values
      cli: add metavar to --fs-safe-rules
      session.http: export and use DEFAULT user-agent
      plugins.twitch: use default UA on access-token req
      plugins.goodgame: fix plugin
      plugins.mitele: remove plugin
      build: bump lxml to >=4.6.4,<7
      cache: rewrite and improve cache file I/O
      cache: make get(), set() and get_all() thread-safe
      chore: clarify debug/trace log in issue forms
      chore: update issue form headers+footers
      ci.github: add py314 Linux+Windows test runners
      tests: fix pluginargument decorator test
      tools: bump ruff to 0.12.1
      tests: fix cache atomicity test
      tests: fix test_schedule_save in Cache tests
      buffers: set/clear event_free first
      tests: make buffer reader/writer threads daemonic
      tools: remove faster-cache mypy extra
      ci.github: add free-threaded test runners
      ci.github: add script for temp dep wheel installs
      build: replace *-requirements.txt with PEP-735
      ci.github: bump python in workflows to 3.13
      ci.readthedocs: bump python to 3.13
      cli: add --no-plugin-sideloading
      plugin: add --no-plugin-cache
      tests: improve assertion in argparser tests
      cli: group options related to the plugin system
      plugins.twitch: always filter out ads
      docs: rewrite Twitch plugin docs page
      plugins.twitch: remove ad daterange by attr check
      plugins.twitch: add ad daterange/segment trace log

streamlinkbot <streamlinkbot@users.noreply.github.com> (1):
      session.http_useragents: update useragents

Streamlink 7.4.0

08 Jun 17:51

Choose a tag to compare

  • Added: encoding keyword to all HTTP request methods to override the response content encoding (#6544)
  • Added: debug log message for the available DASH periods (id or index) (#6521)
  • Fixed: LookupError when selecting an invalid DASH period (#6518)
  • Updated plugins:
    • blasttv: new plugin (#6547)
    • kick: fixed 403 API responses by solving the JS challenge using the webbrowser API (#6500)
    • nicolive: fixed plugin metadata by forcing UTF-8 encoding (#6544)
    • picarto: fixed validation schema and fixed multi-stream selection (#6512)
    • tvp: rewritten and fixed plugin (#6535)
    • twitcasting: fixed plugin by switching to new websocket+HLS streams (#6540)
    • vtvgo: removed plugin (#6516)
  • Tests: fixed py314 test failures (#6527)
  • Tests: fixed some HLS tests failing in rare cases (#6536)

📦 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

Lense <git@lense.su> (1):
      plugins.blasttv: new plugin

bastimeyer <mail@bastimeyer.de> (23):
      plugins.kick: solve JS challenge
      plugins.picarto: fix schema and multi-streams
      plugins.vtvgo: remove plugin
      tools: bump ruff to 0.11.8
      stream.dash: fix LookupError on period selection
      stream.dash: log available periods
      tests: fix file I/O in tests.resources
      tests: fix importlib loader changes in py314
      ci.github: remove duplicate opt dep install step
      ci.github: add py314 Linux runner
      tools: bump ruff to 0.11.9
      docs: add MSYS2 to packages list
      docs: remove package maintainers list
      tests: fix flaky HLS test
      tests: update lxml validation error messages
      plugins.tvp: rewrite and fix plugin
      session.http: add encoding arg to request methods
      plugins.nicolive: force utf-8 encoding
      tools: bump ruff to 0.11.12
      tools: bump mypy to 1.16.0 and fix issues
      plugins.twitcasting: switch to llfmp4 and tc-hls
      build: fix linting issues in build-and-sign.sh
      build: set signing key expiration to 2027-06-07

streamlinkbot <streamlinkbot@users.noreply.github.com> (3):
      session.http_useragents: update useragents
      session.http_useragents: update useragents
      session.http_useragents: update useragents

Streamlink 7.3.0

26 Apr 19:09

Choose a tag to compare

  • Changed: download progress to use the console output stream rather than always stderr, which previously caused log and progress messages to be interweaved (#6497, #6496)
  • Changed: download progress output to be a status message line at the bottom of the console output, unless --progress=force is set in non-interactive or unsupported environments, in which case less frequent regular progress messages are written (#6497, #6496)
  • Fixed: potential division by zero error when formatting progress output (#6498)
  • Build: bumped setuptools requirement from >=65.6 to >=77 and switched to PEP 639 project license metadata format (#6502)

📦 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

Emmanuel Ferdman <emmanuelferdman@gmail.com> (1):
      docs: resolve linter/formatter references

bastimeyer <mail@bastimeyer.de> (14):
      cli: fix ZeroDivisionError in Progress.update()
      cli.console: refactor and move into sub-package
      cli.console: refactor ConsoleOutput._write()
      cli.console: manually close streams on exit
      cli.console: add ConsoleOutputStream
      cli.console: move progress module
      cli.console: refactor terminal/text width funcs
      cli.console: implement status messages
      cli.console: implement WindowsConsole
      cli: refactor Progress and StreamRunner
      cli.console: non-status msgs on --progress=force
      tools: bump ruff to 0.11.5 and fix issues
      plugins.twitcasting: suppress HLS errors
      build: switch to PEP 639 license metadata

Streamlink 7.2.0

04 Apr 18:34

Choose a tag to compare

  • Added: decompress extras marker to Streamlink's optional dependencies for installing brotli and zstandard, which were previously implied optional dependencies via the transitive dependency urllib3 (#6451)
  • Changed: --retry-streams to allow a value of 0, so it can be unset again if set previously (#6455)
  • Changed: --quiet to suppress all text output including errors, not just log output (#6461)
  • Fixed: --logfile affecting the console output stream (#6461)
  • Fixed: broken user input prompt behavior on missing or non-interactive I/O streams (#6461)
  • Fixed: Plugin classes not requiring a matching matcher (#6466)
  • Fixed: --hls-audio-select not being case-insensitive and only comparing input values rather than resolved language codes (#6469, #6479)
  • Updated: Chrome Devtool Protocol interfaces, to match recent Chromium versions (#6481)
  • Updated plugins:
    • euronews: rewritten and fixed plugin (#6452)
    • kick: refactored plugin, fixed clip matcher and 403 API responses (#6491)
    • nicolive: fixed plugin not loading cookies from WebSocket messages (#6441)
    • nicolive: made the plugin always filter out blank HLS segments (#6476)
    • nowtvtr: removed plugin (#6488)
    • okru: canonicalize mobile URLs (#6444)
    • tf1: fixed stream matcher (#6439)

📦 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

bastimeyer <mail@bastimeyer.de> (32):
      plugins.tf1: fix stream matcher
      plugins.okru: canonicalize mobile URLs
      tests.stream.hls: add key method switching test
      tools: bump ruff to 0.9.7
      build: add decompress extras marker
      plugins.euronews: rewrite and fix plugin
      cli: allow --retry-streams to be set to 0
      tools: bump ruff to 0.9.9
      docs: improve API quickstart guide
      plugin: ensure URL matches
      tools: bump ruff to 0.11.0
      cli.console: rename askpass() to ask_password()
      cli.console: refactor prompts
      cli.main: refactor check_file_output()
      cli.console: refactor and split into two streams
      cli: separate console and logfile streams
      logger: don't auto-fallback to stderr or devnull
      cli: fall back to stderr for console output
      cli: make --quiet also suppress ConsoleOutput
      stream.hls: case-insensitive media language attr
      stream.hls: also compare parsed language selection
      utils.l10n: compare Language/Country objs directly
      stream.hls: compare locale with parsed language
      plugins.nicolive: refactor wsclient attribute
      plugins.nicolive: set stream cookies from WS data
      plugins.nicolive: filter out blank segments
      tools: bump ruff to 0.11.2
      stream.hls: fix media name cmp in audio-select
      webbrowser.cdp.devtools: update to v0.0.1438564
      cli: log plugin found message early
      plugins.nowtvtr: remove plugin
      plugins.kick: refactor, fix clips + 403 API issues

streamlinkbot <streamlinkbot@users.noreply.github.com> (2):
      session.http_useragents: update useragents
      session.http_useragents: update useragents

Streamlink 7.1.3

14 Feb 19:04

Choose a tag to compare

  • Fixed: validate.contains() to allow all kinds of Container object inputs (#6421)
  • Updated plugins:
    • ceskatelevize: rewritten and fixed plugin (#6397)
    • nos: fixed validation schema, updated matcher (#6420)
    • pandalive: fixed user_id retieval, updated matcher (#6433)
    • pluzz: fixed video ID schemas (#6428)
    • streamable: removed plugin (#6435)
    • tv4play: removed plugin (#6399)
    • twitch: refactored TwitchAPI class and access token retrieval (#6403)
    • wwenetwork: rewritten and fixed plugin (#6404)
  • Docs: replaced Windows and Linux AppImage nightly builds with preview builds triggered on each commit to master (#6425)
  • Docs: added optional/secondary Linux AppImage builds with FFmpeg being bundled (#6415)
  • Tests: bumped freezegun requirement to >=1.5.0 (#6406)

📦 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

Mehavoid <tontole@riseup.net> (1):
      plugins.wwenetwork: rewrite and fix plugin

Refael Ackermann <refack@gmail.com> (1):
      cli: improve --logformat/--logdateformat help text

bastimeyer <mail@bastimeyer.de> (25):
      tools: bump ruff to 0.9.0 and fix issues
      plugins.ceskatelevize: rewrite and fix plugin
      plugins.twitch: refactor TestTwitchAPIAccessToken
      plugins.twitch: refactor Twitch._access_token()
      plugins.twitch: refactor TwitchAPI class
      tests: bump freezegun requirement to >=1.5.0
      docs: remove pip3 note from install docs
      stream.ffmpegmux: fix logging format of cmd argv
      plugins.tv4play: remove plugin
      tools: bump ruff to 0.9.2
      docs: add FFmpeg to Linux AppImages
      tools: bump ruff to 0.9.4
      validate: check for Container in contains()
      plugins.nos: update matcher, fix validation schema
      tools: bump mypy to 1.15.0
      ci.github: add preview-build workflow
      docs: replace nightly builds with preview builds
      docs: fix preview build references in OS tables
      docs: update preview-builds in PR feedback section
      plugins.pluzz: fix video ID schemas
      plugins.tf1: fix help text of --tf1-password
      tools: bump ruff to 0.9.5
      ci.github: use github.sha in preview-build
      plugins.streamable: remove plugin
      plugins.pandalive: fix user_id, update matcher

streamlinkbot <streamlinkbot@users.noreply.github.com> (1):
      session.http_useragents: update useragents

Streamlink 7.1.2

08 Jan 18:39

Choose a tag to compare

  • Updated plugins:
    • various: fixed access of URL matcher regex capture groups, affecting abematv, ard_mediathek, bbiplayer, dailymotion, picarto, streann (#6364, #6368)
    • chzzk: added support for clips (#6389)
    • dailymotion: added support for lequipe.fr (#6372)
    • kick: fixed 403 HTTP errors, fixed VOD URL matcher (#6384)
    • nicolive: fixed authentication (#6378)
    • tiktok: rewritten plugin, fixed live streams, added VODs (#6381)

📦 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

BZHDeveloper1986 <187593320+BZHDeveloper1986@users.noreply.github.com> (1):
      plugins.dailymotion: add lequipe.fr

Mehavoid <tontole@riseup.net> (2):
      plugins.nicolive: fix mfa login
      plugins.chzzk: add clips support

bastimeyer <mail@bastimeyer.de> (10):
      plugins.dailymotion: fix matcher regex groups
      plugins: fix broken matcher capture groups
      tools: bump mypy to 1.14.1
      2025
      tools: bump ruff to 0.8.6
      docs: fix editable install in PR feedback section
      docs: update pip and venv sections on install page
      plugins.tiktok: rewrite plugin, fix live, add VODs
      plugins.kick: fix 403 error and VOD URL matcher
      plugins.dailymotion: add missing $url metadata

Streamlink 7.1.1

28 Dec 17:18

Choose a tag to compare

  • Fixed: --show-matchers=pluginname not working when plugins are loaded lazily (#6361)

📦 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

bastimeyer <mail@bastimeyer.de> (1):
      cli: fix --show-matchers ignoring lazy plugins