B站番剧解锁简介

B站作为全球最大的二次元社区之一,以动画、漫画、游戏为主要内容,成为了非常受欢迎的平台之一。然而,由于某些原因,一些番剧作品在国内无法观看。为了解决这个问题,开发者们陆续推出了一些解锁工具。本文将以 B站番剧解锁为中心,从多个方面进行阐述。

一、解锁工具初探

现在,市面上的解锁工具有很多种,其中最为常用的就是 tampermonkey 插件。然而,tampermonkey 功能十分强大,同时也允许用户自定义脚本,使得该插件可以实现更多的功能。不过,在使用 tampermonkey 插件前,需要先了解一些相关的基础知识。

1. tampermonkey 的作用是帮助用户执行指定的 JavaScript 代码,可以修改页面内容、响应网络请求、注入其他 JavaScript 等功能。


// 这是一个例子,可以直接复制到 tampermonkey 中执行
// ==UserScript==
// @name         修改页面标题为 hello world
// @namespace    https://www.example.com/
// @version      0.1
// @description  修改页面标题为 hello world
// @match        https://www.example.com/*
// ==/UserScript==

(function() {
    'use strict';
    document.title = "hello world";
})();

2. 代理是 tampermonkey 支持的另一个重要特性。通过设置代理,可以将 HTTP 请求转发到指定的服务器,实现网络资源的跨域访问。


// 这是一个例子,可以直接复制到 tampermonkey 中执行
// ==UserScript==
// @name         用公共 API 请求一个图片资源
// @namespace    https://www.example.com/
// @version      0.1
// @description  用公共 API 请求一个图片资源
// @match        https://www.example.com/*
// ==/UserScript==

(function() {
    'use strict';
    const xhr = new XMLHttpRequest();
    const url = 'https://www.example.com/img.png';
    xhr.open('GET', url);
    xhr.responseType = 'blob';
    xhr.onload = function() {
        const blob = xhr.response;
        const img = document.createElement('img');
        img.src = URL.createObjectURL(blob);
        document.body.appendChild(img);
    };
    xhr.send();
})();

3. 经典的代理方案是在服务器上设置反向代理服务,然后在 tampermonkey 中设置代理。当然,通过代理服务器还可以实现请求日志、数据抓取等功能。

二、B站番剧解锁实现步骤

当我们对 tampermonkey 有了一定的了解之后,就可以开始编写脚本来实现 B站番剧的解锁了。

1. 查找 API 接口:为了获取番剧的地址,需要先查找 API 接口。在 B站 官网上,我们可以在开发者模式中找到 m.core.js 文件,并对其进行查找。通过搜索关键字,我们可以较快地找到 API 接口地址。


api.bilibili.com/pgc/player/web/playurl?avid=${avid}&cid=${cid}&qn=${quality}&typeflag=pipe&otype=json&ep_id=${ep_id}&fourk=1&fnver=0&fnval=16

该接口地址需要提供一些参数,例如 avid、cid、quality 等。需要注意的是, B站 为了防止盗链,会根据请求头 Referrer 的不同,返回不同的结果。因此,在编写脚本之前,需要先设置正确的请求头信息。


// 设置请求头
GM_xmlhttpRequest({
    method: 'GET',
    url: '',
    headers: {
        'Referer': window.location.href,
        'User-Agent': window.navigator.userAgent,
        'Origin': 'https://www.bilibili.com',
    },

2. 获取地址:根据 API 接口地址获取到地址之后,将地址插入到页面中即可。这里我们可以使用 DOM 操作来实现此功能。

需要注意的是,根据 B站 的视频播放规则,用户必须先点击视频才能获取到地址。因此,我们需要监听页面点击事件,等待用户点击之后再执行地址获取操作。


// 等待用户点击
document.querySelector('.bilibili-player-video').addEventListener('click', async e => {
    // 发起请求,获取视频地址
    const xhr = await GM_xmlhttpRequest({
        method: 'GET',
        url: '',
        headers: {
            'Referer': window.location.href,
            'User-Agent': window.navigator.userAgent,
            'Origin': 'https://www.bilibili.com',
        },
        responseType: 'json'
    });
    const playurl = xhr.response.durl[0].url;

    // 添加到页面中
    const video = document.querySelector('video');
    video.src = playurl;
});

三、总结

本文介绍了通过 tampermonkey 插件来实现 B站番剧的解锁。通过正确设置请求头信息和 API 接口参数,获取到正确的视频地址并插入到页面中,从而实现了番剧的解锁。这里提供一个完整的代码示例,供读者参考。

原创文章,作者:UTJY,如若转载,请注明出处:https://www.506064.com/n/138461.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
UTJYUTJY
上一篇 2024-10-04 00:21
下一篇 2024-10-04 00:21

相关推荐

  • Java2D物理引擎简介及应用

    本文将介绍Java2D物理引擎的基本概念、实现原理及应用案例,以及对应代码示例。 一、物理引擎概述 物理引擎是一种计算机程序,用于模拟物理系统中的对象和其互动,如重力、碰撞、弹力等…

    编程 2025-04-29
  • Django框架:从简介到项目实战

    本文将从Django的介绍,以及如何搭建Django环境开始,逐步深入到Django模型、视图、模板、表单,最后通过一个小型项目实战,进行综合性的应用,让读者获得更深入的学习。 一…

    编程 2025-04-28
  • Python三体运动简介

    本文将从多个方面详细阐述Python三体运动,包括什么是三体运动,三体运动的公式与原理,实现三体运动的Python代码等内容。 一、什么是三体运动? 三体运动是指三个天体相互作用所…

    编程 2025-04-27
  • Java中的僵尸进程简介与解决方法

    本文将对Java中的僵尸进程进行详细阐述,并给出几种解决方法。 一、僵尸进程的概念 在操作系统中,进程是指正在执行的程序。当一个进程创建了一个子进程,而该子进程完成了任务却没有被父…

    编程 2025-04-27
  • PyTorch模块简介

    PyTorch是一个开源的机器学习框架,它基于Torch,是一个Python优先的深度学习框架,同时也支持C++,非常容易上手。PyTorch中的核心模块是torch,提供一些很好…

    编程 2025-04-27
  • Python解锁Wi-Fi密码

    想要解锁Wi-Fi密码,你需要使用Python编程语言。Python是一种高层次、面向对象、解释型的动态编程语言。许多人都可以轻松学习Python,并用它来编写各种各样的程序。在本…

    编程 2025-04-27
  • Python操作DB文件简介

    本文将从以下几个方面详细阐述如何使用Python操作DB文件: 创建和打开DB文件 执行SQL语句 读取和写入数据 关闭DB文件 一、创建和打开DB文件 Python内置了SQLi…

    编程 2025-04-27
  • Python写Word模板简介

    Python可以用来生成Word文档,让你可以自动化生成报表、合同、申请表等文档。本文将从多个方面详细介绍Python写Word模板的方法和技巧。 一、Word模板的结构 要生成W…

    编程 2025-04-27
  • 雪峰老师简介

    解答:深度剖析雪峰老师的IT技术经验 一、教育背景 雪峰老师本科毕业于西安电子科技大学,获得计算机科学与技术学位。随后,他在美国获得了计算机科学硕士学位。 雪峰老师所在大学是国内顶…

    编程 2025-04-27
  • Start UML简介

    Start UML是可视化建模工具,采取UML标准的符号和符号语义,特别针对Java开发优化的能力。Start UML允许您创建和编辑UML 1.0,1.1,1.2,2.0或2.1…

    编程 2025-04-25

发表回复

登录后才能评论