NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name Youtube - No Redirect Links
// @version 0.3
// @description Clear external links from redirects in video descriptions
// @icon https://www.youtube.com/favicon.ico
// @author raingart
// @license Apache-2.0
// @namespace youtube-redirect
// @include http*://*.youtube.com/watch?v=*
// @noframes
// @run-at document-end
// ==/UserScript==
/*jshint esversion: 6 */
(function() {
const getQueryURL = (query, urlString) => new URL(urlString || location).searchParams.get(query);
let descriptionInterval = connectInterval();
function processPatch() {
document.querySelectorAll('a[href*="/redirect?"]')
.forEach(link => {
if (q = getQueryURL('q', link.href)) link.href = decodeURIComponent(q);
});
}
function connectInterval() {
return setInterval(() => {
if (document.querySelector('#meta #description:not(:empty)')) {
clearTimeout(descriptionInterval);
processPatch();
}
}, 1000); // 1 sec
}
document.addEventListener('yt-navigate-start', () => descriptionInterval = connectInterval());
})();