Releases: streamlink/streamlink
Streamlink 7.5.0
- 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
- 46: @bastimeyer
- 1: @Hakkin
- 1: @streamlinkbot
🗒️ 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
- 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
- 24: @bastimeyer
- 3: @streamlinkbot
- 1: @Lense
🗒️ 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
- 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
- 14: @bastimeyer
- 1: @emmanuel-ferdman
🗒️ 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
- Added:
decompress
extras marker to Streamlink's optional dependencies for installingbrotli
andzstandard
, which were previously implied optional dependencies via the transitive dependencyurllib3
(#6451) - Changed:
--retry-streams
to allow a value of0
, 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
- 32: @bastimeyer
- 2: @streamlinkbot
🗒️ 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
- Fixed:
validate.contains()
to allow all kinds ofContainer
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
- 25: @bastimeyer
- 1: @Mehavoid
- 1: @refack
- 1: @streamlinkbot
🗒️ 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
- 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
- 11: @bastimeyer
- 2: @Mehavoid
- 1: @BZHDeveloper1986
🗒️ 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
- 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
- 1: @bastimeyer
🗒️ Full changelog
bastimeyer <mail@bastimeyer.de> (1):
cli: fix --show-matchers ignoring lazy plugins
Streamlink 7.1.0
- Added:
--show-matchers=pluginname
CLI argument (#6287) - Updated:
Streamlink
andPlugin
constructors to allow bothMapping
andOptions
asoptions
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
andavailabilityStartTime
attributes (#6324) - Fixed: incorrect DASH segment and manifest base-URL joining (#6328, #6338)
- Fixed:
matchers
andarguments
objects being shared in inheritedPlugin
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
- 38: @bastimeyer
- 2: @streamlinkbot
🗒️ 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
- BREAKING: dropped support for EOL Python 3.8 (Win 7/8 are now unsupported) (#6230)
- BREAKING/CLI: removed deprecated config file and plugin config file paths (#6149)
- BREAKING/CLI: removed deprecated plugin sideloading paths (#6150)
- BREAKING/CLI: removed deprecated
--force-progress
CLI argument (#6196) - BREAKING/CLI: removed deprecated stream-type related CLI arguments (#6232)
--hls-segment-attempts
--hls-segment-threads
--hls-segment-timeout
--hls-timeout
--http-stream-timeout
- BREAKING/API: removed deprecated stream-type related session options (#6232)
hls-segment-attempts
hls-segment-threads
hls-segment-timeout
hls-timeout
dash-segment-attempts
dash-segment-threads
dash-segment-timeout
dash-timeout
http-stream-timeout
- BREAKING/API: removed deprecated import paths for
HTTPSession
andHTTPAdapter
s (#6274) - BREAKING/API: removed deprecated import paths for
NoPluginError
,NoStreamsError
,PluginError
andPlugin
(#6274) - BREAKING/packaging: dropped "32 bit" Windows x86 and Linux AppImage i686 builds (#6052)
- Removed: flawed implementation of VLC-specific player variables (#6251, #6253)
- Deprecated:
--verbose-player
CLI argument in favor of--player-verbose
(#6227) - Deprecated:
--fifo
CLI argument in favor of--player-fifo
(#6227) - Added: warning messages for deprecated/suppressed plugin arguments (#6240, #6249)
- Fixed: errors on missing
stdin
file descriptor (#6239) - Fixed:
--interface
not having an effect on customHTTPAdapter
s (#6223) - Updated plugins:
- Docs: updated documentation of various CLI arguments (#6226, #6255, #6225)
- Chore: updated typing annotations (PEP 563, PEP 585, PEP 604, PEP 613) (#6218)
- Chore: reformatted the whole code base using ruff (#6260)
- Build: bumped
trio
dependency to>=0.25.0,<1
on Python >= 3.13 (#6244)
📦 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
- 68: @bastimeyer
- 1: @minibox24
- 1: @streamlinkbot
🗒️ 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
- 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
- 46: @bastimeyer
- 1: @streamlinkbot
🗒️ 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