Skip to content

Releases: streamlink/streamlink

Streamlink 5.2.1

23 Jan 22:46
Compare
Choose a tag to compare

No code changes.
Please see the changelog of the 5.2.0 release.

  • Reverted: PyPI deploy script changes (#5116)

📦 Download and Installation

Please see the installation instructions for a list of available install methods and packages on the supported operating systems.

⚠️ PLEASE NOTE ⚠️
Streamlink's Windows installers have been moved to streamlink/windows-builds.

⚙️ 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):
      ci: revert deploy-pypi changes

Streamlink 5.2.0

23 Jan 22:02
Compare
Choose a tag to compare

Release highlights:

  • Added: new stream read/output loop, to be able to detect player process termination while stream output is paused (ad filtering, etc.) (#5024)
  • Added: support for named plugin matchers (#5103, #5107)
  • Added: Python warnings capturing to streamlink logger and added StreamlinkWarning (#5072)
  • Changed: deprecation log messages to warnings, and added missing warnings for previously deprecated things (#5072)
  • Deprecated: usage of validate.text in favor of str (#5090)
  • Improved: Streamlink session option getters/setters (#5076)
  • Fixed: incorrect inheritance of NoPluginError and removed unneeded url parameter from NoStreamsError (#5088)
  • Fixed: error handling in Twitch access token acquirement (#5011)
  • Fixed: dogan plugin (#5053)
  • Fixed: ceskatelevize plugin, added sport/sportplus/decko (#5063)
  • Added plugins: mixcloud (#5096), vkplay (#5054)
  • Removed plugins: orf_tvthek (#5104)

📦 Download and Installation

Please see the installation instructions for a list of available install methods and packages on the supported operating systems.

⚠️ PLEASE NOTE ⚠️
Streamlink's Windows installers have been moved to streamlink/windows-builds.

⚙️ 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

Ian Cameron <1661072+mkbloke@users.noreply.github.com> (6):
      plugins.vtvgo: update headers
      plugins.cdnbg: update regex
      plugins.mixcloud: new plugin
      plugins.ceskatelevize: update for ct24, sport and sportplus; add decko
      plugins.tvp: add tvp.info
      plugins.earthcam: fix cam_name (#5110)

Inokenty <inokenty.95@gmail.com> (1):
      plugins.vkplay: new plugin (#5054)

bastimeyer <mail@bastimeyer.de> (37):
      plugins.twitch: better access token error handling
      docs: fix requests docs link
      tests: refactor thread handshakes
      tests: change order of collected tests
      tests: fix freezegun's default module ignore list
      ci: remove custom lxml wheel for Windows
      tests: refactor and add more buffer tests
      cache: refactor Cache and rewrite tests
      tests: refactor websocket tests
      plugins.dogan: rewrite and fix plugin
      2023
      cli: refactor progress interface
      cli: replace read_stream() with StreamRunner
      ci.github: ubuntu-20.04 -> ubuntu-latest
      build: update build script
      options: refactor key normalization
      options: add support for mapped getters+setters
      session: refactor option getter+setter methods
      build: update auth in sign+deploy scripts
      chore: remove examples
      plugins.euronews: fix and rewrite plugin
      exceptions: update docs and fix NoPluginError
      exceptions: remove `url` arg from NoStreamsError
      logger: capture warnings
      logger: turn deprecation log msgs into warnings
      logger: add StreamlinkWarning
      tests: fix cmdline tests
      plugin.api.validate: deprecate text alias
      chore: ignore coverage in TYPE_CHECKING blocks
      tests: set filterwarnings=always via pytest config
      tests: fix warnings in playeroutput tests
      tests: fix warnings in CLI main tests
      chore: remove unneeded noinspection directives
      plugin: add support for named plugin matchers
      plugins.orf_tvthek: remove
      tests.plugins: rewrite PluginCanHandleUrl tests
      stream.hls: warn when writing after discontinuity

fenopa <62562166+fenopa@users.noreply.github.com> (1):
      plugins.turkuvaz: fix url match (#5021)

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

Streamlink 5.1.2

03 Dec 06:43
Compare
Choose a tag to compare

Patch release:

  • Fixed: ValueError being raised while muxing streams (#4998)
  • Fixed: ad filtering bug in Twitch plugin (#5007)
  • Fixed: SVTPlay plugin (#4994)
  • Fixed: TVP plugin (#4997)
  • Docs: updated Linux AppImage and Windows builds install sections (#4999)
  • Docs: fixed man page links in HTML docs (#4995)

📦 Download and Installation

Please see the installation instructions for a list of available install methods and packages on the supported operating systems.

⚠️ PLEASE NOTE ⚠️
Streamlink's Windows installers have been moved to streamlink/windows-builds.

⚙️ 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> (9):
      docs: fix changelog of 5.1.1 release
      docs: fix man page links in HTML docs
      plugins.tvp: fix channel ID lookup
      stream.ffmpegmux: abort on ValueError during read
      plugins.svtplay: rewrite plugin and add HLS
      docs: rewrite Windows + AppImage install sections
      docs: remove unnecessary note from install page
      docs: explain XDG base dir and parameter expansion
      plugins.twitch: fix ad filtering bug

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

Streamlink 5.1.1

23 Nov 16:15
Compare
Choose a tag to compare

Patch release:

  • Changed: WebsocketClient to use CA certificates bundled by certifi (#4977)
  • Fixed: SegmentedStreamReader not properly getting closed (#4972)
  • Fixed: CLI argument links throughout the entire docs (#4989)
  • Build: added certifi as a direct dependency (#4977)

📦 Download and Installation

Please see the installation instructions for a list of available install methods and packages on the supported operating systems.

⚠️ PLEASE NOTE ⚠️
Streamlink's Windows installers have been moved to streamlink/windows-builds.

⚙️ 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

Ian Cameron <1661072+mkbloke@users.noreply.github.com> (1):
      docs: add pipx install info

bastimeyer <mail@bastimeyer.de> (5):
      docs: add missing urllib3 to install page
      stream.segmented: properly close StreamIO
      stream: add FilteredStream and abstract filtering
      plugin.api.websocket: use certifi's cacert.pem
      ci.github: temporarily downgrade Sphinx to 5.2.3

Streamlink 5.1.0

14 Nov 13:44
Compare
Choose a tag to compare
  • Added: debug log messages of the FFmpeg version in use (#4861)
    Checking the FFmpeg version can be disabled via --ffmpeg-no-validation
  • Added: --twitch-access-token-param for changing access token API request params (#4952)
  • Added: new log level all (#4941)
  • Updated: sbscokr plugin and removed the --sbscokr-id parameter (#4865)
  • Updated: Twitch authentication docs (#4940, #4956)
  • Fixed: broken --twitch-disable-ads mid-roll ad filering (#4942)
  • Fixed: incorrect module name for trace logs on Python 3.11 (#4863)
  • Fixed: bloomberg plugin (#4919)
  • Fixed: dailymotion plugin (#4910)
  • Fixed: raiplay plugin (#4851)
  • Fixed: tvp plugin (#4905)
  • Fixed: vinhlongtv plugin (#4850)
  • Fixed: various other plugin issues (see full changelog)
  • Removed plugins: egame (#4866)
  • Build: added urllib3 as a direct dependency and set it to >=1.26.0 (#4950)
  • Build: added pytest-asyncio to dev-requirements (#4861)

📦 Download and Installation

Please see the installation instructions for a list of available install methods and packages on the supported operating systems.

⚠️ PLEASE NOTE ⚠️
Streamlink's Windows installers have been moved to streamlink/windows-builds.

⚙️ 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

Ian Cameron <1661072+mkbloke@users.noreply.github.com> (4):
      plugins.tv8: update stream URL regex
      plugins.bloomberg: update/fix headers to avoid bot detection
      docs: add code style section
      plugins.vtvgo: update to get required cookies

Mozi <29089388+pzhlkj6612@users.noreply.github.com> (1):
      docs: add mypy for checking typing error

Nicolas Goy <kuon@goyman.com> (1):
      docs: fix twitch oauth token header name (#4940)

bastimeyer <mail@bastimeyer.de> (37):
      plugin.api.http_session: update and fix typing
      ci.github: bump actions to latest version
      plugins.vinhlongtv: rewrite and fix plugin
      plugins.raiplay: update and fix plugin
      plugin: remove broken decorator
      plugin: fix get_argument()
      plugins.hiplayer: fix plugin
      logger: fix trace() module name on py311
      utils: implement ProcessOutput
      stream.ffmpegmux: validate FFmpeg version
      plugins.sbscokr: rewrite and fix plugin
      plugins.egame: remove plugin
      plugins.qq: rewrite and fix plugin
      plugins.tvrplus: rewrite plugin
      plugins.goltelevision: add missing HTTP headers
      plugins.atresplayer: update input URLs
      plugins.btv: fix validation schema
      plugins.tf1: rewrite plugin, add "stream" VODs
      chore: update issue forms
      plugins.tvp: rewrite and fix plugin, add VODs
      plugins.dailymotion: fix validation schema
      ci.github: add regular Python 3.11 runners
      tests: fix plugins metadata encoding
      chore: fix new mypy warnings and errors
      tools: move list of files to mypy config
      stream.hls: add more debug messages to write calls
      build: add urllib3 directly and set it to >=1.26.0
      plugins.twitch: add --twitch-access-token-param
      logger: add new log level "all"
      logger: implement StreamlinkLogger.iter()
      stream.hls: log HLS playlist content while parsing
      plugins: make $notes metadata repeatable
      plugins.twitch: improve plugin notes and arg texts
      plugins.twitch: fix date offset of prefetch ads
      plugins.twitch: add segment ad detection fallback
      docs: fix and update man page
      cli: fix log format for log level "all"

fenopa <62562166+fenopa@users.noreply.github.com> (1):
      plugins.tv8: filter out ad segments

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

Streamlink 5.0.1

22 Sep 14:29
Compare
Choose a tag to compare

Patch release:

  • Fixed: truncation of relative paths in progress output on Windows (#4830)
  • Fixed: mitele plugin's validation schema (#4839)
  • Fixed: infinite loop in rtve plugin (#4840)

📦 Download and Installation

Please see the installation instructions for a list of available install methods and packages on the supported operating systems.

⚠️ PLEASE NOTE ⚠️
Streamlink's Windows installers have been moved to streamlink/windows-builds.

⚙️ 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

UltraHDR <108294295+UltraHDR@users.noreply.github.com> (1):
      plugins.hiplayer: remove cnbcarabia.com (#4836)

bastimeyer <mail@bastimeyer.de> (4):
      cli.utils.progress: fix relative Windows paths
      docs: bump furo theme version to 2022.09.15
      plugins.mitele: strip whitespace from stream URLs
      plugins.rtve: fix ZTNR.translate

Streamlink 5.0.0

16 Sep 16:24
Compare
Choose a tag to compare

Breaking changes:

Release highlights:

  • Added: official support for Python 3.11 (#4806)
  • Added: --player-external-http-continuous (#4739)
  • Added: file path to progress output (--output, --record, etc.) (#4764)
  • Added: warning message when FFmpeg is not available and muxing is unsupported (#4781)
  • Changed: logging channel of deprecation messages to "warning" (#4785)
  • Disabled: --twitch-disable-hosting and removed its logic (#4805)
  • Fixed: memory leak when initializing the Streamlink session (#4768)
  • Fixed: cbsnews plugin (#4743)
  • Fixed: steam plugin authentication (#4745)
  • Fixed: ustreamtv plugin (#4761)
  • Fixed: huya plugin (#4763)
  • Fixed: atresplayer, mitele and rtve plugins (#4759, #4760, #4766)
  • Fixed: albavision, hiplayer and htv plugins (#4770)
  • Fixed: OKru plugin with support for the mobile page (#4780)
  • Fixed: trovo plugin VODs (#4812)
  • API: added Streamlink and HTTPSession typing informations to Plugin and Stream (including its various subclasses) (#4802, #4814)
  • API: added pluginargument decorator (#4747)
  • Docs: updated pluginmatcher and pluginargument documentation (#4771)

📦 Download and Installation

Please see the installation instructions for a list of available install methods and packages on the supported operating systems.

⚠️ PLEASE NOTE ⚠️
Streamlink's Windows installers have been moved to streamlink/windows-builds.

⚙️ 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 <63477090+Mehavoid@users.noreply.github.com> (1):
      plugins.trovo: fix VODs (#4812)

OHaiiBuzzle <23693150+ohaiibuzzle@users.noreply.github.com> (1):
      plugins.huya: update `liveId` to type `str` (#4763)

UltraHDR <108294295+UltraHDR@users.noreply.github.com> (1):
      plugins.hiplayer: add alwasat.ly (#4778)

bastimeyer <mail@bastimeyer.de> (57):
      plugins.cbsnews: fix regex, add metadata
      plugins.steam: fix login
      plugin: remove user_input_requester from bind()
      plugin: set Plugin.arguments class attr to None
      plugin: add pluginargument decorator
      plugins: switch to new pluginargument decorator
      docs: update plugins extension for new arguments
      plugin: add explicit pluginargument tests
      tests: rewrite plugin cookies tests
      plugins.mitele: fix and refactor plugin
      plugins.atresplayer: fix plugin
      cli: implement --player-external-http-continuous
      plugins.ustreamtv: fix matcher
      plugins.rtve: fix plugin
      cli.utils.progress: refactor
      cli.utils.progress: add output path to formats
      tests: refactor options tests
      plugins: fix regex capture groups
      docs: add plugin{matcher,argument} docstrings
      chore: use f-strings for concatenation
      plugin.api.validate: refactor ValidationError
      plugins.okru: translate mobile URLs
      plugins.okru: support mobile page
      stream.ffmpegmux: show warning if unavailable
      plugins: update plugin constructors
      plugin: remove Plugin.bind()
      plugin: wrappers for incompatible custom plugins
      docs: add Plugin + Session changes to deprecations
      cli.utils.progress: refactor
      logger: log deprecation messages as warnings
      tests: rewrite and split up string formatter tests
      tests: rewrite logger tests
      tests: reorganize test modules
      tests: remove custom catch_warnings function
      cli: refactor version check
      cli: refactor setup of session options
      tests: move versioncheck test to intended dir
      cli: remove custom `ignored` contextmanager
      chore: inline-immediately-returned-variable
      chore: generators
      chore: dicts
      chore: lists
      chore: if-else blocks
      chore: strings
      plugin.api.http_session: remove parse_* methods
      docs: handle suppressed plugin arguments
      plugins.twitch: remove disable-hosting
      build: add Python 3.11 to package classifiers
      ci: install custom lxml wheel on cp311 win-amd64
      plugin: add session typing information
      stream: add session typing information
      plugin: fix type of url property
      plugins.tv3cat: rewrite
      plugins.linelive: rewrite
      plugins.dailymotion: rewrite and fix plugin
      plugins.piczel: rewrite
      stream.ffmpegmux: remove avconv

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

Ömer Görür <102440553+omergorur@users.noreply.github.com> (3):
      plugins.cinergroup: rewrite, add bloomberght (#4813)
      plugins.cinergroup: fix showtvcomtr (#4817)
      plugins.turkuvaz: rewrite, update supported sites (#4819)

Streamlink 4.3.0

15 Aug 15:48
Compare
Choose a tag to compare

Release highlights:

  • Improved: CLI download progress output (#4656)
  • Fixed: consecutive FFmpeg executable lookups not being cached (#4660)
  • Fixed: --ffmpeg-verbose-path not expanding ~ to the user's home directory (#4688)
  • Fixed: deprecated stdlib API calls in the upcoming Python 3.11 release (#4651, #4654)
  • Fixed: huya plugin (#4685)
  • Fixed: livestream plugin (#4679)
  • Fixed: picarto plugin (#4729)
  • Fixed: nbcnews plugin (#4668)
  • Fixed: deutschewelle plugin (#4725)
  • Added plugins: atpchallenger (#4700)
  • Removed plugins: nbc + nbcsports + theplatform (#4731), common_jwplayer (#4733)
  • Docs: various CLI related improvements (#4659)
  • Docs: removed OpenBSD and Ubuntu from install docs (#4681)
  • Plugin API: added new validation schemas and updated validators (#4691, #4709, #4732)

📦 Download and Installation

Please see the installation instructions for a list of available install methods and packages on the supported operating systems.

⚠️ PLEASE NOTE ⚠️
Streamlink's Windows installers have been moved to streamlink/windows-builds.

⚙️ 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

Mozi <29089388+pzhlkj6612@users.noreply.github.com> (8):
      plugins.nicolive: docs: apply bold style to "--timeshift-offset"
      docs: use valid or full-length options to create links
      docs: use bulleted list to organize content
      docs: include the option itself in its example
      docs: apply option links in indented lines
      docs: add names for special characters
      docs: use single-backtick inline code block
      docs: put inline code to code blocks in examples

NeedMilk! <xiaoyu960522@sina.com> (1):
      plugins.atpchallenger: new plugin (#4700)

bastimeyer <mail@bastimeyer.de> (54):
      ci: add cpython 3.11-dev test runners
      ci: fix git fetch in netlify build config
      cli: refactor nested argparse argument groups
      plugins.vidio: fix referer HTTP header
      utils.l10n: switch to locale.getlocale()
      cli: rewrite progress output
      stream.ffmpegmux: cache executable lookups
      plugins.nbcnews: fix plugin
      stream.ffmpegmux: rewrite tests
      stream.ffmpegmux: add ffmpeg-verbose{,-path} tests
      docs: fix windows-builds repo links
      plugins.livestream: rewrite and fix plugin
      refactor: is_darwin/is_win32 compat exports
      docs: remove OpenBSD from install docs
      docs: remove Ubuntu from install docs
      docs: add linux appimage maintainer note
      docs: add package availability section
      plugins.huya: rewrite and fix plugin
      stream.ffmpegmux: expand user in verbose-path
      ci: fix new flake8 5.0.0 linting issues
      chore: update GitHub release message body
      plugin.api.validate: more DRY schema definitions
      plugin.api.validate: add ListSchema
      plugin.api.validate: add re.Pattern validation
      plugin.api.validate: add NoneOrAllSchema
      plugins.ard_mediathek: fix plugin
      plugins.zdf_mediathek: replace regex with XPath
      plugins.tv360: rewrite plugin
      plugins.huajiao: rewrite and fix plugin
      plugins.cinergroup: rewrite and fix plugin
      plugin.api.validate: fix pattern input type
      plugin.api.validate: add RegexSchema
      plugin.api.http_session: suppress type error
      plugins: refactor validation schemas
      plugins: move and refactor validation schemas
      plugins.dlive: refactor
      plugins.cmmedia: refactor
      plugins.ltv_lsm_lv: fix plugin
      plugins.olympicchannel: rewrite
      plugins.btv: rewrite
      plugins.raiplay: refactor
      plugins.blazetv: refactor
      plugins: call schema.validate(value)
      docs: add missing changes to the 4.1.0 changelog
      plugins.deutschewelle: rewrite and fix plugin
      plugins.bloomberg: fix default US live stream
      plugins.nbc: remove plugin
      plugins.nbcsports: remove plugin
      plugins.theplatform: remove plugin
      plugin.api.validate: rework XML validators
      plugins: replace XPath f-strings with variables
      docs: add custom html_template_vars extension
      docs: add Open Graph metadata
      plugins: remove common_jwplayer module

skulblakka <pascal.romahn@mailbox.org> (1):
      plugins.picarto: fix streams and VODs (#4729)

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

Streamlink 4.2.0

09 Jul 03:22
Compare
Choose a tag to compare

Release highlights:

  • Added: new Windows portable builds (#4581)
  • Added: more dependency versions to debug log header (#4575)
  • Added: parsed multivariant playlist reference to HLSStream and MuxedHLSStream (#4568)
  • Fixed: unnecessary delay when closing DASHStreams (#4630)
  • Fixed: FFmpegMuxer not closing sub-streams concurrently (#4634)
  • Fixed: threading issue when closing WebsocketClient connections (#4608)
  • Fixed: handling of PluginErrors when outputting JSON data via --json (#4590)
  • Fixed: broken YouTube plugin when setting custom authentication headers (#4576)
  • Fixed: "source" Twitch VODs not being considered "best" (#4625)
  • Fixed: and rewritten FilmOn plugin (#4573)
  • Fixed: websocket issue in Twitcasting plugin (#4608, #4628)
  • Fixed: VK plugin (#4613, #4638)
  • Fixed: various other plugin issues (see full changelog)
  • New plugins: Aloula (#4572)
  • Removed plugins: Eltrecetv (#4593)
  • Docs: added openSUSE (#4596) and Scoop (#4600) packages
  • Docs: improved some links in CLI docs (#4623)
  • Docs: upgraded furo theme to 2022.06.04.1, require sphinx >=4, and replace recommonmark with myst-parser (#4610)
  • Build: fixed outdated python_requires value in setup.cfg (#4580)
  • Build: upgraded versioningit build dependency to >=2.0.0 <3 (#4597)

⚙️ 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

🗒️ Full changelog

Ben Greiner <code@bnavigator.de> (1):
      build: fix python_requires (#4580)

Ian Cameron <1661072+mkbloke@users.noreply.github.com> (6):
      plugins.aloula: new plugin
      plugins.aloula: update login required message
      plugins.pandalive: update/fix
      plugins.vk: fix
      plugins.trovo: update URL matching, tests
      plugins.vk: add support for WAF cookie

Mozi <29089388+pzhlkj6612@users.noreply.github.com> (3):
      docs: change "defaults" to "default" to apply bold style
      docs: use full-length parameters to create links
      docs: make cross-link to "metadata variables" in cli docs

back-to <backto@protonmail.ch> (5):
      plugins.rtpa: fix 401 error, added self.title
      plugins.mediavitrina: fix invalid url_json
      plugins.idf1: fix plugin
      plugins.eltrecetv: removed
      plugins.telefe: fix livestream (#4592)

bastimeyer <mail@bastimeyer.de> (34):
      plugins.tvtoya: rewrite plugin
      stream.hls: cache parsed multivariant playlist
      stream.hls: add methods for fetching playlists
      plugins.filmon: rewrite plugin
      cli: list all dependencies in debug output
      plugins.youtube: fix InitialPlayerResponse regex
      docs: update windows binaries section
      cli: fix pluginerror in handle_url if json is True
      ci: update deploy-docs script
      plugin.api: add update-user-agents script
      ci: add useragents workflow
      docs: remove windows portable maintainer note
      docs: add openSUSE package
      build: upgrade versioningit to >=2.0.0, <3
      docs: fix versioningit version
      docs: add scoop package
      plugin.api.websocket: don't join current thread
      plugin.api.websocket: fix typing, export opcodes
      plugins.twitcasting: fix websocket stream data
      docs: bump furo theme version to 2022.06.04.1
      docs: replace recommonmark with myst-parser
      docs: update homebrew package link
      ci: lint sphinx extensions and setup.py
      plugins.twitch: fix stream weight
      plugins.twitcasting: discard text frames
      plugins.rtve: rewrite plugin
      stream.ffmpegmux: close sub-streams concurrently
      stream.segmented: add AwaitableMixin
      tests: refactor DashStreamWorker tests
      stream.dash: update DASHStreamWorker.iter_segments
      stream.dash: update DASHStreamWriter.fetch
      plugins.vidio: rewrite plugin
      stream.hls: turn url_master into property
      release: 4.2.0

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

Streamlink 4.1.0

30 May 17:58
Compare
Choose a tag to compare

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

🗒️ 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)