SANSUI'S BLOG

系统外观
分类标签
RSS
Sansui 2023
All rights reserved
人活着就是为了卡卡西

B站反查用户弹幕小记

8 月 15 日, 2018

工具:Chrome浏览器

反查用户分为视频里现存的弹幕反查和历史弹幕反查。其中反查历史弹幕需要用Chrome的调试工具,需要懂一点前端,比较简单,仍然是非技术向的一个小记。

从视频里现存的弹幕反查用户

能有工具用就用。以下两个工具都能实现从视频里现存的弹幕反查用户。

从历史弹幕里反查

了解原理需要知道前端的基础。原理在这篇文章里说得很清楚了,一定要看。(目前文章已失效,请继续往下看)

问题是在于历史弹幕文件的获取。2018年历史弹幕的API有变动,需要用户已经登录了才能获取(因为页面的请求方式是是Request),因此之前网上的工具箱都没法用了。这里说一下使用Chrome的开发者工具获取历史弹幕并反查用户的方式。

首先,Chrome需要登录过bilibili,这样才能有cookie。

然后打开一个视频,这里用av29242495为例。

开启Chrome的开发者工具,并选择network选项卡,刷新一下,大概是这样。

在上图的bilibili界面中选"查看历史弹幕",选则一个日期(我选的8月14日)。然后在右侧的Filter中填入history,结果是这样

)

其中以history开头的文件就是我们所需要的历史弹幕文件,双击就可以在新标签页中打开。这个例子中的历史弹幕文件地址长这样:

https://api.bilibili.com/x/v2/dm/history?type=1&oid=50775916&date=2018-08-13

可以见这个历史弹幕的api就长这样,oid是视频的编号(不是av号),后面加个date。type=1目前我没弄清楚是什么。

弹幕文件里的弹幕都是这个样子的

<d p="弹幕出现时间,模式,字体大小,颜色,发送时间戳,弹幕池,用户Hash,数据库ID">123123</d>
<!--比如-->
<d p="10.15700,1,25,16777215,1534175832,0,39d120,3687662110113792">卧槽番外</d>
<d p="19.93100,1,25,16777215,1534175761,0,6acc8733,3687624958541824">台词太强了,节奏太好了</d>
<d p="24.98000,1,25,16777215,1534175677,0,f11c8b72,3687580849668100">来啦 给大大比心</d>

其中要用的是用户Hash。用户Hash只是简单的把数字ID用ITU I.363.5算法进行了Hash。不过这里不用手动写算法了,因为下面的接口还能用。

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

比如我从文件里任意选了两个用户Hash,替换掉上面的[用户Hash],分别返回了如下结果

{"error":0,"data":[{"id":17882889}]} // 比较老的用户
{"error":0,"data":[{"id":390105526},{"id":21670130}]} // 一般新用户

用户ID(uid)为后者。用B站的个人主页网址格式就能找到了弹幕发送者的主页了。格式如下

https://space.bilibili.com/uid/#/
更新于 2018-08-15 08:00
Waline