您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Combines best methods to remove blur, overlays, and restrictions from VK video previews.
// ==UserScript== // @name VK Video Blur Remover (Ultimate) // @namespace http://tampermonkey.net/ // @version 1.0 // @description Combines best methods to remove blur, overlays, and restrictions from VK video previews. // @author You & Gemini // @match https://vk.com/* // @match https://vkvideo.ru/* // @grant none // @run-at document-start // ==/UserScript== (function() { 'use strict'; const applyFixes = () => { // --- Метод 1: Принудительное переопределение стилей (самый надежный) --- document.querySelectorAll('[class*="vkitVideoCardPreviewImage__imgBlurred"]').forEach(el => { el.style.setProperty('filter', 'none', 'important'); el.style.setProperty('transform', 'none', 'important'); }); document.querySelectorAll('[class*="vkitVideoCardRestrictionOverlay__--"], [class*="vkitOverlay__root--"]').forEach(el => { el.style.setProperty('display', 'none', 'important'); }); document.querySelectorAll('.videoplayer--blur .videoplayer_thumb').forEach(el => { el.style.setProperty('filter', 'none', 'important'); }); // --- Метод 2: Удаление классов ограничений --- const restrictionSelectors = [ '.mv_recom_item.VideoRestriction', '.VideoRestriction', '.VideoRestriction--small', '.VideoRestriction--canPreview', '.VideoRestriction--blur', '[class*="videoplayer--hasRestriction"]', '[class*="videoplayer--blur"]' ]; document.querySelectorAll(restrictionSelectors.join(', ')).forEach(el => { el.classList.remove( 'VideoRestriction', 'VideoRestriction--small', 'VideoRestriction--canPreview', 'VideoRestriction--blur', 'videoplayer--hasRestriction', 'videoplayer--blur' ); }); }; const observer = new MutationObserver(applyFixes); observer.observe(document.documentElement, { childList: true, subtree: true }); if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', applyFixes); } else { applyFixes(); } })();