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/zh-hk/n/138461.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
UTJY的頭像UTJY
上一篇 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

發表回復

登錄後才能評論