diff --git a/CHANGELOG.md b/CHANGELOG.md index bd04eb0..9d798a0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,56 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.3.0] - 2023-02-22 + +## Deprecated + +- Support for Python 3.8 has been dropped. Support for Windows 7 ended in January 2020. +- Although Python 3.8 is the last version with support for Windows 7, the decision was made to drop support because + the number of affected users would be low. +- You may be interested in , which has newer installers with patched support. + +### Added + +- Segmented HLS and DASH downloads now provide useful progress information using TQDM. Previously, aria2c would print + progress information, but it was not very useful for segmented downloads due to how the information was presented. +- Segmented HLS and DASH downloads are now manually multi-threaded in a similar way to aria2c's `--j=16`. +- A class-function was added to the Widevine DRM class to obtain PSSH and KID information from init data by looking for + PSSH and TENC boxes. This is an alternative to the from_track class-function when you only have the init data and not + a track object. +- Aria2c now has the ability to silence progress output and provide extra arguments. + +### Changed + +- The downloading system for HLS and DASH has been completely reworked. It no longer downloads segments, merges them, + and then decrypts. Instead, it now downloads and decrypts each individual segment. It dynamically switches DRM and + Init Data per-segment where needed, fully supporting multiple EXT-X-KEY, EXT-X-MAP, and EXT-X-DISCONTINUITY tags in + HLS. You can now download DRM-encrypted and DRM-free segments from within the same manifest, as well as manifests + with unique DRM per-segment. None of this was possible with the old method of downloading. +- If a HLS manifest or segment uses an EXT-X-KEY with the method of NONE, it is assumed that the manifest or segment is + DRM-free. This behavior applies even if the manifest or segment has other EXT-X-KEY methods specified, as that would + be a mistake in the manifest. +- HLS now uses the proxy when loading AES-128 DRM as ClearKey objects, which is required for some services. It will + only be used if `Track.needs_proxy` is True. +- The Widevine and ClearKey DRM classes decrypt functions no longer ask for a track. Instead, they ask for an input + file path to which it will decrypt. It will automatically delete the input file and put the decrypted data in its + place. + +### Removed + +- The AtomicSQL utility was removed because it did not actually assist in making the SQL connections thread-safe. It + helped, but in an almost backwards and over-thought approach. + +### Fixed + +- The Cacher expiration check now uses your local datetime timestamp over the UTC timestamp, which seems to have fixed + early or late expiration if you are not at exactly UTC+00:00. +- The cookies file path is now checked to exist if supplied with the `--cookies` argument (#30). +- An error is now logged, and execution will end if none of the DRM for a HLS manifest or segment is supported. +- HLS now only loads AES-128 EXT-X-KEY methods as ClearKey DRM because it currently only supports AES-128. +- AtomicSQL was replaced with connection factory systems using thread-safe storage for SQL connections. All Vault SQL + calls are now fully thread-safe. + ## [1.2.0] - 2023-02-13 ### Deprecation Warning @@ -74,6 +124,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 Initial public release under the name Devine. +[1.3.0]: https://github.com/devine-dl/devine/releases/tag/v1.3.0 [1.2.0]: https://github.com/devine-dl/devine/releases/tag/v1.2.0 [1.1.0]: https://github.com/devine-dl/devine/releases/tag/v1.1.0 [1.0.0]: https://github.com/devine-dl/devine/releases/tag/v1.0.0