谈谈B站bv号那些事

B站API的变化

这里就直接来康康网页端最重要的一个API https://api.bilibili.com/x/web-interface/view

这个可以直接获取视频基本信息,比如标题,视频简介,up主信息等

现在同时支持传入aid(av号)和bvid(bv号)

同时传入aid和bvid时,bvid优先

并且无论使用aid还是使用bvid,这个接口都会同时返回aid和bvid, 如下图

如果是为了防止爬虫,这种做法并没有任何作用,但是以后可能会逐步去掉av号,全部采用bv号

B站各个平台对于BV号的兼容情况

b23.tv (分享视频用的短网址) 已经完全兼容bv号

acg.tv(之前分享视频用的短网址)暂时只支持av号,不支持bv号,猜测原因可能是因为acg.tv的跳转中没有使用av/bv这种前缀,但是b23.tv有,适配起来可能不太方便(bv号可能有几率出现纯数字)

老版本安卓客户端支持搜索bv号,但是不会自动跳转到视频里面

5.50.0(更新时间: 2019年11月26日) 及以上版本的客户端完全支持bv号,可能是因为B站这个版本的客户端做了热修复,并且第一次启动的时候可以看到它会显示正在加载初次启动的必须文件

av号和bv号的转换算法

首先要说明的是bv号绝对不是随机生成的,它是av号经过编码后得到的

BV号去除开头的前缀”BV”后

第1位固定为1

第4, 6位分别为4,1

第8位固定位7

可能是因为现在的av号还没有大到这几位需要变动的程度

不排除是因为我的数据样本过少导致的误差,以上信息仅供参考,结尾我会放上我自己爬的数据

具体算法的讲解推荐有一定编程基础的可以去看看知乎上的这个问题,mcfx已经把代码贴出来了,因为我不会python,直接复制也不太好,这里还是推荐有能力的自己去看看,链接是: https://www.zhihu.com/question/381784377/answer/1099438784

这里说说我自己的看法吧

  1. 随机生成AV号同样可以在一定程度上防止爬虫,在这种av号和bv号转换算法都被破解开的情况下bv号就显得没有任何意义了
  2. 又要重新刻bv号到dna里面了,虽然现在av号还可以用,但是按照这样看的话av号肯定会逐步被bv号代替,最后完全消失
  3. 按照官方的说法,可以容纳更多稿件,但是在MySQL中bigint的无符号最大值是18446744073709551615,作为av号也完全够用了,就算是int类型也有的最大值也已经达到了4294967295

最后给大家看看bilisrc(哔哩哔哩安全应急响应中心)QQ群昨天晚上的一小段聊天记录

然后这些人都被踢了23333333333333

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注