关闭抖音弹窗登录,跳过抖音广告和直播,观看直播默认原画
给你来个AI修改的,目前能用,理论上抖音不大改动,能用好久
// ==UserScript==
// @name 网页抖音去广告,跳过直播
// @namespace Violentmonkey Scripts
// @match https://www.douyin.com/?*
// @grant none
// @version 3.9
// @description 通过“视频倍速禁用”检测来判定广告,检测 feed-active-video元素来判定直播,增加用户名关键字('旗舰店'、'专卖店'...等)判定带货视频。
// @author -
// ==/UserScript==
(function init() {
// 常量:广告关键字
const SHOP_KEYWORDS = [
'旗舰店','官方','特卖','真维斯','美的','随身WIFI','严选','剃须刀','LANCOME','Swarovski','缔美','星巴克','鞋','专营','三只松鼠','铁锅','随身wifi','随身Wifi','邮',
'Givenchy','BLUECETI','SK-II','专卖','工厂店','巴黎欧莱雅','珍藏馆','男装','圣罗兰','雅诗兰黛','品牌','周大福','李宁','母婴','直供','牙刷','男装',
'口腔','耳机','电动车','吹风机','双星','滋补','白云山','服装',
];
setTimeout(selectHighestResolution, 2000);
checkForAd();
/******************* 功能函数 *******************/
function checkForAd() {
var videoContainer = document.querySelector('div[data-e2e="feed-active-video"]');
if (videoContainer) {//有 feed-active-video 元素检查其它条件
// 检查是否有带购物车元素同时关键字检查'直播间同价',普通用户视频可能带购物车元素带货,但不会直播卖货
var shoppingAnchor = videoContainer.querySelector('.xgplayer-shop-anchor');
var shoppingAnchorText = shoppingAnchor ? shoppingAnchor.textContent : null;
// 检查是否用户名包含特定关键字
var nicknameElement = videoContainer.querySelector('[data-e2e="feed-video-nickname"]');
var nicknameText = nicknameElement ? nicknameElement.textContent : null; // 安全地获取 textContent,防止&&后面的内容报错
var isNicknameStore = nicknameText ? SHOP_KEYWORDS.find(keyword => nicknameText.includes(keyword)) : undefined;
// 检测倍速禁用标识
var playbackRatioDiv = videoContainer.querySelector('div.xgplayer-setting-playbackRatio');
var isDisabled = playbackRatioDiv && playbackRatioDiv.classList.contains('disabled');
// 判定及执行跳过操作
if (isDisabled) {
console.log('检测到倍速禁用类的存在');
simulateKeyDown(document, 40); // 模拟按下方向键↓
} else if (shoppingAnchorText && shoppingAnchorText.includes('直播间同价')) {
console.log('检测到购物车元素+直播间标识');
simulateKeyDown(document, 40); // 模拟按下方向键↓
} else if (isNicknameStore) {
console.log('检测到带货用户名:',isNicknameStore);
simulateKeyDown(document, 40); // 模拟按下方向键↓
} else {
console.log('没有广告');
}
} else {//没有找到 feed-active-video 元素
console.log('跳过直播');
simulateKeyDown(document, 40); // 模拟按下方向键↓
}
// 设置循环检查
setTimeout(checkForAd, 700);
}
})();
function selectHighestResolution() {
const gearContainer = document.querySelector('.gear .virtual');
if (!gearContainer) {
console.log('未找到分辨率设置面板');
return;
}
const items = gearContainer.querySelectorAll('.item');
const selectedItem = gearContainer.querySelector('.item.selected');
// 如果当前未选择1080P或720P
if (!selectedItem || !/1080P|720P/.test(selectedItem.textContent)) {
const targetItem = Array.from(items).find(item => item.textContent.includes('1080P') || item.textContent.includes('720P'));
if (targetItem) {
targetItem.click();
console.log('已选择分辨率:', targetItem.textContent.trim());
}
}
}
//模拟按下键盘事件
function simulateKeyDown(target, keyCode) {
var event = new KeyboardEvent('keydown', {
keyCode: keyCode,
bubbles: true,
cancelable: true,
});
target.dispatchEvent(event);
console.log('按下↓键');
}
求更新