慕课课程下载学习python调用aria2下载加速

最近需要下载一门中国慕课大学的课程,是学习AutoCAD的课程,因为担心在课程结课时还看不完,就想把课程视频下载到电脑上,方便本地学习。

找到了一个慕课下载器,是用python写的中国大学慕课下载程序,从github上找的一个下载器,但是运行以后发现程序很古老,没法正常下载课程了。又找到升级程序,还找到了一个维护者建的交流群。加进去发现这个慕课课程下载程序还有一些用户在用的。

作者写的这个脚本还是挺好用的,解决手动下载课程的繁琐,用代码解放了生产力。做的下载器的思路还挺好的,下载完以后还提供一个potplayer的播放列表文件,只需要通过potplayer打开列表文件播放学习就可以了,都不需要自己去挨个文件夹找文件播放。

以前我也想下载学堂在线的一些课程来着,找过一些油猴的视频流下载工具,但都是非常繁琐而且很耗费时间,下载一个课程要用几十分钟的时间才能弄完。

正好自己看了一段时间python的入门基础,就想用python写一写脚本,看看自动下载课程内容是否可行。

在之前博客园上看到过下载学堂在线课程的python下载学堂在线课程的python脚本,他的脚本还比较简单,但是复杂的课程还是不能下载完整,我下载了代码,根据他的程序思路做了一下扩充,正好当做是练习python爬虫了。重新写的下载程序跑起来还可以,能基本满足需要,下载用的python的下载流数据保存,处理速度还是有点慢。

后来思考了一个思路,可以加上aria2程序来下载,开始想的是把aria2的rpc服务开启,通过python程序调用aria2的web接口异步下载视频文件。但因为配置aria2的服务一直不想看,就把这个事情放下了。也没有非常多的下载需求,当时只是有个想法,在用的多的时候再改造,其实也一直用不着。

最近用慕课的下载器,发现他就是用的aria2来下载文件,元旦放假,我就特意看了一下他的python代码实现是如何调用aria2程序的,看了下是直接通过cmd的命令行调一下用的程序,甚至都不需要配置什么rpc服务,之前看别人的浏览器油猴插件调用aria2程序,只了解webui的配置方式,只知道有个web接口调用任务的方式。思路也一直限制在了web调用的浏览器插件模式里面了。

看了别人的解决思路,豁然开朗,原来python使用aria2进行下载的方式可以这么简洁。而且慕课下载器的作者还给写好了调用函数,我只需要复制一份就可以直接用了。又改造了一下之前那个学堂在线课程下载代码,测试了一下,下载速度一下就跑满了。

可其实也只是学了一下如何调用的经验,人家写的那个下载器,兼容更多的慕课平台,还免费使用,功能还全面,体验还好,完全没必要自己写个下载程序了。不过也还是有了一个学习python采集数据的体验。

每天学一点只是为了可以精进自己的知识库,也可以多多学习如何让程序解放自己的生产力的方式。