中秋节放假,本想好好休息一下,女朋友说手机里下载了的腾讯课堂的课程能不能够传到电脑上面去,因为手机的空间不够了,我心想这不是很简单吗。。
果然,事情没我想的那么简单,找到了腾讯课堂的视频缓存目录
发现里面的文件格式全部都是 xxx.m3u8.sqlite,并不是我们常见的可播放文件
于是转而百度搜索了一下如何把.m3u8.sqlite 转为mp4,在这片文章上面找到了可行的方案
m3u8.sqlite转mp4
根据文章上面的描述,先读取sqlite数据库文件,然后根据第一行获取文件的元数据信息,根据第二行获取文件的解密秘钥。然后其余的行则是真实的视频内容。
这里的第一行第二行在不同的排序规则下数据其实是不一样的,所以判断规则可以这样来判断:
1、如果url中没有start参数那么说明这不是视频内容数据,是属于1,2行内容
2、如果url没有start并且没有sign,那么说明是秘钥,如果有sign,那么说明是文件元数据
再根据上面的逻辑处理好之后对真是的文件内容进行解密和拼接
具体的代码如下:
代码很粗略,能解决女朋友就行,哈哈哈
最近修改了程序,使用固定的头部区替换文件的头部,避免有些人的文件列表里面找不到一个可用的头部的情况。
可执行程序下载地址:convert.exe