soraxas / echo360

Commandline tool for automated downloads of echo360 videos hosted by university
https://cs.tinyiu.com/echo360
MIT License
277 stars 52 forks source link

Failed to get m3u8 info for EchoCourse #32

Closed big-mat closed 3 years ago

big-mat commented 4 years ago

After line 5, I logged in to echo360, and then typed continue. I also tried without the --manal flag, and could get nowhere. I have python3 installed, but perhaps it is trying to use python 2.7?

matBo:echo360-master mat$ ./run.sh "https://echo360.org.au/lesson/1bd8f597-4d1e-4fae-a750-7af733c9b046" --firefox --output "~/Documents" --manual
> Echo360 Cloud platform detected
> This implies setup_credential, and using web_driver
>> Please login with your SSO details and type continue when logged in.
-----------------------------------------------------------------
 >> After you finished logging in, type 'continue' in the terminal.
> Type 'continue' and press [enter]
continue
>> I'm gonna assume you are responsible enough to had finished logged in by now ;)
>> Retrieving echo360 Course Info... Traceback (most recent call last):
  File "echo360.py", line 7, in <module>
    sys.exit(main())
  File "/.../echo360/main.py", line 349, in main
    downloader.download_all()
  File "/.../echo360/downloader.py", line 189, in download_all
    videos = self._course.get_videos().videos
  File "/.../echo360/echo360-master/echo360/course.py", line 129, in get_videos
    course_data_json = self._get_course_data()
  File "/.../echo360/echo360-master/echo360/course.py", line 197, in _get_course_data
    raise Exception("Error: Failed to get m3u8 info for EchoCourse!")
Exception: Error: Failed to get m3u8 info for EchoCourse!
matBo:echo360-master mat$
realCommitment commented 3 years ago

Hey guys, any update on this bug?

soraxas commented 3 years ago

@big-mat This module is both python2 and 3 compatible so it wouldn't matters

@realCommitment There's not enough information as the module is reporting exactly that: unable to retrieve course data from the given URL. You can run it with the --debug flag to look at the log file it dumps out (see instruction from other issues).

realCommitment commented 3 years ago

Problem demo: Log:

ravpn-266-2-student-ten-8-71-124:echo360 e$ ./run.sh https://echo360.org.au/section/3ea20db4-ef06-45c6-a3a1-780d7315df34/home --debug
> Echo360 Cloud platform detected
> This implies setup_credential, and using web_driver
>> Please login with your SSO details and type continue when logged in.
-----------------------------------------------------------------
DEBUG: binary_downloader link: ('https://chromedriver.storage.googleapis.com/2.38/chromedriver_mac64.zip', 'chromedriver_mac64.zip'), bin path: /Users/e/Code-projects/MIT-code-projects/SM4-code/lecture-capture/echo360/bin/chromedriver
DEBUG: POST http://127.0.0.1:53954/session {"capabilities": {"alwaysMatch": {"goog:chromeOptions": {"args": ["--window-size=1920x1080", "user-agent=Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25"], "extensions": []}, "browserName": "chrome", "platformName": "any"}, "firstMatch": [{}]}, "desiredCapabilities": {"goog:chromeOptions": {"args": ["--window-size=1920x1080", "user-agent=Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25"], "extensions": []}, "platform": "ANY", "browserName": "chrome", "version": ""}}
DEBUG: Starting new HTTP connection (1): 127.0.0.1:53954
DEBUG: http://127.0.0.1:53954 "POST /session HTTP/1.1" 200 844
DEBUG: Finished Request
DEBUG: >>> Download will use "chromedriver" webdriver from LOCAL executable <<<
DEBUG: POST http://127.0.0.1:53954/session/cfd0919f70ed3372a81c91ee63ca939e/url {"url": "https://echo360.org.au", "sessionId": "cfd0919f70ed3372a81c91ee63ca939e"}
DEBUG: http://127.0.0.1:53954 "POST /session/cfd0919f70ed3372a81c91ee63ca939e/url HTTP/1.1" 200 72
DEBUG: Finished Request
 >> After you finished logging into echo360 cloud, the window should be automatically redirected and continued. If it got stuck, please contact the author :)
