Release highlights:
- Improved: decryption of HLS streams (#4533)
- Improved: HLS playlist parsing (#4540, #4552)
- Improved: string representations of
Stream
implementations (#4521) - Fixed: new YouTube consent dialog (#4515)
- Fixed: crunchyroll plugin (#4510)
- Fixed: nicolive email logins (#4553)
- Fixed: threading issue when closing segmented streams (#4517)
- Removed: suppression of
InsecureRequestWarning
(#4525) - New plugins: blazetv (#4548), hiplayer (#4507), useetv (#4536)
- Removed plugins: rotana (#4512)
⚙️ Installation and configuration
Please see the detailed installation instructions and CLI guide on Streamlink's website.
⚠️ PLEASE NOTE ⚠️
Streamlink's Windows installers have been moved to streamlink/windows-installer.
❤️ 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
- 45: @bastimeyer
- 7: @mkbloke
- 1: @amurzeau
- 1: @gravyboat
- 1: @sknebel
- 1: @yhhsin
🗒️ Full changelog
Alexis Murzeau <amubtdx@gmail.com> (1):
tests: mock user euid to be able to run tests as root
Forrest <gravyboat@users.noreply.github.com> (1):
docs: clean up gravyboat donation links (#4534)
Ian Cameron <1661072+mkbloke@users.noreply.github.com> (7):
plugins.rotana: plugin removal
plugins.hiplayer: new plugin
plugins.crunchyroll: update/fix
plugins.mildom: fix/update
plugins.useetv: new plugin
plugins.blazetv: new plugin
plugin.api: update useragents
Sebastian Meyer <mail@bastimeyer.de> (1):
plugins.useetv: geo+subscription error messages (#4550)
Sven <sknebel@users.noreply.github.com> (1):
docs: fix broken relative link
bastimeyer <mail@bastimeyer.de> (43):
docs: update dependencies section in install docs
docs: use cross-reference instead of direct link
plugins.youtube: fix consent dialog
changelog: remove git shortlogs
script: rewrite github release script
script: rename github release script
ci: use GITHUB_TOKEN for deploying to GitHub
plugin.api.validate: refactor all + any
plugin.api.validate: refactor get
plugin.api.validate: refactor callable
plugin.api.validate: fix xml_element
plugin.api.validate: refactor Schema class
plugin.api.validate: turn module into package
plugin.api.validate: implement ValidationError
plugin.api.validate: truncate error messages
plugin.api.validate: rewrite tests
tests: move FileStream tests
http_session: don't disable InsecureRequestWarning
session: fix deprecated imports
plugin.api.http_session: add prepare_new_request
stream: refactor to_url and string representation
stream.hls: simplify discard logic in writer
docs: rewrite API guide
stream.hls: refactor segment decryption
stream.hls_playlist: refactor M3U8Parser
plugin.api: fix typing issues
utils: fix typing issues
session: fix typing issues
options: fix typing issues
logger: fix typing issues
stream.dash: fix typing issues
stream.hls: fix typing issues
plugins: fix typing issues
cli: fix typing issues
tests: fix typing issues
docs: temporarily disable intersphinx
docs: enable intersphinx again
chore: fix import typing issues
tools: add mypy config
ci: new linting config
tests: fix typing issue in HLSStreamReadThread
stream.hls: parse M3U8 from Response obj directly
plugins.nicolive: fix email logins
yhhsin <yhhsin@gmail.com> (1):
stream.segmented: join worker+writer on close (#4517)