Commit Graph

3501 Commits

Author SHA1 Message Date
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
bastimeyer eb901bbc9e options: compare equality of Arguments objects
ac45740
2024-02-11 14:32:45 +01:00
bastimeyer 0acbca3af1 docs: fix custom ext_argparse Sphinx extension
- Move the `parser_helper()` function from `streamlink_cli.main`
  into the `streamlink_cli._parser` module
- Refactor `ext_argparse` and set default import paths
- Update import path in `build-shell-completions.sh`

Unfortunately, the `streamlink_cli._parser` module can't be excluded
from the sdist/wheel distributions, as packagers might build
shell completions from the installed `streamlink_cli` package
instead of using the pre-built shell completions included in the sdist
or building them from an editable install.
2024-02-09 01:38:39 +01:00
bastimeyer f2b16ede21 docs: Streamlink.{get,load}_plugins() deprecation 2024-02-09 00:47:07 +01:00
bastimeyer c2f0626100 session: move plugin load/resolve logic
- Move plugin load/resolve logic into the `streamlink.session.plugins`
  module with the `StreamlinkPlugins` class
- Make `Streamlink.plugins` an instance of this class
- Add the `plugins_builtin` keyword argument to the `Streamlink` class
  and set its default value to `True`
- Deprecate the `Streamlink.{{get,load}_plugins,load_builtin_plugins}()`
  methods, which are now wrappers for the respective `StreamlinkPlugins`
  implementations
- Update `streamlink_cli.main` and all other `Streamlink` session
  usages accordingly (in scripts and tests)
- Update session docs
- Move and update plugin load/resolve tests
2024-02-08 09:28:22 +01:00
bastimeyer ac457402eb options: compare equality of Argument objects
- Make all `Argument` attributes immutable
- Add `Argument.__hash__()` and `Argument.__eq__()` methods,
  so two `Argument` objects can be compared for equality
- Fix minor typing issues
2024-02-06 15:15:35 +01:00
bastimeyer 33740b6238 utils: make parametrized argparse funcs hashable
Make all parametrized argparse `type` functions hashable:
- comma_list_filter
- num
- hours_minutes_seconds
- hours_minutes_seconds_float
2024-02-06 15:15:35 +01:00
bastimeyer ecf182a9dc plugin.api: restore http_session module 2024-02-03 01:20:40 +01:00
bastimeyer d32925a08e session: move plugin.api.http_session
- Move `streamlink.plugin.api.http_session` module
  to `streamlink.session.http`
- Deprecate old (and unnecessary) `HTTPSession` export
  in `streamlink.plugin.api`
- Fix custom `HTTPAdapter` imports in plugins
- Fix imports and fix monkeypatch paths in tests

In the next commit:
Restore the `streamlink.plugin.api.http_session` module and re-export
`HTTPSession` and the `HTTPAdapter` classes with deprecation warnings.
2024-02-03 01:20:40 +01:00
bastimeyer b82adee59a session: move StreamlinkOptions
- Move `StreamlinkOptions` from `streamlink.session`
  to `streamlink.session.options`
- Move docstring containing options list from `Streamlink.set_option()`
  to `StreamlinkOptions` and add this class to the docs
- Move default options from `Streamlink` constructor
  to `StreamlinkOptions._DEFAULTS`, so all options data is defined
  in the `streamlink.session.options` module
- Move session options tests to `tests.session.test_options`
  and change order of tests
2024-02-03 01:20:40 +01:00
bastimeyer 60432bb798 session: remove unneeded PythonDeprecatedWarning
This should've been removed with 8034b16
2024-02-03 01:20:40 +01:00
bastimeyer 282098a76a session: turn session module into a sub-package
- Create `streamlink.session` sub-package and move `session` module
  - Update/fix logger name
- Create `tests.session` sub-package and move `test_session` module
  - Fix monkeypatch paths
- Run session tests with a higher priority
2024-02-03 01:20:40 +01:00
bastimeyer 5ce6cc7a77 compat: add deprecated() function 2024-02-03 00:36:35 +01:00
bastimeyer fea9b36682 utils.parse: fix import path 2024-02-01 10:48:19 +01:00
streamlinkbot e10e0abbef plugin.api: update useragents 2024-01-31 16:40:09 -08:00
bastimeyer 293c80c8c2 plugins.rtbf: remove plugin 2024-01-30 19:11:01 +01:00
bastimeyer 5975263c79 plugins.qq: remove plugin 2024-01-30 19:06:52 +01:00
bastimeyer 19f361c4d6 session: re-use PathEntryFinder in load_plugins() 2024-01-29 20:27:06 +01:00
bastimeyer d4d351e4dd utils.module: fix load_module(), add exec_module()
- Use global finder cache via `pkgutil.get_importer()`
  instead of always creating a new `FileFinder` object for each module
- Add `exec_module()` for being able to reuse `PathEntryFinder` objects
  returned by `pkgutil.iter_modules()`
- Add support for pathlib path objects
- Update tests
2024-01-29 20:27:06 +01:00
bastimeyer 61a4f33905 tools: bump ruff to 0.1.14 and fix issues 2024-01-25 18:14:59 +01:00
bastimeyer 24435cb8a3 plugins: replace pluginargument help f-strings 2024-01-24 19:40:17 +01:00
bastimeyer 38e2fb1592 plugins.aloula: add HTTP headers, update matchers 2024-01-21 16:01:22 +01:00
bastimeyer 6fe26dac76 plugin: add missing pluginargument type functions
- Add `int` and `float` types to the pluginargument type registry
- Rename `boolean` to `bool`
2024-01-21 15:22:23 +01:00
bastimeyer 91cd146c69 plugins.huya: fix stream URLs
- set Referer and Origin headers
- only keep the `wsSecret` and `wsTime` query string params
  in the stream URLs
- remove stream URL HEAD requests for checking the availability
- add stream priority override for faulty TLS server configs
2024-01-19 11:01:31 +01:00
bastimeyer 759c29e471 utils.args: add unique arg to comma_list_filter 2024-01-17 20:15:10 +01:00