DEBUG: GET http://127.0.0.1:53954/session/cfd0919f70ed3372a81c91ee63ca939e/cookie {"sessionId": "cfd0919f70ed3372a81c91ee63ca939e"}
DEBUG: http://127.0.0.1:53954 "GET /session/cfd0919f70ed3372a81c91ee63ca939e/cookie HTTP/1.1" 200 2170
DEBUG: Finished Request
DEBUG: POST http://127.0.0.1:53954/session/cfd0919f70ed3372a81c91ee63ca939e/window/current/size {"width": 0, "windowHandle": "current", "sessionId": "cfd0919f70ed3372a81c91ee63ca939e", "height": 0}
DEBUG: http://127.0.0.1:53954 "POST /session/cfd0919f70ed3372a81c91ee63ca939e/window/current/size HTTP/1.1" 200 72
DEBUG: Finished Request
>> I'm gonna assume you are responsible enough to had finished logged in by now ;)
>> Retrieving echo360 Course Info... DEBUG: POST http://127.0.0.1:53954/session/cfd0919f70ed3372a81c91ee63ca939e/url {"url": "https://echo360.org.au/section/3ea20db4-ef06-45c6-a3a1-780d7315df34/syllabus", "sessionId": "cfd0919f70ed3372a81c91ee63ca939e"}
DEBUG: http://127.0.0.1:53954 "POST /session/cfd0919f70ed3372a81c91ee63ca939e/url HTTP/1.1" 200 72
DEBUG: Finished Request
DEBUG: GET http://127.0.0.1:53954/session/cfd0919f70ed3372a81c91ee63ca939e/source {"sessionId": "cfd0919f70ed3372a81c91ee63ca939e"}
DEBUG: http://127.0.0.1:53954 "GET /session/cfd0919f70ed3372a81c91ee63ca939e/source HTTP/1.1" 200 21818
DEBUG: Finished Request
DEBUG: Dumping course page at https://echo360.org.au/section/3ea20db4-ef06-45c6-a3a1-780d7315df34/syllabus: <!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head>
    <title>404 Not Found</title>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />

