292 Commits

Author SHA1 Message Date
rlaphoenix
acead803bd Remove unnecessary sleep calls at start of download threads 2023-02-28 16:38:10 +00:00
rlaphoenix
b6d3c8368a Update CONFIG docs to use proxy_providers
Also removes an old unused `proxies` config option.
2023-02-28 16:32:13 +00:00
rlaphoenix
961747b74c Set the default aria2c --file-allocation to prealloc
Falloc is faster, but supports less systems/environments, and usually require admin perms on Windows.
2023-02-28 16:23:34 +00:00
rlaphoenix
ce53a1b636 Don't run aria2c under asyncio, further improve progress updates
I've removed asyncio usage as it's generally unnecessary. If you want to run aria2c under a thread, run it under a thread. In the case for devine, this would take another thread, and would be another thread layer deep. Pointless. Would affect speed.

With this change I've been able to improve the aria2c progress capture code quite a bit.
2023-02-28 08:21:55 +00:00
rlaphoenix
d427ec8472 Fix yet another startup crash when loading the config 2023-02-28 06:30:12 +00:00
rlaphoenix
3cfc679294 Center ASCII banner without using U+2800 2023-02-28 06:03:42 +00:00
rlaphoenix
dc55f6ffeb Calculate DASH and HLS download speed in an alternate way
Also fixes getting download sizes for Subtitle tracks
2023-02-28 06:03:27 +00:00
rlaphoenix
f4122f1ae6 Add mapping for Netflix profiles starting with h264
e.g., the new -qc profiles.
2023-02-28 06:02:36 +00:00
rlaphoenix
e5e3f4687d Fix printing of aria2c errors if progress is used
Also improves the general process of ingesting aria2c progress information.
2023-02-27 16:52:00 +00:00
rlaphoenix
18449c4777 Ignore ERROR prints from aria2c progress checks 2023-02-27 00:00:55 +00:00
rlaphoenix
eb3f268d64 Revert back to using logging over console.log where possible
It seems the commit I made to do this change initially seemed to help, it was actually pointless and issues I had were caused by other problems.

For consistency it seems best to stick with the logging module with the RichHandler applied. Using just console.log means being unable to control the log level and which level of logs appear.
2023-02-26 21:20:43 +00:00
rlaphoenix
401d0481df Implement verbose arg on tree method of Movies and Album 2023-02-26 19:04:54 +00:00
rlaphoenix
6419c27e0a Remove spacer from Spinner of progress bars 2023-02-26 15:57:10 +00:00
rlaphoenix
a8c1612eb5 Remove unused TextColumn from Track progress bar 2023-02-26 15:56:04 +00:00
rlaphoenix
fe320e177d Add OnMultiplex event, for pre-multiplex 2023-02-25 21:58:32 +00:00
rlaphoenix
a5c6052292 Move CC extraction to be post-download, use rich status 2023-02-25 21:04:04 +00:00
rlaphoenix
178bd01069 Add a rich horizontal rule print on Service construction 2023-02-25 14:04:13 +00:00
rlaphoenix
e9b3b3a588 Use rich status when checking for proxy geofence 2023-02-25 14:03:41 +00:00
rlaphoenix
a5da7c8fbd Add rich progress bar for the mux operation
Update dl.py
2023-02-25 13:58:58 +00:00
rlaphoenix
92895426b3 Replace tqdm progress bars with rich progress bars 2023-02-25 13:45:17 +00:00
rlaphoenix
984582d19d Replace Tracks.print() calls with new rich tree 2023-02-25 13:10:49 +00:00
rlaphoenix
48e35fb4c4 Add rich tree generator to tracks wrapper 2023-02-25 13:05:56 +00:00
rlaphoenix
f7c4d72108 Add rich tree generator to sorted title wrappers 2023-02-25 13:01:09 +00:00
rlaphoenix
92774dcfe6 Simplify str representation of Sorted title containers 2023-02-25 12:54:37 +00:00
rlaphoenix
62d91a3e77 Replace log.info calls with console.log calls
I've moved log.info calls to console.log calls to reduce conflicts of logs at the same time as console refreshes, but also to reduce unnecessary log level text being printed to the console.

