81 Commits

Author SHA1 Message Date
Puyodead1
6c2690b856 Fixed an unexpected error where the program would try to execute the ffmpeg.py file instead of the .exe during mux process 2021-05-27 18:22:51 -04:00
Puyodead1
f8521fd84c remove todo tag 2021-05-27 18:10:38 -04:00
Puyodead1
5ffef4736e HLS parsing for 1080p+ quality
+ Added a new command argument ``--skip-hls`` to skip parsing hls playlists
+ Updated README to reflect code changes
2021-05-27 17:38:29 -04:00
Puyodead1
b7b27419fd Properly catch connection error and retry (maybe) 2021-05-26 23:39:09 -04:00
Puyodead1
b667420dc2 Removed unused method, update description for quality argument 2021-05-26 23:28:49 -04:00
Puyodead1
2667629c93 Big Changes
- Removed the old ``dashdownloader_multisegment.py`` file
- Removed the ``downloader.py`` file
+ Added missing requirement to ``requirements.txt``
+ Added sanitization class
+ Updated ``vtt_to_srt.py`` to use path.join for better cross-platform support
+ Updated README to reflect code changes
- Removed the quality restriction since there are some wacky non-standard qualities and I can't possibly predict and list them all :P
+ Changed the way fallback qualities are selected so it selects the closest quality to the requested one (ex. you want 576 but the closest are 480 and 720, 576 will be selected since its the closer to 576)
+ Switched to sessions
+ Program no longer quits if decryption key isn't found, we continue downloading segments, unencrypted video, and assets
+ Program will quit before starting downloads if the keyfile doesn't exist
+ Added an argument to keep vtt caption files ``--keep-vtt``
+ Properly handle large courses (code credit to r0oth3x49) (Fixes #18)
+ Updated parsing for course data (modified from code by r0oth3x49)

This update should be considered as unstable, it will probably have problems. If you find an issue, please create a GitHub issue.
2021-05-26 23:18:52 -04:00
Biplob Sutradhar
5af8a95925
Failed to parse creation_time fix both plf 2021-05-25 16:19:12 +06:00
Biplob Sutradhar
840a6f6815
Failed to parse creation_time fix 2021-05-25 12:04:12 +06:00
Biplob Sutradhar
86fa241ded
path 2021-05-24 22:29:00 +06:00
Puyodead1
7f399c71dd
Fix: stray thread arg 2021-05-21 21:31:24 -04:00
Puyodead1
9a1a318f93 Small bug fixes and removed experimental downloader
+ Fixed bug with video being downloaded in place of audio
+ Minor tweaks
- Removed the threaded downloader from main code, the current download system is the most reliable.
2021-05-21 19:50:39 -04:00
Puyodead1
aab19bf66f New Experimental Downloader, bug fixes, and small updates
+ Updated cleanup function to remove the entire temporary lecture folder instead of just leaving behind tons of empty folders
+ Fixed typo in mux function
+ Segment count is now properly calculated from segment timeline
+ Manifest is now parsed from the URL instead of being downloaded, this should be better for downloading multiple courses at once.
+ Fixed a bug where audio content_type would try to find a max quality
+ New Downloader: Threaded Downloader uses multiple threads to download files, this should improve download speeds greatly. By default, the threaded downloader is not used, you can use the threaded downloader by passing ``--use-threaded-downloader``. By default, it only uses 10 threads, you can set a custom number of threads with the ``--threads`` option
2021-05-21 13:38:24 -04:00
Puyodead1
88a411d708 Path updates
- Removed a few unused imports
+ Reworked the way paths are formed so they shouldn't be a problem on other operating systems

NOTE: the new dependencies in requirements.txt are NOT required at this time
2021-05-21 09:27:49 -04:00
Puyodead1
0782c42df7 Major Updates to performance and usage
+ You can now pass the course url to the -c argument instead of the course id
+ Fixed function doc tags
+ Added experimental support for business accounts (the program should auto detect the subdomain from the course url and use it for all requests, you shouldn't need to edit the file)
- Removed the useless creation time metadata from ffmpeg
+ Updated arguments, ``course_url`` is now a required argument
- ``course_url`` will no longer be pulled from the .env file, you can still use the .env for bearer tokens
+ Courses are now downloaded into folders titled by the course name instead of the course id
+ Updated README to reflect updates
+ Fixed a bug where external url files would be appended to each time a the downloader is restarted on a course
2021-05-20 22:34:56 -04:00
Puyodead1
ec3ba980b1 removed useless variable 2021-05-20 20:49:52 -04:00
Puyodead1
1a7314b62f added articles and external urls to the asset downloads (UNTESTED, only pushing to github to transfer between computers :P) 2021-05-20 10:45:28 -04:00
Puyodead1
c88414189b Fix: course directory not being created 2021-05-19 19:43:29 -04:00
Puyodead1
4803f46164 Course Folder
+ Course chapter folder are now placed in a folder, the name of the folder is the course id

**If you have any downloads in-progress, make a new folder and name it the course id, and move the chapter folders into it before starting the download again.**

Closes #8
2021-05-19 18:59:43 -04:00
Puyodead1
048fbe09bf Updates
+ Add ability to skip downloading lecture videos
+ You can now specify the Bearer token and course id as an argument to the program (see advanced usage)
+ Updated Advanced Usage section of readme
2021-05-19 17:50:20 -04:00
Puyodead1
77e57e324d remove a debug print 2021-05-19 17:01:46 -04:00
Puyodead1
5667c3df13 Add error handling and download retries for captions
+ Downloader will now raise an exception for failed requests
+ Captions will retry 3 times on a download failure before skipping
+ Catch errors from downloader
2021-05-19 17:00:10 -04:00
Puyodead1
6c5b7870a9 Subtitle Support
+ Added support for downloading subtitles (see readme for usage)
2021-05-19 15:59:49 -04:00
Puyodead1
a867f82f2b Asset Downloading and Quality Selection
+ Added arguments
+ You can specify the download quality, if the quality you request cant be found, it will fallback to the closest (ex. you want 144, but the lowest is 360 than 360 gets downloaded. you want 1080 but 720 is the highest, 720 gets downloaded)
Note: Non-DRM and DRM video have different quality availabilities, by the looks of it, DRM has a min of 360 and a max of 1080. Non-DRM has a low of 144, and a max of 720
2021-05-19 14:43:20 -04:00
Puyodead1
4568de9c43 Resolves #4
+ Added a catch for lectures that don't have a chapter
2021-05-19 12:51:29 -04:00
Puyodead1
f9acb2918a Resolves #3 2021-05-19 08:08:57 -04:00
Puyodead1
2e0acda71a sanitize chapter names 2021-05-18 22:20:36 -04:00
Puyodead1
7dde92005a just some small changes 2021-05-18 21:24:28 -04:00
Puyodead1
9a180c44c1 disable debug file reading 2021-05-18 20:48:41 -04:00
Puyodead1
c4a482dd87 fix some problems with drm downloads 2021-05-18 20:46:30 -04:00
Puyodead1
4ac19ea316 fix an error 2021-05-18 20:35:43 -04:00
Puyodead1
1d57644cdf download drm videos and non-drm videos, also added progress bar 2021-05-18 20:31:39 -04:00