Skip to content
This repository was archived by the owner on Jul 9, 2025. It is now read-only.

Commit fc3e49b

Browse files
committed
Update Changelog for v2.0.0
1 parent 46cb1ba commit fc3e49b

File tree

1 file changed

+95
-0
lines changed

1 file changed

+95
-0
lines changed

CHANGELOG.md

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,100 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [2.0.0] - 2023-03-01
9+
10+
This release brings a huge change to the fundamentals of Devine's logging, UI, and UX.
11+
12+
### Added
13+
14+
- Add new dependency [rich](https://github.com/Textualize/rich) for advanced color and logging capabilities.
15+
- Set rich console output color scheme to the [Catppuccin Mocha](https://github.com/catppuccin/palette) theme.
16+
- Add full download cancellation support by using CTRL+C. Track downloads will now be marked as STOPPED if you press
17+
CTRL+C to stop the download, or FAILED if any unexpected exception occurs during a download. The track will be marked
18+
as SKIPPED if the download stopped or failed before it got a chance to begin. It will print a download cancelled
19+
message if downloading was stopped, or a download error message if downloading failed. It will print the first
20+
download error traceback with rich before stopping.
21+
- Downloads will now automatically cancel if any track or segment download fails.
22+
- Implement sub-commands `add` and `delete` to the `wvd` command for adding and deleting WVD (Widevine Device) files to
23+
and from the configured WVDs directory (#31).
24+
- Add new config option to disable the forced background color. You may want to disable the purple background if you're
25+
terminal isn't able to apply it correctly, or you prefer to use your own terminal's background color.
26+
- Create `ComfyConsole`, `ComfyLogRenderer`, and `ComfyRichHandler`. These are hacky classes to implement padding to
27+
the left and right of all rich console output. This gives devine a comfortable and freeing look-and-feel.
28+
- An ASCII banner is now displayed at the start of software execution with the version number.
29+
- Add rich status output to various parts of the download process. It's also used when checking GEOFENCE within the
30+
base Service class. I encourage you to follow similar procedures where possible in Service code. This will result in
31+
cleaner log output, and overall less logs being made when finished.
32+
- Add three rich horizontal rules to separate logs during the download process. The Service used, the Title received
33+
from `get_titles()`, and then the Title being downloaded. This helps identify which logs are part of which process.
34+
- Add new `tree` methods to `Series`, `Movies`, and `Album` classes to list items within the objects with Rich Tree.
35+
This allows for more rich console output when displaying E.g., Seasons and Episodes within a Series, or Songs within
36+
an Album.
37+
- Add new `tree` method to the `Tracks` class to list the tracks received from `get_tracks()` with Rich Tree. Similar
38+
to the change just above, this allows for more rich console output. It has replaced the `Tracks.print()` method.
39+
- Add a rich progress bar to the track multiplexing operation.
40+
- Add a log when a download finishes, how long it took, and where the final muxed file was moved to.
41+
- Add a new track event, `OnMultiplex`. This event is run prior to multiplexing the finalized track data together. Use
42+
this to run code once a track has finished downloading and all the post-download operations.
43+
- Add support for mapping Netflix profiles beginning with `h264` to AVC. E.g., the new -QC profiles.
44+
- Download progress bars now display the download speed. It displays in decimal (^1024) size. E.g., MB/s.
45+
- If a download stops or fails, any residual file that may have been downloaded in an incomplete OR complete state will
46+
now be deleted. Download continuation is not yet supported, and this will help to reduce leftover stale files.
47+
48+
### Changed
49+
50+
- The logging base config now has `ComfyRichHandler` as its log handler for automatic rich console output when using
51+
the logging system.
52+
- The standard `traceback` module has been overridden with `rich.traceback` for styled traceback output.
53+
- Only the rich console output is now saved when using `--log`.
54+
- All `tqdm` progress bars have been replaced with rich progress bars. The rich progress bars are now displayed under
55+
each track tree.
56+
- The titles are now only listed if `--list-titles` is used. Otherwise, only a brief explanation of what it received
57+
from `get_titles()` will be returned. E.g., for Series it will list how many seasons and episodes were received.
58+
- Similarly, all available tracks are now only listed if `--list` is used. This is to reduce unnecessary prints, and to
59+
separate confusion between listings of available tracks, and listings of tracks that are going to be downloaded.
60+
- Listing all available tracks with `--list` no longer continues execution. It now stops after the first list. If you
61+
want to list available tracks for a specific title, use `-w` in combination with `--list`.
62+
- The available tracks are now printed in a rich panel with a header denoting the tracks as such.
63+
- The `Series`, `Movies`, and `Album` classes now have a much more simplified string representation. They now simply
64+
state the overarching content within them. E.g., Series says the title and year of the TV Show.
65+
- The final log when all titles are processed is now a rich log and states how long the entire process took.
66+
- Widevine DRM license information is now printed below the tracks as a rich tree.
67+
- The CCExtractor process, Subtitle Conversion process, and FFmpeg Repacking process were all moved out of the track
68+
download function (and therefore the thread) to be done on the main thread after downloading. This improves download
69+
speed as the threads can close and be freed quicker for the next track to begin.
70+
- The CCExtractor process is now optional and will be skipped if the binary could not be found. An error is still
71+
logged in the cases where it would have run.
72+
- The execution point of the `OnDownloaded` event has been moved to directly run after the stream has been downloaded.
73+
It used to run after all the post-download operations finished like CCExtractor, FFmpeg Repacking, and Subtitle
74+
Conversion.
75+
- The automatic SDH-stripped subtitle track now uses the new `OnMultiplex` event instead of `OnDownloaded`. This is to
76+
account for the previous change as it requires the subtitle to be first converted to SubRip to support SDH-stripping.
77+
- Logs during downloads now appear before the downloading track list. This way it isn't constantly interrupting view of
78+
the progress.
79+
- Now running aria2(c) with normal subprocess instead of through asyncio. This removes the creation of yet another
80+
thread which is unnecessary as these calls would have already been under a non-main thread.
81+
- Moved Widevine DRM licensing calls before the download process for normal URL track downloads.
82+
- Segment Merging code for DASH and HLS downloads have been moved from the `dl` class to the HLS and DASH class.
83+
84+
### Removed
85+
86+
- Remove explicit dependency on `coloredlogs` and `colorama` as they are no longer used by devine itself.
87+
- Remove dependency `tqdm` as it was replaced with rich progress bars.
88+
- Remove now-unused logging constants like the custom log formats.
89+
- Remove `Tracks.print()` function as it was replaced with the new `Tracks.tree()` function.
90+
- Remove unnecessary sleep calls at the start of threads. This was believed to help with the download stop event check
91+
but that was not the case. It instead added an artificial delay with downloads.
92+
93+
### Fixed
94+
95+
- Fix another crash when using devine without a config file. It now creates the directory of the config file before
96+
making a new config file.
97+
- Set the default aria2(c) file-allocation to `prealloc` like stated in the config documentation. It uses `prealloc` as
98+
the default, as `falloc` is generally unsupported in most scenarios, so it's not a good default.
99+
- Correct the config documentation in regard to `proxies` now being called `proxy_providers`, and `basic` actually
100+
being a `dict` of lists, and not a `dict` of strings.
101+
8102
## [1.4.0] - 2023-02-25
9103

10104
### Added
@@ -169,6 +263,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
169263

170264
Initial public release under the name Devine.
171265

266+
[2.0.0]: https://github.com/devine-dl/devine/releases/tag/v2.0.0
172267
[1.4.0]: https://github.com/devine-dl/devine/releases/tag/v1.4.0
173268
[1.3.1]: https://github.com/devine-dl/devine/releases/tag/v1.3.1
174269
[1.3.0]: https://github.com/devine-dl/devine/releases/tag/v1.3.0

0 commit comments

Comments
 (0)