+ Replaced mp4decrypt with shaka-packager
+ Fix logger not correctly setting level from arguments
+ switched all os.system to subprocess.Popen
+ extra verbosity, external commands will now print their output to make debugging much MUCH easier
+ Fixed a problem with shaka-packager failing on files with a comma
+ adds the feature from the `id-as-course-name` branch to use the course id as the output directory name instead of the course name. this is useful to reduce the path length
+ Updated readme to reflect recent code changes
+ Add colored console logging
+ Add file logging
+ Refactor code
+ Add `--log-level` argument
+ Moved constant variables to separate file
+ Renamed some variables to be consistent throughout the program (`concurrent_connections` -> `concurrent_downloads`, `access_token` -> `bearer_token`)
+ If a keyfile isnt detected, we only warn the user instead of warning and exiting
+ External links are now written to their own shortcut file (they are still written to a single file still also) (#26)
+ Arguments `load-from-file` and `save-to-file` are no longer suppressed
+ Added Quiz URL
+ bump version
+ extract_kid method will raise an error if the file does not exist
+ If KID extraction fails, the lecture will be skipped instead of causing the program to exit
+ Use proper exit code of 1 on errors
+ Added error handling for subscription based course info extraction failure
+ Slightly more verbose login failure message
+ Updates to README to improve clarification among other things
+ New requirements: `beautifulsoup4` and `lxml`
+ Added support for downloading courses included in subscription plans
+ Updated README to reflect changes
+ Update sanitization regex to clean exclaimation points
+ Update _sanitize method to use _clean method
+ Moved lecture file exist check to parse method, this will now also check if html files exist
+ Update chapter folder titles to use - for separating number from name