国内观看Coursera非常卡顿,经常播放到一半就卡死了,不知道什么原因。因此只能想办法下载下来之后再看。
Github上有一个脚本点击打开链接,提供整门课程的下载服务。用着还是非常方便的,使用方法如下。
因为这个脚本用到多个python库,最好使用linux系统,我用的是debian wheezy,python2.7.3。当然你需要一个coursera账号。
将链接里面的工程打包下载,进入及一层目录,有个requirements.txt,里面含有需要的各种库和版本号,如果库的版本不对很大几率是无法运行的。
进入root命令行后,第一步安装pip组件:
apt-get install python-pip
使用pip安装需要的库:
pip install -r requirements.txt
这个过程比较慢,不过之后就可以使用脚本下载了。
打开要下载的课程的链接,如:https://class.coursera.org/scicomp-001/class/index 其中网址和class之间的字段是需要用到的.
下载这门课程需要运行的命令是:
python coursera_dl.py -u 用户名 -p 密码 scicomp-001
如果只要下载其中一部分,可以参照作者给出的说明对命令进行相应的修改:
General: coursera-dl -u <user> -p <pass> saas
Multiple classes: coursera-dl -u <user> -p <pass> saas nlp proglang-2012-001
Filter by section name: coursera-dl -u <user> -p <pass> -sf "Chapter_Four" saas
Filter by lecture name: coursera-dl -u <user> -p <pass> -lf "3.1_" saas
Download only ppt files: coursera-dl -u <user> -p <pass> -f "ppt" saas
Use a ~/.netrc file: coursera-dl -n saas
Get the preview classes: coursera-dl -n -b saas
Specify download path: coursera-dl -n --path=C:\Coursera\Classes\ saas
Maintain a list of classes in a dir:
Initialize: mkdir -p CURRENT/{class1,class2,..classN}
Update: coursera-dl -n --path CURRENT `ls CURRENT`
实验室百兆带宽下载速度只有15kBps,可以想象在线看时会多么的慢了。
如果下载过程中出错停止(多半是由于网络无法连接引起),可以使用bash中的for循环下载剩余部分:
for ((i=5; i<10; ++i))
do
python coursera_dl.py -u 用户名 -p 密码 $i scicomp-001
done
其中,i的范围为待下载的lecture数字。