用手机从B站下载了一部分考研视频,发现有的视频下载下来用B站的默认播放器播放没有声音,之前也遇到过,一直以为是视频的问题,这一次突然发现同一个视频在线播放的时候有声音,缓存下来用B站的播放器播放没有声音。

(题外话)其实B站还算有良心的,手机客户端下载视频不需要充会员啥的,而且速度也不慢,由于没有电脑版的客户端,用电脑下载相对来说更麻烦一点,而且不能批量下载。

下载是下载下来了,但是在文档管理里边却找不到缓存的视频,只能用客户端的播放器来播放(意料之中),几乎所有的视频客户端对下载的视频都进行了加密,也许初于对版权的保护吧。(不知道其后的真正意图)

(下面进入正题)

寻找B站缓存文件

在客户端视频缓存目录中的设置中可以找到设置视频缓存位置的选项,默认是:Android>date>tv.danmaku.bili>download。按照这个路径,打开手机“文件管理”(也可以使用ES文件浏览器),进入手机文件夹目录,依次打开文件夹,直达B站的老窝(藏的比较深,可以自定义为一个容易找到的目录,手机上其他软件也会在data目录下储存一些缓存文件)。

先是看到了一些以数字命名的文件夹(如果你没有在B站下载视频就是空的咯),这是所下载的视频的AV号(次AV非彼AV,随意在B站打开一个视频,左上角显示的数字,数字唯一,以此来确定你需要播放哪个视频),随意点击一个进去,你会看到几个数字,这里的数字的意思就是b站视频的分P(分集)的意思,你缓存了几个视频就有几个数字文件夹。

打开“1”文件夹,会发现有一个“entry.json”的文件,用于储存视频的弹幕,还有一个名称类似“lua.flv360.bili2api.16”看似乱七八糟的文件夹,打开之后会看到很多文件,拓展名为“.blv”的文件就是我们要找的文件,如果你下载的视频质量较低或者视频本来就很小就只有一个“0.blv”,如果你缓存的这视频比较大或者是高清的就会被分割也n个小片段片段,出现“1.blv”、“2.blv”……等n个文件。

如果只是为了用其他播放器播放(因为我发现有的视频在B站不能1.5倍速度快房),可以点击文件然后用其他播放器播放即可。

同时我还发现了一个index.json文件夹,打开之后从中发现了一个链接,http:\/\/101.75.242.4\/vg7\/upgcxcode\/90\/18\/38291890\/38291890-1-15.flv?expires=1527252600&platform=android_i&ssig=FP3Bai12LjT5zNga-4YuHw&oi=3720393631&nfa=7YaHycOrw0UDEXwF5P\/9zQ==&dynamic=1&hfa=2033503812&hfb=ZDA4YmQ0N2M3MjJiNDQxYmVmZGQzNzlhYTgxYmUyMTI=&npcybs=1&trid=e3cacc06d42d4adc921b168d3f354403

猜测是视频的真实链接,不难看出101.75.242.4是储存该视频的B站服务器的ip,还以为是加密的链接,但是发现http:和ip之间有\/\/,大概一个一个\/代表一个/吧,把连接中出现的都改了以后直接粘贴到浏览器发现是个可以下载的flv文件,应该是没错了,但是只有26M,应该是切割以后的。其他参数就不知道是什么鬼了,然后就没有然后了。。。 。。。(这段话似乎也没什么用)

.blv目测是B站加密版(笑嘻嘻)的flv格式,因为直接把视频重命名为.flv格式的也可直接播放。

b站缓存文件有.flv和.mp4两种格式,.flv占大多数,旧版客户端有.flv转.mp4的功能(需要下载旧版本的可以看《不翻墙下载Google play商店的应用》)。这就要看你下载视频的目的了,要么选择低一些的清晰度进行缓存,不会被分割,要么后期将视频片段拼接起来。

附:电脑下载B站视频方法

找到需要下载的视频链接,例如:http://www.bilibili.com/video/av23028597,在bilibili后边,.前边加上jj两个字母,别的不动,回车即可。例如:http://www.bilibilijj.com/video/av23028597