今日干货:Python X律师工作效率:直播录制不用愁(律师用python可以做什么工作)

  • 更新时间:2024-03-29
  • 2022-07-26 10:26
新简剪辑摘要:

Python X律师工作效率⑧:直播录制不用愁前段时间,受疫情影响,法律人们虽然足不出户,但也没有停下学习和分享的脚步。星瀚联合WeLegal推出了「来自技术派的法律实务指南」系列公益直播(如需获取回放可以添加“星瀚小星

Python X律师工作效率⑧:直播录制不用愁

今日干货:Python X律师工作效率:直播录制不用愁(律师用python可以做什么工作)插图新简

前段时间,受疫情影响,法律人们虽然足不出户,但也没有停下学习和分享的脚步。星瀚联合WeLegal推出了「来自技术派的法律实务指南」系列公益直播(如需获取回放可以添加“星瀚小星”为好友)。同时,包括律协在内的不少平台也纷纷在线上提供法律课程。笔者在学习的过程中,也在思考我们有什么方法可以将这些直播视频记录下来(在主办方并未禁止的情况下),供个人反复学习参考使用呢?一种自然的想法是电脑录屏,比如使用win10自带的Xbox录屏工具,或者OBS等第三方软件。不过录屏文件一般体积较大(1080P分辨率下录制一小时大约800MB),此外在直播期间也不能对电脑进行其他操作,着实不便。所以我们需要采用一种能在后台进行的方法——找到直播url地址,并将流媒体文件下载到本地。

基础:获取直播url

由于目前大多数的直播课程是在微信视频号/小程序的环境下,我们在微信中点击课程链接后并不能在浏览器中打开,无法直观地看到url地址,所以这里要请出抓包工具。所谓抓包,就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作。在之前的《Python X律师工作效率⑥:手速不快也能预约会见》文章中,我们就是通过Fiddler抓包工具,获取了和“律师会见”小程序之间的https通信,现在要取得直播课程地址,也是同样的道理。

Step1:安装Fiddler软件→安装https证书→开启监听。

Step2:在微信中点击直播链接。

今日干货:Python X律师工作效率:直播录制不用愁(律师用python可以做什么工作)插图新简1

Step3:以在微信视频号中直播的课程为例,我们会在Fiddler中找到开头为

https://voipfinderrdsliveplay.wxqcloud.qq.com/trtc的url,这就是直播地址。另外也会发现一些开头为

https://finder.video.qq.com/251的url,那些是视频号中显示的其他视频地址,同理也可以用于下载。

P.S.如果遇到抓包小程序、视频号没有结果的,是因为PC微信升级,小程序进程从WechatApp.exe变成了WechatAppex.exe。这时要删除

C:\\Users\\admin\\AppData\\Roaming\\Tencent\\WeChat\\XPlugin\\PluginsWMPFRuntime下所有的文件夹,重新抓包即可。

进阶:下载流媒体文件

复制url后,其实就可以直接粘贴在浏览器中,会弹出一个flv文件的下载页面:

今日干货:Python X律师工作效率:直播录制不用愁(律师用python可以做什么工作)插图新简2

但是用浏览器的话会遇到一个问题,就是flv文件不断在下载,直到直播停止后才会结束。中间手动停止或者误操作而取消的话,视频文件只能去临时文件夹寻找。原因在就于直播是以流媒体的形式传输的,数据包经过分段后实时上传和下载,并不是一个完整的、静态的视频文件。

我们改用python来下载flv文件,这样可以随时停止录制,也可以随时打开stream.flv文件查看录制效果。

高级:mitmdump+pywinatuo自动化

目前上海每周末都会开展常态化的核酸检测大筛,如果直播课程开始时,我们正在楼下排队核酸,没法抓包地址并执行下载程序怎么办?所以我们还要设定定时任务,提前做好准备,让python自动执行上述流程。

Step1:利用pywinauto(用于自动化Microsoft Windows GUI的python模块)来模拟打开视频号的过程。比如我们想观看法盟平台上的直播课程,可以用命令行直接打开“视频号”程序,随后定位到搜索栏,并输入“WeLegal公司法务联盟”,然后回车即可。

今日干货:Python X律师工作效率:直播录制不用愁(律师用python可以做什么工作)插图新简3

Step2:利用mitmdump监听数据包,抓取直播url。mitmdump是mitmprxoy的命令行接口,可以实时监控请求,这样我们就不用手动截获和分析HTTPS请求和响应,只要写好python脚本,即可分析处理并存储我们需要的直播url。

Step3:使用apscheduler模块启动定时python任务,或者创建一个windows计划任务均可。

这样我们就可以彻底解放双手,自动化地录制课程,深入学习了。星瀚的大部分线上分享都会提供回放,大家可以节省不少时间;不过同样的,读者们也可以在上述方法的基础上举一反三,运用到工作中其他所需的场景中。

文:邵洋

本文为星瀚原创,如需转载请先联系。