By now, we've probably all discovered UWA's new "Echo360" Lecture Capture System is a POS. By which I mean "Piece of Shit", and not "Public Open Space" / "Point of Sale".
In particular, most lectures are not available for downloading. Which is unfortunate, as it means having to watch lecture recordings at 1x speed and putting up with irritating "buffering" screens.
Annoyingly, you still get the buffering screen even when you skip back to parts of the lecture that have already loaded. Truly the developers of Echo360 are wonderful and competent people.
Fear not! I've created some browser extensions for Firefox and Chrome to allow the lectures to be downloaded. The Firefox extension is actually pretty trivial, but getting things running on Chrome is much more fiddly. I haven't done an enormous amount of testing, but everything seems to work, at least on the two machines I've tried it on. Hopefully someone else will find this stuff useful too.
For Firefox:
Click on the link below to install the firefox extension:
http://dl.dropbox.com/u/1614464/echo_script/echodownloader.xpi
Restart firefox; that's it! Now whenever you view a lecture, you'll be presented with a (rather ugly looking) link to download the lecture at the top of the screen.
Echo Downloader on Firefox 10
I've only tested the extension on firefox 10 (Linux and OSX). YMMV, but it should run fine on firefox > 2. If you have NoScript installed, and try using Echo360 "normally", it may warn about a potential "clickjacking" attack. It's perfectly safe to ignore this warning (ie it's the extension that's "potentially clickjacking" you).
For Chrome:
Downloading the lectures on Chrome is quite a bit more difficult. The reasons for this are technical; basically, UWA's server sends a non-standard response when you try to download any lectures, and chrome freaks out about it.
I'll go into the details in another post; for now suffice it to say that a good way to get around this issue is to run a proxy server. This sounds more complicated than it actually is; from the user's perspective all you'll need to do is install and run one additional piece of software on your computer (in addition to a browser extension). I'll give the instructions on how to get things working first, before I discuss how it works, firewalls, security, etc.
First, click on the link below to install the browser extension:
http://dl.dropbox.com/u/1614464/echo_script/Echo_Downloader_chrome.user.js
Next, download the proxy server:
http://dl.dropbox.com/u/1614464/echo_script/echo_proxy.jar
Before you can download any lectures, you'll need to start the server. It's written in Java, so hopefully it'll run fine on whatever Operating System you use. For now, starting the server has to be done from the command line. This is not really as user friendly as I'd like, and I'll possibly look at packaging things better in future (subject to time/enthusiasm).
Anyway, to start the server, do the following
On Windows:
Select Start->run. Type "cmd" and press enter. At the command prompt, execute the following
java.exe -jar "C:\Documents and Settings\username\Downloads\echo_proxy.jar"
Where obviously, you replace C:\Documents etc with the folder where you actually saved the code.
On OSX:
Run the "Terminal" application (you can do this by typing "Terminal" into spotlight). Run the following command
java -jar Downloads/echo_proxy.jar
Where again, you replace Downloads/etc with the folder where you saved the code. If you want to stop the server, press Command-C.
On Linux:
I assume you know what you're doing.
Hopefully everything will work. You should now be able to download the lectures - just click the link at the top of the screen (see below).
Echo Downloader running on Chromium, with aid of proxy server (note the URL in the status bar).
Further comments on the proxy server
1. Starting the server on login
The server must be running before you can download lectures, but starting the server is a little annoying. It would be quite easy to set things up so that the server runs whenever you start your computer (so you could just set and forget). I'll possibly write a howto on doing that in another post (this one's starting to get long and unwieldy).
2. Security
The proxy server will
only accept requests from the machine on which it is running (ie no remote requests), and will
only download files from the domain prod.lcs.uwa.edu.au. This is for various security reasons; I'll explain the detail in another post. The point I'm trying to make is that although I hacked these extensions together quite quickly, and some of the code is a bit crap, it should be quite safe to run.
3. Firewalls
The proxy server listens on port 49152 (as this is an unreserved port). Why not use port 8080 or 80? Because I already have servers running on those ports, and I wrote this stuff for my own benefit. The proxy will also use port 8080 when it downloads the lecture from UWA's server. If you have a firewall running, and it complains about traffic on port 49152 or 8080, then there's nothing wrong - you can allow the traffic.
4. Source
If you'd like to download the source code for the proxy server (to modify/check I'm not sniffing your bank account details), you can get it here:
http://dl.dropbox.com/u/1614464/echo_script/echo-proxy_source_0.1.tar.gz
There's really not much to it, it's less than 100 lines of code. All the hard bits are done by
Jetty.
Other browsers/platforms:
I originally developed the Firefox extension using Greasemonkey. If you already have Greasemonkey installed, you may as well just use this script
http://dl.dropbox.com/u/1614464/echo_script/Echo_Downloader_firefox.user.js
Rather than downloading and installing the extension.
If for some bizarre reason you still use Internet Explorer, I believe there's software available on the tubes that allows you to run Greasemonkey scripts in IE. Similar comments apply for Safari. Opera users (all 10 of you), should be able to run the Greasemonkey scripts out of the box. Here's the first result I got when googling how to do these things - it appears to be helpful.
http://techie-buzz.com/tips-and-tricks/greasemonkey-alternatives-for-ie-opera-and-safari.html
I have no idea whether everything will work correctly or not; my guess is probably not. You're welcome to try and get things running, but I have no intention to support browsers other than firefox and chrome.
Finally:
I may make some improvements, depending on how much time and/or motivation I have. Feedback is welcome, although it may be ignored. You're also welcome to modify/redistribute any of the code I've posted.
Any updates will be posted here. I'm currently looking at integrating the download links with the screen in LMS that shows the list of available lectures. In theory it should be very easy. Sadly, the Echo360 developers have decided that placing iframes within iframes within iframes and not giving any DOM elements an id is a good idea; this is making the job quite a bit more fiddly.