哔哩哔哩BV号转AV号方法

Hik
@Ta 03-24 09:13 362点击
哔哩哔哩(以下简称“B站”)表示,一直以来,AV号都是B站视频稿件的重要标识,在视频的传播和分享中起到了关键作用。为了保护稿件信息安全,容纳更多投稿,维护UP主的权益,自2020年3月23日起,AV号将全面升级为BV号。

  据介绍,与纯数字的AV号不同,BV号是一段由数字和大小写字母组成的字符串,经过算法自动生成。未来将统一使用BV号作为稿件标识。同时,2020年3月23日前生成AV号的相关功能保持不变。例如,已分享的稿件链接,AV号搜索,以及动态、评论、私信中的高亮跳转。

  此外,用户在复制BV号或者包含BV号的链接后,打开B站App的同时会自动跳转至该视频。

页面扒,浏览器调试模式输入window.aid即可知道av号,BV号window.bvid,弹幕号window.cid

或者Python脚本(楼下@iola1999 链接中的)

# -*- coding: UTF-8 -*-
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(98791488))
print(enc(455017605))
print(enc(882584971))

亲测可行,可在Py在线编译器上测试https://c.runoob.com/compile/6
https://cway.top/post/657.html
https://cway.top

回复列表(11)
  • 1
    @Ta / 03-24 08:16
    一个api搞定的事
  • 2
    @Ta / 03-24 08:16
    如何看待 2020 年 3 月 23 日哔哩哔哩将稿件的「av 号」变更为「BV 号」? - mcfx的回答 - 知乎
    https://www.zhihu.com/question/381784377/answer/1099438784
  • 3
    Hik
    @Ta / 03-24 09:02

    @wrongs@iola1999这个方程式流弊,果然b呼人均985 211
    https://cway.top

  • 4
    o
    @Ta / 03-24 09:14
    @iola1999,b呼还是这么稳,留个正常人能看懂的只有寥寥一句

    像在发度盘或者磁力链接一样……
  • 5
    @Ta / 03-24 10:58

    我还是比较喜欢av
    -何以待你好偏不懂

  • 6
    @Ta / 03-24 11:52
    b站是在考虑int型2147483647个av号用完之后的事
  • 7
    @Ta / 03-24 11:55
    @Hik,其实之后的也可以用av号访问
    eg.
    https://www.bilibili.com/video/av98880118
    https://www.bilibili.com/video/BV1f741117jx
    是同一个视频
  • 8
    @Ta / 03-25 18:03

    已支持BV视频链接

    《视频:https://www.bilibili.com/video/BV1f741117jx》

    视频链接

  • 9
    @Ta / 03-25 02:36
    哔哩哔哩BV号转AV号php方法:
    <?php
    class Bilibili{
        protected $table = "fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF";
        protected $tr = [];
        protected $s = [11, 10, 3, 8, 4, 6];
        protected $xor = 177451812;
        protected $add = 8728348608;
    
        public function __construct($id=null)
        {
            for ($i = 0; $i < 58; $i++) {
                $this->tr[$this->table[$i]] = $i;
            }
        }
    
        public function dec($id){
            $r = 0;
            for ($i = 0; $i < 6; $i++) {
                $r += $this->tr[$id[$this->s[$i]]] * 58 ** $i;
            }
            return ($r - $this->add) ^ $this->xor;
        }
    
        public function enc($id){
            $id = ($id ^ $this->xor) + $this->add;
            $r = str_split('BV1  4 1 7  ');
            for ($i = 0; $i < 6; $i++) {
                $r[$this->s[$i]] = $this->table[floor($id / 58 ** $i) % 58];
            }
            return implode("",$r);
        }
    }
    ?>
    
  • 10
    @Ta / 03-25 16:48
  • 11
    Hik
    @Ta / 03-25 16:55

    @别人,可以可以
    https://cway.top

添加新回复
回复需要登录

[聊天-公共聊天室] 唯美无殇: