@@ -5,6 +5,65 @@ All notable changes to this project will be documented in this file.
55The format is based on [ Keep a Changelog] ( https://keepachangelog.com/en/1.0.0/ ) ,
66and this project adheres to [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
77
8+ ## [ 2.2.0] - 2023-04-23
9+
10+ ### Breaking Changes
11+
12+ Since ` -q/--quality ` has been reworked to support specifying multiple qualities, the type of this value is
13+ no longer ` None|int ` . It is now ` list[int] ` and the list may be empty. It is no longer ever a ` None ` value.
14+
15+ Please make sure any Service code that uses ` quality ` via ` ctx.parent.params ` reflects this change. You may
16+ need to go from an ` if quality: ... ` to ` for res in quality: ... ` , or such. You may still use ` if quality `
17+ to check if it has 1 or more resolution specified, but make sure that the code within that if tree supports
18+ more than 1 value in the ` quality ` variable, which is now a list. Note that the list will always be in
19+ descending order regardless of how the user specified them.
20+
21+ ### Added
22+
23+ - Added the ability to specify and download multiple resolutions with ` -q/--quality ` . E.g., ` -q 1080p,720p ` .
24+ - Added support for DASH manifests that use SegmentList with range values on the Initialization definition (#47 ).
25+ - Added a check for ` uuid ` mp4 boxes containing ` tenc ` box data when getting the Track's Key ID to improve
26+ chances of finding a Key ID.
27+
28+ ### Changed
29+
30+ - The download path is no longer printed after each download. The simple reason is it felt unnecessary.
31+ It filled up a fair amount of vertical space for information you should already know.
32+ - The logs after a download finishes has been split into two logs. One after the actual downloading process
33+ and the other after the multiplexing process. The downloading process has its own timer as well, so you can
34+ see how long the downloads itself took.
35+ - I've switched from using the official pymp4 (for now) with my fork. At the time this change was made the
36+ original bearypig pymp4 repo was stagnant and the PyPI releases were old. I forked it, added some fixes
37+ by TrueDread and released my own update to PyPI, so it's no longer outdated. This was needed for some
38+ mp4 box parsing fixes. Since then the original repo is no longer stagnant, and a new release was made on
39+ PyPI. However, my repo still has some of TrueDread's fixes that is not yet on the original repository nor
40+ on PyPI.
41+
42+ ### Removed
43+
44+ - Removed the ` with_resolution ` method in the Tracks class. It has been replaced with ` by_resolutions ` . The
45+ new replacement method supports getting all or n amount of tracks by resolution instead of the original
46+ always getting all tracks by resolution.
47+ - Removed the ` select_per_language ` method in the Tracks class. It has been replaced with ` by_language ` . The
48+ new replacement method supports getting all or n amount of tracks by language instead of the original only
49+ able to get one track by language. It now defaults to getting all tracks by language.
50+
51+ ### Fixed
52+
53+ - Prevented some duplicate Widevine tree logs under specific edge-cases.
54+ - The Subtitle parse method no longer absorbs the syntax error message.
55+ - Replaced all negative size values with 0 on TTML subtitles as a negative value would cause syntax errors.
56+ - Fixed crash during decryption when shaka-packager skips decryption of a segment as it had no actual data and
57+ was just headers.
58+ - Fixed CCExtractor crash in some scenarios by repacking the video stream prior to extraction.
59+ - Fixed rare crash when calculating download speed of DASH and HLS downloads where a segment immediately finished
60+ after the previous segment. This seemed to only happen on the very last segment in rare situations.
61+ - Fixed some failures parsing ` tenc ` mp4 boxes when obtaining the track's Key ID by using my own fork of pymp4
62+ with up-to-date code and further fixes.
63+ - Fixed crashes when parsing some ` tenc ` mp4 boxes by simply skipping ` tenc ` boxes that fail to parse. This happens
64+ because some services seem to mix up the data of the ` tenc ` box with that of another type of box.
65+ - Fixed using invalid ` tenc ` boxes by skipping ones with a version number greater than 1.
66+
867## [ 2.1.0] - 2023-03-16
968
1069### Added
@@ -369,6 +428,7 @@ This release brings a huge change to the fundamentals of Devine's logging, UI, a
369428
370429Initial public release under the name Devine.
371430
431+ [ 2.2.0 ] : https://github.com/devine-dl/devine/releases/tag/v2.2.0
372432[ 2.1.0 ] : https://github.com/devine-dl/devine/releases/tag/v2.1.0
373433[ 2.0.1 ] : https://github.com/devine-dl/devine/releases/tag/v2.0.1
374434[ 2.0.0 ] : https://github.com/devine-dl/devine/releases/tag/v2.0.0
0 commit comments