• 一键工具

    http://biliquery.typcn.com/

    原理

    首先要从 B 站弹幕的说起,B 站视频的 ID 名字是 CID ,一个 AV 号下如果有多个分 P,就会占用多个 CID,CID 可以看做是视频的唯一 ID,通过这个 ID ,我们可以读取到 B 站的弹幕,格式为 comment.bilibili.com/[CID].xml

    我们随便拿一个弹幕片段举例

    <d p="1060.1500244141,1,18,65280,1445144321,0,191ad66e,1286476425">23333333333333333333333</d>
    <d p="553.21002197266,1,25,16764108,1445144340,0,8e55050a,1286477409">2333333333333333</d>
    <d p="966.34002685547,1,25,16777215,1445144346,0,65eb5d41,1286477759">110</d>
    <d p="593.71398925781,1,25,16777215,1445144351,0,5f98bdb2,1286477985">23333</d>
    

    d 为弹幕的节点,p 是弹幕的属性,中间就是弹幕的内容。

    p 弹幕属性的含义是什么呢?

    <d p="弹幕出现时间,模式,字体大小,颜色,发送时间戳,弹幕池,用户Hash,数据库ID">123123</d>
    

    但是其用户 Hash 相当简单,只是简单的把数字 ID 用 ITU I.363.5 算法进行了 Hash,Spec 在这里 ,甚至在 PHP 中直接被封装现成了函数。

    那么,生成一个彩虹表,反查即可。

    集成

    调用以下 API 可以进行 Hash 到用户数字 ID 的转换

    http://biliquery.typcn.com/api/user/hash/[用户Hash]