Module Name: pkgsrc-wip
Committed By: Yorick Hardy <yorickhardy%gmail.com@localhost>
Pushed By: yhardy
Date: Sun Feb 1 19:42:45 2026 +0000
Changeset: c2e36514e8f6a869c653baeb84714c8461ed6e52
Modified Files:
streamlink/COMMIT_MSG
streamlink/Makefile
streamlink/PLIST
streamlink/distinfo
streamlink/patches/patch-setup.py
Log Message:
wip/streamlink: update to streamlink-8.1.2
Changelog:
== streamlink 8.1.2 (2026-01-18)
- Fixed: warnings when parsing HLS playlists with private-use language
subtags (#6780)
- Updated plugins:
- youtube: fixed live streams (#6777)
== streamlink 8.1.1 (2026-01-17)
- Fixed: `--stream-segmented-queue-deadline` not being applied
correctly to the Streamlink session options (#6758)
- Changed: `--hls-segment-ignore-names` to not hardcode `.ts` HLS
segment file name extensions (#6747)
- Updated plugins:
- dailymotion: fixed 403 HLS playlist responses (#6773)
- pluto: fixed url matchers and ad detection (#6767)
- soop: fixed CDN mapping for `ld_cdn` based regions (#6749)
- Build: removed unneeded `wheel` dependency from
`build-system.requires` and the `build` dependency
group (#6754)
== streamlink 8.1.0 (2025-12-14)
- Deprecated: `--hls-segment-queue-threshold` in favor of
`--stream-segmented-queue-deadline` (#6734)
- Improved: debug logging of segmented streams (#6730)
- Updated plugins:
- twitch: fixed clips GQL API query (#6744)
- Tests: removed accidental `pytest_cov` dependency when running
tests (#6727)
== streamlink 8.0.0 (2025-11-11)
- BREAKING: dropped support for [EOL Python 3.9]
- BREAKING/API: removed deprecated `url_master` from
`HLSStream`/`MuxedHLSStream`
- BREAKING/dependencies: bumped version requirement of
`urllib3` to `>=2.0.0`
- Added: `--stream-segmented-duration` in favor of `--hls-duration`
(now deprecated), which affects HLS, DASH and other
segmented stream types
- Added: `duration` parameter to `dash://` streams (`DASHStream`)
- Added: `--ffmpeg-validation-timeout` for being able to increase
the time for validating the FFmpeg executable
(`--ffmpeg-ffmpeg`)
- Added: Flatpak player detection for VLC and mpv
- Refactored: parts of the internal `SegmentedStream`, `HLSStream` and
`DASHStream` implementations (WIP)
- Updated plugins:
- aloula: fixed livestream schema
- btv: rewritten and fixed plugin
- chzzk: added support for in-progress VODs via live-rewind streams
- dlive: fixed streams expiring after 5 minutes
- goodgame: updated matches, switched API endpoints
- nhkworld: removed plugin
- rtve: fixed validation schema
- twitch: fixed access token acquirement and various persisted
GraphQL query IDs
- twitch: added `--twitch-supported-codecs` for access to higher
quality streams
- Dependencies: dropped optional `zstandard` dependency on
Python 3.14 and above
- Tests: bumped version requirement of `pytest` to `>=8.4.0`
- Docs: refactored docs config and custom Sphinx extensions, added
`make` options for disabling various components for offline
building
- Docs: fixed compatibility with `docutils==0.22.2`
== streamlink 7.6.0 (2025-09-08)
- Added: official support for Python 3.14
- Added: `--skip` for stopping on existing file outputs without user
prompts
- Added: `CDPClientSession.{apply,retrieve}_cookies()` for copying
cookies between Streamlink's HTTP session and the web browser
- Updated plugins:
- chzzk: added support for live streams with a wider content
availability window
- indihometv: removed plugin
- kick: added `--kick-low-latency`
- lrt: fixed plugin
- mediaklikk: fixed plugin
- vkvideo: renamed to vkvideolive, added VOD support
- Docs: fixed compatibility with `docutils>=0.22` (transitive
dependency)
== streamlink 7.5.0 (2025-07-08)
- Added: `--no-plugin-sideloading` for disabling plugin sideloading
from the default location
- Added: `--no-plugin-cache` for disabling cache file I/O of the
plugin key-value store
- Improved: cache file I/O of the plugin key-value store
- Changed: default log format on the `trace`/`all` log level, with
included thread name
- Fixed: missing thread names for various segmented and muxed streams
- Fixed: pipe write error log messages when muxing streams
- Updated plugins:
- aloula: updated plugin matchers to support new URLs
- goodgame: fixed HLS stream URLs
- mitele: removed plugin
- nowtvtr: restored plugin
- twitcasting: updated plugin to filter out preroll ads
- twitch: changed plugin to always filter out ads,
deprecated `--twitch-disable-ads`
- twitch: forced default User-Agent on access token API request
- twitch: fixed clips validation schema
- Docs: rearranged CLI arguments that are related to the plugin system
- Build: removed `{dev,docs}-requirements.txt` in favor of PEP 735
- Build: bumped `lxml` requirement to `>=4.6.4,<7` (`lxml>=6` now
supports free-threaded mode)
- Tests: fixed test failures on Python 3.14.0b3
- Tests: fixed test failures in free-threaded mode
== streamlink 7.4.0 (2025-06-08)
- Added: `encoding` keyword to all HTTP request methods to override
the response content encoding
- Added: debug log message for the available DASH periods (id or
index)
- Fixed: `LookupError` when selecting an invalid DASH period
- Updated plugins:
- blasttv: new plugin
- kick: fixed 403 API responses by solving the JS challenge using
the webbrowser API
- nicolive: fixed plugin metadata by forcing UTF-8 encoding
- picarto: fixed validation schema and fixed multi-stream selection
- tvp: rewritten and fixed plugin
- twitcasting: fixed plugin by switching to new websocket+HLS streams
- vtvgo: removed plugin
- Tests: fixed py314 test failures
- Tests: fixed some HLS tests failing in rare cases
== streamlink 7.3.0 (2025-04-26)
- Changed: download progress to use the console output stream rather
than always `stderr`, which previously caused log and
progress messages to be interweaved
- Changed: download progress output to be a status message line at
the bottom of the console output, unless `--progress=force`
is set in non-interactive or unsupported environments,
in which case less frequent regular progress messages
are written
- Fixed: potential division by zero error when formatting progress
output
- Build: bumped `setuptools` requirement from `>=65.6` to `>=77`
and switched to PEP 639 project license metadata format
== streamlink 7.2.0 (2025-04-04)
- Added: `decompress` extras marker to Streamlink's optional
dependencies for installing `brotli` and `zstandard`,
which were previously implied optional dependencies
via the transitive dependency `urllib3`
- Changed: `--retry-streams` to allow a value of `0`, so it can
be unset again if set previously
- Changed: `--quiet` to suppress all text output including errors,
not just log output
- Fixed: `--logfile` affecting the console output stream
- Fixed: broken user input prompt behavior on missing or
non-interactive I/O streams
- Fixed: `Plugin` classes not requiring a matching matcher
- Fixed: `--hls-audio-select` not being case-insensitive and only
comparing input values rather than resolved language codes
- Updated: Chrome Devtool Protocol interfaces, to match recent
Chromium versions
- Updated plugins:
- euronews: rewritten and fixed plugin
- kick: refactored plugin, fixed clip matcher and 403 API responses
- nicolive: fixed plugin not loading cookies from WebSocket messages
- nicolive: made the plugin always filter out blank HLS segments
- nowtvtr: removed plugin
- okru: canonicalize mobile URLs
- tf1: fixed stream matcher
== streamlink 7.1.3 (2025-02-14)
- Fixed: `validate.contains()` to allow all kinds of `Container` object inputs
- Updated plugins:
- ceskatelevize: rewritten and fixed plugin
- nos: fixed validation schema, updated matcher
- pandalive: fixed user_id retieval, updated matcher
- pluzz: fixed video ID schemas
- streamable: removed plugin
- tv4play: removed plugin
- twitch: refactored TwitchAPI class and access token retrieval
- wwenetwork: rewritten and fixed plugin
- Docs: replaced Windows and Linux AppImage nightly builds with
preview builds triggered on each commit to `master`
- Docs: added optional/secondary Linux AppImage builds with FFmpeg
being bundled
- Tests: bumped `freezegun` requirement to `>=1.5.0`
== streamlink 7.1.2 (2025-01-08)
- Updated plugins:
- various: fixed access of URL matcher regex capture groups, affecting
abematv, ard_mediathek, bbiplayer, dailymotion, picarto, streann
- chzzk: added support for clips
- dailymotion: added support for lequipe.fr
- kick: fixed 403 HTTP errors, fixed VOD URL matcher
- nicolive: fixed authentication
- tiktok: rewritten plugin, fixed live streams, added VODs
To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=c2e36514e8f6a869c653baeb84714c8461ed6e52
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
diffstat:
streamlink/COMMIT_MSG | 217 +++++++++++++++++++++++++++++++++++++-
streamlink/Makefile | 4 +-
streamlink/PLIST | 66 +++++++-----
streamlink/distinfo | 8 +-
streamlink/patches/patch-setup.py | 14 ++-
5 files changed, 266 insertions(+), 43 deletions(-)
diffs:
diff --git a/streamlink/COMMIT_MSG b/streamlink/COMMIT_MSG
index 7bf1c21289..512e15dae6 100644
--- a/streamlink/COMMIT_MSG
+++ b/streamlink/COMMIT_MSG
@@ -1,7 +1,222 @@
-multimedia/streamlink: update to streamlink-7.1.1
+multimedia/streamlink: update to streamlink-8.1.2
Changelog:
+== streamlink 8.1.2 (2026-01-18)
+
+- Fixed: warnings when parsing HLS playlists with private-use language
+ subtags (#6780)
+- Updated plugins:
+ - youtube: fixed live streams (#6777)
+
+
+== streamlink 8.1.1 (2026-01-17)
+
+- Fixed: `--stream-segmented-queue-deadline` not being applied
+ correctly to the Streamlink session options (#6758)
+- Changed: `--hls-segment-ignore-names` to not hardcode `.ts` HLS
+ segment file name extensions (#6747)
+- Updated plugins:
+ - dailymotion: fixed 403 HLS playlist responses (#6773)
+ - pluto: fixed url matchers and ad detection (#6767)
+ - soop: fixed CDN mapping for `ld_cdn` based regions (#6749)
+- Build: removed unneeded `wheel` dependency from
+ `build-system.requires` and the `build` dependency
+ group (#6754)
+
+
+== streamlink 8.1.0 (2025-12-14)
+
+- Deprecated: `--hls-segment-queue-threshold` in favor of
+ `--stream-segmented-queue-deadline` (#6734)
+- Improved: debug logging of segmented streams (#6730)
+- Updated plugins:
+ - twitch: fixed clips GQL API query (#6744)
+- Tests: removed accidental `pytest_cov` dependency when running
+ tests (#6727)
+
+
+== streamlink 8.0.0 (2025-11-11)
+
+- BREAKING: dropped support for [EOL Python 3.9]
+- BREAKING/API: removed deprecated `url_master` from
+ `HLSStream`/`MuxedHLSStream`
+- BREAKING/dependencies: bumped version requirement of
+ `urllib3` to `>=2.0.0`
+- Added: `--stream-segmented-duration` in favor of `--hls-duration`
+ (now deprecated), which affects HLS, DASH and other
+ segmented stream types
+- Added: `duration` parameter to `dash://` streams (`DASHStream`)
+- Added: `--ffmpeg-validation-timeout` for being able to increase
+ the time for validating the FFmpeg executable
+ (`--ffmpeg-ffmpeg`)
+- Added: Flatpak player detection for VLC and mpv
+- Refactored: parts of the internal `SegmentedStream`, `HLSStream` and
+ `DASHStream` implementations (WIP)
+- Updated plugins:
+ - aloula: fixed livestream schema
+ - btv: rewritten and fixed plugin
+ - chzzk: added support for in-progress VODs via live-rewind streams
+ - dlive: fixed streams expiring after 5 minutes
+ - goodgame: updated matches, switched API endpoints
+ - nhkworld: removed plugin
+ - rtve: fixed validation schema
+ - twitch: fixed access token acquirement and various persisted
+ GraphQL query IDs
+ - twitch: added `--twitch-supported-codecs` for access to higher
+ quality streams
+- Dependencies: dropped optional `zstandard` dependency on
+ Python 3.14 and above
+- Tests: bumped version requirement of `pytest` to `>=8.4.0`
+- Docs: refactored docs config and custom Sphinx extensions, added
+ `make` options for disabling various components for offline
+ building
+- Docs: fixed compatibility with `docutils==0.22.2`
+
+
+== streamlink 7.6.0 (2025-09-08)
+
+- Added: official support for Python 3.14
+- Added: `--skip` for stopping on existing file outputs without user
+ prompts
+- Added: `CDPClientSession.{apply,retrieve}_cookies()` for copying
+ cookies between Streamlink's HTTP session and the web browser
+- Updated plugins:
+ - chzzk: added support for live streams with a wider content
+ availability window
+ - indihometv: removed plugin
+ - kick: added `--kick-low-latency`
+ - lrt: fixed plugin
+ - mediaklikk: fixed plugin
+ - vkvideo: renamed to vkvideolive, added VOD support
+- Docs: fixed compatibility with `docutils>=0.22` (transitive
+ dependency)
+
+
+== streamlink 7.5.0 (2025-07-08)
+
+- Added: `--no-plugin-sideloading` for disabling plugin sideloading
+ from the default location
+- Added: `--no-plugin-cache` for disabling cache file I/O of the
+ plugin key-value store
+- Improved: cache file I/O of the plugin key-value store
+- Changed: default log format on the `trace`/`all` log level, with
+ included thread name
+- Fixed: missing thread names for various segmented and muxed streams
+- Fixed: pipe write error log messages when muxing streams
+- Updated plugins:
+ - aloula: updated plugin matchers to support new URLs
+ - goodgame: fixed HLS stream URLs
+ - mitele: removed plugin
+ - nowtvtr: restored plugin
+ - twitcasting: updated plugin to filter out preroll ads
+ - twitch: changed plugin to always filter out ads,
+ deprecated `--twitch-disable-ads`
+ - twitch: forced default User-Agent on access token API request
+ - twitch: fixed clips validation schema
+- Docs: rearranged CLI arguments that are related to the plugin system
+- Build: removed `{dev,docs}-requirements.txt` in favor of PEP 735
+- Build: bumped `lxml` requirement to `>=4.6.4,<7` (`lxml>=6` now
+ supports free-threaded mode)
+- Tests: fixed test failures on Python 3.14.0b3
+- Tests: fixed test failures in free-threaded mode
+
+
+== streamlink 7.4.0 (2025-06-08)
+
+- Added: `encoding` keyword to all HTTP request methods to override
+ the response content encoding
+- Added: debug log message for the available DASH periods (id or
+ index)
+- Fixed: `LookupError` when selecting an invalid DASH period
+- Updated plugins:
+ - blasttv: new plugin
+ - kick: fixed 403 API responses by solving the JS challenge using
+ the webbrowser API
+ - nicolive: fixed plugin metadata by forcing UTF-8 encoding
+ - picarto: fixed validation schema and fixed multi-stream selection
+ - tvp: rewritten and fixed plugin
+ - twitcasting: fixed plugin by switching to new websocket+HLS streams
+ - vtvgo: removed plugin
+- Tests: fixed py314 test failures
+- Tests: fixed some HLS tests failing in rare cases
+
+
+== streamlink 7.3.0 (2025-04-26)
+
+- Changed: download progress to use the console output stream rather
+ than always `stderr`, which previously caused log and
+ progress messages to be interweaved
+- Changed: download progress output to be a status message line at
+ the bottom of the console output, unless `--progress=force`
+ is set in non-interactive or unsupported environments,
+ in which case less frequent regular progress messages
+ are written
+- Fixed: potential division by zero error when formatting progress
+ output
+- Build: bumped `setuptools` requirement from `>=65.6` to `>=77`
+ and switched to PEP 639 project license metadata format
+
+
+== streamlink 7.2.0 (2025-04-04)
+
+- Added: `decompress` extras marker to Streamlink's optional
+ dependencies for installing `brotli` and `zstandard`,
+ which were previously implied optional dependencies
+ via the transitive dependency `urllib3`
+- Changed: `--retry-streams` to allow a value of `0`, so it can
+ be unset again if set previously
+- Changed: `--quiet` to suppress all text output including errors,
+ not just log output
+- Fixed: `--logfile` affecting the console output stream
+- Fixed: broken user input prompt behavior on missing or
+ non-interactive I/O streams
+- Fixed: `Plugin` classes not requiring a matching matcher
+- Fixed: `--hls-audio-select` not being case-insensitive and only
+ comparing input values rather than resolved language codes
+- Updated: Chrome Devtool Protocol interfaces, to match recent
+ Chromium versions
+- Updated plugins:
+ - euronews: rewritten and fixed plugin
+ - kick: refactored plugin, fixed clip matcher and 403 API responses
+ - nicolive: fixed plugin not loading cookies from WebSocket messages
+ - nicolive: made the plugin always filter out blank HLS segments
+ - nowtvtr: removed plugin
+ - okru: canonicalize mobile URLs
+ - tf1: fixed stream matcher
+
+
+== streamlink 7.1.3 (2025-02-14)
+
+- Fixed: `validate.contains()` to allow all kinds of `Container` object inputs
+- Updated plugins:
+ - ceskatelevize: rewritten and fixed plugin
+ - nos: fixed validation schema, updated matcher
+ - pandalive: fixed user_id retieval, updated matcher
+ - pluzz: fixed video ID schemas
+ - streamable: removed plugin
+ - tv4play: removed plugin
+ - twitch: refactored TwitchAPI class and access token retrieval
+ - wwenetwork: rewritten and fixed plugin
+- Docs: replaced Windows and Linux AppImage nightly builds with
+ preview builds triggered on each commit to `master`
+- Docs: added optional/secondary Linux AppImage builds with FFmpeg
+ being bundled
+- Tests: bumped `freezegun` requirement to `>=1.5.0`
+
+
+== streamlink 7.1.2 (2025-01-08)
+
+- Updated plugins:
+ - various: fixed access of URL matcher regex capture groups, affecting
+ abematv, ard_mediathek, bbiplayer, dailymotion, picarto, streann
+ - chzzk: added support for clips
+ - dailymotion: added support for lequipe.fr
+ - kick: fixed 403 HTTP errors, fixed VOD URL matcher
+ - nicolive: fixed authentication
+ - tiktok: rewritten plugin, fixed live streams, added VODs
+
+
== streamlink 7.1.1 (2024-12-28)
- Fixed: `--show-matchers=pluginname` not working when plugins are
diff --git a/streamlink/Makefile b/streamlink/Makefile
index 639d8e8be5..b186f4c9cb 100644
--- a/streamlink/Makefile
+++ b/streamlink/Makefile
@@ -1,6 +1,6 @@
# $NetBSD: Makefile,v 1.41 2023/11/07 22:38:02 wiz Exp $
-DISTNAME= streamlink-7.1.1
+DISTNAME= streamlink-8.1.2
CATEGORIES= multimedia
MASTER_SITES= ${MASTER_SITE_GITHUB:=streamlink/}
GITHUB_RELEASE= ${PKGVERSION_NOREV}
@@ -24,7 +24,7 @@ DEPENDS+= ${PYPKGPREFIX}-trio-[0-9]*:../../devel/py-trio
DEPENDS+= ${PYPKGPREFIX}-trio-websocket-[0-9]*:../../wip/py-trio-websocket
DEPENDS+= ${PYPKGPREFIX}-websocket-client>=1.2.1:../../www/py-websocket-client
TOOL_DEPENDS+= ${PYPKGPREFIX}-versioningit>=1.1.1:../../devel/py-versioningit
-TOOL_DEPENDS+= ${PYPKGPREFIX}-setuptools>=45:../../devel/py-setuptools
+TOOL_DEPENDS+= ${PYPKGPREFIX}-setuptools>=78:../../devel/py-setuptools
TOOL_DEPENDS+= ${PYPKGPREFIX}-wheel-[0-9]*:../../devel/py-wheel
TEST_DEPENDS+= ${PYPKGPREFIX}-flake8-[0-9]*:../../devel/py-flake8
TEST_DEPENDS+= ${PYPKGPREFIX}-flake8-import-order-[0-9]*:../../devel/py-flake8-import-order
diff --git a/streamlink/PLIST b/streamlink/PLIST
index f6ee65d19c..5eadaf9385 100644
--- a/streamlink/PLIST
+++ b/streamlink/PLIST
@@ -3,8 +3,8 @@ bin/streamlink
${PYSITELIB}/${WHEEL_INFODIR}/METADATA
${PYSITELIB}/${WHEEL_INFODIR}/RECORD
${PYSITELIB}/${WHEEL_INFODIR}/WHEEL
-${PYSITELIB}/${WHEEL_INFODIR}/licenses/LICENSE
${PYSITELIB}/${WHEEL_INFODIR}/entry_points.txt
+${PYSITELIB}/${WHEEL_INFODIR}/licenses/LICENSE
${PYSITELIB}/${WHEEL_INFODIR}/top_level.txt
${PYSITELIB}/streamlink/__init__.py
${PYSITELIB}/streamlink/__init__.pyc
@@ -112,6 +112,9 @@ ${PYSITELIB}/streamlink/plugins/bigo.pyo
${PYSITELIB}/streamlink/plugins/bilibili.py
${PYSITELIB}/streamlink/plugins/bilibili.pyc
${PYSITELIB}/streamlink/plugins/bilibili.pyo
+${PYSITELIB}/streamlink/plugins/blasttv.py
+${PYSITELIB}/streamlink/plugins/blasttv.pyc
+${PYSITELIB}/streamlink/plugins/blasttv.pyo
${PYSITELIB}/streamlink/plugins/blazetv.py
${PYSITELIB}/streamlink/plugins/blazetv.pyc
${PYSITELIB}/streamlink/plugins/blazetv.pyo
@@ -217,9 +220,6 @@ ${PYSITELIB}/streamlink/plugins/huajiao.pyo
${PYSITELIB}/streamlink/plugins/huya.py
${PYSITELIB}/streamlink/plugins/huya.pyc
${PYSITELIB}/streamlink/plugins/huya.pyo
-${PYSITELIB}/streamlink/plugins/indihometv.py
-${PYSITELIB}/streamlink/plugins/indihometv.pyc
-${PYSITELIB}/streamlink/plugins/indihometv.pyo
${PYSITELIB}/streamlink/plugins/invintus.py
${PYSITELIB}/streamlink/plugins/invintus.pyc
${PYSITELIB}/streamlink/plugins/invintus.pyo
@@ -253,9 +253,6 @@ ${PYSITELIB}/streamlink/plugins/mediaklikk.pyo
${PYSITELIB}/streamlink/plugins/mediavitrina.py
${PYSITELIB}/streamlink/plugins/mediavitrina.pyc
${PYSITELIB}/streamlink/plugins/mediavitrina.pyo
-${PYSITELIB}/streamlink/plugins/mitele.py
-${PYSITELIB}/streamlink/plugins/mitele.pyc
-${PYSITELIB}/streamlink/plugins/mitele.pyo
${PYSITELIB}/streamlink/plugins/mixcloud.py
${PYSITELIB}/streamlink/plugins/mixcloud.pyc
${PYSITELIB}/streamlink/plugins/mixcloud.pyo
@@ -271,9 +268,6 @@ ${PYSITELIB}/streamlink/plugins/n13tv.pyo
${PYSITELIB}/streamlink/plugins/nasaplus.py
${PYSITELIB}/streamlink/plugins/nasaplus.pyc
${PYSITELIB}/streamlink/plugins/nasaplus.pyo
-${PYSITELIB}/streamlink/plugins/nhkworld.py
-${PYSITELIB}/streamlink/plugins/nhkworld.pyc
-${PYSITELIB}/streamlink/plugins/nhkworld.pyo
${PYSITELIB}/streamlink/plugins/nicolive.py
${PYSITELIB}/streamlink/plugins/nicolive.pyc
${PYSITELIB}/streamlink/plugins/nicolive.pyo
@@ -373,9 +367,6 @@ ${PYSITELIB}/streamlink/plugins/stadium.pyo
${PYSITELIB}/streamlink/plugins/steam.py
${PYSITELIB}/streamlink/plugins/steam.pyc
${PYSITELIB}/streamlink/plugins/steam.pyo
-${PYSITELIB}/streamlink/plugins/streamable.py
-${PYSITELIB}/streamlink/plugins/streamable.pyc
-${PYSITELIB}/streamlink/plugins/streamable.pyo
${PYSITELIB}/streamlink/plugins/streann.py
${PYSITELIB}/streamlink/plugins/streann.pyc
${PYSITELIB}/streamlink/plugins/streann.pyo
@@ -412,9 +403,6 @@ ${PYSITELIB}/streamlink/plugins/tv360.pyo
${PYSITELIB}/streamlink/plugins/tv3cat.py
${PYSITELIB}/streamlink/plugins/tv3cat.pyc
${PYSITELIB}/streamlink/plugins/tv3cat.pyo
-${PYSITELIB}/streamlink/plugins/tv4play.py
-${PYSITELIB}/streamlink/plugins/tv4play.pyc
-${PYSITELIB}/streamlink/plugins/tv4play.pyo
${PYSITELIB}/streamlink/plugins/tv5monde.py
${PYSITELIB}/streamlink/plugins/tv5monde.pyc
${PYSITELIB}/streamlink/plugins/tv5monde.pyo
@@ -460,12 +448,9 @@ ${PYSITELIB}/streamlink/plugins/vinhlongtv.pyo
${PYSITELIB}/streamlink/plugins/vk.py
${PYSITELIB}/streamlink/plugins/vk.pyc
${PYSITELIB}/streamlink/plugins/vk.pyo
-${PYSITELIB}/streamlink/plugins/vkvideo.py
-${PYSITELIB}/streamlink/plugins/vkvideo.pyc
-${PYSITELIB}/streamlink/plugins/vkvideo.pyo
-${PYSITELIB}/streamlink/plugins/vtvgo.py
-${PYSITELIB}/streamlink/plugins/vtvgo.pyc
-${PYSITELIB}/streamlink/plugins/vtvgo.pyo
+${PYSITELIB}/streamlink/plugins/vkvideolive.py
+${PYSITELIB}/streamlink/plugins/vkvideolive.pyc
+${PYSITELIB}/streamlink/plugins/vkvideolive.pyo
${PYSITELIB}/streamlink/plugins/welt.py
${PYSITELIB}/streamlink/plugins/welt.pyc
${PYSITELIB}/streamlink/plugins/welt.pyo
@@ -579,6 +564,9 @@ ${PYSITELIB}/streamlink/utils/crypto.pyo
${PYSITELIB}/streamlink/utils/data.py
${PYSITELIB}/streamlink/utils/data.pyc
${PYSITELIB}/streamlink/utils/data.pyo
+${PYSITELIB}/streamlink/utils/dataclass.py
+${PYSITELIB}/streamlink/utils/dataclass.pyc
+${PYSITELIB}/streamlink/utils/dataclass.pyo
${PYSITELIB}/streamlink/utils/formatter.py
${PYSITELIB}/streamlink/utils/formatter.pyc
${PYSITELIB}/streamlink/utils/formatter.pyo
@@ -606,6 +594,9 @@ ${PYSITELIB}/streamlink/utils/random.pyo
${PYSITELIB}/streamlink/utils/socket.py
${PYSITELIB}/streamlink/utils/socket.pyc
${PYSITELIB}/streamlink/utils/socket.pyo
+${PYSITELIB}/streamlink/utils/thread.py
+${PYSITELIB}/streamlink/utils/thread.pyc
+${PYSITELIB}/streamlink/utils/thread.pyo
${PYSITELIB}/streamlink/utils/times.py
${PYSITELIB}/streamlink/utils/times.pyc
${PYSITELIB}/streamlink/utils/times.pyo
@@ -711,9 +702,31 @@ ${PYSITELIB}/streamlink_cli/argparser.pyo
${PYSITELIB}/streamlink_cli/compat.py
${PYSITELIB}/streamlink_cli/compat.pyc
${PYSITELIB}/streamlink_cli/compat.pyo
-${PYSITELIB}/streamlink_cli/console.py
-${PYSITELIB}/streamlink_cli/console.pyc
-${PYSITELIB}/streamlink_cli/console.pyo
+${PYSITELIB}/streamlink_cli/console/__init__.py
+${PYSITELIB}/streamlink_cli/console/__init__.pyc
+${PYSITELIB}/streamlink_cli/console/__init__.pyo
+${PYSITELIB}/streamlink_cli/console/console.py
+${PYSITELIB}/streamlink_cli/console/console.pyc
+${PYSITELIB}/streamlink_cli/console/console.pyo
+${PYSITELIB}/streamlink_cli/console/progress.py
+${PYSITELIB}/streamlink_cli/console/progress.pyc
+${PYSITELIB}/streamlink_cli/console/progress.pyo
+${PYSITELIB}/streamlink_cli/console/stream.py
+${PYSITELIB}/streamlink_cli/console/stream.pyc
+${PYSITELIB}/streamlink_cli/console/stream.pyo
+${PYSITELIB}/streamlink_cli/console/stream_wrapper.py
+${PYSITELIB}/streamlink_cli/console/stream_wrapper.pyc
+${PYSITELIB}/streamlink_cli/console/stream_wrapper.pyi
+${PYSITELIB}/streamlink_cli/console/stream_wrapper.pyo
+${PYSITELIB}/streamlink_cli/console/terminal.py
+${PYSITELIB}/streamlink_cli/console/terminal.pyc
+${PYSITELIB}/streamlink_cli/console/terminal.pyo
+${PYSITELIB}/streamlink_cli/console/user_input.py
+${PYSITELIB}/streamlink_cli/console/user_input.pyc
+${PYSITELIB}/streamlink_cli/console/user_input.pyo
+${PYSITELIB}/streamlink_cli/console/windows.py
+${PYSITELIB}/streamlink_cli/console/windows.pyc
+${PYSITELIB}/streamlink_cli/console/windows.pyo
${PYSITELIB}/streamlink_cli/constants.py
${PYSITELIB}/streamlink_cli/constants.pyc
${PYSITELIB}/streamlink_cli/constants.pyo
@@ -757,9 +770,6 @@ ${PYSITELIB}/streamlink_cli/utils/path.pyo
${PYSITELIB}/streamlink_cli/utils/player.py
${PYSITELIB}/streamlink_cli/utils/player.pyc
${PYSITELIB}/streamlink_cli/utils/player.pyo
-${PYSITELIB}/streamlink_cli/utils/progress.py
-${PYSITELIB}/streamlink_cli/utils/progress.pyc
-${PYSITELIB}/streamlink_cli/utils/progress.pyo
${PYSITELIB}/streamlink_cli/utils/versioncheck.py
${PYSITELIB}/streamlink_cli/utils/versioncheck.pyc
${PYSITELIB}/streamlink_cli/utils/versioncheck.pyo
diff --git a/streamlink/distinfo b/streamlink/distinfo
index c97dd1fedc..c1cde34418 100644
--- a/streamlink/distinfo
+++ b/streamlink/distinfo
@@ -1,7 +1,7 @@
$NetBSD: distinfo,v 1.25 2023/05/08 19:24:46 yhardy Exp $
-BLAKE2s (streamlink-7.1.1.tar.gz) = de1519a8a68496540fdeb92ebbf3a7976d86bcd676b00b3f64654cff19820fd8
-SHA512 (streamlink-7.1.1.tar.gz) = f379ecfb1aaf7962ee082b2526497678c8f10c0accba1aab72776ed5cd16a67e61ae52643028c5fb770bfc0a309e28d8dc88a8aec7e7e20c0f3388b103a4b71c
-Size (streamlink-7.1.1.tar.gz) = 771209 bytes
+BLAKE2s (streamlink-8.1.2.tar.gz) = 1bfc36d19ddbb18760b0f16a80ac32f3281e1c9aecc217eacc8f482e390fc9c8
+SHA512 (streamlink-8.1.2.tar.gz) = ce57617ba1de2fbb62e67abb406ae2550f9fd92ed20422480d8b0f8deb8fc7a9af1498de03d299259b983d4467fb323c4a600e16aed9d44b7b81581d9c3f3b55
+Size (streamlink-8.1.2.tar.gz) = 823590 bytes
SHA1 (patch-build__backend_onbuild.py) = c73f4a88f76e5ae6db0b0b993206d270f36115ec
-SHA1 (patch-setup.py) = 20f12c6ca3d9b82d83d41280992c1988cc77ead5
+SHA1 (patch-setup.py) = 629d625e1566e3deff082806d25d4cdcdf9459e6
diff --git a/streamlink/patches/patch-setup.py b/streamlink/patches/patch-setup.py
index 30986f9305..98f6fd158c 100644
--- a/streamlink/patches/patch-setup.py
+++ b/streamlink/patches/patch-setup.py
@@ -2,22 +2,20 @@ $NetBSD$
Install manpages in ${PKGMANDIR}.
---- setup.py.orig 2024-08-12 13:19:52.995938500 +0000
+--- setup.py.orig 2025-11-11 16:12:14.488784600 +0000
+++ setup.py
-@@ -1,6 +1,6 @@
- #!/usr/bin/env python
+@@ -1,4 +1,5 @@
import sys
--from os import path
+from os import getenv, path
from textwrap import dedent
-@@ -64,7 +64,7 @@ data_files = [
- # man page
- # requires pre-built man page file via sphinx (docs-requirements.txt)
+@@ -59,7 +60,7 @@ data_files = [
+ # man page:
+ # requires the pre-built man page file via sphinx ("docs" dependency group)
# `make --directory=docs clean man`
- ("share/man/man1", ["docs/_build/man/streamlink.1"]),
+ (getenv("PKGMANDIR") + "/man1", ["docs/_build/man/streamlink.1"]),
]
data_files = [
- (destdir, [file for file in srcfiles if path.exists(file)])
+ (destdir, [file for file in srcfiles if Path(file).exists()])