YouTubeにて再生回数が少ない動画を非表示にします。
当前为
// ==UserScript==
// @name 低視聴回数動画の非表示
// @namespace http://tampermonkey.net/
// @description YouTubeにて再生回数が少ない動画を非表示にします。
// @author sun
// @match *://*.youtube.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=youtube.com
// @grant none
// @version 1.1
// ==/UserScript==
const VIEW_THRESHOLD = 1000; // ここを変更して視聴回数のしきい値を設定
function parseViewCount(text) {
let numText = text.replace(/[^0-9\.KM万億]/g, "");
const multipliers = { "K": 1000, "M": 1000000, "万": 10000, "億": 100000000 };
let multiplier = Object.keys(multipliers).find(unit => numText.includes(unit)) || "";
numText = numText.replace(multiplier, "");
return numText ? parseFloat(numText) * (multipliers[multiplier] || 1) : 0;
}
function IsBadVideo(videoViews) {
if (!videoViews) {
return false;
}
let text = videoViews.innerText;
let viewCount = parseViewCount(text);
return viewCount > 0 && viewCount < VIEW_THRESHOLD;
}
function HideBadVideo(videoElement) {
if (!videoElement) return;
let videoViews = videoElement.querySelector(".inline-metadata-item.style-scope.ytd-video-meta-block");
if (IsBadVideo(videoViews)) {
videoElement.style.display = "none";
}
}
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
HideBadVideo(entry.target);
observer.unobserve(entry.target);
}
});
}, { rootMargin: "300px" });
function Update() {
let videos = document.querySelectorAll("ytd-rich-item-renderer, ytd-compact-video-renderer");
videos.forEach(video => observer.observe(video));
}
window.addEventListener("load", () => {
Update();
const mutationObserver = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
mutation.addedNodes.forEach((node) => {
if (node.nodeType === 1) {
if (node.matches("ytd-rich-item-renderer, ytd-compact-video-renderer")) {
observer.observe(node);
} else {
let newVideos = node.querySelectorAll?.("ytd-rich-item-renderer, ytd-compact-video-renderer");
newVideos.forEach(video => observer.observe(video));
}
}
});
});
});
mutationObserver.observe(document.body, { childList: true, subtree: true });
});
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址