We don't need to know if a log is an `info` level log, but I've kept log.error's and such as we would want to know if a log is an error log and such.
2023-02-25 12:11:17 +00:00
rlaphoenix
3e1a067724 Override the default traceback with rich traceback 2023-02-25 11:53:44 +00:00
rlaphoenix
b8f3118775 Replace version logs with new ASCII banner log 2023-02-25 11:51:03 +00:00
rlaphoenix
f1864ad63c Replace logging handler with ComfyRichHandler
This changes all logs via logging to be printed to the rich console instead. Specifically, using my custom ComfyRichHandler making the logs padded horizontally.

In this change the time is no longer printed. The log level is still printed but it's now the full log name in bold.
2023-02-25 11:47:39 +00:00
rlaphoenix
8d626822cb Remove coloredlogs and now unused log constants 2023-02-25 11:46:03 +00:00
rlaphoenix
77c16f557c Replace logging FileHandler with console.save_text 2023-02-25 11:38:02 +00:00
rlaphoenix
34a2a8e4e6 Create custom Comfy versions of Console, LogRender, and RichHandler
These add a bit of margin around all console prints/logs. It makes the logs feel a bit more comfortable rather than being crammed edge-to-edge in the terminal.

The methods used here are by no means good, but they work quite well. If you can find a better way to do it, please make a pull request.
2023-02-25 11:33:42 +00:00
rlaphoenix
6eac499ae0 Add new config option to set the terminal bg color
This is a hacky way to do it, but it works surprisingly well, considering there's no true way to modify a terminal's fully color scheme.
2023-02-25 11:29:46 +00:00
rlaphoenix
01e419d52c Create custom-themed 80-width rich console 2023-02-25 11:27:29 +00:00
rlaphoenix
0f0000bdd0 Bump to v1.4.0 2023-02-25 23:05:14 +00:00
rlaphoenix
7958ad5e7c Create blank config if it did not exist 2023-02-25 23:01:11 +00:00
rlaphoenix
a8694cb049 Disable Insecure Request Warnings
These seem to occur when using HTTP+S proxies when connecting to a HTTPS URL. E.g., NordVPN proxies to https://google.com. While not ideal, we can't solve this solution and the warning logs are quite annoying.
2023-02-25 11:56:23 +00:00
rlaphoenix
c6976a7112 Move --log from the dl cmd to the root cmd 2023-02-24 19:54:05 +00:00
rlaphoenix
4f1cff681c Increase connection pool limit to accommodate Byte-Range dls 2023-02-24 19:46:26 +00:00
rlaphoenix
ad82eab712 Pad/depad data when decrypting with ClearKey DRM 2023-02-23 18:19:51 +00:00
rlaphoenix
45c9ba5198 Add support for data URIs from HLS playlists in ClearKey 2023-02-23 18:19:51 +00:00
rlaphoenix
221cd1c283 Fix JOC check on HLS playlists with no audio channel info 2023-02-23 18:19:51 +00:00
rlaphoenix
1f86775ac9 Add support for segment downloads with byte-ranges
Adds support for HLS's EXT-X-BYTERANGE and DASH's SegmentBase.
2023-02-23 18:19:51 +00:00
rlaphoenix
55da41c74f Remove byte_range param on aria2c downloader
Turns out, even if you manually set the Range header AND the server has full support, it does not work. It will act like it works, but it seems internally aria2c gets confused on what bytes it requested, what it returned, and it will either just download the full file, or the range requested (but still complain, and freeze!).

Yikes.
2023-02-23 16:47:14 +00:00
rlaphoenix
da1beae28f Bump to v1.3.1 2023-02-23 09:25:34 +00:00
rlaphoenix
2aea4549ce Bump to v1.3.0 2023-02-22 04:39:42 +00:00
rlaphoenix
2ad3f04a5e Use the session DRM as the initial DRM for HLS
The variant-playlist may have DRM information that won't be in the invariant (stream) playlist. We need to begin with this DRM data if available.
2023-02-22 04:30:24 +00:00
rlaphoenix
c1f716cb6c Drop support for Python 3.8 2023-02-22 03:43:22 +00:00
rlaphoenix
f21aa5aac5 Silence aria2c when downloading segmented streams
It conflicts with the TQDM progress bar, it's also not really useful information.
2023-02-22 03:06:53 +00:00
rlaphoenix
4406e3bbab Add ability to silence aria2c's output 2023-02-22 03:06:17 +00:00
rlaphoenix
0913b0dda6 Add ability to set extra arguments with aria2c 2023-02-22 03:01:54 +00:00