Commit Graph

3525 Commits

Author SHA1 Message Date
streamlinkbot b271e02ad4 plugin.api: update useragents 2024-04-30 20:04:10 -07:00
bastimeyer e8689c4caa plugins.nownews: remove plugin 2024-04-23 11:30:30 +02:00
bastimeyer d108858899 cli: refactor CLI errors
- Add `StreamlinkCLIError` exception class
- Remove `ConsoleOutput.exit()` and remove `error` handling
  from `ConsoleOutput.msg_json()`
- Handle raised `StreamlinkCLIError`s in `main()`
- Update and refactor some CLI tests
2024-04-22 19:19:35 +02:00
bastimeyer 1b36bf6d45 cli: fix typing information 2024-04-22 19:19:35 +02:00
Lee Taehoon 3c8e2dc029 plugins.afreeca: enhance quality fetching 2024-04-20 17:26:21 +02:00
Lee Taehoon 293ceb1e74 plugins.afreeca: support for password-protected streams 2024-04-20 17:18:51 +02:00
bastimeyer c9264cb705 plugins.turkuvaz: add HLS URL mapping 2024-04-16 17:52:08 +02:00
bastimeyer d5aa26f6f5 webbrowser: fix propagation of BaseException
- Fix `KeyboardInterrupt`/`SystemExit` exceptions
  not being propagated in nested `ExceptionGroup`s
- Fix compatibility with `exceptiongroup<=1.1.1`
  by avoiding their `catch()` context manager
- Add missing test for (re-)raising different exception types
2024-04-10 01:25:03 +02:00
bastimeyer 0466622dc0 plugin.api.validate: check parse_qsd() input type 2024-04-09 21:45:47 +02:00
bastimeyer f43d0eb471 cli.utils.path: fix max bytes 2024-04-07 00:31:25 +02:00
bastimeyer ceda08ed25 plugins.mangomolo: fix media.gov.kw matcher 2024-04-07 00:26:16 +02:00
bastimeyer d396db4588 plugins.mangomolo: fix missing Referer header 2024-04-05 03:02:07 +02:00
bastimeyer eecf60935a cli.utils.formatter: respect max file name length 2024-04-04 16:25:37 +02:00
bastimeyer 54803f5a80 cli.utils.path: add truncate_path() 2024-04-04 16:25:37 +02:00
bastimeyer 20247d4ca5 plugins.pluto: rewrite plugin 2024-04-02 15:46:11 +02:00
streamlinkbot 39961a597e plugin.api: update useragents 2024-04-01 02:42:07 +02:00
bastimeyer 3d8860e6b8 plugins.showroom: fix geo-block check 2024-03-29 18:23:30 +01:00
bastimeyer f87bbd59f5 plugins.vkplay: update matcher and API URL 2024-03-28 18:38:39 +01:00
bastimeyer 78d0b58d75 build: set trio min-requirement back to 0.22
- set `strict_exception_groups=True` in `CDPClient.launch()`
- monkey-patch `trio.run()` early in Streamlink's tests
2024-03-22 20:11:10 +01:00
bastimeyer 6e218ae725 plugins.vimeo: fix offline event streams 2024-03-19 14:21:31 +01:00
bastimeyer fd49f2ce1e plugins.vimeo: fix event and player URLs 2024-03-18 17:24:59 +01:00
bastimeyer 90fe9e4215 plugins.twitch: update CI-token error handling 2024-03-18 00:04:35 +01:00
bastimeyer 1a7295b110 webbrowser: fix compatibility with trio 0.25
- Set min. version requirement of `trio` to `0.25`,
  so we don't have to set `strict_exception_groups` to `True` on older
  versions (probably not even possible via `pytest-trio`)
- Fix compatibility with `trio>=0.25`:
  Since `strict_exception_groups` now defaults to `True`, trio nurseries
  now always raise an `ExceptionGroup` in all cases, so update tests
  and handle exception groups instead. Don't unwrap exception groups
  for now, even if only a single exception is included.
  Explicitly handle `KeyboardInterrupt`/`SystemExit` and re-raise
  by using the `exceptiongroup.catch` utility (<py311 compat)
