* Added: --no-plugin-sideloading for disabling plugin sideloading from the default location
* Added: --no-plugin-cache for disabling cache file I/O of the plugin key-value store
* Improved: cache file I/O of the plugin key-value store
* Changed: default log format on the trace/all log level, with included thread name
* Fixed: missing thread names for various segmented and muxed streams
* Fixed: pipe write error log messages when muxing streams
* Updated plugins:
- aloula: updated plugin matchers to support new URLs
- goodgame: fixed HLS stream URLs
- mitele: removed plugin
- nowtvtr: restored plugin
- twitcasting: updated plugin to filter out preroll ads
- twitch: changed plugin to always filter out ads, deprecated --twitch-disable-ads
- twitch: forced default User-Agent on access token API request
- twitch: fixed clips validation schema
* Docs: rearranged CLI arguments that are related to the plugin system
* Build: removed {dev,docs}-requirements.txt in favor of PEP 735
* Build: bumped lxml requirement to >=4.6.4,<7 (lxml>=6 now supports free-threaded mode)
* Tests: fixed test failures on Python 3.14.0b3
* Tests: fixed test failures in free-threaded mode
OBS-URL: https://build.opensuse.org/package/show/multimedia:apps/streamlink?expand=0&rev=64
* Added: encoding keyword to all HTTP request methods to override the response content encoding
* Added: debug log message for the available DASH periods (id or index)
* Fixed: LookupError when selecting an invalid DASH period
* Updated plugins:
- blasttv: new plugin
- kick: fixed 403 API responses by solving the JS challenge using the webbrowser API
- nicolive: fixed plugin metadata by forcing UTF-8 encoding
- picarto: fixed validation schema and fixed multi-stream selection
- tvp: rewritten and fixed plugin
- twitcasting: fixed plugin by switching to new websocket+HLS streams
- vtvgo: removed plugin
* Tests: fixed py314 test failures
* Tests: fixed some HLS tests failing in rare cases
- enable leap building (works only if we have the correct dependencies in the project)
- switch over to using pyproject to build the package, as setup.py is deprecated and has an EOL date
- switch tests over to pytest-asyncio, so we can deprecate trio-typing
OBS-URL: https://build.opensuse.org/package/show/multimedia:apps/streamlink?expand=0&rev=62
* Changed: download progress to use the console output stream rather than always stderr, which previously caused log and progress messages to be interweaved
* 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
* Fixed: potential division by zero error when formatting progress output
* Build: bumped setuptools requirement from >=65.6 to >=77 and switched to PEP 639 project license metadata format
OBS-URL: https://build.opensuse.org/package/show/multimedia:apps/streamlink?expand=0&rev=60
* Added: decompress extras marker to Streamlink's optional dependencies for installing brotli and zstandard
* Changed: --retry-streams to allow a value of 0, so it can be unset again if set previously
* Changed: --quiet to suppress all text output including errors, not just log output
* Fixed: --logfile affecting the console output stream
* Fixed: broken user input prompt behavior on missing or non-interactive I/O streams
* Fixed: Plugin classes not requiring a matching matcher
* Fixed: --hls-audio-select not being case-insensitive and only comparing input values rather than resolved language codes
* Updated: Chrome Devtool Protocol interfaces, to match recent Chromium versions
* Updated plugins:
- euronews: rewritten and fixed plugin
- kick: refactored plugin, fixed clip matcher and 403 API responses
- nicolive: fixed plugin not loading cookies from WebSocket messages
- nicolive: made the plugin always filter out blank HLS segments
- nowtvtr: removed plugin
- okru: canonicalize mobile URLs
- tf1: fixed stream matcher
OBS-URL: https://build.opensuse.org/package/show/multimedia:apps/streamlink?expand=0&rev=58
* 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)
* Fixed: --show-matchers=pluginname not working when plugins are loaded lazily (#6361)
* 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)
OBS-URL: https://build.opensuse.org/package/show/multimedia:apps/streamlink?expand=0&rev=54
* Fixed: failed HTTPAdapter tests on some OpenSSL configurations
- update to 6.8.0:
* sha256 checksum to log message when side-loading plugins
* SSLContextAdapter to streamlink.session.http
* Deprecated: old re-exports in streamlink.plugins package
* Updated plugins: bilibili, chzzk cnbce, kick, tf1, tvp, welt
OBS-URL: https://build.opensuse.org/package/show/multimedia:apps/streamlink?expand=0&rev=40
- Update to version 6.2.1:
+ Added: official support for Python 3.12 (#5576)
+ Fixed plugins: goodgame (#5557), nos (#5565), pandalive (#5569), wwenetwork (#5559)
+ Build: added custom setuptools build-backend override which fixes issues with building Windows-specific wheels (#5558)
- Update to version 6.2.0:
+ Added: --player-env CLI argument (#5535)
+ Added: OpenSSL version to debug log output (#5506)
+ Updated: segmented stream internals and typing (#5504, #5507)
+ Updated: internal HLS tag parsing setup and parser state (#5513, #5521)
+ Fixed: HLS streams not ending on playlist reload with endlist tag and no new segments (#5538)
+ Fixed: missing file encoding when writing a log file (#5532)
+ Added plugins: piaulizaportal (#5508)
+ Fixed plugins: hiplayer (#5534), nicolive (#5529), pluto (#5551)
+ Docs: added list of supported metadata variables for each plugin (#5517, #5519)
- Update to version 6.1.0:
+ Added: --hls-segment-queue-threshold for being able to configure when to stop HLS streams early on missing segments (#5478)
+ Fixed: config file parsing issues and made parsing argument values more strict (#5484)
+ Fixed: race condition when reading and validating the FFmpeg version string (#5480)
+ Fixed plugins: atresplayer (#5477)
+ Docs: added code examples for the removal of Streamlink.{g,s}et_plugin_option (#5497)
+ Build: fixed entry-points config issues with setuptools 68.1.0 (#5500)
- Update to version 6.0.1:
+ Added: missing options argument to Streamlink.streams() (#5469)
+ Fixed: migration docs and the 6.0.0 changelog of the Streamlink.{g,s}et_plugin_option() removal (#5471)
+ Fixed plugins: huya (#5467)
+ Docs: updated build-dependencies and the furo theme (#5464, #5465)
- Update to version 6.0.0:
+ BREAKING: dropped support for Python 3.7 (#5302)
+ BREAKING: turned --player CLI argument into a player-path-only argument (#5305, #5310)
+ BREAKING: removed deprecated {filename} variable from --player-args (#5310)
+ BREAKING/API: removed support for the deprecated Plugin.can_handle_url() / Plugin.priority() classmethods (#5403)
+ BREAKING/API: removed deprecated compatibility wrapper for the Plugin constructor (#5402)
+ BREAKING/API: removed Streamlink.{g,s}et_plugin_option() (#5033)
+ BREAKING/API: removed deprecated global plugin arguments (#5033)
+ BREAKING/API: removed deprecated streamlink.plugin.api.validate.text (#5404)
+ BREAKING/API: fixed/changed signatures of HTTPStream, HLSStream and HLSStream.parse_variant_playlist() (#5429)
+ BREAKING/packaging: new signing key 44448A298D5C3618 (#5449)
+ Added: experimental streamlink.webbrowser API for extracting data from websites using the system's Chromium-based web browser (#5380, #5381, #5386, #5388, #5410)
+ See the --webbrowser, --webbrowser-executable and related CLI arguments for more
+ Added: client-integrity token support to Twitch plugin using the streamlink.webbrowser API (currently only used as a fallback when acquiring the access token fails) (#5414)
+ Added: {playertitleargs} variable to --player-args (#5310)
+ Added: with_{video,audio}_only parameters to DASHStream.parse_manifest() (#5340)
+ Changed: HLS streams to stop early on missing EXT-X-ENDLIST tag when polling the playlist doesn't yield new segments for twice its targetduration value (#5330)
+ Fixed: regex of optional protocol plugin parameters (#5367)
+ Fixed plugins: lrt (#5444), mediavitrina (#5376), mitele (#5436), NRK (#5408), pluzz (#5369), rtvs (#5443), showroom (#5390), turkuvaz (#5374), vimeo (#5335), youtube (#5351)
+ Docs: added migrations page for further guidance on resolving breaking changes (#5433)
+ Docs: split up, updated and improved API docs (#5398)
+ Build: moved project metadata to pyproject.toml (PEP621) (#5438)
+ Dependencies: added trio (#5386), trio-websocket and typing-extensions (#5388), and removed importlib_metadata (#5302)
OBS-URL: https://build.opensuse.org/request/show/1119762
OBS-URL: https://build.opensuse.org/package/show/multimedia:apps/streamlink?expand=0&rev=32
- Update to version 5.3.1. Breaking changes:
+ BREAKING: removed avconv (libav) from FFmpeg fallback list (#4826)
+ BREAKING/API: removed Plugin.bind() and changed the signature of the Plugin class constructor (#4768)
A compatibility wrapper for these interface changes has temporarily been added in order to keep third-party plugin implementations working.
Please see the deprecation docs for more details.
+ BREAKING/API: changed the return value of Session.resolve_url() (#4768)
Please see the deprecation docs for more details.
+ BREAKING/API: removed HTTPSession.parse_*() methods (#4803)
OBS-URL: https://build.opensuse.org/request/show/1069355
OBS-URL: https://build.opensuse.org/package/show/multimedia:apps/streamlink?expand=0&rev=28