摘要:临近跑路的时候,想把钉钉上的网课视频保存一下,然而视频被设置为禁止下载,就花了一番功夫,把网课存了下来......

准备工具

fiddler:https://cloud.189.cn/t/beA3aejiY3qi(访问码:p6br)
M3U8 Downloader:https://cloud.189.cn/t/eIJNfe7NV7Jv(访问码:3utn)
IDM Downloader:

抓包

配置好fiddler进行抓包,配置如下:

抓取钉钉视频保存到本地1.png

然后打开钉钉,播放要下载的网课,注意抓到的 请求内容类型 为 "application/vnd.apple.mpegurl" 的请求

抓取钉钉视频保存到本地2.png

response中包含的就是我们要下载的网课的ts文件的链接。

提取并下载网课的ts文件

例如:
第一行是

a500478b-ac43-42ff-9570-ece94ed5ef0f/1.ts?auth_key=1621011871-0-0-xxxxxx

那么它对应的ts文件就是

https://dtliving.alicdn.com/live_hp/a500478b-ac43-42ff-9570-ece94ed5ef0f/1.ts?auth_key=1621011871-0-0-xxxx

依此类推,将所有的ts文件的链接提取出来,类似下面

https://dtliving.alicdn.com/live_hp/a500478b-ac43-42ff-9570-ece94ed5ef0f/1.ts?auth_key=1621011871-0-0-xxxx
https://dtliving.alicdn.com/live_hp/a500478b-ac43-42ff-9570-ece94ed5ef0f/2.ts?auth_key=1621011871-0-0-xxxx
https://dtliving.alicdn.com/live_hp/a500478b-ac43-42ff-9570-ece94ed5ef0f/3.ts?auth_key=1621011871-0-0-xxxx
https://dtliving.alicdn.com/live_hp/a500478b-ac43-42ff-9570-ece94ed5ef0f/4.ts?auth_key=1621011871-0-0-xxxx

然后将得到的url复制到粘贴板上,用IDM Downloader下载,注意将ts文件存放到一个单独的目录

抓取钉钉视频保存到本地3.png

得到了一堆ts文件

抓取钉钉视频保存到本地4.png

然后使用下面的python脚本将得到的ts文件批量改下名,不然最后合成的视频会出现乱序现象。

import os
import re

# 将currentpath的值改成你存放ts文件的目录就行
# 获取路径
currentpath = r"c:\Administrator\downloads"  # os.getcwd()

fileList = os.listdir(currentpath)
fileDict = {}

print("即将修改文件数量", len(fileList))

for i in range(len(fileList)):
    if fileList[i].endswith(".ts"):
        result = re.search("_", fileList[i])
        if result:
            start, end = result.span()
            fileDict[fileList[i]] = int(fileList[i][0:start])
        else:
            name, suffix = os.path.splitext(fileList[i])
            fileDict[fileList[i]] = int(name)

filetuple_list = sorted(fileDict.items(), key=lambda x: x[1])

num = 10000

# 遍历文件夹中所有文件

for key, value in filetuple_list:
    new_name = os.path.join(currentpath, str(num)) + '.ts'
    old_name = os.path.join(currentpath, key)
    os.rename(old_name, new_name)
    # 改变编号,继续下一项
    num = num + 1

print("修改成功")

将上面的代码保存为changename.py,然后将 c:\Administrator\downloads 更改为 你下载的ts文件所在的目录,然后在命令行中运行python3 changename.py即可。

合并ts文件

将改过名后的ts文件,按照以下步骤处理

抓取钉钉视频保存到本地5.png

第一步:运行FFmpeg_Joined.exe软件
第二步:将上面的ts文件拖拽进去
第三步:点击"自动排序"
第四步:点击"开始合并"

运行完后就可以得到mp4格式的网课文件。

总结

写个一键下载网课的python脚本应该很好实现,但是太懒了,就不写了。