从coursera.org上下载网课视频比慕课网更简单,只需要获取课程的地址就可以下载,但是由于网速慢的原因,下载比较耗时。直接上操作步骤:
1.准备工作:新建一个文件夹getvideo,进去之后建立一个文本文件urllist,用于存放下载地址列表,方便批量下载。该文件一行一个地址。
2.打开coursera.org,注册登录进去,开始课程!注意不需要付费!以Intro to International Marketing为例,打开https://www.coursera.org/learn/intro-international-marketing后可以看到有3周课程。
3.点击查看全部,可以看到周1一共有6个视频,但是只有第一个可以点击。
4.点击第一个视频,进入第一周。在页面最下方会出现这一周所有课程的视频链接。复制这些链接到urllist文件中,一行一个url。以此类推,可以把3周的课程视频链接全部放进去。
5.新建getcoursera.sh 文件,复制下面的脚本文件。保存,修改属性,添加执行权限。
#!/bin/bash
##########该工具仅限学习交流使用,不可用于其他目的,一切后果自负##########
######################by Nautilus,20200302######################
###################在coursera.org网自动下载所需视频#################
#####urllist 文件需配置地址
#url="https://www.coursera.org/lecture/intro-international-marketing/introduction-to-specialization-RmskU"
function getVideo(){
#建立临时文件夹
randompath=$(date +%s%N)$RANDOM
mkdir "./.${randompath}"
cd "./.${randompath}"
##获取文件url
wget -O htmltmp $1
#文件名
title=`grep -oP "videoName\".*?.h1" htmltmp`
title=${title%\<*}
title=${title#*\>}
title=${title//" "/"_"}
#视频地址
videourl=`grep -oP "mp4VideoUrl.*?.720p.*?.mp4.*?.\"" htmltmp`
videourl=${videourl#*mp4VideoUrl\":\"}
videourl=${videourl%\"*}
videourl=${videourl//"\\u002F"/"/"}
#字幕地址
suburl1=`grep -oP "zh-CN\":\".*?.srt\"" htmltmp`
suburl1=${suburl1#*zh-CN\":\"}
suburl1=${suburl1%\"*}
suburl1=${suburl1//"\\u002F"/"/"}
suburl2=`grep -oP "\"en\":\".*?.srt\"" htmltmp`
suburl2=${suburl2#*\"en\":\"}
suburl2=${suburl2%\"*}
suburl2=${suburl2//"\\u002F"/"/"}
##下载文件
wget -O "${title}tmp.mp4" $videourl
wget -O zhcn.srt "https://www.coursera.org${suburl1}"
wget -O eng.srt "https://www.coursera.org${suburl2}"
#合并处理
ffmpeg -i "${title}tmp.mp4" -i zhcn.srt -i eng.srt -map 0:v -map 0:a -map 1 -map 2 -c:v copy -c:a copy -c:s mov_text -metadata:s:s:0 language=chn -metadata:s:s:1 language=eng "../${title}.mp4"
#扫尾处理
cd "../"
rm -r "./.${randompath}"
}
###
FILENAME="urllist"
for i in `cat $FILENAME`
do
getVideo $i
done
6.执行bash,自动获取所有视频。
注意:该脚本仅供学习参考,不能用于任何非法行为!不当使用,后果自负!