Patch release:
- Fixed: HLS segment maps being written to the output multiple times (#5689)
- Fixed plugins:
- Docs: added missing
Cache
API docs (#5688)
Patch release:
- Fixed: libxml2 2.12.0 compatibility (#5682)
Release highlights:
- Added: missing support for dynamic DASH manifests with
SegmentList
s (#5654, #5657) - Added: warning log message when skipping DASH segments between manifest reloads (#5659)
- Added plugins: nasaplus (#5664)
- Updated plugins:
- Docs: added validation schema API docs and API guide (#5652, #5655)
Patch release:
Release highlights:
- Added: warning log message when skipping HLS segments between playlist reloads (#5607)
- Refactored: internals of segmented stream implementations (base classes, HLS, DASH)
- Added: base
Segment
dataclass and made segmented streams inherit from it (#5594) - Moved: modules into sub-packages (import paths of public APIs remain the same) (#5593)
- Renamed: various non-public HLS class methods/attributes and functions (#5526)
- Removed:
Sequence
segment wrapper from HLS implementation (#5526)
- Added: base
- Fixed: DASH manifest not respecting the
minBufferTime
(#5610) - Fixed: URL matchers of HLS/DASH protocol plugins (#5616, #5617)
- Fixed: bandwidth parsing issue in HLS multivariant playlists (#5619)
- Fixed plugins:
- Removed plugins:
- Build: dropped
versioningit
build-requirement when building from sdist tarball (version string has always been built-in whileversioningit
performed a no-op) (#5632) - Packaging: added missing shell completions build-script to sdist (#5625)
- Docs: clarified section about building from source (sdist/git vs. GitHub tarballs) (#5633)
Patch release:
- Added: official support for Python 3.12 (#5576)
- Fixed plugins: goodgame (#5557), nos (#5565), pandalive (#5569), wwenetwork (#5559)
- Build: added custom setuptools build-backend override which fixes issues with building Windows-specific wheels (#5558)
Release highlights:
- Added:
--player-env
CLI argument (#5535) - Added: OpenSSL version to debug log output (#5506)
- Updated: segmented stream internals and typing (#5504, #5507)
- Updated: internal HLS tag parsing setup and parser state (#5513, #5521)
- Fixed: HLS streams not ending on playlist reload with endlist tag and no new segments (#5538)
- Fixed: missing file encoding when writing a log file (#5532)
- Added plugins: piaulizaportal (#5508)
- Fixed plugins: hiplayer (#5534), nicolive (#5529), pluto (#5551)
- Docs: added list of supported metadata variables for each plugin (#5517, #5519)
Release highlights:
- Added:
--hls-segment-queue-threshold
for being able to configure when to stop HLS streams early on missing segments (#5478) - Fixed: config file parsing issues and made parsing argument values more strict (#5484)
- Fixed: race condition when reading and validating the FFmpeg version string (#5480)
- Fixed plugins: atresplayer (#5477)
- Docs: added code examples for the removal of
Streamlink.{g,s}et_plugin_option
(#5497) - Build: fixed entry-points config issues with setuptools
68.1.0
(#5500)
Patch release:
- Added: missing
options
argument toStreamlink.streams()
(#5469) - Fixed: migration docs and the
6.0.0
changelog of theStreamlink.{g,s}et_plugin_option()
removal (#5471) - Fixed plugins: huya (#5467)
- Docs: updated build-dependencies and the furo theme (#5464, #5465)
Breaking changes:
- BREAKING: dropped support for Python 3.7 (#5302)
- BREAKING: turned
--player
CLI argument into a player-path-only argument (#5305, #5310)
Its value won't be interpreted as a command line string anymore, so paths with whitespace don't require additional quotation. Custom player arguments now always need to be set via--player-args
. - BREAKING: removed deprecated
{filename}
variable from--player-args
(#5310) - BREAKING/API: removed support for the deprecated
Plugin.can_handle_url()
/Plugin.priority()
classmethods (#5403) - BREAKING/API: removed deprecated compatibility wrapper for the
Plugin
constructor (#5402) - BREAKING/API: removed
Streamlink.{g,s}et_plugin_option()
(#5033) - BREAKING/API: removed deprecated global plugin arguments (#5033)
- BREAKING/API: removed deprecated
streamlink.plugin.api.validate.text
(#5404) - BREAKING/API: fixed/changed signatures of
HTTPStream
,HLSStream
andHLSStream.parse_variant_playlist()
(#5429) - BREAKING/packaging: new signing key
44448A298D5C3618
(#5449)
Release highlights:
- Added: experimental
streamlink.webbrowser
API for extracting data from websites using the system's Chromium-based web browser (#5380, #5381, #5386, #5388, #5410)
See the--webbrowser
,--webbrowser-executable
and related CLI arguments for more - Added: client-integrity token support to Twitch plugin using the
streamlink.webbrowser
API (currently only used as a fallback when acquiring the access token fails) (#5414) - Added:
{playertitleargs}
variable to--player-args
(#5310) - Added:
with_{video,audio}_only
parameters toDASHStream.parse_manifest()
(#5340) - Changed: HLS streams to stop early on missing
EXT-X-ENDLIST
tag when polling the playlist doesn't yield new segments for twice its targetduration value (#5330) - Fixed: regex of optional protocol plugin parameters (#5367)
- Fixed plugins: lrt (#5444), mediavitrina (#5376), mitele (#5436), NRK (#5408), pluzz (#5369), rtvs (#5443), showroom (#5390), turkuvaz (#5374), vimeo (#5335), youtube (#5351)
- Docs: added migrations page for further guidance on resolving breaking changes (#5433)
- Docs: split up, updated and improved API docs (#5398)
- Build: moved project metadata to pyproject.toml (PEP621) (#5438)
- Dependencies: added
trio
(#5386),trio-websocket
andtyping-extensions
(#5388), and removedimportlib_metadata
(#5302)
Patch release:
- Fixed: shifting time offset when reloading HLS playlists (#5321)
- Fixed: import of
create_urllib3_context
onurllib3 <2.0.0
(#5333) - Fixed: Vimeo plugin (#5331)
Release highlights:
- Added:
--no-config
(#5314) - Added:
--player-external-http-interface
(#5295) - Fixed: M3U8 attribute parsing issue (#5307)
- Fixed: various minor plugin issues (#5291, #5299, #5306)
- Build: bumped urllib3 to
>=1.26.0,<3
and fixed compatibility issues withurllib3 >=2.0.0
(#5326, #5325) - Docs: bumped furo theme to
2023.03.27
(#5301) - Docs: bumped build dependencies
sphinx >=5.0.0,<7
,myst-parser >=1.0.0,<2
andsphinx-design >=0.4.1,<1
(#5301)
Release highlights:
- Added:
--progress
CLI argument and deprecated--force-progress
(#5268) - Added:
--dash-manifest-reload-attempts
and respective session option (#5208) - Improved: DASH segment availability/download logging (#5214, #5235)
- Refactored: DASH parser + stream implementation (#5221, #5224, #5225, #5244, #5248)
- Fixed: DASH segment template numbers and availability times (#5213, #5217, #5233)
- Fixed: DASH manifest mediaPresentationDuration and period duration (#5226)
- Fixed: DASH manifest suggestedPresentationDelay (#5215)
- Fixed: various DASH manifest parsing bugs (#5247)
- Fixed: DASH timeline IDs not being unique (#5199)
- Fixed: DASH substreams not having synced timelines (#5262)
- Fixed: queued DASH segments being downloaded after closing the stream (#5236, #5237)
- Fixed: incorrect min/max values of certain numeric CLI arguments (#5239)
- Fixed: all naive datetime objects and made them timezone-aware (#5210)
- Fixed: TV5monde plugin with new implementation (#5206)
- Fixed: Steam plugin missing CDN auth data in stream URLs (#5222)
- Fixed: Vimeo plugin's playerConfig regex (#5227)
- Fixed: VKplay plugin's validation schema (#5251)
- Fixed: Twitcasting plugin with new implementation (#5255)
- Tests: fixed setuptools/pkg_resources DeprecationWarnings (#5167, #5230)
- Tests: fixed ResourceWarnings due to stale file handles (#5242)
- Added plugins: indihometv (#5266), telemadrid (#5212)
- Removed plugins: nbcnews (#5279), useetv (#5266)
Patch release:
- Fixed:
http-trust-env
session option name (--http-ignore-env
CLI parameter) (#5193) - Fixed: missing byterange attribute of initialization segments in DASH streams (#5189)
- Fixed: broken BaseURL context in DASH streams (#5194)
- Fixed: detection of certain encrypted DASH streams (#5196)
Release highlights:
- Project meta: dropped Open Collective sponsoring platform and updated the project's README, as well as the docs' donation/support page (#5143)
- Deprecated: global plugin arguments (#5140)
- Fixed: muxed streams sometimes missing data at the end (#5162)
- Fixed: named pipes sometimes not being cleaned up properly (#5162)
- Fixed: new YouTube channel URLs not being matched (#5137)
- Fixed: KeyError when accessing certain YouTube URLs (#5139)
- Fixed: M3U8 attribute parsing (#5125)
- Fixed: NimoTV streams stopping after a few seconds (#5147)
- Fixed: delimiter of
http-query-params
session option string setter (#5176) - Fixed: sdist/bdist missing some files (#5119, #5141)
- Docs: fixed
Streamlink.set_option()
docstring (#5176) - Docs: improved CLI tutorial (#5157)
- Docs: improved install page (#5178)
- Removed plugins: funimationnow (#5128), schoolism (#5127)
No code changes.
Please see the changelog of the 5.2.0
release.
- Reverted: PyPI deploy script changes (#5116)
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 ofstr
(#5090) - Improved:
Streamlink
session option getters/setters (#5076) - Fixed: incorrect inheritance of
NoPluginError
and removed unneededurl
parameter fromNoStreamsError
(#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)
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)
Patch release:
- Changed:
WebsocketClient
to use CA certificates bundled bycertifi
(#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)
Release highlights:
- 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)
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)
Breaking changes:
- BREAKING: removed
avconv
(libav) from FFmpeg fallback list (#4826) - BREAKING/API: removed
Plugin.bind()
and changed the signature of thePlugin
class constructor (#4768)
A compatibility wrapper for these interface changes has temporarily been added in order to keep third-party plugin implementations working.
Please see the deprecation docs for more details. - BREAKING/API: changed the return value of
Session.resolve_url()
(#4768)
Please see the deprecation docs for more details. - BREAKING/API: removed
HTTPSession.parse_*()
methods (#4803)
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
andHTTPSession
typing informations toPlugin
andStream
(including its various subclasses) (#4802, #4814) - API: added
pluginargument
decorator (#4747) - Docs: updated
pluginmatcher
andpluginargument
documentation (#4771)
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)
Release highlights:
- Added: new Windows portable builds (#4581)
- Added: more dependency versions to debug log header (#4575)
- Added: parsed multivariant playlist reference to
HLSStream
andMuxedHLSStream
(#4568) - Fixed: unnecessary delay when closing
DASHStream
s (#4630) - Fixed:
FFmpegMuxer
not closing sub-streams concurrently (#4634) - Fixed: threading issue when closing
WebsocketClient
connections (#4608) - Fixed: handling of
PluginError
s 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 to2022.06.04.1
, requiresphinx
>=4
, and replacerecommonmark
withmyst-parser
(#4610) - Build: fixed outdated
python_requires
value insetup.cfg
(#4580) - Build: upgraded
versioningit
build dependency to>=2.0.0 <3
(#4597)
Release highlights:
- Improved: decryption of HLS streams (#4533)
- Improved: HLS playlist parsing (#4540, #4552)
- Improved: validation schemas and error handling/printing (#4514)
- 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)
No code changes.
Please see the changelog of the 4.0.0
release, as it contains breaking changes.
- Fixed: missing source-dist tarballs on GitHub release page (#4503)
Breaking changes:
- BREAKING: dropped support for Python 3.6 (#4442)
- BREAKING/API: removed
streamlink.plugin.api.utils
module (#4467) - BREAKING/setup: switched to PEP 518 build system declaration and replaced versioneer in favor of versioningit (#4440)
- BREAKING/packaging: replaced Windows installers with new ones built at streamlink/windows-installer (#4405)
- Added: new embedded Python builds for 3.8 and 3.10, both x86 and x86_64
- Updated: embedded FFmpeg to 5.0
Release highlights:
- Added: support for
--record=-
, for writing data to stdout while watching at the same time (#4462) - Added:
plugin
variable for--title
,--output
,--record
and--record-and-pipe
(#4437) - Added: missing CLI protocol parameter support for DASH streams (#4434)
- Updated: CLI and API documentation (#4415, #4424, #4430)
- Updated: plugin description documentation (#4391)
- Fixed: nicolive email logins (#4380)
- Fixed: various other plugin issues (see the changelog down below)
- New plugins: cmmedia (#4416), htv (#4431), mdstrm (#4395), trovo (#4471)
- Removed plugins: abweb (#4270), garena (#4460), senategov (#4458), teamliquid (#4393), tlctr (#4432), vrtbe (#4459)
Release highlights:
- Added: log message for the resolved path when writing output to file (#4336)
- Added: new plugins for rtpa.es (#4344) and lnk.lt (#4364)
- Changed: metadata requirements for built-in plugins (#4374)
- Improved: plugins documentation (#4374)
- Fixed: filmon plugin, requires at least OpenSSL 1.1.0 (#4335, #4345)
- Fixed: mildom plugin (#4375)
- Fixed: nicolive email logins with confirmation codes (#4380)
- Fixed: various other plugin issues, see the changelog down below
- Upgraded: Windows installer's Python and dependency versions (#4330, #4347)
Patch release:
- Fixed: broken
streamlink.exe
/streamlinkw.exe
executables in Windows installer (#4308)
Release highlights:
- Changed: file overwrite prompt to wait for user input before opening streams (#4252)
- Fixed: log messages appearing in
--json
output (#4258) - Fixed: keep-alive TCP connections when filtering out HLS segments (#4229)
- Fixed: sort order of DASH streams with the same video resolution (#4220)
- Fixed: HLS segment byterange offsets (#4301, #4302)
- Fixed: YouTube /live URLs (#4222)
- Fixed: UStream websocket address (#4238)
- Fixed: Pluto desync issues by filtering out bumper segments (#4255)
- Fixed: various plugin issues - please see the changelog down below
- Removed plugins: abweb (#4270), latina (#4269), live_russia_tv (#4263), liveme (#4264)
Patch release:
- Fixed: broken output of the
--help
CLI argument (#4213) - Fixed: parsing of invalid HTML5 documents (#4210)
Please see the changelog of 3.0.0, as it contains breaking changes that may require user interaction.
Patch release:
- Added: support for the
id
plugin metadata property (#4203) - Updated: Twitch access token request parameter regarding embedded ads (#4194)
- Fixed: early
SIGINT
/SIGTERM
signal handling (#4190) - Fixed: broken character set decoding when parsing HTML documents (#4201)
- Fixed: missing home directory expansion (tilde character) in file output paths (#4204)
- New plugin: tviplayer (#4199)
Patch release:
- Fixed: broken pycountry import in Windows installer's Python environment (#4180)
Breaking changes:
- BREAKING: dropped support for RTMP, HDS and AkamaiHD streams (#4169, #4168)
- removed the
rtmp://
,hds://
andakamaihd://
protocol plugins - removed all Flash related code
- upgraded all plugins using these old streaming protocols
- dropped RTMPDump dependency
- removed the
- BREAKING: removed the following CLI arguments (and respective session options): (#4169, #4168)
--rtmp-rtmpdump
,--rtmpdump
,--rtmp-proxy
,--rtmp-timeout
Users of Streamlink's Windows installer will need to update their config file.--subprocess-cmdline
,--subprocess-errorlog
,--subprocess-errorlog-path
--hds-live-edge
,--hds-segment-attempts
,--hds-segment-threads
,--hds-segment-timeout
,--hds-timeout
- BREAKING: switched from HTTP to HTTPS for all kinds of scheme-less input URLs. If a site or http-proxy doesn't support HTTPS, then HTTP needs to be set explicitly. (#4068, #4053)
- BREAKING/API: changed
Session.resolve_url()
andSession.resolve_url_no_redirect()
to return a tuple of a plugin class and the resolved URL instead of an initialized plugin class instance. This fixes the availability of plugin options in a plugin's constructor. (#4163) - BREAKING/requirements: dropped alternative dependency
pycrypto
and removed theSTREAMLINK_USE_PYCRYPTO
env var switch (#4174) - BREAKING/requirements: switched from
iso-639
+iso3166
topycountry
and removed theSTREAMLINK_USE_PYCOUNTRY
env var switch (#4175) - BREAKING/setup: disabled unsupported Python versions, disabled the deprecated
test
setuptools command, removed theNO_DEPS
env var, and switched to declarative package data viasetup.cfg
(#4079, #4107, #4115, #4113)
Release highlights:
- Deprecated:
--https-proxy
in favor of a single--http-proxy
CLI argument (and respective session option). Both now set the same proxy for all HTTPS/HTTP requests and websocket connections.--https-proxy
will be removed in a future release. (#4120) - Added: official support for Python 3.10 (#4144)
- Added:
--twitch-api-header
for only setting Twitch.tv API requests headers (for authentication, etc.) as an alternative to--http-header
(#4156) - Added: BASH and ZSH completions to sdist tarball and wheels. (#4048, #4178)
- Added: support for creating parent directories via metadata variables in file output paths (#4085)
- Added: new WebsocketClient implementation (#4153)
- Updated: plugins using websocket connections - nicolive, ustreamtv, twitcasting (#4155, #4164, #4154)
- Updated: circumvention for YouTube's age verification (#4058)
- Updated: and fixed lots of other plugins, see the detailed changelog below
- Reverted: HLS segment downloads always being streamed, and added back
--hls-segment-stream-data
to prevent connection issues (#4159) - Fixed: URL percent-encoding for sites which require the lowercase format (#4003)
- Fixed: XML parsing issues (#4075)
- Fixed: broken
method
parameter when using thehttpstream://
protocol plugin (#4171) - Fixed: test failures when the
brotli
package is installed (#4022) - Requirements: bumped
lxml
to>4.6.4,<5.0
andwebsocket-client
to>=1.2.1,<2.0
(#4143, #4153) - Windows installer: upgraded Python to
3.9.8
and FFmpeg ton4.4.1
(#4176, #4124) - Documentation: upgraded to first stable version of the Furo theme (#4000)
- New plugins: pandalive (#4064)
- Removed plugins: tga (#4129), viasat (#4087), viutv (#4018), webcast_india_gov (#4024)
Release highlights:
-
Deprecated: stream-type specific stream transport options in favor of generic options (#3893)
- use
--stream-segment-attempts
instead of--{dash,hds,hls}-segment-attempts
- use
--stream-segment-threads
instead of--{dash,hds,hls}-segment-threads
- use
--stream-segment-timeout
instead of--{dash,hds,hls}-segment-timeout
- use
--stream-timeout
instead of--{dash,hds,hls,rtmp,http-stream}-timeout
See the documentation's deprecations page for more information.
- use
-
Deprecated:
--hls-segment-stream-data
option and made it always stream segment data (#3894) -
Updated: Python version of the Windows installer from 3.8 to 3.9 and dropped support for Windows 7 due to Python incompatibilities (#3918)
See the documentation's install page for alternative installation methods on Windows 7. -
Updated: FFmpeg in the Windows Installer from 4.2 (Zeranoe) to 4.4 (streamlink/FFmpeg-Builds) (#3981)
-
Added:
{author}
,{category}
/{game}
,{title}
and{url}
variables to--output
,--record
and--record-and-play
(#3962) -
Added:
{time}
/{time:custom-format}
variable to--title
,--output
,--record
and--record-and-play
(#3993) -
Added:
--fs-safe-rules
for changing character replacement rules in file outputs (#3962) -
Added: plugin metadata to
--json
stream data output (#3987) -
Fixed: named pipes not being cleaned up by FFMPEGMuxer (#3992)
-
Fixed: KeyError on invalid variables in
--player-args
(#3988) -
Fixed: tests failing in certain cases when run in different order (#3920)
-
Fixed: various plugin issues. Please see the changelog down below.
-
Dependencies: added
lxml>=4.6.3
(#3952) -
Dependencies: switched back to
requests>=2.26.0
on Windows (#3930) -
Removed plugins: animeworld (#3951), gardenersworld (#3966), huomao (#3932)
Release highlights:
- Implemented: new plugin URL matching API (#3814, #3821)
Third-party plugins which use the old API will still be resolved, but those plugins will have to upgrade in the future. See the documentation's deprecations page for more information. - Implemented: HLS media initialization section (fragmented MPEG-4 streams) (#3828)
- Upgraded:
requests
to>=2.26.0,<3
and set it to==2.25.1
on Windows (#3864, #3880) - Fixed: YouTube channel URLs, premiering live streams, added API fallback (#3847, #3873, #3809)
- Removed plugins: canalplus (#3841), dommune (#3818), liveedu (#3845), periscope (#3813), powerapp (#3816), rtlxl (#3842), streamingvideoprovider (#3843), teleclubzoom (#3817), tigerdile (#3819)
Release highlights:
-
Changed: default config file path on macOS and Windows (#3766)
- macOS:
${HOME}/Library/Application Support/streamlink/config
- Windows:
%APPDATA%\streamlink\config
- macOS:
-
Changed: default custom plugins directory path on macOS and Linux/BSD (#3766)
- macOS:
${HOME}/Library/Application Support/streamlink/plugins
- Linux/BSD:
${XDG_DATA_HOME:-${HOME}/.local/share}/streamlink/plugins
- macOS:
-
Deprecated: old config file paths and old custom plugins directory paths (#3784)
- Windows:
%APPDATA%\streamlink\streamlinkrc
- macOS:
${XDG_CONFIG_HOME:-${HOME}/.config}/streamlink/config
${XDG_CONFIG_HOME:-${HOME}/.config}/streamlink/plugins
${HOME}/.streamlinkrc
- Linux/BSD:
${XDG_CONFIG_HOME:-${HOME}/.config}/streamlink/plugins
${HOME}/.streamlinkrc
Support for these old paths will be dropped in the future.
See the CLI documentation for all the details regarding these changes. - Windows:
-
Implemented:
--logfile
CLI argument (#3753) -
Fixed: Youtube 404 errors by dropping private API calls (plugin rewrite) (#3797)
-
Fixed: Twitch clips (#3762, #3775) and hosted channel redirection (#3776)
-
Fixed: Olympicchannel plugin (#3760)
-
Fixed: HTTP responses with truncated body and mismatching content-length header (#3768)
-
Fixed: scheme-less URLs with address:port for
--http-proxy
, etc. (#3765) -
Fixed: rendered man page path on Sphinx 4 (#3750)
-
Added plugins: mildom.com (#3584), booyah.live (#3585), mediavitrina.ru (#3743)
Patch release:
- Fixed: youtube 404 errors (#3732), consent dialog (#3672) and added short URLs (#3677)
- Fixed: picarto plugin (#3661)
- Fixed: euronews plugin (#3698)
- Fixed: bbciplayer plugin (#3725)
- Fixed: missing removed-plugins-file in
setup.py build
(#3653) - Changed: HLS streams to use rounded bandwidth names (#3721)
- Removed: plugin for hitbox.tv / smashcast.tv (#3686), tvplayer.com (#3673)
Patch release:
- Fixed: test failure due to missing removed plugins file in sdist tarball (#3644).
Release highlights:
- Added:
--interface
,-4
/--ipv4
and-6
/--ipv6
(#3483) - Added:
--niconico-purge-credentials
(#3434) - Added:
--twitcasting-password
(#3505) - Added: Linux AppImages (#3611)
- Added: pre-built man page to bdist wheels and sdist tarballs (#3459, #3510)
- Added: plugin for ahaber.com.tr and atv.com.tr (#3484), nimo.tv (#3508)
- Fixed:
--player-http
/--player-continuous-http
HTTP server being bound to all interfaces (#3450) - Fixed: handling of languages without alpha_2 code when using pycountry (#3518)
- Fixed: memory leak when calling
streamlink.streams()
(#3486) - Fixed: race condition in HLS related tests (#3454)
- Fixed:
--player-fifo
issues on Windows with VLC or MPV (#3619) - Fixed: various plugins issues (see detailed changelog down below)
- Removed: Windows portable (RosadinTV) (#3535)
- Removed: plugin for micous.com (#3457), ntvspor.net (#3485), btsports (#3636)
- Dependencies: set
websocket-client
to>=0.58.0
(#3634)
Release highlights:
- BREAKING: dropped support for Python 2 and Python 3.5 (#3232, #3269)
- BREAKING: updated the Python version of the Windows installer to 3.8 (#3330)
Users of Windows 7 will need their system to be fully upgraded. - BREAKING: removed all deprecated CLI arguments (#3277, #3349)
--http-cookies
,--http-headers
,--http-query-params
--no-version-check
--rtmpdump-proxy
--cmdline
,-c
--errorlog
,-e
--errorlog-path
--btv-username
,--btv-password
--crunchyroll-locale
--pixiv-username
,--pixiv-password
--twitch-oauth-authenticate
,--twitch-oauth-token
,--twitch-cookie
--ustvnow-station-code
--youtube-api-key
- BREAKING: replaced various subtitle muxing CLI arguments with
--mux-subtitles
(#3324)--funimationnow-mux-subtitles
--pluzz-mux-subtitles
--rtve-mux-subtitles
--svtplay-mux-subtitles
--vimeo-mux-subtitles
- BREAKING: sideloading faulty plugins will now raise an
Exception
(#3366) - BREAKING: changed trace logging timestamp format (#3273)
- BREAKING/API: removed deprecated
Session
compat options (#3349) - BREAKING/API: removed deprecated custom
Logger
andLogRecord
(#3273) - BREAKING/API: removed deprecated parameters from
HLSStream.parse_variant_playlist
(#3347) - BREAKING/API: removed
plugin.api.support_plugin
(#3398) - Added: new plugin for pluto.tv (#3363)
- Added: support for HLS master playlist URLs to
--stream-url
/--json
(#3300) - Added:
--ffmpeg-fout
for changing the output format of muxed streams (#2892) - Added:
--ffmpeg-copyts
and--ffmpeg-start-at-zero
(#3404, #3413) - Added:
--streann-url
for iframe referencing (#3356) - Added:
--niconico-timeshift-offset
(#3425) - Fixed: duplicate stream names in DASH inputs (#3410)
- Fixed: youtube live playback (#3268, #3372, #3428)
- Fixed:
--twitch-disable-reruns
(#3375) - Fixed: various plugins issues (see detailed changelog down below)
- Changed:
{filename}
variable in--player-args
/-a
to{playerinput}
and made both optional (#3313) - Changed: and fixed
streamlinkrc
config file in the Windows installer (#3350) - Changed: MPV's automated
--title
argument to--force-media-title
(#3405) - Changed: HTML documentation theme to furo (#3335)
- Removed: plugins for
skai
,kingkong
,ellobo
,trt
/trtspor
,tamago
,streamme
,metube
,cubetv
,willax
Release highlights:
- Added: new plugins for micous.com, tv999.bg and cbsnews.com
- Added: new embedded ad detection for Twitch streams (#3213)
- Fixed: a few broken plugins and minor plugin issues (see changelog down below)
- Fixed: arguments in config files were read too late before taking effect (#3255)
- Fixed: Arte plugin returning too many streams and overriding primary ones (#3228)
- Fixed: Twitch plugin error when stream metadata API response is empty (#3223)
- Fixed: Zattoo login issues (#3202)
- Changed: plugin request and submission guidelines (#3244)
- Changed: refactored and cleaned up Twitch plugin (#3227)
- Removed:
platform=_
stream token request parameter from Twitch plugin (again) (#3220) - Removed: plugins for itvplayer, aljazeeraen, srgssr and dingittv
Release highlights:
- Fixed: lots of broken plugins and minor plugin issues (see changelog down below)
- Fixed: embedded ads on Twitch with an ads workaround, removing pre-roll and mid-stream ads (#3173)
- Fixed: read timeout error when filtering out HLS segments (#3187)
- Fixed: twitch plugin logging incorrect low-latency status when pre-roll ads exist (#3169)
- Fixed: crunchyroll auth logic (#3150)
- Added: the
--hls-playlist-reload-time
parameter for customizing HLS playlist reload times (#2925) - Added:
python -m streamlink
invocation style support (#3174) - Added: plugin for mrt.com.mk (#3097)
- Changed: yupptv plugin and replaced email+pass with id+token authentication (#3116)
- Removed: plugins for vaughnlive, pandatv, douyutv, cybergame, europaplus and startv
A minor release with fixes for pycountry==20.7.3
(#3057) and a few plugin additions and removals.
And of course the usual plugin fixes and upgrades, which you can see in the git shortlog down below. Thank you to everyone involved!
Support for Python2 has not been dropped yet (contrary to the comment in the last changelog), but will be in the near future.
No code changes. See the full 1.4.0
changelog here.
This will be the last release with support for Python 2, as it has finally reached its EOL at the beginning of this year.
Streamlink 1.4.0 comes with lots of plugin fixes/improvements, as well as some new features and plugins, and also a few plugin removals.
Notable changes:
- New: low latency streaming on Twitch via
--twitch-low-latency
(#2513) - New: output HLS segment data immediately via
--hls-segment-stream-data
(#2513) - New: always show download progress via
--force-progress
(#2438) - New: URL template support for
--hls-segment-key-uri
(#2821) - Removed: Twitch auth logic,
--twitch-oauth-token
,--twitch-oauth-authenticate
,--twitch-cookie
(#2846) - Fixed: Youtube plugin (#2858)
- Fixed: Crunchyroll plugin (#2788)
- Fixed: Pixiv plugin (#2840)
- Fixed: TVplayer plugin (#2802)
- Fixed: Zattoo plugin (#2887)
- Changed: set Firefox User-Agent HTTP header by default (#2795)
- Changed: upgraded bundled FFmpeg to
4.2.2
in Windows installer (#2916)
A small patch release that addresses the removal of MPV's legacy option syntax, also with fixes of several plugins, the addition of the --twitch-disable-reruns
parameter and dropped support for Python 3.4.
A new release with plugin updates and fixes, including Twitch.tv (see #2680), which had to be delayed due to back and forth API changes.
The Twitch.tv workarounds mentioned in #2680 don't have to be applied anymore, but authenticating via --twitch-oauth-token
has been disabled, regardless of the origin of the OAuth token (via --twitch-oauth-authenticate
or the Twitch website). In order to not introduce breaking changes, both parameters have been kept in this release and the user name will still be logged when using an OAuth token, but receiving item drops or accessing restricted streams is not possible anymore.
Plugins for the following sites have also been added:
- albavision
- news.now.com
- twitcasting.tv
- viu.tv
- vlive.tv
- willax.tv
Here are the changes for this month's release
- Multiple plugin fixes
- Fixed single hyphen params at the beginning of --player-args (#2333)
--http-proxy
will set the default value of--https-proxy
to same as--http-proxy
. (#2536)- DASH Streams will handle headers correctly (#2545)
- the timestamp for FFMPEGMuxer streams will start with zero (#2559)
This is just a small patch release which fixes a build/deploy issue with the new special wheels for Windows on PyPI. (#2392)
Please see the full changelog of the 1.1.0
release!
These are the highlights of Streamlink's first minor release after the 1.0.0 milestone:
- several plugin fixes, improvements and new plugin implementations
- addition of the
--twitch-disable-ads
parameter for filtering out advertisement segments from Twitch.tv streams (#2372) - DASH stream improvements (#2285)
- documentation enhancements (#2292, #2293)
- addition of the
{url}
player title variable (#2232) - default player title config for PotPlayer (#2224)
- new
streamlinkw
executable on Windows (wheels + installer) (#2326) - Github release assets simplification (#2360)
The celebratory release of Streamlink 1.0.0!
A lot of hard work has gone into getting Streamlink to where it is. Not only is Streamlink used across multiple applications and platforms, but companies as well.
Streamlink started from the inaugural fork of Livestreamer on September 17th, 2016.
Since then, We've hit multiple milestones:
- Over 886 PRs
- Hit 3,000 commits in Streamlink
- Obtaining our first sponsors as well as backers of the project
- The creation of our own logo (streamlink#1123)
Thanks to everyone who has contributed to Streamlink (and our backers)! Without you, we wouldn't be where we are today.
Without further ado, here are the changes in release 1.0.0:
- We have a new icon / logo for Streamlink! (streamlink#2165)
- Updated dependencies (streamlink#2230)
- A ton of plugin updates. Have a look at this search query for all the recent updates.
- You can now provide a custom key URI to override HLS streams (streamlink#2139). For example:
--hls-segment-key-uri <URI>
- User agents for API communication have been updated (streamlink#2194)
- Special synonyms have been added to sort "best" and "worst" streams (streamlink#2127). For example:
streamlink --stream-sorting-excludes '>=480p' URL best,best-unfiltered
- Process output will no longer show if tty is unavailable (streamlink#2090)
- We've removed BountySource in favour of our OpenCollective page. If you have any features you'd like to request, please open up an issue with the request and possibly consider backing us!
- Improved terminal progress display for wide characters (streamlink#2032)
- Fixed a bug with dynamic playlists on playback (streamlink#2096)
- Fixed makeinstaller.sh (streamlink#2098)
- Old Livestreamer deprecations and API references were removed (streamlink#1987)
- Dependencies have been updated for Python (streamlink#1975)
- Newer and more common User-Agents are now used (streamlink#1974)
- DASH stream bitrates now round-up to the nearest 10, 100, 1000, etc. (streamlink#1995)
- Updated documentation on issue templates (streamlink#1996)
- URL have been added for better processing of HTML tags (streamlink#1675)
- Fixed sort and prog issue (streamlink#1964)
- Reformatted issue templates (streamlink#1966)
- Fixed crashing bug with player-continuous-http option (streamlink#2234)
- Make sure all dev dependencies (streamlink#2235)
- -r parameter has been replaced for --rtmp-rtmpdump (streamlink#2152)
Breaking changes:
- A large number of unmaintained or NSFW plugins have been removed. You can find the PR that implemented that change here: streamlink#2003 . See our CONTRIBUTING.md documentation for plugin policy.
Just a few small fixes in this release.
- Fixed Twitch OAuth request flow (streamlink#1856)
- Fix the tv3cat and vk plugins (streamlink#1851, streamlink#1874)
- VOD supported added to atresplayer plugin (streamlink#1852, streamlink#1853)
- Removed tv8cati and nineanime plugins (streamlink#1860, streamlink#1863)
- Added mjunoon.tv plugin (streamlink#1857)
Here are the changes to this months release!
- Multiple plugin fixes
- Bug fixes for DASH streams (streamlink#1846)
- Updated API call for api.utils hours_minutes_seconds (streamlink#1804)
- Updated documentation (streamlink#1826)
- Dict structures fix (streamlink#1792)
- Reformated help menu (streamlink#1754)
- Logger fix (streamlink#1773)
Massive release this month!
Here are the changes:
- Initial MPEG DASH support has been added! (streamlink#1637) Many thanks to @beardypig
- As always, a ton of plugin updates
- Updates to our documentation (streamlink#1673)
- Updates to our logging (streamlink#1752) as well as log --quiet options (streamlink#1744) (streamlink#1720)
- Our release script has been updated (streamlink#1711)
- Support for livestreams when using the
--hls-duration
option (streamlink#1710) - Allow streamlink to exit faster when using Ctrl+C (streamlink#1658)
- Added an OpenCV Face Detection example (streamlink#1689)
Streamlink 0.12.1
Small release to fix a pip / Windows.exe generation bug!
Streamlink 0.12.0
Thanks for all the contributors to this month's release!
New updates:
- A ton of plugin updates (like always! see below for a list of updates)
- Ignoring a bunch of useless files when developing (streamlink#1570)
- A new option to limit the number of fetch retries (streamlink#1375)
- YouTube has been updated to not use MuxedStream for livestreams (streamlink#1556)
- Bug fix with ffmpegmux (streamlink#1502)
- Removed dead plugins and deprecated options (streamlink#1546)
Streamlink 0.11.0!
Here's what's new:
- Fixed documentation (streamlink#1467 and streamlink#1468)
- Current versions of the OS, Python, Streamlink and Requests are now shown with -l debug (streamlink#1374)
- ok.ru/live plugin added (streamlink#1451)
- New option --hls-segment-ignore-names (streamlink#1432)
- AfreecaTV plugin updates (streamlink#1390)
- Added support for zattoo recordings (streamlink#1480)
- Bigo plugin updates (streamlink#1474)
- Neulion plugin removed due to DMCA notice (streamlink#1497)
- And many more updates to numerous other plugins!
Streamlink 0.10.0!
There's been a lot of activity since our November release.
Changes:
- Multiple plugin updates (too many to list, see below for the plugin changes!)
- HLS seeking support (streamlink#1303)
- Changes to the Windows binary (docs: streamlink#1408 minor changes to install directory: streamlink#1407)
Streamlink 0.9.0 has been released!
This release is mostly code refactoring as well as module inclusion.
Features:
- Updates to multiple plugins (electrecetv, tvplayer, Teve2, cnnturk, kanald)
- SOCKS module being included in the Streamlink installer (PySocks)
Many thanks to those who've contributed in this release!
0.8.1 of Streamlink!
97 commits have occurred since the last release, including a large majority of plugin changes.
Here's the outline of what's new:
- Multiple plugin fixes (twitch, vaughlive, hitbox, etc.)
- Donations! We've gone ahead and joined the Open Collective at https://opencollective.com/streamlink
- Multiple doc updates
- Support for SOCKS proxies
- Code refactoring
Many thanks to those who've contributed in this release!
0.7.0 of Streamlink!
Since our May release, we've incorporated quite a few changes!
Outlined are the major features in this month's release:
- Stream types will now be sorted accordingly in terms of quality
- TeamLiquid.net Plugin added
- Numerous plugin & bug fixes
- Updated HomeBrew package
- Improved CLI documentation
Many thanks to those who've contributed in this release!
If you think that this application is helpful, please consider supporting the maintainers by donating.
Another release of Streamlink!
We've updated more plugins, improved documentation, and moved out nightly builds to Bintray (S3 was costing wayyyy too much).
Again, many thanks for those who've contributed!
Thank you very much!
Streamlink 0.5.0!
Lot's of contributions since the last release. As always, lot's of updating to plugins!
One of the new features is the addition of Google Drive / Google Docs, you can now stream videos stored on Google Docs.
We've also gone ahead and removed dead plugins (sites which have gone down) as well as added pycrypto as a dependency for future plugins.
Again, many thanks for those who have contributed!
Thank you very much!
0.4.0 of Streamlink!
114 commits since the last release and a lot has changed.
In general, we've added some localization as well as an assortment of new plugins.
We've also introduced a change for Streamlink to not check for new updates each time Streamlink starts. We found this feature annoying as well as delaying the initial start of the stream. This feature can be re-enabled by the command line.
The major features of this release are:
- New plugins added
- Ongoing support to current plugins via bug fixes
- Ensure retries to HLS streams
- Disable update check
Many thanks to all contributors who have contributed in this release!
0.3.2 release of Streamlink!
A minor bug release of 0.3.2 to fix a few issues with stream providers.
Thanks to all whom have contributed to this (tiny) release!
0.3.1 release of Streamlink
A minor release, we update our source code upload to not include the ffmpeg.exe binary as well as update a multitude of plugins.
Thanks again for all the contributions as well as updates!
Release 0.3.0 of Streamlink!
A lot of updates to each plugin (thank you @beardypig !), automated Windows releases, PEP8 formatting throughout Streamlink are some of the few updates to this release as we near a stable 1.0.0 release.
Main features are:
- Lot's of maintaining / updates to plugins
- General bug and doc fixes
- Major improvements to development (github issue templates, automatically created releases)
Release 0.2.0 of Streamlink!
We've done numerous changes to plugins as well as fixed quite a few which were originally failing. Among these changes are updated docs as well as general UI/UX cleaning with console output.
The main features are:
- Additional plugins added
- Plugin fixes
- Cleaned up console output
- Additional documentation (contribution, installation instructions)
Again, thank you everyone whom contributed to this release! :D
A major update to Streamlink.
With this release, we include a Windows binary as well as numerous plugin changes and fixes.
The main features are:
- Windows binary (and generation!) thanks to the fabulous work by @beardypig
- Multiple plugin fixes
- Remove unneeded run-as-root (no more warning you when you run as root, we trust that you know what you're doing)
- Fix stream quality naming issue
The second ever release of Streamlink!
In this release we've not only set the stepping stone for the further development of Streamlink (documentation site updated, CI builds working) but we're already fixing bugs and implementing features past the initial fork of livestreamer.
The main features of this release are: - New windows build available and generated via pyinstaller - Multiple provider bug fixes (twitch, picarto, itvplayer, crunchyroll, periscope, douyutv) - Updated and reformed documentation which also includes our site https://streamlink.github.io
As always, below is a git shortlog
of all changes from the previous
release of Streamlink (0.0.1) to now (0.0.2).
The first release of Streamlink!
This is the first release from the initial fork of Livestreamer. We aim to have a concise, fast review process and progress in terms of development and future releases.
Below is a git shortlog
of all commits since the last change within
Livestream (hash ab80dbd6560f6f9835865b2fc9f9c6015aee5658). This will
serve as a base-point as we continue development of "Streamlink".
New releases will include a list of changes as we add new features / code refactors to the existing code-base.