下载钉钉禁止下载的直播回放

您所在的位置:网站首页 钉钉回放设置 下载钉钉禁止下载的直播回放

下载钉钉禁止下载的直播回放

#下载钉钉禁止下载的直播回放| 来源: 网络整理| 查看: 265

钉钉有些群的直播回放会设置为不可下载,如果我们要下载的话,就需要使用秘密武器-抓包

img

(其实我本来是想要下载个直播回放的,可是一不小心整了个脚本出来…)

Github地址(开源)(Python):https://github.com/lilac-milena/Dingtalk-playback-download

0.更新日志2023/7/20 版本更新

移除了对 wget 的依赖

增加了对手机客户端抓包的支持

2022/7/2 版本更新

适配linux系统

自动检测下载错误的ts片段并重新下载

优化错误日至的写出

优化逻辑

1.软件及依赖环境1.1 抓包软件

这里我提供一个Fiddler的安装包,如果想要最新版可以自行去官网下载

安装包:https://raw.githubusercontent.com/lilac-milena/Dingtalk-playback-download/main/exes/FiddlerSetup.exe

安装完Fiddler之后可以在”开始”菜单中找到,我们需要打开Fiddler

点击Fiddler顶栏中的Tools,再点击Options

img

点击HTTPS,并将Decrypt HTTPS traffic打勾

img

之后会提示安装证书,点同意就好

1.2 配置ffmpeg

该脚本使用ffmpeg合并ts,所以需要安装这个玩意

这里就贴个教程,不浪费篇幅了

Windows10安装 ffmpeg 教程 https://zhuanlan.zhihu.com/p/118362010

Linux 安装 ffmpeg 教程 https://cloud.tencent.com/developer/article/1711770

2 抓取及准备

这一步分为两个分支,可以根据个人的要求选择使用什么平台的客户端进行抓包

手机客户端抓包不需要切换钉钉版本,可以直接抓取,比较方便;而 Windows 客户端抓取较稳定,受钉钉 API 改版的影响小。

使用Windows客户端抓包

使用手机客户端抓包

2C.A 更换钉钉版本

最新版本的钉钉做了非常多的修改,导致无法获取完整的m3u8文件,也就造成了回放无法下载

2C.A.1 下载老版本

这个还是比较简单的,我使用的是 5.1.39.10 版本

官方下载链接:https://dtapp-pub.dingtalk.com/dingtalk-desktop/win_installer/Release/DingTalk_v5.1.39.10.exe

2C.A.2 使用老版本

钉钉对老版本的使用做出了限制,但是可以通过修改本地文件的方法跳过,具体教程见:

特别注意:安装老版本后第一时间不要启动钉钉,请打开老版本钉钉所在位置并删除安装目录的 update.exe 文件以防止自动更新

2C.B 设置代理

修改完成后登录的时候要注意一下设置代理连接,这一步是让钉钉与Fiddler建立连接

2C.B.1 点击右上角的小箭头

img

2C.B.2 照如下填写好后点击左下角的”测试”

img

如果成功,则点击保存,如果失败,请检查是否打开了Fiddler

如果操作后聊天乱码,请仔细看一下上面的教程,最后的步骤如果不做就会导致乱码

注意:本方法要求电脑和手机在同一网络环境下并且可以互相访问,如路由器开启了设备隔离(如校园网络,公司网络)则无法使用该方式抓包,请改用 Windows 客户端抓包

2M.A 获取本机 IP 地址

在打开 Fiddler 后,主页面的右上角会出现一个小地球标志,代表抓包服务可以供局域网的其他设备使用,将鼠标悬至此标志上方可以查看到本机可用于连接的 IP 地址

通常会显示很多条 IP,我们需要使用 IPv4 协议的内网地址(格式为 192.168.-.- 或 10.-.-.-)

所以我这里就记录下 192.168.31.218 这条 IP 以备后续使用

2M.B 在手机上安装 CA 证书以用于 HTTPS 抓包

同 Windows 端一样,任何抓取 HTTPS 数据包的行为都需要安装来自抓包工具的 CA 证书以获取 HTTPS 请求体

因为 Fiddler 默认是不支持其他设备抓包的,所以需要设置允许远程设备连接

打开设置菜单

勾选此选项后点击 OK

完成后需要 重启该软件,再次打开后 Windows 防火墙可能会弹出提示,如弹出,请选择 “公共网络”。

然后在手机浏览器中输入刚刚所记录的 “IP 地址 + :8888” (例:192.168.31.218:8888) (注意冒号是英文的) 打开证书安装页面

如果一切正常,会看到如下页面,然后点击下图所标注的链接下载 CA 证书文件

