您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Removes tracking parameters from all YouTube links and converts them to shortened youtu.be links within the share box.
当前为
// ==UserScript== // @name Remove YouTube Tracking Parameters and Convert Share Links // @version 1.5 // @description Removes tracking parameters from all YouTube links and converts them to shortened youtu.be links within the share box. // @author kpganon // @license MIT // @namespace https://github.com/kpg-anon/scripts // @match *://*.youtube.com/* // @grant none // ==/UserScript== (function() { 'use strict'; function removeTrackingParameters(input) { if (input && input.value) { let newValue = input.value .replace(/(?:&|\?)si=[^&]+/, '') .replace(/(?:&|\?)pp=[^&]+/, '') .replace(/^([^?]+)&/, '$1?') .replace(/(?:youtube\.com\/shorts\/|youtube\.com\/live\/|www\.youtube\.com\/watch\?v=|music\.youtube\.com\/watch\?v=)([a-zA-Z0-9_-]+)/, 'youtu.be/$1') .replace(/www\.youtu\.be/, 'youtu.be'); if (input.value !== newValue) { input.value = newValue; } } } function handleInputChange() { const shareInput = document.querySelector('yt-share-target-renderer input'); removeTrackingParameters(shareInput); } const observer = new MutationObserver((mutations) => { for (const mutation of mutations) { if (mutation.addedNodes.length) { for (const node of mutation.addedNodes) { if (node.nodeType === Node.ELEMENT_NODE && node.querySelector('yt-share-target-renderer')) { const intervalId = setInterval(handleInputChange, 50); const closeButton = node.querySelector('[aria-label="Close"]'); if (closeButton) { closeButton.addEventListener('click', () => { clearInterval(intervalId); }); } } } } } }); observer.observe(document.body, { childList: true, subtree: true }); setInterval(() => { document.querySelectorAll('input, a').forEach(element => { if (element.tagName.toLowerCase() === 'input') { removeTrackingParameters(element); } else if (element.tagName.toLowerCase() === 'a' && /\/watch\?v=/.test(element.href)) { element.href = element.href.replace(/(?:&|\?)si=[^&]+/, '').replace(/(?:&|\?)pp=[^&]+/, '') .replace(/(?:youtube\.com\/shorts\/|youtube\.com\/live\/|www\.youtube\.com\/watch\?v=|music\.youtube\.com\/watch\?v=)([a-zA-Z0-9_-]+)/, 'youtu.be/$1') .replace(/www\.youtu\.be/, 'youtu.be'); } }); }, 50); })();