BiliDataManager 是一个 Bilibili 数据管理工具库,旨在为开发者提供简洁的接口来抓取和处理 Bilibili 的各种数据。
Dieses Skript sollte nicht direkt installiert werden. Es handelt sich hier um eine Bibliothek für andere Skripte, welche über folgenden Befehl in den Metadaten eines Skriptes eingebunden wird // @require https://update.greasyfork.org/scripts/563577/1739686/BiliDataManager.js
BiliDataManager 是一个 Bilibili 数据管理工具库,旨在为开发者提供简洁的接口来抓取和处理 Bilibili 的各种数据。
本项目采用 UMD 格式打包,可直接作为脚本库通过 @require 引入,导出的全局变量名为 BiliDataManager。。
若要在非油猴脚本环境中使用,请模仿 GM_xmlhttpRequest 封装请求函数。见仿造 GM_xmlhttprequest
GM_xmlhttpRequest ,解决跨域及 Cookie 问题;提供wbi签名。详情// ==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());