rlaphoenix
1b1412d498
Fix byte range calculation on HLS downloads
...
It was off by one. The final calculation for the right-side range needed to be converted from one-index to zero-index.
2023-03-04 12:18:19 +00:00
rlaphoenix
318832e6b2
Store DRM in the track.drm property in HLS and DASH
2023-03-04 11:49:53 +00:00
rlaphoenix
f8166f098c
Apply threading lock to HLS DRM preparation
...
Without this, if two threads started at the same time there was a very good chance they would run the code and license twice, which is unnecessary.
2023-03-04 11:41:10 +00:00
rlaphoenix
0bceb772c2
Handle exceptions in user's Service license funcs
2023-03-04 11:23:58 +00:00
rlaphoenix
d9471f886f
Raise exceptions in prepare_drm instead of using sys.exit(1)
2023-03-04 11:22:51 +00:00
rlaphoenix
4b330c0478
Implement CEKNotFound and EmptyLicense exceptions to Widevine
2023-03-04 11:18:28 +00:00
rlaphoenix
c3a22431f0
Fix possible soft-lock in HLS if Queue is left empty after error
2023-03-04 11:11:20 +00:00
rlaphoenix
7df6aa42b4
Ignore Insufficient bits warning from shaka
2023-03-04 02:31:23 +00:00
rlaphoenix
9fff14af30
Fix regression that broke pproxy
2023-03-03 08:53:28 +00:00
rlaphoenix
19ca567019
Only use captured aria2c output if available
2023-03-03 07:54:31 +00:00
rlaphoenix
d964dde4d5
Don't pre-allocate file-space for segmented downloads
2023-03-03 07:52:13 +00:00
rlaphoenix
a3efadf00b
Fix aria2c's segmented check for DASH/HLS
2023-03-03 07:52:13 +00:00
rlaphoenix
714e9af99a
Don't print traceback of subprocess errors on download failures
...
Since we now have pretty logs for them, the exception (which would be a CalledProcessError) would be generally pointless. However, the return code may be useful so that is kept.
2023-03-03 07:52:13 +00:00
rlaphoenix
9d6adec707
Fix printing of shaka-packager logs
2023-03-03 07:52:13 +00:00
rlaphoenix
9e23ee13bb
Remove silent args in aria2c calls for HLS/DASH
2023-03-03 07:52:13 +00:00
rlaphoenix
432a1122c5
Fix printing of aria2c logs when capturing progress
2023-03-03 07:52:13 +00:00
rlaphoenix
b2bcaf97a2
Remove double newline after ASCII banner
2023-03-02 16:24:54 +00:00
rlaphoenix
cb1a7988f4
Fix centering of project url in ASCII banner
2023-03-02 16:24:01 +00:00
rlaphoenix
3456e24846
State full 'Episode' text if there's no episode name
2023-03-02 16:19:46 +00:00
rlaphoenix
f8a8309628
Fix verbose episode listings if there's no episode name
2023-03-02 16:17:20 +00:00
rlaphoenix
fc3e49baf6
Update Changelog for v2.0.0
2023-03-01 22:06:08 +00:00
rlaphoenix
46cb1ba0fa
Bump to v2.0.0
2023-03-01 22:05:52 +00:00
rlaphoenix
0b1f327a6c
Update config documentation on the basic proxy provider
2023-03-01 21:26:52 +00:00
rlaphoenix
d75996f6e4
Add title download time elapsed to finish log
2023-03-01 16:06:55 +00:00
rlaphoenix
7ee5e71075
Move download time elapsed code to utilities
2023-03-01 16:06:20 +00:00
rlaphoenix
7b7be47f7d
Clean up residual files on download stops and fails
2023-03-01 11:19:32 +00:00
rlaphoenix
9f48aab80c
Shutdown HLS & DASH dl pool, pass exceptions to dl
...
This results in a noticeably faster speed cancelling segmented track downloads on CTRL+C and Errors. It's also reducing code duplication as the dl code will now handle the exception and cleanup for them.
This also simplifies the STOPPING/STOPPED and FAILING/FAILED status messages by quite a bit.
2023-03-01 11:08:52 +00:00
rlaphoenix
fbe78308eb
Handle download worker exceptions outside thread loop
...
This is so that I can start to log information after the track listing. It's also not necessary to have the try catch within the loop, when both methods will have exited the loop.
2023-03-01 11:08:52 +00:00
rlaphoenix
624bb6fe75
Only calculate DASH/HLS dl speed if dl sizes are available
2023-03-01 11:08:52 +00:00
rlaphoenix
3a98c93f03
Support CTRL+C on URL downloads, use FAILED/STOPPED messages
2023-03-01 11:08:52 +00:00
rlaphoenix
6a65617179
Reduce the download stop check to one if check in dl
2023-03-01 08:55:40 +00:00
rlaphoenix
840db6e689
Move segment merging from dl to DASH/HLS classes
2023-03-01 08:54:35 +00:00
rlaphoenix
d07fedbbe1
Move Widevine DRM prep for URL downloads before download
2023-03-01 08:44:50 +00:00
rlaphoenix
fb49210b5a
Remove explicit dependency on colorama
...
It's not used by devine itself, but it's still a sub-dependency. Remove from being an explicit dependency in case the sub-dependencies ever remove it as well.
2023-03-01 08:35:42 +00:00
rlaphoenix
a841dbe2ab
Remove dependency on tqdm
2023-03-01 08:33:40 +00:00
rlaphoenix
f4ad7a2e6c
Mark track as stopping when skipping segments
2023-02-28 18:14:03 +00:00
rlaphoenix
b482f86bb3
Skip post-download operations if dl stop event is set
2023-02-28 18:05:04 +00:00
rlaphoenix
383e7d9647
Add full support for CTRL+C on HLS and DASH
2023-02-28 18:05:04 +00:00
rlaphoenix
8365d798a4
Pass shaka-packager & aria CTRL+C to caller as KeyboardInterrupt()s
2023-02-28 18:05:04 +00:00
rlaphoenix
ad1990cc42
Print a download cancelled message on CTRL+C
2023-02-28 18:05:04 +00:00
rlaphoenix
53c005f727
Remove unnecessary dl stop event set on CTRL+C
2023-02-28 18:05:04 +00:00
rlaphoenix
9cfda3bb9c
Don't shutdown pool or the for loop will lock
...
Since I'm using `futures.as_completed()`, it will never ever for loop over all tracks and segments and will forever be stuck in the primary thread of the operation. I.e., main thread for the download track threads, or the track thread for the download segment threads.
I've also removed all future cancelled checks as they will never be cancelled before they get the chance to run, because no future cancel calls are made anymore.
2023-02-28 18:05:03 +00:00
rlaphoenix
51fb7920c9
Mark track as skipped if it never got a chance to start downloading
2023-02-28 16:39:33 +00:00
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