Skip to content

Releases: streamlink/streamlink

Streamlink 7.1.2

08 Jan 18:39
Compare
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
Compare
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

Streamlink 7.1.0

28 Dec 16:09
Compare
Choose a tag to compare
  • Added: --show-matchers=pluginname CLI argument (#6287)
  • Updated: Streamlink and Plugin constructors to allow both Mapping and Options as options types (#6311)
  • Fixed: uncaught DASH errors if FFmpeg is unavailable (#6306)
    As a side effect, if FFmpeg is unavailable, DASH streams will only return one sub-stream of the video and/or audio streams that would be muxed otherwise.
  • Fixed: incorrect DASH segment duration in timeline manifests (#6323)
  • Fixed: dynamic DASH streams incorrectly requiring the publishTime and availabilityStartTime attributes (#6324)
  • Fixed: incorrect DASH segment and manifest base-URL joining (#6328, #6338)
  • Fixed: matchers and arguments objects being shared in inherited Plugin classes (#6297, #6298)
  • Updated plugins:
    • various: replaced verbose URL matcher regexes of most plugins with multiple simple ones (#6285)
    • bilibili: updated schema to include MPEG-TS HLS streams (#6332)
    • bilibili: added back high-res HTTPStream streams from the v1 API with higher priority (#5782)
    • mangomolo: replaced media.gov.kw with 51.com.kw (#6353)
    • soop: rewritten authentication (#6321)
    • vkplay: renamed to vkvideo and updated matcher (#6319)
    • welt: fixed schema (#6301)
  • Build: removed typing-extensions from runtime dependencies (#6314)

📦 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> (38):
      tests: refactor setup_config_args tests
      tools: bump ruff to 0.7.3 and fix issues
      tools: bump mypy to 1.13.0 + faster-cache extra
      plugins: replace most verbose matcher regexes
      cli: add --show-matchers argument
      docs: update NixOS package link
      ci: update git fetch commands
      tools: bump ruff to 0.7.4
      ci.github: ignore git fetch pipefail on Windows
      plugin: fix shared matchers in inherited plugins
      plugin: fix shared arguments in inherited plugins
      options: make Arguments inherit from dict
      plugins.welt: fix schema
      stream.dash: fix joining baseURLs w/ query strings
      tools: bump ruff to 0.8.0 and fix issues
      stream.segmented: remove compat ThreadPoolExecutor
      session: fix incomplete resolve_url() docs
      tools: bump ruff to 0.8.1 and fix issues
      build: remove typing-extensions from runtime deps
      chore: remove unneeded coverage suppressions
      stream.dash: fix missing FFMPEGMuxer.is_usable()
      plugins.vkplay: add support for live.vkvideo.ru
      plugins.vkvideo: rename vkplay plugin to vkvideo
      stream.dash: fix segment duration in timelines
      stream.dash: opt publishTime/availabilityStartTime
      plugins.soop: rewrite authentication
      stream.dash: refactor BaseURL.join()
      plugins.bilibili: accept MPEG-TS HLS streams
      plugins.bilibili: add back HTTPStream from v1 API
      tools: bump ruff to 0.8.3 and fix issues
      stream.dash: fix base_url input
      tools: bump ruff to 0.8.4 and fix issues
      tools: bump mypy to 1.14.0 and fix issues
      plugins.mangomolo: update plugin matcher
      cli: clarify --show-matchers output format
      options: make Options inherit from dict
      plugin: use empty Options, merge custom options
      session: update typing of options argument

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

Streamlink 7.0.0

04 Nov 16:34
Compare
Choose a tag to compare

📦 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

Minibox <61264156+minibox24@users.noreply.github.com> (1):
      plugins.afreeca: rename to soop

bastimeyer <mail@bastimeyer.de> (68):
      utils.module: add override parameter
      chore: typing: PEP 563, PEP 585, PEP 604, PEP 613
      script: update and fix typing, add to mypy config
      webbrowser.cdp.devtools: rebuild modules
      tools: ignore typing refactor commits in git-blame
      session: fix --interface on custom HTTPAdapters
      cli: fix help text of --output and --record
      cli.argparser: re-organize argument groups
      cli: deprecate --verbose-player and --fifo
      ci.github: remove -dev suffix from py313 runners
      chore: drop support for Python 3.8
      tools: bump Python version req of ruff+mypy to 3.9
      docs: drop i686 Linux AppImages
      docs: drop x86 and py38 Windows builds
      session: remove deprecated stream-type options
      tests: deprecated CLI args / session opts tests
      cli: remove deprecated {,plugin-}config paths
      cli: remove deprecated plugins paths
      cli: remove now unused DeprecatedPath
      cli: remove deprecated --force-progress argument
      docs: update donate page and rename to support
      chore: update GitHub sponsor button
      docs: add --force-progress CLI arg migration
      docs: add stream-type args/options migration
      docs: add config-file paths migration
      docs: add plugins sideloading paths migration
      docs: restore plugin sideloading path on Windows
      tests: remove <py39 workaround
      logger: remove <py38 workaround
      cli: refactor setup_plugin_{args,options}
      cli: fix errors on missing stdin fd
      plugins.tv3cat: update plugin matchers
      options: Argument store_{true,false} special cases
      cli: warn when deprecated plugin argument is set
      build: bump trio to >=0.25,<1 on py>=313
      tools: bump ruff to 0.6.9
      tools: bump mypy to 1.12.0 and resolve issues
      cli: keep values of deprecated plugin arguments
      docs: rewrite 7.0.0 migrations
      cli.output: remove VLC stream metadata variables
      cli.argparser: remove VLC --title var escape logic
      validate: move from plugin.api.validate package
      plugins.soop: refactor plugin and fix issues
      tools: bump ruff to 0.7.0
      tools: bump mypy to 1.12.1 and revert 1.12.0 fixes
      cli.argparser: rewrite and fix help texts
      cli.argparser: fix shadowed variable
      chore: ruff format
      ci.github: add ruff format step
      docs: update style section on developing page
      tools: ignore ruff format commit in git-blame
      plugins.ruv: rewrite and fix plugin
      tests: set exit_on_error=False in argparser tests
      cli: reference parser.fromfile_prefix_chars
      cli: print help text using console.msg()
      cli: fix URLs in usage and help texts
      docs: rewrite plugin sideloading page
      docs: fix tables on config file page
      logger: mark basicConfig kwargs as kw-only
      ci.readthedocs: update fetch depth with tags
      ci.github: update fetch tags commands
      ci.github: install opt deps on all Python versions
      plugin.api: remove deprecated import paths
      plugins: remove deprecated import paths
      plugin: update and fix Plugin attr docstrings
      cli: fix duplicate dependency logging
      chore: fix support links
      docs: update index page

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

Streamlink 6.11.0

01 Oct 14:16
Compare
Choose a tag to compare
  • Deprecated: --record-and-pipe=... in favor of --stdout --record=... (and explicitly disallowed --stdout --output=...) (#6194)
  • Fixed: error when setting both --http-no-ssl-verify and --http-disable-dh (#6205)
  • Fixed: --player-passthrough without a resolved default --player (#6207)
  • Fixed: error when stdout/stderr file descriptors are missing (#6197)
  • Updated: webbrowser API's Chrome devtools protocol to latest version (#6211)
  • Updated plugins:
    • crunchyroll: removed plugin (#6179)
    • dlive: fixed missing stream URL signature (#6171)
    • facebook: removed plugin (#6199)
    • mildom: removed plugin (#6198)
    • tvrby: removed plugin (#6202)
    • tvrplus: removed plugin (#6203)
    • twitch: fixed client-integrity token acquirement (#6211)
    • vk: fixed API params and validation schema (#6178)
    • webtv: removed plugin (#6172)
    • zengatv: removed plugin (#6174)
    • zhanqi: removed plugin (#6173)
  • Tests: removed pytest-asyncio dependency (#6208)

📦 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> (46):
      plugins.dlive: sign live HLS media playlist URLs
      plugins.webtv: remove plugin
      plugins.zhanqi: remove plugin
      plugins.zengatv: remove plugin
      plugins.vk: fix API params and validation schema
      plugins.crunchyroll: remove plugin
      cli.main: refactor args.can_handle_url
      cli.main: refactor args.url
      cli.main: refactor args.version_check
      cli.main: rename error_code to exit_code
      tests: move some cli.main test modules
      tests: merge redundant cli.main test fixtures
      tests: rewrite cli.main.handle_url tests
      cli: fix KeyboardInterrupt during output.close()
      tests: fix race condition in named-pipe tests
      tests: fix cli.main.handle_url tests
      tests: refactor cli.main.output_stream tests
      tests: refactor cli.main.resolve_stream_name tests
      tests: move remaining cli.main test modules
      tests: refactor cli.main.get_formatter tests
      tests: refactor cli.main.setup_config_args tests
      tests: refactor cli.main.create_output tests
      tests: refactor PlayerOutput integration tests
      cli.argparser: update _match_argument() override
      tests: rewrite cli.output.file tests
      cli: deprecate --record-and-pipe
      cli: refactor check_file_output()
      cli: disallow --output=... --stdout
      docs: add -R/--record-and-pipe deprecation
      tools: bump ruff to 0.6.7
      tools: bump mypy to 1.11.2 and fix issues
      cli: add devnull fallback for missing stdout fd
      logger: use devnull FileHandler fallback
      cli.streamrunner: skip progress without stderr
      plugins.mildom: remove plugin
      plugins.facebook: remove plugin
      docs: add back Alpine Linux package
      plugins.tvrby: remove plugin
      plugins.tvrplus: remove plugin
      session.http: fix custom SSLContext + verify=False
      cli: fix passthrough without player
      utils.processoutput: rewrite based on trio
      tests: rewrite handshake testutils based on trio
      tests: remove unneeded pytest-asyncio dependency
      webbrowser.cdp.devtools: update to v0.0.1359167
      docs: update example plugins

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

Streamlink 6.10.0

06 Sep 15:24
Compare
Choose a tag to compare
  • Added: official support for Python 3.13 (#6133)
  • Added: --logformat and --logdateformat (#6138, #6144)
  • Added: --ffmpeg-loglevel (#6161)
  • Fixed: continuous logging errors when stdout stream was closed on the reading end (#6142)
  • Fixed: HTTP proxy config being used when getting webbrowser API's websocket IPC address (#6130)
  • Updated plugins:
    • booyah: removed plugin (#6162)
    • douyin: fixed validation schema (#6140)
    • galatasaraytv: removed plugin (#6163)
    • idf1: removed plugin (#6164)
    • linelive: removed plugin (#6165)
    • pandalive: fixed missing HTTP headers (#6148)
    • tiktok: fixed schema of inaccessible streams (#6160)
    • youtube: disabled VODs, as they are currently non-functional (#6135)
  • Docs: bumped sphinx-design >=0.5.0,<=0.6.1, enabling sphinx >=8.0.0 (#6137)
  • Tests: fixed pytest-asyncio warnings (#6143)

📦 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> (27):
      webbrowser.chromium: skip proxy on WS URL request
      tools: bump ruff to 0.6.0 and fix issues
      ci.github: add Python 3.13-dev test runners
      ci.github: install opt python deps in another step
      ci.github: build shell completions in test_build
      plugins.youtube: check VOD URLs, raise PluginError
      tools: add ASYNC rules to ruff config
      tools: add LOG rules to ruff config
      docs: bump sphinx-design to >=0.5.0,<=0.6.1
      plugins.douyin: fix validation schema
      cli: add --logformat and --logdateformat
      logger: refactor Formatter, remove unneeded code
      logger: validate Formatter's format
      logger: suppress OSError on stdout flush
      cli: flush stdout, avoid OSError on exit
      tests: set pytest-asyncio config, fix warnings
      cli: handle logging setup exceptions
      plugins.pandalive: fix missing HTTP headers
      ci.github: fix useragents workflow
      build: add Python 3.13 to package classifiers
      ci.github: update py313 runners
      plugins.tiktok: fix schema of inaccessible streams
      plugins.booyah: remove plugin
      plugins.galatasaraytv: remove plugin
      plugins.idf1: remove plugin
      plugins.linelive: remove plugin
      tools: bump ruff to 0.6.4

soprano1125 <soprano1125@users.noreply.github.com> (1):
      stream.ffmpegmux: add loglevel

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

Streamlink 6.9.0

12 Aug 13:20
Compare
Choose a tag to compare
  • Added: streamlink.plugin.api.webbrowser subpackage with the aws_waf module (#6102, #6118)
  • Added: max_buffer_size kwarg to CDPClient.session() (#6101)
  • Added: webbrowser User-Agent header override in headless mode (#6114)
  • Changed: default value of --webbrowser-headless from True to False (#6116)
  • Changed: unicode characters to be unescaped in JSON output, if possible (#6080)
  • Fixed: potential character encoding issues in Streamlink's logger (#6081)
  • Updated plugins:
    • nicolive: updated plugin matcher (#6127)
    • okru: fixed validation schema (#6085)
    • radionet: removed plugin (#6091)
    • sportschau: fixed plugin (HLS streams with packed audio streams remain unsupported) (#6104)
    • tiktok: fixed room ID validation schema (#6106)
    • tvp: added support for sport.tvp.pl (#6097)
    • twitch: added --twitch-force-client-integrity (#6113)
    • twitch: fixed broken client-integrity token decoding+parsing (#6113)
    • twitch: removed the headless=False override (#6117)
    • vimeo: removed error messages for unsupported DASH streams (#6128)
    • vk: fixed validation schema (#6096)
    • vtvgo: resolved AWS Web Application Firewall bot detection (#6102)
    • yupptv: fixed plugin, added ad filtering (#6093)
  • Docs: added webbrowser API metadata to plugin descriptions (#6115)
  • Docs: updated build-dependencies and the furo theme (#6126)

📦 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> (35):
      cli.console: keep unicode chars in JSON output
      logger: backslashreplace stream encoding errors
      plugins.okru: fix metadata schema
      tools: bump ruff to 0.5.3
      tools: add explicit ruff format config
      plugins.radionet: remove plugin
      build: fix typing issue caused by types-setuptools
      plugins.yupptv: refactor and fix plugin
      plugins.vk: fix validation schema, clean up code
      tools: bump ruff to 0.5.5
      build: add warning comments to plugins.json
      webbrowser.cdp.client: add max_buffer_size param
      plugin.api: add aws_waf module
      plugins.vtvgo: acquire AWS WAF token
      plugins.tiktok: fix room ID schema
      session: move plugin.api.useragents
      plugin.api: restore useragents with re-exports
      webbrowser.chromium: set --user-agent launch arg
      plugin.api.aws_waf: remove unneeded headless kwarg
      plugins.twitch: add --twitch-force-client-integrity
      plugins.twitch: remove broken CI-token decoder
      webbrowser.cdp.client: update UA in headless mode
      docs: add $webbrowser plugin metadata item
      plugins: add $metadata plugin metadata items
      session: set webbrowser-headless def val to False
      webbrowser: refactor, move headless kw to launch()
      plugins.twitch: remove headless=False override
      plugin.api.webbrowser: new subpackage, mv aws_waf
      tools: bump ruff to 0.5.7 and fix issues
      ci: build docs previews on readthedocs
      ci: remove docs preview builds on netlify
      docs: bump myst-parser requirement to >=1.0.0,<5
      docs: bump furo requirement to ==2024.08.06
      plugins.nicolive: update matcher
      plugins.vimeo: ignore unsupported DASH manifests

czarek7711 <33749830+czarek7711@users.noreply.github.com> (1):
      plugins.tvp: add sport.tvp.pl

gsilvan <silvan@trollbox.org> (1):
      plugins.sportschau: rewrite, fix stream extraction

streamlinkbot <streamlinkbot@users.noreply.github.com> (1):
      plugin.api: update useragents

Streamlink 6.8.3

11 Jul 18:01
Compare
Choose a tag to compare

Patch release:

  • Updated plugins:
    • tiktok: new plugin (#6073)
    • twitch: fixed channel names with uppercase characters (#6071)

📦 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> (7):
      script: simplify output of test-plugin-urls
      script: add -m/--metadata to test-plugin-urls
      script: fix -r/--replace in test-plugin-urls
      tools: bump ruff to 0.5.1 and fix issues
      plugins.twitch: fix uppercase channel names
      plugins.twitch: add UsherService tests
      plugins.bloomberg: fix bot detection

v2wy <790538318@qq.com> (1):
      plugins.tiktok: new plugin

Streamlink 6.8.2

04 Jul 18:46
Compare
Choose a tag to compare

Patch release:

  • Updated plugins:
    • douyin: new plugin (#6059)
    • huya: fixed stream URLs (#6058)
    • pluzz: fixed API URL, stream tokens and validation schemas (#6048)
    • twitch: added info log messages about ad break durations (#6051)
    • twitch: fixed clip URLs (#6045)
    • twitch: fixed discontinuity warning spam in certain circumstances (#6022)
    • vidio: fixed stream tokens, added metadata (#6057)

📦 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

Morty Wang <790538318@qq.com> (1):
      plugins.douyin: new plugin

bastimeyer <mail@bastimeyer.de> (7):
      plugins.twitch: refactor matchers, fix clip URLs
      plugins.twitch: fix discontinuity warning spam
      plugins.pluzz: refactor, upd API URL, fix schemas
      tools: bump ruff to 0.5.0
      tools: bump mypy to 1.10.1
      plugins.twitch: log ad breaks with duration
      plugins.vidio: fix stream token, add metadata

streamlinkbot <streamlinkbot@users.noreply.github.com> (1):
      plugin.api: update useragents

v2wy <790538318@qq.com> (1):
      plugins.huya: rewrite, fix stream params

Streamlink 6.8.1

18 Jun 12:43
Compare
Choose a tag to compare

Patch release:

  • Fixed: failed HTTPAdapter tests on some OpenSSL configurations (#6040, #6042)

📦 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> (3):
      session.http: disable weak digest ciphers
      tests: test HTTPAdapters on all python versions
      tests: disable coverage of python(version) marker