// ==UserScript== // @name YouTube Lite (melhor experiência) // @name:es YouTube Lite (la mejor experiencia) // @name:en YouTube Lite (best experience) // @namespace http://linkme.bio/jhonpergon/?userscript=youtube_lite // @version 1.0 [beta] // @description Deixa a interface do YouTube mais leve, some com a aba de shots e abre o vídeo em uma página livre de anúncios e distrações. // @description:es Hace que la interfaz de YouTube sea más ligera, desaparece con la pestaña de tomas y abre el vídeo en una página libre de anuncios y distracciones. // @description:en It makes the YouTube interface lighter, disappears with the shots tab and opens the video on a page free of ads and distractions. // @author Jhon Pérgon // @match https://www.youtube.com/* // @match https://m.youtube.com/* // @match https://music.youtube.com/* // @match https://youtu.be/* // @icon https://icons.iconarchive.com/icons/designbolts/cute-social-media/256/Youtube-icon.png // @grant GM_addStyle // @license MIT // @compatible chrome // @compatible firefox // @compatible opera // @compatible edge // @compatible safari // @compatible berry browser // @downloadURL none // ==/UserScript== (function() { 'use strict'; GM_addStyle('@import url("https://cdn.jsdelivr.net/npm/bootstrap-icons@1.8.1/font/bootstrap-icons.css");'); // Array de palavras-chave que você não deseja ver dismissible ytd-rich-section-renderer var palavrasChave = ["funk", "MC", "Alok", "Champions", "Certanejo", "Mendonça", "Comédia","American","muambros", "Globinho","Podpah", "Golpista","MrBeast", "Felipe Neto","Pica Pau", "Pica-Pau", "Rir", "Bob Esponja","Funny", "Naruto","Ronaldinho", "Neymar", "Gols", "Esgotinho Clips","Gospel", "Goal","Galaxy","Iphone","TRAILERS", "Trailers", "Shelby", "Comprar", "Vender", "Restored", "Restaurando", "Pago", "Minecraft", "Kpop", "Army","Opala","Ei Nerd","GOKU","Goku", "SAMSUNG","Samsung","Caio Teixeira","DRAGON","Ball","Pobre","Alanzoka","GAMEPLY","alanzoka","60FPS","FPS", "HERÓI","Elite", "Jogos", "RTX","ULTRON","Anime","Cristiano Ronaldo","Life Media","Bonito","Jogar", "Jogo","Dragões","Kombat","KOMBAT", "Kratos", "War", "Rusty","BEN 10", "Alpha","Redpill","Maquiagem","Gatos","Bolo","Casimito","Casemiro","DJ", "Grupo Menos é Mais", "Você Sabia?", "Futbol","Futebol","Oração", "Esportes", "Placar", "BBB", "Pepsi", "Coca Cola", "Talent","Pipoca","Garage", "Desenho Animado","COD", "Produtos", "Produto", "Food", "Copa", "Faroeste", "Rodada", "Eliminatórias", "Favela", "Poesia Arcústica", "Renato Cariani", "4K"]; function converterParaArray() { // Obtém o valor da textarea const listaTexto = document.getElementById('listaDeTermos').value; // Divide o texto em termos separados por vírgulas const termosArray = listaTexto.split(','); // Remove espaços em branco em excesso em cada termo const termosLimpos = termosArray.map(termo => termo.trim()); // Exibe o resultado na página const resultado = document.getElementById('resultado'); resultado.textContent = JSON.stringify(termosLimpos); } // Função para verificar se uma palavra-chave está presente em um elemento function verificaPalavrasChave(elemento) { var texto = elemento.textContent.toLowerCase(); for (var i = 0; i < palavrasChave.length; i++) { var palavra = palavrasChave[i].toLowerCase(); if (texto.includes(palavra)) { return true; } } return false; } function getUrl(xxx) { try { if (typeof xxx !== 'string') { throw new Error('Input is not a string'); } const url = new URL(xxx); const vParam = url.searchParams.get('v'); if (vParam) { return vParam; } } catch (error) { console.error('Erro ao obter o valor do parâmetro "v":', error); } return null; } // Função para remover tags "ytd-rich-item-renderer" com base nas palavras-chave function removeTagsComPalavrasChave() { var elementos = document.querySelectorAll("ytd-rich-item-renderer"); elementos.forEach(function (elemento) { if (verificaPalavrasChave(elemento)) { elemento.remove(); } }); } // CÓDIGO IMPORTADO const equalText1 = "Skip Ads"; const equalText2 = "Skip Ad"; function addNewStyle(newStyle) { var styleElement = document.getElementById('styles_js'); if (!styleElement) { styleElement = document.createElement('style'); styleElement.type = 'text/css'; styleElement.id = 'styles_js'; document.getElementsByTagName('head')[0].appendChild(styleElement); } styleElement.appendChild(document.createTextNode(newStyle)); } function skipAd(){ //console.log("Tried to skip a ad"); if(document.getElementsByClassName("ytp-ad-skip-button").length > 0){ if(document.getElementsByClassName("ytp-ad-skip-button")[0].childNodes[0].textContent === equalText1 || document.getElementsByClassName("ytp-ad-skip-button")[0].childNodes[0].textContent === equalText2){ document.getElementsByClassName("ytp-ad-skip-button")[0].click(); } else { setTimeout(skipAd(), 1000); } } } // Função para remover todas as tags function removerTagsScript() { document.title = "Youtube (Lite)"; setTimeout(function(){ const scripts = document.querySelectorAll('script'); scripts.forEach(function(script) { script.parentNode.removeChild(script); }); const tagthumbnails = document.querySelectorAll('ytd-playlist-thumbnail'); tagthumbnails.forEach(function(thumbnail) { thumbnail.parentNode.removeChild(thumbnail); }); const iconsets = document.querySelectorAll('iron-iconset-svg'); iconsets.forEach(function(iconset) { iconset.parentNode.removeChild(iconset); }); const renderers = document.querySelectorAll('ytd-rich-shelf-renderer'); renderers.forEach(function(renderer) { renderer.parentNode.removeChild(renderer); }); const recomendados = document.querySelectorAll('ytd-watch-next-secondary-results-renderer'); recomendados.forEach(function(recomendado) { recomendado.parentNode.removeChild(recomendado); }); const xplayers = document.querySelectorAll('ytd-player'); xplayers.forEach(function(player) { player.parentNode.removeChild(player); //console.log("ok") }); const interactions = document.querySelectorAll('yt-interaction'); interactions.forEach(function(interaction) { interaction.parentNode.removeChild(interaction); //console.log("ok") }); const ychats = document.querySelectorAll('ytd-live-chat-frame'); ychats.forEach(function(ychat) { ychat.parentNode.removeChild(ychat); }); const players = document.querySelectorAll('video'); players.forEach(function(playerx) { playerx.parentNode.removeChild(playerx); }); const ycanvas = document.querySelectorAll('canvas'); ycanvas.forEach(function(ycanva) { ycanva.parentNode.removeChild(ycanva); }); const yminiplayers = document.querySelectorAll('ytd-miniplayer'); yminiplayers.forEach(function(yminiplayer) { yminiplayer.parentNode.removeChild(yminiplayer); }); const ypopups = document.querySelectorAll('ytd-popup-container'); ypopups.forEach(function(ypopup) { ypopup.parentNode.removeChild(ypopup); }); const ythirds = document.querySelectorAll('ytd-third-party-manager'); ythirds.forEach(function(ythird) { ythird.parentNode.removeChild(ythird); }); const yannouncers = document.querySelectorAll('iron-a11y-announcer'); yannouncers.forEach(function(yannouncer) { yannouncer.parentNode.removeChild(yannouncer); }); const ymediaQuerys = document.querySelectorAll('iron-media-query'); ymediaQuerys.forEach(function(ymediaQuery) { ymediaQuery.parentNode.removeChild(ymediaQuery); }); const ytdAds = document.querySelectorAll('ytd-ad-slot-renderer'); ytdAds.forEach(function(ytdAd) { ytdAd.parentNode.removeChild(ytdAd); }); const ytdAd2s = document.querySelectorAll('ytd-rich-section-renderer'); ytdAd2s.forEach(function(ytdAd2) { ytdAd2.parentNode.removeChild(ytdAd2); }); const ytdAd3s = document.querySelectorAll('ytd-merch-shelf-renderer'); ytdAd3s.forEach(function(ytdAd3) { ytdAd3.parentNode.removeChild(ytdAd3); }); const ytdAd4s = document.querySelectorAll('tp-yt-paper-dialog'); ytdAd4s.forEach(function(ytdAd4) { ytdAd4.parentNode.removeChild(ytdAd4); }); const ytdAd5s = document.querySelectorAll('ytd-action-companion-ad-renderer'); ytdAd5s.forEach(function(ytdAd5) { ytdAd5.parentNode.removeChild(ytdAd5); }); const videosAds = document.querySelectorAll('.video-ads'); if(videosAds){ if (videosAds.length > 0) { videosAds.forEach(function(videosAd) { videosAd.parentNode.removeChild(videosAd); }); } } const previews = document.querySelectorAll('.ytp-gradient-top'); if(previews){ if (previews.length > 0) { previews.forEach(function(preview) { preview.style.display = 'none'; preview.parentNode.removeChild(preview); }); } } //Remover ADS Skip addNewStyle('.ytp-ad-overlay-slot {display:none !important;}'); if(window.location.href.substring(0,30) == "https://www.youtube.com/watch?"){ skipAd(); } // Selecione todos os elementos do DOM var allElements = document.querySelectorAll('*'); // Itere por todos os elementos e remova os manipuladores de eventos de clique allElements.forEach(function(element) { element.click = null; element.onclick = null; element.auxclick = null; element.dblclick = null; element.copy = null; element.change = null; element.keypress = null; element.keydown = null; element.mousedown = null; element.mouseover = null; }); //Remover eventos pré-estabelecidos /*let cinematicsContainer = document.getElementById('cinematics-container'); if (cinematicsContainer) { const clonedElement = cinematicsContainer.cloneNode(true); cinematicsContainer.parentNode.replaceChild(clonedElement, cinematicsContainer); } const playerRemove = document.querySelectorAll('#player'); for (const element of playerRemove) { element.remove(); }; const xoverlays = document.querySelectorAll('.ytp-pause-overlay'); if (xoverlays.length > 0) { xoverlays.forEach(function(xoverlay) { xoverlay.style.display = "none"; xoverlay.parentNode.removeChild(xoverlay); }); } const thumbnails = document.querySelectorAll('.ytd-thumbnail'); if (thumbnails.length > 0) { thumbnails.forEach(function(xthumbnail) { xthumbnail.style.display = "none"; xthumbnail.parentNode.removeChild(xthumbnail); }); }*/ let mediaElements = document.querySelectorAll('video, audio'); if(mediaElements){ mediaElements.forEach(function (media) { if (typeof media.play === 'function') { media.play = function () {}; } }); } // Obtém todos os elementos pelo ID e os remove const alertRemoves = document.querySelectorAll('#clarify-box'); for (const element of alertRemoves) { element.remove(); }; const elementsToRemove = document.querySelectorAll('#video-preview'); for (const element of elementsToRemove) { element.remove(); }; /*const elementsplay = document.querySelectorAll('#player'); for (const element of elementsplay) { element.remove(); };*/ const adsInfo = document.querySelectorAll('#ads-info-button'); for (const element of adsInfo) { element.remove(); }; const links = document.querySelectorAll('a'); for (const link of links) { link.style.border = '1px solid transparent'; link.addEventListener('mouseover', function() { link.style.border = '1px solid #9ba2ff'; link.style.boxShadow = '2px 3px 4px #5c3299'; }); link.addEventListener('mouseout', function() { link.style.border = '1px solid transparent'; link.style.boxShadow = ''; }); if (link.href.indexOf('/watch?v=') !== -1) { console.log(link.href) let linkID = getUrl(link.href); console.log(linkID) link.setAttribute('href', `https://www.youtube-nocookie.com/embed/${linkID}?rel=0&controls=2&color=white&iv_load_policy=3&showinfo=0&modestbranding=1&hl=pt-BR&autoplay=1`); } //const clonedLink = link.cloneNode(true); //link.parentNode.replaceChild(clonedLink, link); } }, 500); } // Função para extrair o ID do vídeo da URL function getVideoIdFromUrl() { const url = window.location.href; const match = url.match(/[?&]v=([^&]+)/); if (match && match[1]) { return match[1]; } return null; } // Função para criar o iframe personalizado function createCustomIframe(videoId) { document.body.style.backgroundColor = "#06070b"; document.body.style.backgroundColor = "#06070b"; setTimeout(function(){ let mainplayer = document.getElementById('miniplayer-bar'); let allplayer = document.getElementById('player'); //let youtubeLite = document.querySelector('body'); let outroBudega = document.getElementById('player-wrap'); if(outroBudega){ outroBudega.innerHTML = ``; } const yframes = document.querySelectorAll('iframe'); yframes.forEach(function(yframe) { yframe.parentNode.removeChild(yframe); }); const ytApps = document.querySelectorAll('ytd-player-microformat-renderer'); ytApps.forEach(function(ytApp) { ytApp.parentNode.removeChild(ytApp); }); let interfacex = document.getElementById('primary'); let menus = document.getElementById('upload-info'); if (mainplayer) { //youtubeLite.id = "tubeliteApp"; //let mainplayer = document.getElementById('tubeliteApp'); const hums = document.querySelectorAll('h1'); hums.forEach(function(hum) { hum.parentNode.removeChild(hum); }); //alert("trocou: "+localStorage.getItem('trocou')+" trocardeNovo: "+localStorage.getItem('trocardeNovo')) if(localStorage.getItem('atualReload') == "false" && localStorage.getItem('trocou') == "false" && localStorage.getItem('trocardeNovo') == "true"){ //mainplayer.innerHTML = ``; localStorage.setItem('trocou', "true"); //alert("LIMPOU") } if(localStorage.getItem('atualReload') == "false" && localStorage.getItem('trocou') == "true" && localStorage.getItem('trocardeNovo') == "true"){ localStorage.setItem('trocardeNovo', "false"); //alert("ADD IFRAME") mainplayer.style.width = '98%'; mainplayer.style.maxWidth = '720px'; mainplayer.style.height = '320px'; mainplayer.style.maxHeight = '52%'; mainplayer.style.zIndex = '99999'; interfacex.style.maxWidth = '720px'; interfacex.style.height = 'auto'; interfacex.style.maxHeight = '320px'; interfacex.style.position = 'absolute'; interfacex.style.marginLeft = '0px'; interfacex.style.marginRight = '0px'; interfacex.style.right = '50%'; interfacex.style.left = '50%'; interfacex.style.bottom = '0'; interfacex.style.top = '10px'; interfacex.style.transform = 'translate(-50%, 0%)'; setTimeout(function(){ //alert("Pronto") mainplayer.innerHTML += ``; let customIframe = document.getElementById('xplayer'); allplayer.style.height = '320px'; allplayer.style.maxHeight = '320px'; customIframe.style.width = '790px'; customIframe.style.maxWidth = '95%'; customIframe.style.height = '85%'; customIframe.style.maxHeight = '450px'; customIframe.style.border = 'solid 1px #413746'; customIframe.style.borderRadius = '.6rem'; customIframe.style.position = 'absolute'; customIframe.style.right = '50%'; customIframe.style.left = '50%'; customIframe.style.transform = 'translate(-50%, 0px)'; customIframe.style.zIndex = '999999'; customIframe.style.backgroundImage = "url(https://i.pinimg.com/originals/cf/ce/2f/cfce2fa4cc0ccdc49cf1482c355a50b8.gif)"; menus.innerHTML += `
`; }, 500); localStorage.setItem('atualReload', "true"); }else if(localStorage.getItem('atualReload') == "true"){ //mainplayer.innerHTML = ``; mainplayer.style.width = '98%'; mainplayer.style.maxWidth = '720px'; mainplayer.style.height = '85%'; mainplayer.style.maxHeight = '320px'; interfacex.style.maxWidth = '720px'; interfacex.style.height = 'auto'; interfacex.style.maxHeight = '320px'; interfacex.style.position = 'absolute'; interfacex.style.marginLeft = '0px'; interfacex.style.marginRight = '0px'; interfacex.style.right = '50%'; interfacex.style.left = '50%'; interfacex.style.bottom = '0'; interfacex.style.top = '10px'; interfacex.style.transform = 'translate(-50%, 0%)'; setTimeout(function(){ mainplayer.innerHTML += ``; let customIframe = document.getElementById('xplayer'); allplayer.style.height = '320px'; allplayer.style.maxHeight = '320px'; customIframe.style.width = '790px'; customIframe.style.maxWidth = '95%'; customIframe.style.height = '85%'; customIframe.style.maxHeight = '450px'; customIframe.style.border = 'solid 1px #413746'; customIframe.style.borderRadius = '.6rem'; customIframe.style.position = 'absolute'; customIframe.style.right = '50%'; customIframe.style.left = '50%'; customIframe.style.transform = 'translate(-50%, 0px)'; customIframe.style.zIndex = '999999'; customIframe.style.backgroundImage = "url(https://i.pinimg.com/originals/cf/ce/2f/cfce2fa4cc0ccdc49cf1482c355a50b8.gif)"; menus.innerHTML += `
`; }, 500); localStorage.setItem('atualReload', "true"); } }else{ alert("NOTA: Os elementos da interface padrão falharam.") localStorage.setItem('atualReload', "true"); let youtubeLite = document.querySelector('body'); youtubeLite.id = "tubeliteApp"; let mainplayer = document.getElementById('tubeliteApp'); mainplayer.innerHTML = ``; mainplayer.style.width = '98%'; mainplayer.style.maxWidth = '720px'; mainplayer.style.height = '85%'; mainplayer.style.maxHeight = '450px'; setTimeout(function(){ mainplayer.innerHTML = ``; mainplayer.innerHTML += `

