小五六资源网,小五六博客

哔哩哔哩视频下载原理,B站视频下载接口分析过程

发布:小五六资源网 2023年2月16日 16:18 星期四分类: 各种脚本

https://zhuanlan.zhihu.com/p/541308878

原理:我们可以通过找出b站视频源进行下载视频,如果源视频是没水印的那么我们下载的时候也就没有水印。


首先我们来分析一下B站的视频源

打开浏览器按F12 开发者模式,并模拟切换到手机,如下图

找到b站的视频json接口 链接如下:

https://api.bilibili.com/x/player/playurl?fnval=80&cid=746904707&bvid=BV1pT41157it

参数说明:

(1)avid参数值就是aid,使用时可以用bvid参数代替(它的值就是视频的BV号)

(2)cid参数的值可以通过aid参数获取,它是每个视频的分p编号,同个av号视频里的每p视频都有不同cid值


下面是json文件内容,其中baseUrl就是视频下载链接,json接口里面有多个清晰度,所以有多条视频链接



从上面可知,我们可以根据链接的参数值构造b站的视频接口,进而获取视频的下载链接


1、首先就是获得cid这个参数的值

查询视频cid的接口:

https://api.bilibili.com/x/player/pagelist?bvid=填写视频的BV号

#示例链接

https://api.bilibili.com/x/player/pagelist?bvid=BV1pT41157it

根据这个链接就能查询到视频的cid


2、构造视频接口链接

注意该接口有cid和bvid两个参数

https://api.bilibili.com/x/player/playurl?fnval=80&cid=&bvid=

构造好后:

https://api.bilibili.com/x/player/playurl?fnval=80&cid=746904707&bvid=BV1pT41157it


根据上述接口获得视频下载链接后,如果直接复制链接在浏览器下载是无法打开的,报403错误

因此我们需要在请求的时候加上user-agent和referer头才能正常访问

headers = { 'referer':'https://www.bilibili.com/', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0', }


再附上一个查询视频基本信息接口:

https://api.bilibili.com/x/web-interface/view

参数 aid&cid

如需更多b站接口可参考 B站API接口合集


当然上面的方法下载的视频是会有up水印的,如果要下载无水印的视频,可以试试下面这个方法!

下载工具:

b站主要有三个视频源,分别web/app/TV端,其中TV端是有无水印视频下载源的。

这边分享一个大神做的下载工具BBdown,内含TV端下载源可下载无水印b站视频(文章末尾附下载链接

使用方法:

1、首先来到BBdown软件所在文件夹,然后在上面地址栏输入cmd,并按回车


2、打开命令控制台后输入BBDown -tv 后面接你要下载的视频



3、下载成功后视频保存在软件所在文件夹,我们可以看看视频是不是无水印的

原视频是有水印的


因此真正实现了视频“去水印”,软件使用方法就介绍到这里了。


注:

不支持竖屏的视频,竖屏的视频下载下来还是有水印的

如果下载的视频还是有水印,那就是b站视频源也没有无水印的视频,这种下载就还是有水印的,一般粉丝量大的up的视频都能下无水印的,小up的个别有无水印,估计是因为视频源不同。

温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!

发表评论: