今年因为疫情的原因不能开学,所以很多学校都使用钉钉进行在线授课,但是在钉钉里面点击下载群直播回放的时候却发现:
真好,管理员设置了不允许下载回放。
这就完了吗?NoNoNo!既然正常途径下载不了,那么我们就通过程序来进行下载。
环境准备
fiddler抓包软件,钉钉PC客户端,格式工厂软件,python环境以及requests,moviepy库。
新建一个python文件dingding.py,在python文件所在位置新建一个‘钉钉’文件夹来存放数据。
桌面新建一个文件夹,名称默认‘新建文件夹’就好,然后在新建文件夹里面新建一个‘video’文件夹以及video_add.py文件。
抓取思路
我们在网站观看视频的时候,并不是一次性的将所有视频内容全部请求完,而是把它分为了很多小段视频,每次请求一小段。这一规则,几乎所有的视频网站以及视频软件都是如此,所以这就导致了我们在爬取视频的时候,并不能一次性爬取到视频的全部,而爬取下来的视频是一小节一小节的分开的ts文件;所以我们在抓取视频的时候,首先得获取到每一个小节视频的URL地址,然后去请求它,将所有小节的ts文件保存下来,然后再使用格式工厂将所有ts文件转换成MP4格式,最后再将所有的MP4文件合并为一个MP4文件。那么按照这个思路,我们开始实际的操作。
抓取分析
首先我们需要先获取到每个小节视频的URL地址,由于不是在浏览器当中,所以我们会用到fiddler来对软件的数据包进行抓取;打开fiddler抓包软件,然后登陆钉钉PC客户端,找到你想要下载的群直播回放视频:
然后打开第一个视频并播放,我们就可以在fiddler软件当中看到抓取到的数据包:
在图中我标记的1号数据包下面的那个数据包,就是当前视频所有小节的URL地址;大家可以选中这条数据,然后在右边Inspectors中的Raw当中打开GET后面的链接,会提示你下载一个文件,将这个文件下载到本地,然后使用记事本打开,就可以看到当前视频每一个小节的URL地址(图中红色边框选中,并且所有类似选框内的皆是):
当然,这些URL地址是不完整的,因为他们前面省略了“https://dtliving-pre.alicdn.com/live/”这些;如何得知呢?
点击刚才标记1号数据包下面紧挨着的2号视频数据包,然后注意观察他们在右边Inspectors