- Fixed an issue where
NullReferenceException
was thrown inDownloadVideoAsync
on videos that don't have adaptive streams.
- Updated YoutubeExplode dependency to version 4.7, which resolves critical issues related to recent YouTube changes.
- Fixed an issue where
DownloadAndProcessMediaStreamsAsync
would sometimes report progress above 1.
- Reworked automatic stream selection in
DownloadVideoAsync
so that it prioritizes video streams by highest quality and only then by format. This ensures that it always downloads the highest quality video stream even if the input format doesn't match the output format.
- Removed quality preferences and instead added a public method
DownloadAndProcessMediaStreamsAsync
that takes a list ofMediaStreamInfo
s as a parameter. That way the consumers can find the most fitting combination of audio and video streams (or just a single stream in case of audio-only or video-only output) and just pass them as a parameter. The higher level methodDownloadVideoAsync
will always attempt to find the highest possible quality streams.
- Added preferred framerate as a parameter to one of the overloads of
DownloadVideoAsync
, alongside preferred video quality. - Reworked the way preferences are passed, they are now optional parameters.
- An exception of type
MediaStreamInfoNotFoundException
will now be thrown when there were no streams in the set that match input preferences. - Made progress reporting even more linear.
- Added an overload of
DownloadVideoAsync
that takesMediaStreamInfoSet
andVideoQuality
as parameters. It can be used if you are manually resolving theMediaStreamInfoSet
with YoutubeExplode and want to download specific video quality. - Made progress reporting slightly more linear by taking into account whether transcoding is required.
- Fixed an issue where temporary files were not deleted after the download was canceled. The underlying issue was fixed in CliWrap v2.2.
- Fixed some incompatibility issues with YoutubeExplode v4.6.x.
- Fixed an issue where downloading would fail if the output file path contained spaces.