AV?BV!

:(

Bilibili在2020/3/23公布要将av号全面换成BV号:公告地址

尊敬的各位用户:
一直以来,AV号都是B站视频稿件的重要标识,在视频的传播和分享中起到了关键作用。
为了保护稿件信息安全,容纳更多投稿,维护UP主的权益,自2020年3月23日起,AV号将全面升级为BV号。与纯数字的AV号不同,BV号是一段由数字和大小写字母组成的字符串,经过算法自动生成。未来将统一使用BV号作为稿件标识。
同时,2020年3月23日前生成AV号的相关功能保持不变。例如,已分享的稿件链接,AV号搜索,以及动态、评论、私信中的高亮跳转。
此外,用户在复制BV号或者包含BV号的链接后,打开B站APP的同时会自动跳转至该视频。
更多详细规则说明请见链接FAQ:https://www.bilibili.com/blackboard/activity-BV-PC.html
BV号将继续见证UP主们在这个舞台上创造无限的可能。陪伴大家的每一次灵感迸发,为每一个创意而干杯喝彩!

这就意味着AV号将永远没落于网络世界的角落,50年后b站的AV号将成为这个年代所有人的回忆.

我当时就觉得这是扯淡,本来AV号弄的好好的为什么又要换成BV号??

简介

AV号

AV 指的是AcgVideo(动漫视频)而不是AdultVideo ,目的是为了和niconico的 sm 号(SmileVideo)相对应。

通常AV号是按顺序的,比如前一个视频是AV10491,下一个视频如果审核通过了那一定是AV10492,绝对不可能是AV10493或AV17001,即使被删了那也是永远占了这个坑,想填都填不了, 排除后台操作可能性

AV号已经持续了将近12年的时间,具有了非常悠久的历史,b站老用户永远都不会忘记的数字。

BV号

BV:“BilibiliVideo”,感觉和油管接轨了一样,也是一堆看似乱码的玩意

反人类设计:10位固定设计,字母数字混合,最难受的是还要区分大小写,这让线下传播视频就变得异常难受啊!!!

区分大小写意味着如果你忘记按CapsLock打bv,那么你就会进入一个全新世界

坏处

难记难打

AV号很简洁,稿件是 av 前缀 加 若干位数字,一般人大都是八到十位,当然一些陈年老梗: av17001 av10492 av10388 往往就更加简洁了。

以前

A: 看看这个沙雕视频,香蕉哥,哈哈哈哈哈哈哈,AV号10198539

B: 1…噼里啪啦…9…噼里啪啦…3…噼里啪啦

B: 噗,哈哈哈哈哈哈哈,笑死我了

A&B: 哈哈哈哈哈哈

结果现在

A: 看看这个沙雕视频,香蕉哥,哈哈哈哈哈哈哈,BV号是17小写x411大写S7小写d大写Y

B: 什么沙雕玩意,那么难打,懒得看。

老是有关键字

比如说av57336629(这个是虚拟的),转成BV是BV17x411R18Y,然后因为有个R18被禁了….

[当时心情真的无语了]

换汤不换药

AV与BV其实是互通的,只是算法极其nb,base58(这辈子就听说过base64)加一堆高大上算法,结果还是可逆的,也就是说AV号实际上永远保留下来,但是永远从外部转向内部了.

分享视频必须进入b站复制bv号或者直接告知标题。

因为记不住。

著名的视频早晚会淡出视野。

因为记不住。

新用户则会对一些老视频的梗一头雾水。

因为他们不知道,AV已经成为历史。

邻居问题

很多up主都有这样的经历,将自己视频的av号加个1或减个1,看看邻居的视频怎么样.对于自己稿件通过审核的时间也把握的清楚

搞颜色

upload successful

upload successful

注:BlueVideo是美国黄片的俚语

当然也有唯一好处

孩子:妈妈过来看看B站上的AV!

啪!

妈妈:小小年纪不学好, 和隔壁老王一样 看AV!


孩子:妈妈过来看看B站上的BV!

妈妈:欸,宝贝,来了~~~~

究竟是为什么,让B站决定要换BV呢?

网上众说纷纭,不外乎关于这几点:

AV号有限,装不下了

目前我觉得可能性不大,一般性int值能达到2147483647,全中国一人发个视频也勉强装得下,而且最主要的AV号和BV号是互通的,以BV1874111715为例

upload successful

换成av号av99307985

upload successful

这说明,av只是从明面转向暗面,实际还是存在的.

当然,我也不清楚av什么时候会永远被清除,不过我可以肯定,av在最近10年估计都不会消失,因为B站也不想让以前网上流传的b站av链接点进去变成404.

反爬虫

反百度爬虫这种沙雕问题不在讨论范围内,b站估计反的是从av1到av100000000获取所有标题简介之类的爬虫.

可问题是,谁会那么蛋疼去遍历10万个视频的简介,大多数爬虫也就是遍历热搜榜的视频,这些换不换都是一样的啊.

保护安全和利益

?????我觉得我语文阅读理解有点小问题,没读懂,有大神在评论区指导一下吗?

宣扬品牌文化

其实这个解释有一定道理,但我觉得有点不必要,毕竟av号一贴别人就屁颠屁颠去b站粘贴了,换成bv还导致复制的位数更大了

模仿油管

虽然经常上油管鬼混,但我非常厌恶这种行为,av号是b站独有的文化之一,说难听点,现在随意跟youtube屁股,我觉得b站有点变了味.

常用油管的朋友应该能看到,油管内部链接都是直接复制的链接,而不是一串神秘代码,这使传播视频的同时,强制向所有观众传播了油管的品牌。同样常用/s/xxx神秘代码+密码的朋友,也知道百度网盘、百度盘、百度云是一个多么不清晰的品牌概念。

以前是AV加一串数字,很是没牌面。

现在是BV加一串字母数字,看起来像一串密码,不容易记住,跟国际接轨,很有牌面。

故意避免线下传播

没什么,五星好评,这个结论我能送上天

名字难听

…好像确实是这样的

转换

之前提了很多次,av与bv是互通的,接下来随便说几个avbv互相转换的方法,估计有效期能很长.

原生自带转换

以BV1874111715

upload successful

ChromeF12直接开挂开发者调试,选择 Console 控制台,输入aid

upload successful

返回一串数字,就是av号

upload successful

同理,对于AV视频,可以输入bvid获取那 F**king BV

upload successful

缺点

  1. 手机无法使用,当然vConsole那就不再是原生浏览器原汁原味了.
  2. 对于一些已删除和不存在(这两个是有区别的)的视频无法正常返回.

官方接口

AV to BV

接口: https://api.bilibili.com/x/web-interface/archive/stat?aid=

后面跟av号码,比如99307985,输入

https://api.bilibili.com/x/web-interface/archive/stat?aid=99307985

返回json格式:

{"code":0,"message":"0","ttl":1,"data":{"aid":99307985,"bvid":"BV1874111715","view":59702,"danmaku":524,"reply":1291,"favorite":1550,"coin":649,"share":134,"like":5068,"now_rank":0,"his_rank":0,"no_reprint":1,"copyright":1,"argue_msg":"","evaluation":""}}

其中bvid即为bv号.

BV to AV

接口: https://api.bilibili.com/x/web-interface/archive/stat?bvid=

后面跟bv号码,比如1874111715,输入

https://api.bilibili.com/x/web-interface/archive/stat?bvid=1874111715

返回json格式

{"code":0,"message":"0","ttl":1,"data":{"aid":99307985,"bvid":"BV1874111715","view":59704,"danmaku":524,"reply":1291,"favorite":1551,"coin":649,"share":134,"like":5068,"now_rank":0,"his_rank":0,"no_reprint":1,"copyright":1,"argue_msg":"","evaluation":""}}

其中aid即为av号

缺点

对于一些特♂殊♂の♀视♂频,av10492,则返回

{"code":-403,"message":"访问权限不足","ttl":1,"data":null}

直接数据库

这个,我真的服了,方法有点傻,但我还是佩服,大家可以去知乎上看看这位大仙,在这里就不贴链接了。

算法

知乎mcfx的回答,欸我是真的服了,下面直接照搬.

table='fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF'
tr={}
for i in range(58):
	tr[table[i]]=i
s=[11,10,3,8,4,6]
xor=177451812
add=8728348608

def dec(x):
	r=0
	for i in range(6):
		r+=tr[x[s[i]]]*58**i
	return (r-add)^xor

def enc(x):
	x=(x^xor)+add
	r=list('BV1  4 1 7  ')
	for i in range(6):
		r[s[i]]=table[x//58**i%58]
	return ''.join(r)

print(dec('BV17x411w7KC'))
print(dec('BV1Q541167Qg'))
print(dec('BV1mK4y1C7Bz'))
print(enc(170001))
print(enc(455017605))
print(enc(882584971))

互相转换脚本,如果算法没猜错,可以保证在 av 号 upload successful 时正确,同时应该在upload successful 时也是正确的。

此代码以 WTFPL 开源。
UPD:之前的代码中,所有数位都被用到是乱凑的,实际上并不需要,目前只要低 6 位就足够了。
(更大的 av 号需要 64 位整数存储,但是 b 站现在使用的应该还是 32 位整数,所以应该还要很久)
发现的方法:首先从各种渠道的信息来看,应该是 base58 编码的。设 x 是一个钦定的 av 号,查询upload successful这些 av 号对应的 bv 号,发现 bv 号的第 12、11、4、9、5 位分别会变化。所以猜测这些是 58 进制下的相应位。但是直接 base58 是不行的,所以猜测异或了一个大数,并且 base58 的字符表可能打乱了。经过实验,bv 号最低位相同的数,av 号的奇偶性相同,这一定程度上印证了之前的猜想。接下来找了一些 av 号 x,满足 x 和 x+1 对应 bv 号的第 11 位不同。设异或的数为 X,那么upload successfulupload successful表示异或)。由于 av 号(除了最新的少量视频)最多只有 27 bits,所以可以设upload successful。然后可以发现X只和upload successful和b有关,那么可以枚举这两个值(一共upload successful种情况)然后使用上面的式子检查,就能得到若干可能的upload successful和b。这里我得到的可能值如下:(左边是upload successful,右边是b)

22 90983642
22 90983643
50 43234084
50 43234085

有奇有偶是因为异或 1 之后也能找到轮换表。而upload successful则使得模 58 的余数刚好变成upload successful减它。我取了 b=43234084,然后处理最低位,可以得到一个字符表,即 fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF。对于更高位,实际上还需要知道upload successful^2,upload successful^3这些值也可以 枚举 58 次得到,最后我得到的值是upload successful^4=1749968。这时我发现,每一位的字符表是相同的(实际上只对 b=43234084 是这样的),然后再微调一下参数(上面代码中的两个 magic number 就相当于这里的a,b),最后处理了一下upload successful的情况就得到了这份代码。

讲句大实话,我根本没看懂,不过看起来好牛逼的样子.

在线工具转换

既然python能做到,那么js也能做到!

工具很多,知乎上一搜一大把,这里懒得贴了.

插件

Give me AV not BV

upload successful

upload successful

作者估计是个暴躁老哥,骂人骂的挺顺口的,不过脚本不错,脚本检测到地址栏的BV号会自动无刷新替换为AV号,同时会在稿件页标题下方显示原始av号。.

安装前前请安装Tampermonkey或暴力猴脚本宿主.

后言

也许很多人认为这没什么大不了的,不要小题大做,没意思,那你还不是照样要看b站吗?

我王境泽就是饿死,死外边,从这里跳下去,不会吃你们一点东西! 欸,真香

对啊,可是这样就给我们b站的老用户一种错觉(其实我是2017入坑的),认为b站没有重视过老用户的感受,似乎就没了这种情怀.

AV转BV,似乎暗示着B站已经逐渐去ACG化了,这很难令人不落泪,还记得当时b站发的公告吗,大用户与普通用户无异,b站可能会倒闭,但不会变味,b站永远不会添加广告.

这几条与其它氪金为主的中短视频平台的差异广告,成为了绝大多数用户入坑的原因.

现在转头看来,大用户似乎有点越权,b站可能会在我们这辈子人的孙子的孙子的孙子死后倒闭,b站的味道依旧真香,但是以前和现在总感觉多了一些孜然味,原来的味道还有,但没有那么重了.唯一不变的是没有添加添加广告,这是我依旧占坑不爬出来的原因.

AV号历史很悠久,成为b站用户必不可缺的玩意,av梗也很多,很多up辛辛苦苦等在电脑前排个号av号,如今已成为泡影;像av10492,av10388,av17001这些老梗在未来就变成无人能理解的事物,有趣而神秘.

如果BV是高管随随便便提出来没有考虑过用户的体验而是盲目跟油管风的产物,那我可以毫不犹豫骂这个东西垃圾反人类,甚至很担心从前的niconico将成为b站的翻版,希望这是也只是担心.

从此,AV号将成为我们这辈子的纪念,50年后提起AV号就变得像如今提起抗日战争,听起来刺激又有意思,但不亲身体会永远没有这种失落感.


 目录