下载完成后单击 cer 文件可以直接使用安卓自带的证书安装程序打开

这一步有些手机可能要求输入锁屏密码,需要自己给证书起一个名字,验证手机密码后就可以成功安装证书了

2M.C 设置代理

钉钉手机版不同于 PC 版,并没有提供设置代理的选项,故我们需要借助手机自带的 WIFI 高级选项以进行配置。

因为手机系统差异较大,故这个步骤就不在本文中体现了,您可以前往以下链接了解详细的操作步骤:

对于 Android 设备:https://www.wikihow.com/Change-Proxy-Settings#Android对于 IOS 设备:https://www.wikihow.com/Change-Proxy-Settings#iPhone

您可能需要以下信息:

Server(服务器地址):上文中所获得的IP地址Port(端口号):8888

示例: Server: 192.168.31.218 Port:8888

3.抓包3.1 抓取

这么多记录,我们需要精确定位到我们需要的,其实很容易,首先,我们先要使用ctrl+a全选,再按delete删除全部记录,这样做是为了防止其他记录干扰我们,接下来,我们随意找一个直播回放,并打开,等待加载完毕后(不是等视频播放完,而是只要出现了视频画面并开始播放就可以关掉了)再关掉,这时看向Fiddler,就会发现Fiddler中出现了很多钉钉的记录

img

然后,我们使用ctrl+f进行搜索,搜索”m3u8”这个关键字

img

就会发现有很多记录被标黄了,我们现在需要从中找到钉钉的记录,大概长这样

img

这条记录前面是一个纸的图标,然后url里面会有”dingtalk.com”这个字串,一般同时符合这两点就是我们要找的数据

3.2 获取下载域名

然后右键这条数据,选择Copy→Just Url

img

现在,我们复制了一条URL,它的格式是这样的:

12345格式:下载域名/直播号_merge.m3u8?app_type=客户端类型&cid=CID&token=Tokey&token2=Tokey2&version=钉钉版本例子:https://dtliving-sz.dingtalk.com/live_hp/************_merge.m3u8?app_type=win&auth_key=********************&cid=*******************&token=****************&token2=******************&version=5.1.39-Release.10

请不要访问这个url,因为它的生命周期只有一次,已经被钉钉访问过了,所以我们再去访问会返回403错误

那为什么要复制这个url呢,因为我们需要下载域名,钉钉会每隔一段时间更换一次视频的下载域名(很奇怪,应该是为了防止视频下载),这可能导致你的直播回放的下载域名都是不一样的,所以我们需要这个域名才能下载

下载域名就是如下部分:

img

最后不要忘记加/

3.3 获取m3u8内容

前面说过,抓包获取的m3u8链接不能直接打开,所以我们需要从请求记录中找到m3u8文件的内容

还是找到m3u8的那条记录

按照下面这张图操作:

img

然后我们需要复制右下方那个文本框中的内容

这就是m3u8文件的内容,保存备用

4.下载

现在,就可以去Github下载我的Python脚本了~

脚本地址:https://github.com/lilac-milena/Dingtalk-playback-download/blob/main/ding.py

运行此脚本请自备Python环境

首先,把我们下载的ding.py文件放在一个文件夹中(最好是空文件夹)

然后在路径栏输入cmd,打开cmd

img

4.1 在cmd或终端中输入 python ding.py 运行脚本

如您使用linux运行脚本,请使用 python3 ding.py 运行

img

4.2.根据之前的下载域名选择下载通道

脚本内置了3个下载域名,请根据上面获取到的域名选择,如果都不是,请选择自定义

img

以下内容由2022/7/2更新

4.3.写入m3u8

打开脚本运行目录下的m3u8.txt文件

img

写入m3u8内容

img

写入完毕后,在脚本中输入y并按回车

4.4.选择m3u8来源

不同来源的m3u8文件需要使用不同的格式化方法,如m3u8通过windows端的钉钉抓包而来,就选择Windows端群直播

img

我的m3u8来源于ubuntu客户端,所以我就需要选择3(Linux端群直播)

4.5.下载&合并

下载:

下载ts分段

img

合并:

将ts分段合并为mp4

img

下载,合并完成后,python脚本运行目录会出现 output.mp4 这个文件,这就是下载完成的视频

img

img

文件/文件夹名 作用 tss(文件夹) 存放ts缓存文件(可在下载完成后删除) tss.txt ts文件列表(可在下载完成后删除) m3u8.txt m3u8文件,用户需将m3u8文件写入至此文件(可在下载完成后删除) output.mp4 最终下载的视频文件 err.log 错误日至(如有错误则会生成)


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3