很多小伙伴应该都有了解慕课网,或有看过上面的课程。慕课网有很多高质量的付费课程,但是PC端却没有提供下载功能,只能在线观看。手机端虽然可以下载,但是屏幕太小,观看效果太差。
之前尝试过FD抓包,抓到TS流但是好像有加密,无法播放。只能另辟蹊径,用了一个最笨的方法,录屏!因为慕课的课程需要点击下一节才会跳转,所以要写一个脚本来连续播放。不然手点会死的233333
脚本使用按键精灵编写(需求决定的,而且都是中文控件,复制源码进去就会有中文视图,非常简单)
录屏使用的Bandicam(我用过的画质最好的一款录屏软件)
最初只是写了几个鼠标和键盘操作,但是实际运行中慕课有时会弹出一些学生提问、网络定时重启都会导致脚本卡住。然后就开始加判断,改了一番,终于能正常使用了。
脚本原理:
播放视频后,根据图片匹配屏幕来判断当前状态,然后鼠标移动到对应位置执行点击及开始/停止录屏。脚本中的坐标范围根据你电脑的实际值修改,图片截图最好是到播放页面上截bmp。
下面上源码
···
// 慕课付费课程录屏 by.WEN
// 我的录屏快捷键为F10,注意不要和脚本快捷键冲突
KeyPress "F10", 1
sTime = Plugin.Sys.GetTime()
Rem loopStart
For 1200
Delay 3000
// 1919,1029为我浏览器界面上的坐标点。当判断颜色不匹配则证明视频全屏播放中,无需操作。
// 因为播放结束,视频会退出全屏状态,则进入if处理。
// 对比点自己根据实际修改,不建议右下角。因为很多软件会从右下角弹窗,导致判断失败。
IfColor 1919,1029,"FAFAFA",0 Then
Delay 300
// 匹配指定区域是否存在“最后一节”的结束提示,即课程都播完了
XY = Plugin.Pic.FindPic(420, 500, 580, 550, "D:\AJ\end.bmp", 0, 1)
iZB = InStr(XY, "|")
X = CLng(Left(XY, iZB - 1))
If X>0 Then
KeyPress "F10", 1
ExitScript
End If
Delay 100
// 匹配指定区域是否存在“下一节”按钮,即本节已播完
XY = Plugin.Pic.FindPic(480, 575,800, 800, "D:\AJ\next.bmp", 0, 1)
iZB = InStr(XY, "|")
X = CLng(Left(XY, iZB - 1))
Y = CLng(Right(XY, Len(XY) - iZB))
If X > 0 Then
// 检测距离上次匹配到“下一节”的时差,判断页面是否出现了问题
UserVar tmpTime ""
UserVar ls ""
tmpTime = Plugin.Sys.GetTime()
ls = tmpTime - sTime
If ls < 12000 Then
Goto full
ElseIf ls < 30000 Then
KeyPress "F10", 1
Delay 60000
KeyPress "F5", 1
KeyPress "F10", 1
Goto full
End If
sTime = Plugin.Sys.GetTime()
KeyPress "F10", 1
MoveTo X, Y
Delay 300
LeftClick 1
Delay 1000
KeyPress "F10", 1
Delay 2000
End If
Rem full
Delay 300
// 检测是否有问答弹出并关掉
XY = Plugin.Pic.FindPic(375, 170, 400, 200, "D:\AJ\x.bmp", 0, 1)
iZB = InStr(XY, "|")
X = CLng(Left(XY, iZB - 1))
Y = CLng(Right(XY, Len(XY) - iZB))
If X>0 Then
MoveTo X, Y
Delay 300
LeftClick 1
End If
Delay 100
// 检测全屏按钮并点击
XY = Plugin.Pic.FindPic(940, 980,1000, 1050, "D:\AJ\full.bmp", 0, 1)
iZB = InStr(XY, "|")
X = CLng(Left(XY, iZB - 1))
Y = CLng(Right(XY, Len(XY) - iZB))
If X>0 Then
MoveTo X+10, Y+10
Delay 300
LeftClick 1
End If
End If
Next
Goto loopStart
···
慕课的付费课程是有一段JS定时器在视频上展示你的用户信息的,所以录屏请勿用于传播。
觉得录屏文件大的话,可以转成H265视频,教程类视频体积比很不错。转码软件个人推荐MeGUI,质量多试几个参数对比下。
转载请注明出处,谢谢!
网友评论