BiliDataManager 是一个 Bilibili 数据管理工具库,旨在为开发者提供简洁的接口来抓取和处理 Bilibili 的各种数据。
Ten skrypt nie powinien być instalowany bezpośrednio. Jest to biblioteka dla innych skyptów do włączenia dyrektywą meta // @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());