最近在B站追番,突然想把特别喜欢的动漫下载收藏。到目前为止,哔哩哔哩官方App好像还没有下载视频的功能,虽然可以在手机上缓存视频,但是还没有办法完全达到真正意义上的下载。本文将记录探究怎么下载哔哩哔哩视频的整个过程,期间可能会涉及一些网络技术问题。不过在文章的最后,一定会附上一个最终的简要步骤。对于只想下载视频的朋友,建议直接跳到文章中后一节查看下载B站视频的方法。
哔哩哔哩在线视频原理
首先从大方向上来说,哔哩哔哩的在线视频在不同阶段使用了不同的视频流格式。前期使用FLV的格式。后期使用的是mpeg-dash标准的视频流。关于这篇文章大家可以看一下《MPEG-DASH 流媒体技术介绍》。然而,B站也不是完全遵循mpeg-dash的标准。例如,它并没有固定的MPD文件。这个做法和腾讯视频类似。腾讯视频使用的是HLS的流媒体标准,但是并没有M3U8文件。关于腾讯视频如何下载我们在另一篇文章中会详细说明。
B站流视频文件
B站早期使用的是FLV的格式,大多URL以ep结尾。例如:
https://www.bilibili.com/bangumi/play/ep88260
该在线动漫以多个flv视频组成,通过分段下载的方式进行播放。
这种类型的视频比较方便下载,只要找到对应的flv文件地址,就可以下载下来。
哔哩哔哩后期使用的是mpeg-dash标准视频流,并且没有固定的MPD文件保存流视频的信息。它是通过一个API调用获取视频信息的。如图所示:
这种类型的视频下载比较困难,主要是需要按照mpeg-dash的方式解析视频列表。并且大多数情况下,音频和视频文件还是需要分开下载的。
扫码联系船长