2024-03-18 00:04:35 +01:00
bastimeyer af4c69188a build: add exceptiongroup dependency
Add the `exceptiongroup` dependency directly to Streamlink, so we
can write `ExceptionGroup` handling code on all supported versions
of Python without having to rely on `trio`'s conditional dependency.
2024-03-18 00:04:35 +01:00
bastimeyer cadd180b7f plugins.tv3cat: rewrite plugin, add missing VODs 2024-03-15 21:03:45 +01:00
bastimeyer 870fda060d cli: update progress output after stream has ended 2024-03-12 19:56:46 +01:00
bastimeyer 7bc71a39f4 plugins.ustvnow: update matcher, reformat code 2024-03-09 13:02:27 +01:00
bastimeyer 70d5d4a108 cli: add --plugin-dir, deprecate --plugin-dirs 2024-03-08 17:25:58 +01:00
bastimeyer a37bb0b231 tools: bump ruff to 0.3.1 and fix issues 2024-03-08 17:20:23 +01:00
bastimeyer 0a63b33c98 session: fix default options being shared 2024-03-03 00:35:37 +01:00
streamlinkbot 216aaf0ce1 plugin.api: update useragents 2024-02-29 16:22:58 -08:00
bastimeyer d55eb2792b tools: bump ruff to 0.3.0 and fix issues 2024-02-29 18:19:00 +01:00
bastimeyer 247c6cfa11 plugins.bloomberg: refactor and fix data regex 2024-02-28 04:24:26 +01:00
bastimeyer 68484b29d2 cli: split up main() into setup() and run() 2024-02-27 16:30:28 +01:00
bastimeyer e7614f8623 cli: only log args with the same dest once 2024-02-25 20:35:31 +01:00
bastimeyer 398610c797 plugins.mangomolo: new plugin 2024-02-25 09:28:42 +01:00
bastimeyer de981a4a64 stream.hls: fix maps with and without keys
Add the `key` attribute to the `Map` class, so segment maps can be
encrypted independently or left as plain text, depending on the order
of the `EXT-X-MAP` and `EXT-X-KEY` tags in the playlist.

TODO:
Rewrite the `HLSSegment`, `HLSStreamWriter` and `HLSStreamWorker`
classes based on the logic of the DASH implementation, where
init segments are queued by the worker separately.
2024-02-25 09:27:49 +01:00
bastimeyer ef25765c8d plugins.ltv_lsm_lv: fix plugin, rm LTVHLSStream
- Fix embedded player iframe validation schema
- Update pluginmatcher
- Remove unneeded HLSStream subclass
2024-02-24 11:50:59 +01:00
bastimeyer f205f541ed plugins.vimeo: fix missing HLS/DASH API results 2024-02-22 21:10:34 +01:00
Lee Taehoon 881eedc11f
plugins.afreeca: support metadata 2024-02-20 17:31:41 +01:00
bastimeyer 6194365a73 plugins.hiplayer: remove mediagovkw matcher 2024-02-20 16:10:00 +01:00
Lee Taehoon 8a29117694
plugins.afreeca: fix broadcast number regex 2024-02-20 16:04:38 +01:00
bastimeyer 73db061c1d session: fix missing plugin override log message 2024-02-20 07:56:45 +01:00
bastimeyer bf4ff71003 session: add plugins args from JSON in reverse 2024-02-17 15:28:46 +01:00
bastimeyer 5e0e38afc2 options: fix object identity of argparse.SUPPRESS 2024-02-17 15:28:46 +01:00
blluv a3a9b7681f
stream.hls: add hlsstream kwarg to MuxedHLSStream 2024-02-16 19:12:18 +01:00
bastimeyer db7c3e57cb options: fix Argument typing information
Replace `typing.Sequence` with `list | tuple`
2024-02-14 21:57:53 +01:00
bastimeyer 6a551f6b3c session: implement lazy plugins loading
- Add `plugins_lazy` keyword to `Streamlink` session class
- Load pre-built plugins JSON data including matchers and arguments data
- Fall back to loading all built-in plugins if loading JSON data fails
- Iterate matcher/argument data of loaded and still unloaded plugins
- Load plugin modules of unloaded plugins when matching URLs are found
- Refactor `utils.modules` and add `get_finder()` function
- Change `--plugins` output from "Loaded plugins" to "Available plugins"
- Add tests
- Move matcher priority tests from `test_session` to `test_plugins`
2024-02-14 13:30:16 +01:00
bastimeyer 98f2daec9d plugins.nowtvtr: new plugin
This plugin replaces the removed foxtr plugin
2024-02-13 14:54:17 +01:00
bastimeyer 762933a9f0 plugins.foxtr: remove plugin 2024-02-13 14:54:17 +01:00