🏠 Home 

Youtube Middle Click Search (Updated)

Middle clicking the YouTube search or suggestions opens r###lts in a new tab


Install this script?
// ==UserScript==
// @name         Youtube Middle Click Search (Updated)
// @namespace    https://greasyfork.org/users/649
// @version      3.0
// @description  Middle clicking the YouTube search or suggestions opens r###lts in a new tab
// @author       flowscript
// @match        *://www.youtube.com/*
// @grant        GM_openInTab
// @license      MIT
// ==/UserScript==
(function() {
'use strict';
const SEL_SEARCH_BTN = '.ytSearchboxComponentSearchButton';
const SEL_SUGGESTION = '.ytSuggestionComponentSuggestion';
const SEL_CLEAR_BTN  = '.ytSearchboxComponentClearButton';
const SEL_INPUT      = 'input.ytSearchboxComponentInput';
// Convert user’s query into something like "foo+bar"
function encodeURIWithPlus(str) {
return encodeURIComponent(str).replace(/%20/g, '+');
}
function isSearchButton(el) {
return el.closest?.(SEL_SEARCH_BTN);
}
function getSuggestionEl(el) {
return el.closest?.(SEL_SUGGESTION);
}
function isClearButton(el) {
return el.closest?.(SEL_CLEAR_BTN);
}
function getSearchInputValue() {
const input = document.querySelector(SEL_INPUT);
return input?.value.trim() || '';
}
function getSuggestionText(suggestionEl) {
const textEl = suggestionEl.querySelector('.ytSuggestionComponentLeftContainer span');
return textEl?.textContent.trim() || '';
}
// Open query in new tab
function openInNewTab(query) {
if (!query) return;
const url = `${location.origin}/r###lts?search_query=${encodeURIWithPlus(query)}`;
GM_openInTab(url, true);
}
// Open query in current tab
function openInSameTab(query) {
if (!query) return;
const url = `${location.origin}/r###lts?search_query=${encodeURIWithPlus(query)}`;
window.location.href = url;
}
/**
* 1) Intercept mousedown on button=1 (middle-click),
*    open r###lts in new tab immediately, then block normal click.
*/
document.addEventListener(
'mousedown',
(e) => {
if (e.button !== 1) return; // only middle-click
const target = e.target;
// If it’s the main search button
if (isSearchButton(target)) {
e.preventDefault();
e.stopPropagation();
e.stopImmediatePropagation();
openInNewTab(getSearchInputValue());
return;
}
// If it’s a suggestion
const suggestionEl = getSuggestionEl(target);
if (suggestionEl && !isClearButton(target)) {
e.preventDefault();
e.stopPropagation();
e.stopImmediatePropagation();
openInNewTab(getSuggestionText(suggestionEl));
}
},
true
);
/**
* 2) Intercept normal left-click (button=0),
*    open r###lts in same tab, block YouTube’s single-page script.
*/
document.addEventListener(
'click',
(e) => {
if (e.button !== 0) return; // only left-click
const target = e.target;
// If it’s the main search button
if (isSearchButton(target)) {
e.preventDefault();
e.stopPropagation();
e.stopImmediatePropagation();
openInSameTab(getSearchInputValue());
return;
}
// If it’s a suggestion
const suggestionEl = getSuggestionEl(target);
if (suggestionEl && !isClearButton(target)) {
e.preventDefault();
e.stopPropagation();
e.stopImmediatePropagation();
openInSameTab(getSuggestionText(suggestionEl));
}
},
true
);
})();