问题场景
这几天因为疫情,一直在企业微信上网课,从某种角度上讲 ,对于自律的 同学来讲呢,上网课反而是有利的,而且还能回放,这岂不是很香?
但是,美中不足的是,由于平台的限制,企业微信上的回放有 保存时间限制,而且直接在 企业微信上观看 那体验感未免确实 差了些,于是乎,我绞尽脑汁 想要破解此局。
解决办法
终于,我想到了两种方法:
- 简单粗暴:录屏
没错 就是录屏,很简单是吧?但是那么多回放总不能一个一个录吧?而且 对画质也有影响是吧,所以 这必然不是长久之法,而且也不符合咱们程序员的 气质…
所以,恰好这几日在学习 数据分析,于是我突发奇想,要不要用 pa chong?
- 使用Python爬虫技术
原理:
什么是m3u8格式?
m3u8准确来说是一种索引文件,使用m3u8文件实际上是通过它来解析对应的放在服务器上的视频网络地址,从而实现在线播放。使用m3u8格式文件主要因为可以实现多码率视频的适配,视频网站可以根据用户的网络带宽情况,自动为客户端匹配一个合适的码率文件进行播放,从而保证视频的流畅度。
而这种格式本质上播放的是 一堆ts视频,每一个ts视频都是原视频的 一个小小的片段,基本上就几秒钟的时长,量变产生质变,就以这种形式 来保证视频在线播放的 流畅度以及清晰度
那么如何获取相应ts视频的地址呢?很简单,将最后一个/.*.m3u8换成/.*.ts就行la
很简单,上代码及讲解,重要地方有注释,,即使小白也可以拿去直接套用
#这里的url就是下图中 即将要说的 m3u8的地址
url = "http://1253731777.vod2.myqcloud.com/cd68bb45vodbj1253731777/d9ee34e1387702299857882133/playlist_eof.m3u8"
m3u8url = re.match(r".*/", url)
#因为将后面的m3u8替换成ts名称就能得到 相应的视频片段
#所以这里是得到http://1253731777.vod2.myqcloud.com/cd68bb45vodbj1253731777/d9ee34e1387702299857882133/这个地址
m3u8url = m3u8url.group()
#这里就是你要 保存视频的本地文件目录
path = "D:\date\lu-zhi\截图"
直接 通过浏览器打开 企业微信直播回放的链接,然后F12 查找响应头内容,就可以得到相应链接,请看图:
详细代码在此
怎么样? 这下子 既能够完美还原原画质,又能 长久保存,可谓是一箭双雕
啊不,更重要的是 展现了咱们程序员 的 “气质” 呀! 一石三鸟哈哈哈,怎么样?这就是程序员的魅力!
当然啦,这种 “手段” 可不仅仅只限于 拿到企业微信直播回放,大部分视频网站都是 采取的这种格式在线播放视频,所以呢…请结合实际自行享用哦!