Streamlink is a CLI utility which pipes video streams from various services into a video player
BSD-2-CLAUSE License
Bot releases are visible (Hide)
Patch release:
Please see the installation instructions for a list of available install methods and packages on the supported operating systems.
Please see the CLI documentation for how to configure and use Streamlink.
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!
Morty Wang <[email protected]> (1):
plugins.douyin: new plugin
bastimeyer <[email protected]> (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 <[email protected]> (1):
plugin.api: update useragents
v2wy <[email protected]> (1):
plugins.huya: rewrite, fix stream params
Published by github-actions[bot] 4 months ago
Patch release:
Please see the installation instructions for a list of available install methods and packages on the supported operating systems.
Please see the CLI documentation for how to configure and use Streamlink.
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!
bastimeyer <[email protected]> (3):
session.http: disable weak digest ciphers
tests: test HTTPAdapters on all python versions
tests: disable coverage of python(version) marker
Published by github-actions[bot] 4 months ago
Release highlights:
SSLContextAdapter
to streamlink.session.http
(#6024)streamlink.plugins
package (#6005)--tf1-email
and --tf1-password
(#5983)Please see the installation instructions for a list of available install methods and packages on the supported operating systems.
Please see the CLI documentation for how to configure and use Streamlink.
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!
Clap2rap <[email protected]> (1):
plugins.chzzk: fix validation schema
Ismaël Moret <[email protected]> (1):
plugin.tf1: implement authentication
bastimeyer <[email protected]> (21):
tools: bump mypy to 1.10.0
tools: bump ruff to 0.4.4
tools: bump ruff to 0.4.5 and fix issues
plugins: officially deprecate re-exports
docs: add note about Ubuntu to install page
plugins.welt: fix validation schema
plugins.twitch: fix ad/discontinuity handling
plugins.kick: new plugin
tools: bump ruff to 0.4.7 and fix issues
revert: plugins.twitch: fix ad/discontinuity handling
plugins.kick: remove plugin
session: log sha256 of overriding plugin module
tests: add python(version) markers
session.http: refactor, add base SSLContextAdapter
plugins.kick: restore plugin with new HTTPAdapter
session.http: re-use SSLContext in ProxyManager
plugins.bilibili: fix schema for offline channels
plugins.cnbce: new plugin
chore: add collab checkboxes to issue templates
tools: bump ruff to 0.4.9
plugins.tvp: get live streams from API
streamlinkbot <[email protected]> (1):
plugin.api: update useragents
Published by github-actions[bot] 5 months ago
Patch release:
exceptiongroup
dependency on Python >= 3.11 (#5987)Please see the installation instructions for a list of available install methods and packages on the supported operating systems.
Please see the CLI documentation for how to configure and use Streamlink.
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!
Lee Taehoon <[email protected]> (2):
plugins.afreeca: support for password-protected streams
plugins.afreeca: enhance quality fetching
bastimeyer <[email protected]> (20):
plugins.turkuvaz: add HLS URL mapping
tools: unset max line length in markdown files
docs: remove KNOWN_ISSUES.md
docs: rewrite "reporting bugs" guide
docs: rewrite "pull requests" guide
docs: rephrase and clarify plugin rules
chore: update plugin issue template
cli: fix typing information
cli: refactor CLI errors
plugins.nownews: remove plugin
docs: bump myst-parser dependency requirement
tools: bump ruff to 0.4.2 and fix issues
docs: bump furo theme version to 2024.04.27
docs: remove Alpine Linux from install page
docs: add ALT Linux to install page
docs: add Void Linux back to install page
docs: update Windows builds flavors
docs: fix deprecated ruff <path> call
build: only require exceptiongroup on py<3.11
build: fix encoding when reading plugin files
fml09 <[email protected]> (1):
plugins.chzzk: new plugin
streamlinkbot <[email protected]> (1):
plugin.api: update useragents
Published by github-actions[bot] 6 months ago
Patch release:
KeyboardInterrupt
/SystemExit
in streamlink.webbrowser
(#5930)exceptiongroup<=1.1.1
(#5930)plugin.api.validate.parse_qsd
input type validation (#5932)bdist
build directory (#5933)Please see the installation instructions for a list of available install methods and packages on the supported operating systems.
Please see the CLI documentation for how to configure and use Streamlink.
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!
Alexis Murzeau <[email protected]> (1):
tests: fix test_onbuild when executed from build directory
bastimeyer <[email protected]> (16):
tools: bump ruff to 0.3.4
tools: bump mypy to 1.9.0
plugins.vkplay: update matcher and API URL
plugins.showroom: fix geo-block check
docs: fix anchor on install page
plugins.pluto: rewrite plugin
tests: refactor CLI path utils tests
cli.utils.path: add truncate_path()
cli.utils.formatter: respect max file name length
plugins.mangomolo: fix missing Referer header
plugins.mangomolo: fix media.gov.kw matcher
cli.utils.path: fix max bytes
plugin.api.validate: check parse_qsd() input type
webbrowser: fix propagation of BaseException
ci.codecov: add build_backend status check
tools: bump ruff to 0.3.7
streamlinkbot <[email protected]> (1):
plugin.api: update useragents
Published by github-actions[bot] 7 months ago
Patch release:
trio
version requirement bump (#5902)pytest
version requirement (#5901)Please see the installation instructions for a list of available install methods and packages on the supported operating systems.
Please see the CLI documentation for how to configure and use Streamlink.
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!
bastimeyer <[email protected]> (2):
tests: require pytest 8.0.0
build: set trio min-requirement back to 0.22
Published by github-actions[bot] 7 months ago
Patch release:
trio>=0.25
(#5895)trio
dependency version requirement to >=0.25,<1
(#5895)exceptiongroup
dependency (#5895)Please see the installation instructions for a list of available install methods and packages on the supported operating systems.
Please see the CLI documentation for how to configure and use Streamlink.
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!
Alexis Murzeau <[email protected]> (1):
tests: reset root logger level in test teardown
bastimeyer <[email protected]> (13):
tools: bump ruff to 0.3.2
docs: fix 6.7.0 changelog
cli: update progress output after stream has ended
tests: refactor CLI progress tests
plugins.tv3cat: rewrite plugin, add missing VODs
build: set trio dependency to <0.25 for now
build: add exceptiongroup dependency
webbrowser: fix compatibility with trio 0.25
plugins.twitch: update CI-token error handling
plugins.vimeo: fix event and player URLs
docs: rephrase exceptiongroup description
tests: reset root logger level in cmdline tests
plugins.vimeo: fix offline event streams
Published by github-actions[bot] 7 months ago
Release highlights:
--plugin-dir
CLI argument (5866)--plugin-dirs
CLI argument with comma separated paths (5866)Please see the installation instructions for a list of available install methods and packages on the supported operating systems.
Please see the CLI documentation for how to configure and use Streamlink.
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!
bastimeyer <[email protected]> (16):
plugins.vimeo: fix missing HLS/DASH API results
plugins.ltv_lsm_lv: fix plugin, rm LTVHLSStream
stream.hls: fix maps with and without keys
plugins.mangomolo: new plugin
cli: only log args with the same dest once
cli: split up main() into setup() and run()
tests: rewrite CLI logging tests
tests: rewrite CLI print tests
plugins.bloomberg: refactor and fix data regex
tools: bump ruff to 0.3.0 and fix issues
session: fix default options being shared
tests: remove unneeded dateutil warning filter
tools: bump ruff to 0.3.1 and fix issues
cli: add --plugin-dir, deprecate --plugin-dirs
plugins.ustvnow: update matcher, reformat code
docs: move up removal badges on deprecations page
streamlinkbot <[email protected]> (1):
plugin.api: update useragents
Published by github-actions[bot] 8 months ago
Patch release:
setuptools
min. version in build requirements (#5842)Please see the installation instructions for a list of available install methods and packages on the supported operating systems.
Please see the CLI documentation for how to configure and use Streamlink.
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!
Lee Taehoon <[email protected]> (2):
plugins.afreeca: fix broadcast number regex
plugins.afreeca: support metadata
bastimeyer <[email protected]> (4):
tools: bump ruff to 0.2.2 and fix issues
build: bump setuptools to >=65.6
session: fix missing plugin override log message
plugins.hiplayer: remove mediagovkw matcher
Published by github-actions[bot] 8 months ago
Patch release:
--help
output (#5838)Please see the installation instructions for a list of available install methods and packages on the supported operating systems.
Please see the CLI documentation for how to configure and use Streamlink.
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!
bastimeyer <[email protected]> (3):
options: fix object identity of argparse.SUPPRESS
session: add plugins args from JSON in reverse
docs: skip groups with only suppressed actions
Published by github-actions[bot] 8 months ago
Release highlights:
streamlink.session
into a sub-package (#5807)streamlink.plugin.api.http_session
to streamlink.session.http
(#5807)Streamlink
class internals (#5807, #5814)Streamlink.{get,load}_plugins()
methods (#5818)HTTPSession
and imports from streamlink.plugin.api.http_session
(#5818)streamlink.utils.args
module (#5778, #5781, #5815)Please see the installation instructions for a list of available install methods and packages on the supported operating systems.
Please see the CLI documentation for how to configure and use Streamlink.
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!
bastimeyer <[email protected]> (50):
utils.args: rewrite module
utils.args: fix keyvalue()
utils.args: fix filesize()
cli: fix --ringbuffer-size help text
options: refactor Argument/pluginargument
plugin: add str to pluginargument type argument
plugins: switch pluginargument type values to str
utils.args: add unique arg to comma_list_filter
plugins.huya: fix stream URLs
plugin: add missing pluginargument type functions
plugins.aloula: add HTTP headers, update matchers
plugins: replace pluginargument help f-strings
tools: bump ruff to 0.1.14 and fix issues
tests: fix session init
tests: downgrade pytest
tests: remove pytest downgrade again
utils.module: fix load_module(), add exec_module()
session: re-use PathEntryFinder in load_plugins()
tests: re-use PathEntryFinder in test_plugins
plugins.qq: remove plugin
plugins.rtbf: remove plugin
utils.parse: fix import path
tools: bump ruff to 0.2.0 and update config
compat: add deprecated() function
session: turn session module into a sub-package
session: remove unneeded PythonDeprecatedWarning
session: move StreamlinkOptions
session: move plugin.api.http_session
plugin.api: restore http_session module
utils: make parametrized argparse funcs hashable
options: compare equality of Argument objects
ci.github: bump setup-python action to v5
ci.github: bump upload/download-artifact to v4
ci.github: bump codecov/codecov-action to v4
session: move plugin load/resolve logic
docs: HTTPSession and HTTPAdapters deprecation
docs: Streamlink.{get,load}_plugins() deprecation
docs: fix custom ext_argparse Sphinx extension
options: compare equality of Arguments objects
docs: fix scrollbars in sidebars
plugins.foxtr: remove plugin
plugins.nowtvtr: new plugin
build: implement plugins_json.py script
build: build and include plugins JSON in wheels
ci.github: add test_build job
session: implement lazy plugins loading
cli: ignore coverage in _parser util module
options: fix Argument typing information
tools: bump ruff to 0.2.1 and fix issues
ci.github: bump setup-python action to v5
blluv <[email protected]> (1):
stream.hls: add hlsstream kwarg to MuxedHLSStream
streamlinkbot <[email protected]> (1):
plugin.api: update useragents
Published by github-actions[bot] 9 months ago
Patch release:
Please see the installation instructions for a list of available install methods and packages on the supported operating systems.
Please see the CLI documentation for how to configure and use Streamlink.
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!
bastimeyer <[email protected]> (19):
cli: fix file output log msg on Windows <=py39
chore: update PR feedback guide
plugins.zattoo: force FFmpeg copyts
tools: bump ruff to 0.1.9
tools: bump mypy to 1.8.0
plugins.huya: check stream availability
tests: ignore dateutil DeprecationWarning
ci.github: bump Python version
2024
plugins.bigo: rewrite and fix plugin
plugins.twitch: disable headless mode
cli: improve quoted player path warning
docs: unlist NetBSD package
docs: unlist Void Linux package
plugins.vidio: fix stream token
plugins.bilibili: query API on missing stream data
tools: bump ruff to 0.1.13 and fix issues
plugins.artetv: rewrite and fix plugin
tests: fix positive URLs assertion in plugins test
digitechtv <[email protected]> (1):
plugins.atresplayer: fix live API request
streamlinkbot <[email protected]> (1):
plugin.api: update useragents
Published by github-actions[bot] 10 months ago
Release highlights:
UserWarning
being emitted by recent pycountry
releases when parsing certain language codes (#5722)WebsocketClient
implementation (#5705)--twitch-disable-reruns
(#5704)check_streams
HLS option, to ensure early stream availability without querying the delayed Twitch API (#5708)versioningit >=3.0.0
, with backward compatibility (#5721)Please see the installation instructions for a list of available install methods and packages on the supported operating systems.
Please see the CLI documentation for how to configure and use Streamlink.
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!
bastimeyer <[email protected]> (15):
plugins.btv: parse HLS multivariant playlist
plugin.api.websocket: fix trace logging setup
tests: fix typing issues in WebsocketClient tests
tests: fix pytest-asyncio warnings
plugins.twitch: drop --twitch-disable-reruns
plugins.twitch: remove is-live API check
plugins.twitch: no error msg for offline channels
plugins.twitch: only log errors if channel is live
plugins.wasd: remove plugin
build: fix setuptools in {dev,docs}-requirements
tools: bump ruff to 0.1.8 and fix issues
build: add support for versioningit >=3.0.0
tests: remove unneeded pycountry warning filters
utils.l10n: ignore missing official_name warning
plugins.gulli: rewrite and fix plugin
streamlinkbot <[email protected]> (1):
plugin.api: update useragents
Published by github-actions[bot] 11 months ago
Patch release:
Cache
API docs (#5688)Please see the installation instructions for a list of available install methods and packages on the supported operating systems.
Please see the CLI documentation for how to configure and use Streamlink.
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!
bastimeyer <[email protected]> (7):
plugins.ssh101: fix plugin
docs: clean up developing page
docs: clean up applications and thirdparty pages
docs: add cache API docs and add Plugin.cache ref
stream.hls: fix segment maps
plugins.piczel: fix and update HLS URL
plugins.bilibili: rewrite and fix plugin
Published by github-actions[bot] 11 months ago
Patch release:
Please see the installation instructions for a list of available install methods and packages on the supported operating systems.
Please see the CLI documentation for how to configure and use Streamlink.
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!
bastimeyer <[email protected]> (1):
utils.parse: fix libxml2 2.12.0 compatibility
Published by github-actions[bot] 11 months ago
Release highlights:
SegmentList
s (#5654, #5657)Please see the installation instructions for a list of available install methods and packages on the supported operating systems.
Please see the CLI documentation for how to configure and use Streamlink.
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!
Gianluca Caronte <[email protected]> (1):
plugin.raiplay: add VOD and authentication support
Michaël Arnauts <[email protected]> (2):
stream.dash: fix SegmentList in dynamic manifests
stream.dash: dynamic SegmentList live-edge
Pablo Hoffman <[email protected]> (1):
plugins.telemadrid: fix xpath
bastimeyer <[email protected]> (24):
stream.file: fix read mode
tools: bump ruff to 0.1.3 and fix issues
script: fix plugin test script
plugins.tvp: fix tvp.info
plugin.api.validate: fix perf of validate_sequence
docs: add plugin.api.validate API documentation
plugin.api.validate: fix order of module members
docs: move API guide pages into second layer
docs: add plugin.api.validate API guide
stream.dash: warn about skipped segments
tools: bump ruff to 0.1.5 and fix issues
tests: upd TestMixinStreamHLS.subject return value
stream.dash: add init keyword to segments()
plugin.api.validate: add op keyword to length()
tools: pinpoint latest mypy version
tests: fix webbrowser test coverage
ci.github: rewrite workflows
plugins.nasaplus: new plugin
ci.github: switch to pypa/gh-action-pypi-publish
docs: fix workflow badge in README.md
plugins.youtube: fix video ID retrieval
script: add -r/--replace to test-plugin-urls.py
docs: clean up players page
docs: remove common issues page
streamlinkbot <[email protected]> (1):
plugin.api: update useragents
Published by github-actions[bot] 12 months ago
Patch release:
Please see the installation instructions for a list of available install methods and packages on the supported operating systems.
Please see the CLI documentation for how to configure and use Streamlink.
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!
bastimeyer <[email protected]> (2):
build: fix onbuild test in sdist
plugins.welt: rewrite and fix plugin
Published by github-actions[bot] 12 months ago
Release highlights:
Segment
dataclass and made segmented streams inherit from it (#5594)Sequence
segment wrapper from HLS implementation (#5526)minBufferTime
(#5610)versioningit
build-requirement when building from sdist tarball (version string has always been built-in while versioningit
performed a no-op) (#5632)Please see the installation instructions for a list of available install methods and packages on the supported operating systems.
Please see the CLI documentation for how to configure and use Streamlink.
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!
Allan Fernando <[email protected]> (1):
plugins.dlive: fix live streams
Antonio Cebrián <[email protected]> (1):
plugins.mitele: update to gbx v3
Mehavoid <[email protected]> (1):
plugins.goodgame: use streamKey for HLS URLs
Michaël Arnauts <[email protected]> (1):
plugin: fix typo in constant name
bastimeyer <[email protected]> (39):
plugins.twitch: fix HLS multivariant errors
plugins.goodgame: rewrite using API
stream.hls: turn Segment/Playlist into dataclasses
stream.hls: remove Sequence named tuple wrapper
stream.hls: update methods and attributes
stream.hls: refactor M3U8 playlist loading
stream: switch to stream.segmented sub-package
stream: switch to stream.dash sub-package
stream: switch to stream.hls sub-package
stream.segmented: move CompatThreadPoolExecutor
stream.hls: rename Segment to HLSSegment
stream.dash: rename Segment to DASHSegment
stream.dash: rename DASHSegment.url attr to uri
stream.dash: rename DASHSegment.number to num
stream.dash: make DASHStream.duration non-optional
stream.segmented: add common base Segment class
stream.hls: move HLSSegment to dedicated module
stream.dash: move DASHSegment to dedicated module
plugin.api.validate: remove unneeded Match check
docs: upd Debian stable from bullseye to bookworm
plugins.vlive: remove plugin
script: don't upload PGP signatures to PyPI
plugins.ntv: remove plugin
stream.hls: warn about skipped segments
stream.dash: return timedelta from duration parser
stream.dash: respect the manifest's minBufferTime
ci.github: update py312 runners
plugins: ignore case in protocol-plugin input URLs
plugins: fix URL matchers of HLS and DASH
stream.hls: fix playlist bandwidth
tools: bump ruff to 0.1.0
chore: "RUF" rules to ruff config
chore: add "INP" rules to ruff config
chore: add "T20" rules to ruff config
plugins.dlive: rewrite and fix VODs
build: include build-shell-completions.sh in sdist
build: remove versioningit build-req from sdist
docs: add sdist section to install page
docs: update virtual-env sections on install page
Published by github-actions[bot] about 1 year ago
Patch release:
Please see the installation instructions for a list of available install methods and packages on the supported operating systems.
Please see the CLI documentation for how to configure and use Streamlink.
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!
Alexandr Rutkowski <[email protected]> (1):
plugins.wwenetwork: new api layout
bastimeyer <[email protected]> (12):
plugins.goodgame: rewrite and fix plugin
build: override setuptools build backend
docs: update Solus package URL again
docs: update Debian package URLs
docs: fix Arch Linux AUR wiki page URL
docs: add FreeBSD to install docs
docs: add Alpine Linux to install docs
plugins.nos: rewrite and fix plugin
tools: bump ruff to 0.0.291 and fix issues
ci.github: add py312-dev test runner on Windows
plugins.pandalive: fix live/play API call
build: add Python 3.12 to package classifiers
streamlinkbot <[email protected]> (1):
plugin.api: update useragents
Published by github-actions[bot] about 1 year ago
Release highlights:
--player-env
CLI argument (#5535)Please see the installation instructions for a list of available install methods and packages on the supported operating systems.
Please see the CLI documentation for how to configure and use Streamlink.
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!
Mozi <[email protected]> (1):
plugins.piaulizaportal: new plugin
bastimeyer <[email protected]> (28):
cli: log OpenSSL version in debug log
stream.segmented: reorder class definitions
stream.segmented: update queue and its item format
stream.segmented: remove invalid retries keyword
stream.segmented: remove timeout arg from reader
stream.segmented: clean up constructors
stream.segmented: fix and add more typing
docs: update Solus package URL
stream.hls: refactor tag parser mapping
docs: add support for $metadata plugin metadata
cli.argparser: metadata availability in plugins
plugins: add $metadata variables
docs: rewrite metadata page
stream.hls: refactor M3U8Parser state attributes
tools: bump ruff to 0.0.287 and fix issues
logger: fix missing FileHandler encoding
plugins.nicolive: add metadata
plugins.hiplayer: fix base64 data, drop rotana.net
tests: add test for key=value args in config files
cli: add --player-env argument
stream.hls: fix endlist on empty playlist reload
ci.github: bump Python version
ci.github: bump action versions
plugins.ustreamtv: refactor using dataclasses
docs: bump furo theme version to 2023.09.10
chore: clarify version string req. in issues
build: fix build-and-sign script
plugins.pluto: fix HLS playlist parameters
streamlinkbot <[email protected]> (1):
plugin.api: update useragents