现在很多视频网站都用上了 blob 加密视频源URL,使得以前通过 Network 抓视频源地址下载视频的方式不管用了
简单理解一下 blob 加密视频源,就是把一个视频文件分割成多个 ts 文件分段加载。其实视频文件还是在 Network 里找得到只不过原来是一个文件,现在是无数个 ts 文件而已
拿优酷举例,优酷的视频是 blob 加密,并且可以抓到 ts 文件列表。
这次记录就拿优酷的一个视频来举例,视频播放地址: https://v.youku.com/v_show/id_XMzc3MTE1MDkxMg==.html?spm=a2hbt.13141534.1_3.d_1_6&s=f4487f8e61ad11e0bea1
需要的工具:猫爪浏览器插件 长这样的。Chrome浏览器或者Chrome内核的浏览器(比如360极速,笔者用的就是360极速)都可以安装。
开始抓视频
1、安装猫抓后,打开要下载的视频地址猫抓就会开始分析当前页面的资源;
2、找到 ts 文件集合的地址列表,一般列表资源后面有个放大镜,点开放大镜就能看到 ts 资源列表;
3、下载列表中的所有 ts 文件,所有 , 所有 ,所有,都要下,建议开迅雷 集中下到一个文件夹;
4、得到一个有很多 ts 文件的文件夹,有的网站的 ts 文件群的命名有顺序还好,有些网站的 ts 文件群是无序的;
5、对于无序命名的 ts 文件群就需要对所有 ts 文件按顺序重命名,建议用阿拉伯数字顺序命名,方便合成。猫抓的解析页面的地址列表就是 ts 文件的正确顺序,对于无序 ts 命名可以对照猫抓解析页面的列表。大量文件以此重名名是个不小工作量,纯手动肯定是不可能的,笔者用的半手动方式,个人觉得已经很方便了,各位看官有更好对无序 ts 文件群顺序重命名的方法欢迎留言;
5.1、先准备一个重命名的 Python 脚本。
import os os.rename('F:\\download\\HBNLcXeV.ts','F:\\download\\0001.ts')
有多少个 ts 就复制多少行 os.rename('F:\\download\\HBNLcXeV.ts','F:\\download\\0001.ts')
5.2、按猫抓解析页面 ts 文件的顺序对 Python 脚本进行整理,格式参照下图;笔者建议 用 Sublime Text 来编辑 Python 重命名脚本,支持多行同时修改粘贴,还可以用 ZenCoding 语法快速顺序编号 (关于 ZenCoding 参照 https://www.cnblogs.com/MirageFox/p/5583714.html );
5.3、准备好重命名脚本后,执行脚本,可以得到全部按顺序编号命名的 ts 文件群,接下来就可以开始合并文件群了。
6、用 cmd 命令合并 ts 文件群,命令 : copy/b F:\1816\*.ts F:\newfile.ts 执行后 F盘1816文件夹 下的所有 ts 文件会按文件名顺序合并为一个 名为 newfile.ts 的文件。
注:参考资料
7、ts 文件转码,推荐用格式化工厂 转为主流视频文件格式 例如,avi 、 mp4 等,直接用 ts 文件也可以播放,只是有点不流畅,当然觉得 ts 文件可以直接用的也可以忽略转码。
笔者记录非常详尽,中间有优化部分欢迎大家留言提意见。