YoutubeExplode v4.6 Release Notes

    • ๐Ÿ“œ Switched majority of video-related parsing to a new approach, which allows circumventing signature deciphering, provides more info, and is marginally faster and more consistent. This makes GetVideoMediaStreamInfosAsync complete twice as fast, on average.
    • ๐Ÿ“œ Switched from itag-based property mapping to manual string parsing, which should be more stable in the long run.
    • โž• Added MediaStreamInfoSet.ValidUntil property which can be used to determine when the contained streams will expire.
    • ๐Ÿ›  Fixed an issue where controversial videos could not be parsed.
    • โœ‚ Removed User-Agent header from default request headers.
    • โœ‚ Removed VideoQuality.GetVideoQualityLabel extension method.
    • โœ‚ Removed MediaStreamInfo.GetUrlExpiryDate extension method.
    • โœ‚ Removed VideoRequiresPurchaseException and replaced it with VideoUnplayableException which covers a wider spectrum of errors.
    • ๐Ÿšš VideoUnavailableException no longer has properties for error code and error reason. Error code was basically useless so it was removed, error reason is now part of the Message property.
    • โœ‚ Removed ParseException entirely.
    • Some enum values in AudioEncoding, VideoEncoding and Container types were marked as obsolete because they are no longer used by YouTube.