BiliDataManager

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

Este script não deve ser instalado diretamente. É uma biblioteca destinada a ser incluída por outros scripts através da diretiva de metadados // @require https://update.greasyfork.org/scripts/563577/1739686/BiliDataManager.js

Terá de instalar uma extensão como Tampermonkey, Greasemonkey ou Violentmonkey para instalar este script.

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

Terá de instalar uma extensão como Tampermonkey ou Violentmonkey para instalar este script.

Terá de instalar uma extensão como Tampermonkey ou Userscripts para instalar este script.

Terá de instalar uma extensão como Tampermonkey para instalar este script.

Terá de instalar uma extensão de gestão de scripts de utilizador para instalar este script.

(Já tenho um gestor de scripts de utilizador, deixe-me instalá-lo!)

Terá de instalar uma extensão como Stylus para instalar este estilo.

Terá de instalar uma extensão como Stylus para instalar este estilo.

Terá de instalar uma extensão como Stylus para instalar este estilo.

Terá de instalar uma extensão de gestão de estilos de utilizador para instalar este estilo.

Terá de instalar uma extensão de gestão de estilos de utilizador para instalar este estilo.

Terá de instalar uma extensão de gestão de estilos de utilizador para instalar este estilo.

(Já tenho um gestor de estilos de utilizador, deixe-me instalá-lo!)

Autor
ZBpine
Versão
1.0.0
Criado
22/01/2026
Atualizado
22/01/2026
Tamanho
400 KB
Licença
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());