摘要
试图分析bilibili视频流如何传递
编码解析视频流
脚本运行,便于使用
试图分析bilibili视频流如何传递
首先,我们需要很碰巧的知道.m4s格式,这是一种用于做视频片段的格式。
其次,我们需要很碰巧的打开谷歌的开发者工具,发现他的请求路径,如下图
很好,这时候我们已经获得了他的视频流了。其实已经可以下载了。但是我发现了更神奇的东西。
从html元素中找到了如图所示的东西,使用json格式化之后,发现他是对应着不同清晰度的视频流请求,以及一个音频文件。
那么我们就有结论了。我们有视频所在页面的地址,通过bv号来标识【在旧版本的bilibili中是通过av号】,我们从页面中能解析出对应的视频流和音频,随后我们可以模拟下载视频流。
编码解析视频流
虽然我java写得最多,但是python用来写脚本是真的香,主要是因为有大量现成的库存在。人生苦短 ,我用python。
我们需要一些库来帮助我们快速实现目的
- requests-模拟请求的库
- pyquery-解析html的库
- json-解析json的库
获取html内容
模拟一个user-agent,通过request发起请求。免得被当做机器人给拦截了 。
解析出html中的视频音频路径
下载视频并输出到本地。
再稍微调整调整基本齐活