`; let customIframe = document.getElementById('xplayer'); customIframe.style.width = '98%'; customIframe.style.maxWidth = '720px'; customIframe.style.height = '55%'; customIframe.style.maxHeight = '420px'; customIframe.style.border = 'solid 1px #413746'; customIframe.style.borderRadius = '.6rem'; customIframe.style.position = 'absolute'; customIframe.style.right = '50%'; customIframe.style.left = '50%'; customIframe.style.transform = 'translate(-50%, 5px)'; customIframe.style.zIndex = '999999'; customIframe.style.backgroundImage = "url(https://i.pinimg.com/originals/cf/ce/2f/cfce2fa4cc0ccdc49cf1482c355a50b8.gif)"; menus.innerHTML += `
`; }, 500); } // Altera o título da página para "Youtube Lite" document.title = "Youtube (Lite)"; }, 2200); } // Função para limpar todos os cookies do site na primeira vez function limparCookies() { if(localStorage.getItem('verificarCookies') == null){ localStorage.setItem('verificarCookies', "primeiraVez"); } if (localStorage.getItem('verificarCookies') == "primeiraVez"){ alert("NOTA: Você está acessando com o Youtube Lite pela primeira vez, para garantir seu correto funcionamento vamos limpar os cookies e reiniciar a página.") localStorage.setItem('verificarCookies', "tudoSuave"); var cookies = document.cookie.split(';'); for (var i = 0; i < cookies.length; i++) { var cookie = cookies[i]; var igualPos = cookie.indexOf('='); var nome = igualPos > -1 ? cookie.substr(0, igualPos) : cookie; document.cookie = nome + '=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/'; } window.location.reload(); } } // Função para verificar a URL a cada 2 segundos function checkURL() { limparCookies(); removerTagsScript(); removeTagsComPalavrasChave(); const currentURL = window.location.href; if (currentURL !== localStorage.getItem('lastCheckedURL') && currentURL.includes("/watch?v=")) { window.location.reload(); localStorage.setItem('lastCheckedURL', currentURL); localStorage.setItem('trocou', "false"); localStorage.setItem('trocardeNovo', "true"); localStorage.setItem('atualReload', "false"); const videoId = getVideoIdFromUrl(); if (videoId) { createCustomIframe(videoId); } } } // Inicia o loop para verificar a URL a cada 1 segundos setInterval(checkURL, 550); // Verifica a URL quando o script é carregado pela primeira vez const videoId = getVideoIdFromUrl(); if (videoId) { createCustomIframe(videoId); } })();