BiliDataManager

BiliDataManager 是一个 Bilibili 数据管理工具库,旨在为开发者提供简洁的接口来抓取和处理 Bilibili 的各种数据。

This script should not be not be installed directly. It is a library for other scripts to include with the meta directive // @require https://update.greasyfork.org/scripts/563577/1739686/BiliDataManager.js

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

Autor
ZBpine
Verzija
1.0.0
Napravljeno
22. 01. 2026
Ažurirano
22. 01. 2026
Size
382 КБ
Licenca
MIT

BiliDataManager

BiliDataManager 是一个 Bilibili 数据管理工具库,旨在为开发者提供简洁的接口来抓取和处理 Bilibili 的各种数据。

本项目采用 UMD 格式打包,可直接作为脚本库通过 @require 引入,导出的全局变量名为 BiliDataManager。。

若要在非油猴脚本环境中使用,请模仿 GM_xmlhttpRequest 封装请求函数。见仿造 GM_xmlhttprequest

模块

  • Client:支持请求B站api。使用 GM_xmlhttpRequest ,解决跨域及 Cookie 问题;提供wbi签名。详情
  • Archive:支持获取视频、番剧、课程、动态等稿件数据,并处理成统一的信息。详情
  • Danmaku:支持获取xml实时弹幕、protobuf实时弹幕、历史弹幕。详情
  • Comment:支持获取评论数据,还能够自动构建评论间的层级树状结构。详情

使用

引入

// ==UserScript==
// @grant        GM_xmlhttpRequest
// @connect      api.bilibili.com
// @require      https://bili-data-manager.min.js
// ==UserScript==

初始化环境

const BDM = BiliDataManager.create({
    httpRequest: GM_xmlhttpRequest,
    name: "B站数据管理",
    isLog: true,
});

获取稿件信息

const arcMgr = new BDM.BiliArchive();
const url = "https://www.bilibili.com/video/BV1zJiGBREPB/";

const info = await arcMgr.getData(url);
BDM.logger.log(info);

获取弹幕

const dmMgr = new BDM.BiliDanmaku(info); //arcMgr.info

await dmMgr.getDmPb();
BDM.logger.log(dmMgr.data);

获取评论

const cmtMgr = new BDM.BiliComment(info); //arcMgr.info

await cmtMgr.getReply();
BDM.logger.log(cmtMgr.replyTree.toTree());

存储

const data = {
    ...arcMgr.data,
    ...dmMgr.data,
    ...cmtMgr.data,
};
GM_setClipboard(JSON.stringify(data));

读取

const data = JSON.parse(GM_getClipboard());

const arcMgr = new BDM.BiliArchive();
arcMgr.setData(data); //return info

const dmMgr = new BDM.BiliDanmaku(arcMgr.info);
dmMgr.setData(data);
BDM.logger.log(dmMgr.dmDict);

const cmtMgr = new BDM.BiliComment(arcMgr.info);
cmtMgr.setData(data);
BDM.logger.log(cmtMgr.replyTree.toTree());