您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
在 B 站网页端开播
// ==UserScript== // @name B 站网页端直播 // @namespace ProgramRipper // @version 0.2.0 // @author ProgramRipper // @license MIT // @description 在 B 站网页端开播 // @homepage https://github.com/ProgramRipper/BLiveWeb // @icon https://www.bilibili.com/favicon.ico // @supportURL https://github.com/ProgramRipper/BLiveWeb/issues // @match *://link.bilibili.com/p/center/index // @connect api.live.bilibili.com // @connect * // ==/UserScript== /* eslint-disable */ /* spell-checker: disable */ // @[ You can find all source codes in GitHub repo ] var originOpen = XMLHttpRequest.prototype.open; XMLHttpRequest.prototype.open = function (method, url, async, user, password) { var _this = this; var _a; if (async === void 0) { async = true; } if (user === void 0) { user = null; } if (password === void 0) { password = null; } var _b = new URL(url.startsWith("//") ? "https:" + url : url), host = _b.host, pathname = _b.pathname; switch (method) { case "GET": if (host === "api.live.bilibili.com" && pathname === "/xlive/app-blink/v1/live/GetWebLivePermission") { var getter_1 = (_a = Object.getOwnPropertyDescriptor(XMLHttpRequest.prototype, "responseText")) === null || _a === void 0 ? void 0 : _a.get; Object.defineProperty(this, "responseText", { get: function () { var resp = JSON.parse(getter_1 === null || getter_1 === void 0 ? void 0 : getter_1.call(this)); resp.data.allow_live = true; return JSON.stringify(resp); }, }); } break; case "POST": if (host === "api.live.bilibili.com" && pathname === "/room/v1/Room/startLive") { this.send = function (body) { var searchParams = new URLSearchParams(body); searchParams.set("platform", "ios"); XMLHttpRequest.prototype.send.call(_this, searchParams.toString()); }; } break; } originOpen.call(this, method, url, async, user, password); };