國內觀看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> saasMultiple classes: coursera-dl -u <user> -p <pass> saas nlp proglang-2012-001Filter by section name: coursera-dl -u <user> -p <pass> -sf "Chapter_Four" saasFilter by lecture name: coursera-dl -u <user> -p <pass> -lf "3.1_" saasDownload only ppt files: coursera-dl -u <user> -p <pass> -f "ppt" saasUse a ~/.netrc file: coursera-dl -n saasGet the preview classes: coursera-dl -n -b saasSpecify download path: coursera-dl -n --path=C:\Coursera\Classes\ saasMaintain 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-001done
其中,i的範圍為待下載的lecture數字。當然,重新下載也是可以的,不知道會不會有機制判斷依據下載的內容。
下載完之後,為獲得許可權還要修改檔案所有者,使用以下命令:
chown -R user:user ./folder