61 Commits

Author SHA1 Message Date
Puyodead1
d9a72c8878 Limit the max characters for course and lecture names to 255 due to windows having a max of 260 2021-06-18 16:54:34 -04:00
Puyodead1
4ac49ec30d should i even add a commit message at this point? 2021-06-03 12:37:32 -04:00
Puyodead1
d7bfdda82e
Remove unused variable 2021-06-01 17:52:45 -04:00
Puyodead1
1d43d19a47
Merge pull request #27 from Puyodead1/feat-ytdlp
Feat: YT-DLP
2021-06-01 10:18:41 -04:00
Puyodead1
1d51b9be2f Fix: subscribed courses url missing portal name variable 2021-06-01 10:15:16 -04:00
Puyodead1
31e3802cb1 Fix: Append asset id to filename of assets
Fixes #25
2021-06-01 09:05:07 -04:00
Puyodead1
108d3bd19a Reduce max number of current downloads a user can specify 2021-05-30 17:34:03 -04:00
Puyodead1
2afef1cb41 Feat: Switch to yt-dlp for downloading HLS streams so we can use Aria2c
+ HLS streams are now downloaded with yt-dlp
- Removed FFMPEG download class
+ Added a new argument ``-cd``,``--concurrent-downloads`` to specify the max number of segments downloading at a time (default is 10)
+ Updated README to reflect code changes
2021-05-30 17:32:22 -04:00
Puyodead1
60addf51d9
Fix: FFMPEG check not being called
Resolves #23
2021-05-30 17:25:38 -04:00
Puyodead1
56e719b59f Feat: Switch to yt-dlp to avoid windows command line limitations 2021-05-30 16:49:29 -04:00
Puyodead1
c90f9c7584 Merge branch 'feat_performance_usage_improvements' 2021-05-28 23:07:59 -04:00
Puyodead1
9f3bda6c6c Revert "Merge branch 'master' into feat_aria2c"
This reverts commit e6dcde0335e8fdd7278dc72e9233034a5efc2748, reversing
changes made to 1ad4f1eddee0e34d028e3e74bf331a92a8388a36.
2021-05-28 23:05:54 -04:00
Puyodead1
e6dcde0335 Merge branch 'master' into feat_aria2c 2021-05-28 23:04:56 -04:00
Puyodead1
1ad4f1edde Feat: Info argument
+ Added info argument to print course information
+ Updated spacing of some text to be more 'tree' like and easier to read
2021-05-28 16:59:52 -04:00
Puyodead1
66aad0dc50 Fix: 1080p not being downloaded when selected 2021-05-28 15:28:03 -04:00
Puyodead1
1fa5bdba90 Fix: caption files having duplicated file extension 2021-05-28 10:19:37 -04:00
Puyodead1
6a2f237969
Add missing urls and methods
"My Courses" and collections
2021-05-28 10:09:50 -04:00
Puyodead1
4d428ea89d Add missing urls and methods for fetching "My Courses" and collections 2021-05-28 10:09:21 -04:00
Puyodead1
ee7be61f6a save external links 2021-05-28 09:42:40 -04:00
Puyodead1
f6ea730215 Remove unused variable and update some strings 2021-05-28 09:31:09 -04:00
Puyodead1
88c32ea55d Add checks for external tools a bug where assets would have their extension appended twice 2021-05-28 09:25:08 -04:00
Puyodead1
cffbcbaa0a Fix: TypeError when exception is caught by handle_segments method 2021-05-28 09:04:17 -04:00
Puyodead1
758f78831b Fix: incorrect worst quality being downloaded instead of best for non-drm videos with auto quality selection 2021-05-28 08:49:11 -04:00
Puyodead1
354b85e142 Fix downloaded files missing file extensions 2021-05-28 08:44:26 -04:00
Puyodead1
d20f15fb6a Use aria2c for asset downloading and non-drm lectures 2021-05-28 08:36:54 -04:00
Puyodead1
05c6c84d55 Remove unused function 2021-05-28 08:12:51 -04:00
Puyodead1
10b22a6e0b
Remove debug print 2021-05-27 22:02:45 -04:00
Puyodead1
56a1994443 remove a debug print 2021-05-27 21:59:12 -04:00
Puyodead1
3cc22520c8 Added Aria2c
Aria2c is now used for downloading segments as fast as possible (Closes #20)
2021-05-27 21:18:40 -04:00
Puyodead1
67748301de Renamed ffmpeg.py so it doesnt conflict with the ffmpeg command
Removed the .exe from ffmpeg commands and renamed ffmpeg.py to pyffmpeg.py so that the program will still work on linux based systems and not try to execute the ffmpeg python file
2021-05-27 18:28:06 -04:00
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