Greasy Fork is available in English.
去除粤语屋视频里嵌入的广告
当前为
// ==UserScript==
// @name 粤语屋去视频内嵌广告
// @name:zh-CN 粤语屋去视频内嵌广告
// @name:zh-TW 粵語屋去視頻內嵌廣告
// @name:zh-HK 粵語屋去視頻內嵌廣告
// @namespace https://bbs.tampermonkey.net.cn/
// @version 1.0.0
// @description 去除粤语屋视频里嵌入的广告
// @description:zh-CN 去除粤语屋及其在中国大陆、香港和台湾地区相关视频网站里嵌入的广告
// @description:zh-TW 去除粵語屋及其在中國大陸、香渌和台灣地區相關視頻網站裡嵌入的廣告
// @description:zh-HK 去除粵語屋及其在中國大陸、香港和台灣地區相關視頻網站裡嵌入的廣告
// @author hua
// @grant unsafeWindow
// @license MIT
// @include https://m3u8.yueyuwu.cc/player/*
// @run-at document-start
// ==/UserScript==
(function () {
unsafeWindow.XMLHttpRequest = class extends unsafeWindow.XMLHttpRequest {
get xhrResponseValue() {
const xhr = this;
if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
const url = xhr.responseURL;
if (url.endsWith('mixed.m3u8')) {
return process_m3u8(super.response);
}
}
return super.response;
}
get responseText() {
return this.xhrResponseValue;
}
get response() {
return this.xhrResponseValue;
}
};
function process_m3u8(file) {
// console.log(file);
let lines = file.split('\n');
let ts_name_pre;
let processed_lines = [];
for (let line of lines) {
if (line.endsWith('.ts')) {
ts_name_pre = line.slice(0, 10);
break;
}
}
for (let line of lines) {
if (line.endsWith('.ts') && !line.startsWith(ts_name_pre)) {
processed_lines.pop();
if (processed_lines[processed_lines.length - 1] == '#EXT-X-DISCONTINUITY') {
processed_lines.pop();
}
console.log(`删除${line}`);
continue;
}
processed_lines.push(line);
}
let processed_file = processed_lines.join('\n');
// console.log(processed_file);
return processed_file;
}
})();