<link rel="stylesheet" type="text/css" href="/assets/build/cd439ee34e2fb46e86832d70c1b772bd-vendor.css" />
<link rel="stylesheet" type="text/css" href="/assets/build/1a6f65f667ec225f7b47641cc7d4d466-common.css" />
<link rel="stylesheet" type="text/css" href="/assets/build/8496e1cb98e5a265edfa035f849903f8-pages.css" />
    <link rel="shortcut icon" type="image/png" href="/assets/images/dc3de22686cbd96e512d907bb4a6edd8-favicon.png" />
    <script type="text/javascript" src="/jsmsgs"></script>
    <script type="text/javascript" src="/assets/vendor/react/3016b8df44b2ffbb4e71be81b9ddff6c-styledComponents.react-bundle.js"></script>
  <style data-styled="" data-styled-version="4.1.3"></style><style type="text/css">.PresetDateRangePicker_panel {
  padding: 0 22px 11px
}
.PresetDateRangePicker_button {
  position: relative;
  height: 100%;
  text-align: center;
  background: 0 0;
  border: 2px solid #00a699;
  color: #00a699;
  padding: 4px 12px;
  margin-right: 8px;
  font: inherit;
  font-weight: 700;
  line-height: normal;
  overflow: visible;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  cursor: pointer
}
.PresetDateRangePicker_button:active {
  outline: 0
}
.PresetDateRangePicker_button__selected {
  color: #fff;
  background: #00a699
}
.SingleDatePickerInput {
  display: inline-block;
  background-color: #fff
}
.SingleDatePickerInput__withBorder {
  border-radius: 2px;
  border: 1px solid #dbdbdb
}
.SingleDatePickerInput__rtl {
  direction: rtl
}
.SingleDatePickerInput__disabled {
  background-color: #f2f2f2
}
.SingleDatePickerInput__block {
  display: block
}
.SingleDatePickerInput__showClearDate {
  padding-right: 30px
}
.SingleDatePickerInput_clearDate {
  background: 0 0;
  border: 0;
  color: inherit;
  font: inherit;
  line-height: normal;
  overflow: visible;
  cursor: pointer;
  padding: 10px;
  margin: 0 10px 0 5px;
  position: absolute;
  right: 0;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%)
}
.SingleDatePickerInput_clearDate__default:focus,
.SingleDatePickerInput_clearDate__default:hover {
  background: #dbdbdb;
  border-radius: 50%
}
.SingleDatePickerInput_clearDate__small {
  padding: 6px
}
.SingleDatePickerInput_clearDate__hide {
  visibility: hidden
}
.SingleDatePickerInput_clearDate_svg {
  fill: #82888a;
  height: 12px;
  width: 15px;
  vertical-align: middle
}
.SingleDatePickerInput_clearDate_svg__small {
  height: 9px
}
.SingleDatePickerInput_calendarIcon {
  background: 0 0;
  border: 0;
  color: inherit;
  font: inherit;
  line-height: normal;
  overflow: visible;
  cursor: pointer;
  display: inline-block;
  vertical-align: middle;
  padding: 10px;
  margin: 0 5px 0 10px
}
.SingleDatePickerInput_calendarIcon_svg {
  fill: #82888a;
  height: 15px;
  width: 14px;
  vertical-align: middle
}
.SingleDatePicker {
  position: relative;
  display: inline-block
}
.SingleDatePicker__block {
  display: block
}
.SingleDatePicker_picker {
  z-index: 1;
  background-color: #fff;
  position: absolute
}
.SingleDatePicker_picker__rtl {
  direction: rtl
}
.SingleDatePicker_picker__directionLeft {
  left: 0
}
.SingleDatePicker_picker__directionRight {
  right: 0
}
.SingleDatePicker_picker__portal {
  background-color: rgba(0,0,0,.3);
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%
}
.SingleDatePicker_picker__fullScreenPortal {
  background-color: #fff
}
.SingleDatePicker_closeButton {
  background: 0 0;
  border: 0;
  color: inherit;
  font: inherit;
  line-height: normal;
  overflow: visible;
  cursor: pointer;
  position: absolute;
  top: 0;
  right: 0;
  padding: 15px;
  z-index: 2
}
.SingleDatePicker_closeButton:focus,
.SingleDatePicker_closeButton:hover {
  color: darken(#cacccd,10%);
  text-decoration: none
}
.SingleDatePicker_closeButton_svg {
  height: 15px;
  width: 15px;
  fill: #cacccd
}
.DayPickerKeyboardShortcuts_buttonReset {
  background: 0 0;
  border: 0;
  border-radius: 0;
  color: inherit;
  font: inherit;
  line-height: normal;
  overflow: visible;
  padding: 0;
  cursor: pointer;
  font-size: 14px
}
.DayPickerKeyboardShortcuts_buttonReset:active {
  outline: 0
}
.DayPickerKeyboardShortcuts_show {
  width: 33px;
  height: 26px;
  position: absolute;
  z-index: 2
}
.DayPickerKeyboardShortcuts_show::before {
  content: "";
  display: block;
  position: absolute
}
.DayPickerKeyboardShortcuts_show__bottomRight {
  bottom: 0;
  right: 0
}
.DayPickerKeyboardShortcuts_show__bottomRight::before {
  border-top: 26px solid transparent;
  border-right: 33px solid #00a699;
  bottom: 0;
  right: 0
}
.DayPickerKeyboardShortcuts_show__bottomRight:hover::before {
  border-right: 33px solid #008489
}
.DayPickerKeyboardShortcuts_show__topRight {
  top: 0;
  right: 0
}
.DayPickerKeyboardShortcuts_show__topRight::before {
  border-bottom: 26px solid transparent;
  border-right: 33px solid #00a699;
  top: 0;
  right: 0
}
.DayPickerKeyboardShortcuts_show__topRight:hover::before {
  border-right: 33px solid #008489
}
.DayPickerKeyboardShortcuts_show__topLeft {
  top: 0;
  left: 0
}
.DayPickerKeyboardShortcuts_show__topLeft::before {
  border-bottom: 26px solid transparent;
  border-left: 33px solid #00a699;
  top: 0;
  left: 0
}
.DayPickerKeyboardShortcuts_show__topLeft:hover::before {
  border-left: 33px solid #008489
}
.DayPickerKeyboardShortcuts_showSpan {
  color: #fff;
  position: absolute
}
.DayPickerKeyboardShortcuts_showSpan__bottomRight {
  bottom: 0;
  right: 5px
}
.DayPickerKeyboardShortcuts_showSpan__topRight {
  top: 1px;
  right: 5px
}
.DayPickerKeyboardShortcuts_showSpan__topLeft {
  top: 1px;
  left: 5px
}
.DayPickerKeyboardShortcuts_panel {
  overflow: auto;
  background: #fff;
  border: 1px solid #dbdbdb;
  border-radius: 2px;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  z-index: 2;
  padding: 22px;
  margin: 33px;
  text-align: left
}
.DayPickerKeyboardShortcuts_title {
  font-size: 16px;
  font-weight: 700;
  margin: 0
}
.DayPickerKeyboardShortcuts_list {
  list-style: none;
  padding: 0;
  font-size: 14px
}
.DayPickerKeyboardShortcuts_close {
  position: absolute;
  right: 22px;
  top: 22px;
  z-index: 2
}
.DayPickerKeyboardShortcuts_close:active {
  outline: 0
}
.DayPickerKeyboardShortcuts_closeSvg {
  height: 15px;
  width: 15px;
  fill: #cacccd
}
.DayPickerKeyboardShortcuts_closeSvg:focus,
.DayPickerKeyboardShortcuts_closeSvg:hover {
  fill: #82888a
}
.CalendarDay {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  cursor: pointer;
  font-size: 14px;
  text-align: center
}
.CalendarDay:active {
  outline: 0
}
.CalendarDay__defaultCursor {
  cursor: default
}
.CalendarDay__default {
  border: 1px solid #e4e7e7;
  color: #484848;
  background: #fff
}
.CalendarDay__default:hover {
  background: #e4e7e7;
  border: 1px solid #e4e7e7;
  color: inherit
}
.CalendarDay__hovered_offset {
  background: #f4f5f5;
  border: 1px double #e4e7e7;
  color: inherit
}
.CalendarDay__outside {
  border: 0;
  background: #fff;
  color: #484848
}
.CalendarDay__outside:hover {
  border: 0
}
.CalendarDay__blocked_minimum_nights {
  background: #fff;
  border: 1px solid #eceeee;
  color: #cacccd
}
.CalendarDay__blocked_minimum_nights:active,
.CalendarDay__blocked_minimum_nights:hover {
  background: #fff;
  color: #cacccd
}
.CalendarDay__highlighted_calendar {
  background: #ffe8bc;
  color: #484848
}
.CalendarDay__highlighted_calendar:active,
.CalendarDay__highlighted_calendar:hover {
  background: #ffce71;
  color: #484848
}
.CalendarDay__selected_span {
  background: #66e2da;
  border: 1px double #33dacd;
  color: #fff
}
.CalendarDay__selected_span:active,
.CalendarDay__selected_span:hover {
  background: #33dacd;
  border: 1px double #33dacd;
  color: #fff
}
.CalendarDay__selected,
.CalendarDay__selected:active,
.CalendarDay__selected:hover {
  background: #00a699;
  border: 1px double #00a699;
  color: #fff
}
.CalendarDay__hovered_span,
.CalendarDay__hovered_span:hover {
  background: #b2f1ec;
  border: 1px double #80e8e0;
  color: #007a87
}
.CalendarDay__hovered_span:active {
  background: #80e8e0;
  border: 1px double #80e8e0;
  color: #007a87
}
.CalendarDay__blocked_calendar,
.CalendarDay__blocked_calendar:active,
.CalendarDay__blocked_calendar:hover {
  background: #cacccd;
  border: 1px solid #cacccd;
  color: #82888a
}
.CalendarDay__blocked_out_of_range,
.CalendarDay__blocked_out_of_range:active,
.CalendarDay__blocked_out_of_range:hover {
  background: #fff;
  border: 1px solid #e4e7e7;
  color: #cacccd
}
.CalendarDay__hovered_start_first_possible_end {
  background: #eceeee;
  border: 1px double #eceeee
}
.CalendarDay__hovered_start_blocked_min_nights {
  background: #eceeee;
  border: 1px double #e4e7e7
}
.CalendarMonth {
  background: #fff;
  text-align: center;
  vertical-align: top;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none
}
.CalendarMonth_table {
  border-collapse: collapse;
  border-spacing: 0
}
.CalendarMonth_verticalSpacing {
  border-collapse: separate
}
.CalendarMonth_caption {
  color: #484848;
  font-size: 18px;
  text-align: center;
  padding-top: 22px;
  padding-bottom: 37px;
  caption-side: initial
}
.CalendarMonth_caption__verticalScrollable {
  padding-top: 12px;
  padding-bottom: 7px
}
.CalendarMonthGrid {
  background: #fff;
  text-align: left;
  z-index: 0
}
.CalendarMonthGrid__animating {
  z-index: 1
}
.CalendarMonthGrid__horizontal {
  position: absolute;
  left: 9px
}
.CalendarMonthGrid__vertical {
  margin: 0 auto
}
.CalendarMonthGrid__vertical_scrollable {
  margin: 0 auto;
  overflow-y: scroll
}
.CalendarMonthGrid_month__horizontal {
  display: inline-block;
  vertical-align: top;
  min-height: 100%
}
.CalendarMonthGrid_month__hideForAnimation {
  position: absolute;
  z-index: -1;
  opacity: 0;
  pointer-events: none
}
.CalendarMonthGrid_month__hidden {
  visibility: hidden
}
.DayPickerNavigation {
  position: relative;
  z-index: 2
}
.DayPickerNavigation__horizontal {
  height: 0
}
.DayPickerNavigation__verticalDefault {
  position: absolute;
  width: 100%;
  height: 52px;
  bottom: 0;
  left: 0
}
.DayPickerNavigation__verticalScrollableDefault {
  position: relative
}
.DayPickerNavigation_button {
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  border: 0;
  padding: 0;
  margin: 0
}
.DayPickerNavigation_button__default {
  border: 1px solid #e4e7e7;
  background-color: #fff;
  color: #757575
}
.DayPickerNavigation_button__default:focus,
.DayPickerNavigation_button__default:hover {
  border: 1px solid #c4c4c4
}
.DayPickerNavigation_button__default:active {
  background: #f2f2f2
}
.DayPickerNavigation_button__disabled {
  cursor: default;
  border: 1px solid #f2f2f2
}
.DayPickerNavigation_button__disabled:focus,
.DayPickerNavigation_button__disabled:hover {
  border: 1px solid #f2f2f2
}
.DayPickerNavigation_button__disabled:active {
  background: 0 0
}
.DayPickerNavigation_button__horizontalDefault {
  position: absolute;
  top: 18px;
  line-height: .78;
  border-radius: 3px;
  padding: 6px 9px
}
.DayPickerNavigation_leftButton__horizontalDefault {
  left: 22px
}
.DayPickerNavigation_rightButton__horizontalDefault {
  right: 22px
}
.DayPickerNavigation_button__verticalDefault {
  padding: 5px;
  background: #fff;
  -webkit-box-shadow: 0 0 5px 2px rgba(0,0,0,.1);
          box-shadow: 0 0 5px 2px rgba(0,0,0,.1);
  position: relative;
  display: inline-block;
  text-align: center;
  height: 100%;
  width: 50%
}
.DayPickerNavigation_nextButton__verticalDefault {
  border-left: 0
}
.DayPickerNavigation_nextButton__verticalScrollableDefault {
  width: 100%
}
.DayPickerNavigation_svg__horizontal {
  height: 19px;
  width: 19px;
  fill: #82888a;
  display: block
}
.DayPickerNavigation_svg__vertical {
  height: 42px;
  width: 42px;
  fill: #484848
}
.DayPickerNavigation_svg__disabled {
  fill: #f2f2f2
}
.DayPicker {
  background: #fff;
  position: relative;
  text-align: left
}
.DayPicker__horizontal {
  background: #fff
}
.DayPicker__verticalScrollable {
  height: 100%
}
.DayPicker__hidden {
  visibility: hidden
}
.DayPicker__withBorder {
  -webkit-box-shadow: 0 2px 6px rgba(0,0,0,.05),0 0 0 1px rgba(0,0,0,.07);
          box-shadow: 0 2px 6px rgba(0,0,0,.05),0 0 0 1px rgba(0,0,0,.07);
  border-radius: 3px
}
.DayPicker_portal__horizontal {
  -webkit-box-shadow: none;
          box-shadow: none;
  position: absolute;
  left: 50%;
  top: 50%
}
.DayPicker_portal__vertical {
  position: initial
}
.DayPicker_focusRegion {
  outline: 0
}
.DayPicker_calendarInfo__horizontal,
.DayPicker_wrapper__horizontal {
  display: inline-block;
  vertical-align: top
}
.DayPicker_weekHeaders {
  position: relative
}
.DayPicker_weekHeaders__horizontal {
  margin-left: 9px
}
.DayPicker_weekHeader {
  color: #757575;
  position: absolute;
  top: 62px;
  z-index: 2;
  text-align: left
}
.DayPicker_weekHeader__vertical {
  left: 50%
}
.DayPicker_weekHeader__verticalScrollable {
  top: 0;
  display: table-row;
  border-bottom: 1px solid #dbdbdb;
  background: #fff;
  margin-left: 0;
  left: 0;
  width: 100%;
  text-align: center
}
.DayPicker_weekHeader_ul {
  list-style: none;
  margin: 1px 0;
  padding-left: 0;
  padding-right: 0;
  font-size: 14px
}
.DayPicker_weekHeader_li {
  display: inline-block;
  text-align: center
}
.DayPicker_transitionContainer {
  position: relative;
  overflow: hidden;
  border-radius: 3px
}
.DayPicker_transitionContainer__horizontal {
  -webkit-transition: height .2s ease-in-out;
  transition: height .2s ease-in-out
}
.DayPicker_transitionContainer__vertical {
  width: 100%
}
.DayPicker_transitionContainer__verticalScrollable {
  padding-top: 20px;
  height: 100%;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  overflow-y: scroll
}
.DateInput {
  margin: 0;
  padding: 0;
  background: #fff;
  position: relative;
  display: inline-block;
  width: 130px;
  vertical-align: middle
}
.DateInput__small {
  width: 97px
}
.DateInput__block {
  width: 100%
}
.DateInput__disabled {
  background: #f2f2f2;
  color: #dbdbdb
}
.DateInput_input {
  font-weight: 200;
  font-size: 19px;
  line-height: 24px;
  color: #484848;
  background-color: #fff;
  width: 100%;
  padding: 11px 11px 9px;
  border: 0;
  border-top: 0;
  border-right: 0;
  border-bottom: 2px solid transparent;
  border-left: 0;
  border-radius: 0
}
.DateInput_input__small {
  font-size: 15px;
  line-height: 18px;
  letter-spacing: .2px;
  padding: 7px 7px 5px
}
.DateInput_input__regular {
  font-weight: auto
}
.DateInput_input__readOnly {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none
}
.DateInput_input__focused {
  outline: 0;
  background: #fff;
  border: 0;
  border-top: 0;
  border-right: 0;
  border-bottom: 2px solid #008489;
  border-left: 0
}
.DateInput_input__disabled {
  background: #f2f2f2;
  font-style: italic
}
.DateInput_screenReaderMessage {
  border: 0;
  clip: rect(0,0,0,0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px
}
.DateInput_fang {
  position: absolute;
  width: 20px;
  height: 10px;
  left: 22px;
  z-index: 2
}
.DateInput_fangShape {
  fill: #fff
}
.DateInput_fangStroke {
  stroke: #dbdbdb;
  fill: transparent
}
.DateRangePickerInput {
  background-color: #fff;
  display: inline-block
}
.DateRangePickerInput__disabled {
  background: #f2f2f2
}
.DateRangePickerInput__withBorder {
  border-radius: 2px;
  border: 1px solid #dbdbdb
}
.DateRangePickerInput__rtl {
  direction: rtl
}
.DateRangePickerInput__block {
  display: block
}
.DateRangePickerInput__showClearDates {
  padding-right: 30px
}
.DateRangePickerInput_arrow {
  display: inline-block;
  vertical-align: middle;
  color: #484848
}
.DateRangePickerInput_arrow_svg {
  vertical-align: middle;
  fill: #484848;
  height: 24px;
  width: 24px
}
.DateRangePickerInput_clearDates {
  background: 0 0;
  border: 0;
  color: inherit;
  font: inherit;
  line-height: normal;
  overflow: visible;
  cursor: pointer;
  padding: 10px;
  margin: 0 10px 0 5px;
  position: absolute;
  right: 0;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%)
}
.DateRangePickerInput_clearDates__small {
  padding: 6px
}
.DateRangePickerInput_clearDates_default:focus,
.DateRangePickerInput_clearDates_default:hover {
  background: #dbdbdb;
  border-radius: 50%
}
.DateRangePickerInput_clearDates__hide {
  visibility: hidden
}
.DateRangePickerInput_clearDates_svg {
  fill: #82888a;
  height: 12px;
  width: 15px;
  vertical-align: middle
}
.DateRangePickerInput_clearDates_svg__small {
  height: 9px
}
.DateRangePickerInput_calendarIcon {
  background: 0 0;
  border: 0;
  color: inherit;
  font: inherit;
  line-height: normal;
  overflow: visible;
  cursor: pointer;
  display: inline-block;
  vertical-align: middle;
  padding: 10px;
  margin: 0 5px 0 10px
}
.DateRangePickerInput_calendarIcon_svg {
  fill: #82888a;
  height: 15px;
  width: 14px;
  vertical-align: middle
}
.DateRangePicker {
  position: relative;
  display: inline-block
}
.DateRangePicker__block {
  display: block
}
.DateRangePicker_picker {
  z-index: 1;
  background-color: #fff;
  position: absolute
}
.DateRangePicker_picker__rtl {
  direction: rtl
}
.DateRangePicker_picker__directionLeft {
  left: 0
}
.DateRangePicker_picker__directionRight {
  right: 0
}
.DateRangePicker_picker__portal {
  background-color: rgba(0,0,0,.3);
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%
}
.DateRangePicker_picker__fullScreenPortal {
  background-color: #fff
}
.DateRangePicker_closeButton {
  background: 0 0;
  border: 0;
  color: inherit;
  font: inherit;
  line-height: normal;
  overflow: visible;
  cursor: pointer;
  position: absolute;
  top: 0;
  right: 0;
  padding: 15px;
  z-index: 2
}
.DateRangePicker_closeButton:focus,
.DateRangePicker_closeButton:hover {
  color: darken(#cacccd,10%);
  text-decoration: none
}
.DateRangePicker_closeButton_svg {
  height: 15px;
  width: 15px;
  fill: #cacccd
}</style></head>
  <body>

      <div class="nav" role="header">

<div class="echo-logo">
  <img src="/assets/images/legacy-echo360-nav-logo.png" alt="echo360" />
</div>

<ul class="tabs"></ul>

      </div>

    <main class="main-content fullscreen  " role="main" tabindex="0">

      <div id="r290c453f-a8e0-4db0-9515-f5983203769a" class="" style=""><div class="ErrorPage__ContentContainer-sc-1g6fjmo-2 cGudSH"><img src="/assets/images/icons/svg/ba67d51009df6478f4a937e3d46cfe3a-404-illustration.svg" alt="" /><p class="ErrorPage__Message-sc-1g6fjmo-1 hhSNqp">404 Not Found</p><p class="ErrorPage__Message-sc-1g6fjmo-1 soGdc">The page you're looking for couldn't be found.</p><div class="ErrorPage__ButtonContainer-sc-1g6fjmo-0 cSJGDE"><button type="button" data-test-component="Button" class="sc-htpNat sc-bxivhb kGZEdp"><span class="sc-gzVnrw gMuiMg">Go back home</span></button></div></div></div>
      <script src="/assets/vendor/react/f664bd6d6ed06d2aef45701d338dc335-errorPageApp.react-bundle.js"></script>
      <script>
        if (document.readyState === "complete") {
          Echo["errorPageApp"]("{\"imageUrl\":\"\/assets\/images\/icons\/svg\/ba67d51009df6478f4a937e3d46cfe3a-404-illustration.svg\",\"primaryMessage\":\"404 Not Found\",\"secondaryMessage\":\"The page you're looking for couldn't be found.\",\"showGoHomeButton\":true,\"showStatusButton\":false,\"showReloadButton\":false,\"id\":\"r290c453f-a8e0-4db0-9515-f5983203769a\"}");
        } else {
          function completeHandler() {
            if (document.readyState === "complete") {
              Echo["errorPageApp"]("{\"imageUrl\":\"\/assets\/images\/icons\/svg\/ba67d51009df6478f4a937e3d46cfe3a-404-illustration.svg\",\"primaryMessage\":\"404 Not Found\",\"secondaryMessage\":\"The page you're looking for couldn't be found.\",\"showGoHomeButton\":true,\"showStatusButton\":false,\"showReloadButton\":false,\"id\":\"r290c453f-a8e0-4db0-9515-f5983203769a\"}");
            }
          }
          document.addEventListener("readystatechange", completeHandler);
        }
      </script>

    </main>

</body></html>
DEBUG: GET http://127.0.0.1:53954/session/cfd0919f70ed3372a81c91ee63ca939e/cookie {"sessionId": "cfd0919f70ed3372a81c91ee63ca939e"}
DEBUG: http://127.0.0.1:53954 "GET /session/cfd0919f70ed3372a81c91ee63ca939e/cookie HTTP/1.1" 200 2329
DEBUG: Finished Request
DEBUG: Starting new HTTPS connection (1): echo360.org.au:443
DEBUG: https://echo360.org.au:443 "GET /section/3ea20db4-ef06-45c6-a3a1-780d7315df34/syllabus HTTP/1.1" 500 None
Traceback (most recent call last):
  File "echo360.py", line 7, in <module>
    sys.exit(main())
  File "/Users/e/Code-projects/MIT-code-projects/SM4-code/lecture-capture/echo360/echo360/main.py", line 349, in main
    downloader.download_all()
  File "/Users/e/Code-projects/MIT-code-projects/SM4-code/lecture-capture/echo360/echo360/downloader.py", line 189, in download_all
    videos = self._course.get_videos().videos
  File "/Users/e/Code-projects/MIT-code-projects/SM4-code/lecture-capture/echo360/echo360/course.py", line 129, in get_videos
    course_data_json = self._get_course_data()
  File "/Users/e/Code-projects/MIT-code-projects/SM4-code/lecture-capture/echo360/echo360/course.py", line 197, in _get_course_data
    raise Exception("Error: Failed to get m3u8 info for EchoCourse!")
Exception: Error: Failed to get m3u8 info for EchoCourse!
ravpn-266-2-student-ten-8-71-124:echo360 e$ ravpn-266-2-student-ten-8-71-124:echo360 e$ ./run.sh https://echo360.org.au/section/3ea20db4-ef06-45c6-a3a1-780d7315df34/home --debug
-bash: ravpn-266-2-student-ten-8-71-124:echo360: command not found
ravpn-266-2-student-ten-8-71-124:echo360 e$ > Echo360 Cloud platform detected
-bash: Echo360: Is a directory
soraxas commented 3 years ago

Is https://echo360.org.au/section/3ea20db4-ef06-45c6-a3a1-780d7315df34/home the main page where it displays a list of videos for your course? If so, does https://echo360.org.au/section/3ea20db4-ef06-45c6-a3a1-780d7315df34/syllabus returns a string of text?

The latter is how this module discovers the course data. From the log it seems it's returning 404 on that page.