废话不多说啦,直接上教程。
预先准备
1.您需要在电脑上安装和配置Fiddler。
官网:https://www.telerik.com/fiddler
2.您需要设置浏览器的代理,确保Fiddler可以抓到进出浏览器的数据包。
具体步骤
1.Fiddler,启动!
2.BiliBili,启动!
去Fiddler清一下屏幕,快捷键是Ctrl+x。
然后去B站播放您想要保存下载的视频。
2.回头看看Fiddler监控到的数据包
在这里简单介绍下BiliBili的视频是怎么回事,B站把不仅把视频和音频分开放,还把它们拆成一截一截的了,下载的时候也只能一截一截的下。
意思就是,一个数据包可能是一截视频,也有可能是一截音频。我们的目的,是下载所有的视频,下载所有的音频,再将视频和音频合并起来。
先看一眼数据包,长这样——
不同的图标表示不同的数据类型,有没有觉得蓝白色的图标特别符合眼缘?它就是我们要找的视频或者音频文件。
现在找到来自B站的第一个蓝白色图标的数据包,然后看右边——
按照橙红色的矩形框依次选择Inspectors、Headers、Headers来查看数据包。
接着来看绿色的矩形框,里面的Content-Range是一项很关键的数据,其中995-1062表示这个数据包所包含的那一截视频内容,而完整的视频内容为1127942。所以我们要获取0-1127942的数据。
以上是视频的数据包。
音频的数据包,我们往下面找一找,找到蓝白色图标下面的其他蓝白色图标,点一下它,再把目光转向右边,依次选择上图橙红色矩形框里面的内容,然后查看Content-Range。
可以看到Content-Range写的是933-1000,表示数据包的内容是933-1000,而完整的内容是111618,和上面的1127942是不同的。遂认定这个111618是完整的音频数据,而1127942是完整的视频数据。
一般来说大的那个就是视频。
好了,下一步是:保存视频和音频的完整内容,也就是下载第一个数据包的0-1127942作为完整的视频内容,下载第二个数据包的0-111618作为完整的音频内容。
于是就需要用到Composer。
利用Composer下载完整内容
1.选中第一个数据包。
2.看右边上方,点一下Composer。
画面变成了这样——
(橙红色的框是我标的)
2.鼠标左键第一个数据包,把它拖到右边橙红色的矩形框里,然后内容一下子就出现了——
3.看到最后一行,Range:byte=995-1062,这表示向服务器请求下载995-1062的内容,但我们需要完整的0-1127942,于是将它改为0-1127942。
4.点一下右上角蓝色矩形框的Execute。
保存下载好的数据包
1.回到左边,下拉到最后,会看到一个崭新的蓝白色图标。
(如果是一个绿色的下载箭头,表示它还没有下载完毕,还正在向服务器请求下载)。
2.选中它,鼠标右键,Save→Response→Response Body
它默认的是后缀是.m4s.txt,我们保存为.m4s格式。
到这里,第一个数据包(视频文件)就处理结束了。
接下来,我们用同样的方式处理第二个数据包(音频文件),得到一个名为audio.m4s的文件。
于是就拥有了完整的m4s格式的音频和视频。
合并视频与音频
这两个m4s文件是很难直接打开的,我们需要借助ffmpeg工具将它们俩合并,这里我就另开一贴,专门介绍如何将m4s文件合并为mp4格式的视频文件。
地址://www.greatytc.com/p/4de7fd57769e
谢谢您的浏览,90度鞠躬!