// ==UserScript== // @name YouTube Lite (melhor experiência) // @name:pt YouTube Lite (melhor experiência) // @name:pt-PT YouTube Lite (melhor experiência) // @name:pt-BR YouTube Lite (melhor experiência) // @name:es YouTube Lite (la mejor experiencia) // @name:en YouTube Lite (best experience) // @name:fr YouTube Lite (meilleure expérience) // @name:ru YouTube Lite (лучший опыт) // @name:ja YouTube Lite (最高のエクスペリエンス) // @name:ko YouTube Lite (최고의 경험) // @name:zh-TW YouTube Lite (更佳體驗) // @name:zh-CN YouTube Lite (更好的体验) // @name:id YouTube Lite (pengalaman terbaik) // @name:ug YouTube Lite (ئەڭ ياخشى تەجرىبە) // @name:ar YouTube Lite (أفضل تجربة) // @name:he YouTube Lite (חוויית השימוש הטובה ביותר) // @name:hi YouTube Lite (सर्वश्रेष्ठ अनुभव) // @name:th YouTube Lite (ประสบการณ์ที่ดีที่สุด) // @name:bg YouTube Lite (най-добър опит) // @name:ro YouTube Lite (cea mai bună experiență) // @name:fi YouTube Lite (paras kokemus) // @name:it YouTube Lite (migliore esperienza) // @name:el YouTube Lite (καλύτερη εμπειρία) // @name:eo YouTube Lite (plej bona sperto) // @name:hu YouTube Lite (legjobb élmény) // @name:nb YouTube Lite (beste opplevelse) // @name:sk YouTube Lite (najlepšia skúsenosť) // @name:sv YouTube Lite (bästa upplevelsen) // @name:sr YouTube Lite (најбоље искуство) // @name:pl YouTube Lite (najlepsze doświadczenie) // @name:nl YouTube Lite (beste ervaring) // @name:de YouTube Lite (beste Erfahrung) // @name:da YouTube Lite (bedste oplevelse) // @name:cs YouTube Lite (nejlepší zkušenost) // @name:uk YouTube Lite (найкращий досвід) // @name:tr YouTube Lite (en iyi deneyim) // @name:vi YouTube Lite (trải nghiệm tốt nhất) // @name:fr-CA YouTube Lite (meilleure expérience au Canada) // @namespace http://linkme.bio/jhonpergon/?userscript=youtube_lite // @version 2.5 // @author Jhon Pérgon // @license MIT // @description Deixa a interface do YouTube mais leve, oculta vídeos com palavras-chaves, adiciona botão de download e abre o vídeo em uma página livre de anúncios (embed youtube-nocookie). // @description:pt Deixa a interface do YouTube mais leve, oculta vídeos com palavras-chaves, adiciona botão de download e abre o vídeo em uma página livre de anúncios (embed youtube-nocookie). // @description:pt-PT Deixa a interface do YouTube mais leve, oculta vídeos com palavras-chaves, adiciona botão de download e abre o vídeo em uma página livre de anúncios (embed youtube-nocookie). // @description:pt-BR Deixa a interface do YouTube mais leve, oculta vídeos com palavras-chaves, adiciona botão de download e abre o vídeo em uma página livre de anúncios (embed youtube-nocookie). // @description:es Hace que la interfaz de YouTube sea más dinámica, oculta videos con palabras clave, agrega un botón de descarga y abre el video en una página sin publicidad (embed youtube-nocookie). // @description:en Makes the YouTube interface lighter, hides videos with keywords, adds a download button and opens the video on an ad-free page (embed youtube-nocookie). // @description:fr Il rend l'interface YouTube plus dynamique, masque les vidéos avec des mots-clés, ajoute un bouton de téléchargement et ouvre la vidéo sur une page sans publicité (embed youtube-nocookie). // @description:ru Он делает интерфейс YouTube более динамичным, скрывает видео с ключевыми словами, добавляет кнопку загрузки и открывает видео на странице без рекламы (встроить youtube-nocookie). // @description:ja YouTube インターフェースをより動的にし、キーワードを含むビデオを非表示にし、ダウンロード ボタンを追加して、広告なしのページ (youtube-nocookie embed) でビデオを開きます。 // @description:ko YouTube 인터페이스를 더욱 동적으로 만들고, 키워드로 동영상을 숨기고, 다운로드 버튼을 추가하고, 광고 없는 페이지에서 동영상을 엽니다(youtube-nocookie embed). // @description:zh-TW 使YouTube介面更加動態,隱藏包含關鍵字的影片,新增下載按鈕,並在無廣告頁面(嵌入youtube-nocookie)中開啟影片。 // @description:zh-CN 使YouTube界面更加动态,隐藏包含关键词的视频,添加下载按钮并在无广告页面(嵌入youtube-nocookie)中打开视频。 // @description:id Membuat antarmuka YouTube lebih ringan, menyembunyikan video dengan kata kunci, menambahkan tombol unduh, dan membuka video di halaman tanpa iklan (sematkan youtube-nocookie). // @description:ug يوتۇب يېڭىلاندۇرغۇچى كىرىشتىمىنى ياقسى قىلىدۇ، ئاڭلىق سۆزلىك ۋىدېئولارنى يوپۇش قىلىدۇ، چۈشۈرمە تومبۇلى قوشىدۇ ۋە چىراق ئېكراندا (youtube-nocookie sematka qilish) ۋىدېئونى ئېچىدۇ. // @description:ar يجعل واجهة يوتيوب أخف وزنًا، يخفي مقاطع الفيديو بكلمات مفتاحية، يضيف زر تنزيل ويفتح الفيديو على صفحة خالية من الإعلانات (تضمين youtube-nocookie). // @description:he הופך את ממשק YouTube לקל יותר, מסתיר סרטונים עם מילות מפתח, מוסיף לחצן הורדה ופותח את הסרטון על דף נטול פרסומות (הטמעת youtube-nocookie). // @description:hi यूट्यूब इंटरफ़ेस को हल्का बनाता है, कीवर्ड के साथ वीडियो को छुपाता है, डाउनलोड बटन जोड़ता है और एड-मुक्त पृष्ठ पर वीडियो खोलता है (youtube-nocookie embed)। // @description:th ทำให้อินเตอร์เฟซ YouTube เบาขึ้น, ซ่อนวิดีโอด้วยคำสำคัญ, เพิ่มปุ่มดาวน์โหลด และเปิดวิดีโอบนหน้าไม่มีโฆษณา (ฝัง youtube-nocookie) ให้ดู // @description:bg Прави интерфейса на YouTube по-лек, скрива видеоклипове с ключови думи, добавя бутон за изтегляне и отваря видеоклипа на страница без реклами (вграждане на youtube-nocookie). // @description:ro Face interfața YouTube mai ușoară, ascunde videoclipurile cu cuvinte cheie, adaugă un buton de descărcare și deschide videoclipul pe o pagină fără reclame (încorporare youtube-nocookie). // @description:fi Tekee YouTube-liittymästä kevyemmän, piilottaa avainsanalla varustetut videot, lisää latauspainikkeen ja avaa videon mainoksettomalle sivulle (upottaa youtube-nocookie). // @description:it Rende l'interfaccia di YouTube più leggera, nasconde i video con parole chiave, aggiunge un pulsante di download e apre il video su una pagina senza pubblicità (embed youtube-nocookie). // @description:el Καθιστά τη διεπαφή του YouTube πιο ελαφριά, αποκρύπτει τα βίντεο με λέξεις-κλειδιά, προσθέτει ένα κουμπί λήψης και ανοίγει το βίντεο σε μια σελίδα χωρίς διαφημίσεις (ενσωμάτωση youtube-nocookie). // @description:eo Faras la interfaco de YouTube pli malpeza, kaŝas videojn kun ŝlosilvortoj, aldonas elŝut-butonon kaj malfermas la videon en senanonca paĝo (enteni youtube-nocookie). // @description:hu Könnyebbé teszi a YouTube felületét, kulcsszavakkal elrejti a videókat, hozzáad egy letöltés gombot, és az videót hirdetések nélküli oldalon nyitja meg (beágyazott youtube-nocookie). // @description:nb Gjør YouTube-grensesnittet lettere, skjuler videoer med søkeord, legger til en nedlastingsknapp og åpner videoen på en annonsefri side (innbygg youtube-nocookie). // @description:sk Robí rozhranie YouTube ľahším, skrýva videá s kľúčovými slovami, pridáva tlačidlo na stiahnutie a otvára video na stránke bez reklám (vložiť youtube-nocookie). // @description:sv Gör YouTube-gränssnittet lättare, gömmer videor med nyckelord, lägger till en nedladdningsknapp och öppnar videon på en annonsfri sida (bädda in youtube). // @description:sr Прави интерфејс YouTube-а лакшим, сакрива видее са кључним речима, додаје дугме за преузимање и отвара видео на страници без реклама (уградња youtube-nocookie). // @description:pl Uczy interfejs YouTube'a lżejszym, ukrywa filmy z słowami kluczowymi, dodaje przycisk do pobierania i otwiera film na stronie bez reklam (osadzanie youtube-nocookie). // @description:nl Maakt de YouTube-interface lichter, verbergt video's met trefwoorden, voegt een downloadknop toe en opent de video op een advertentievrije pagina (insluiten youtube-nocookie). // @description:de Macht die YouTube-Benutzeroberfläche leichter, versteckt Videos mit Schlüsselwörtern, fügt einen Download-Button hinzu und öffnet das Video auf einer werbefreien Seite (einbetten youtube-nocookie). // @description:da Gør YouTube-grænsefladen lettere, skjuler videoer med søgeord, tilføjer en downloadknap og åbner videoen på en reklamefri side (indlejre youtube-nocookie). // @description:cs Dělá YouTube rozhraní lehčí, skrývá videa s klíčovými slovy, přidává tlačítko ke stažení a otevírá video na stránce bez reklam (vložit youtube-nocookie). // @description:uk Робить інтерфейс YouTube легшим, приховує відео з ключовими словами, додає кнопку завантаження та відкриває відео на сторінці без реклами (вбудовувати youtube-nocookie). // @description:tr YouTube arayüzünü daha hafif hale getirir, anahtar kelimelerle videoları gizler, indirme düğmesi ekler ve videoyu reklamsız bir sayfada açar (yerleştirme youtube-nocookie). // @description:vi Làm cho giao diện YouTube nhẹ hơn, ẩn đi các video có từ khóa, thêm nút tải xuống và mở video trên trang không có quảng cáo (nhúng youtube-nocookie). // @description:fr-CA Rend l'interface YouTube plus légère, masque les vidéos avec des mots-clés, ajoute un bouton de téléchargement et ouvre la vidéo sur une page sans publicité (intégrer youtube-nocookie au Canada). // @match https://www.youtube.com/* // @match https://m.youtube.com/* // @match https://music.youtube.com/* // @match https://youtu.be/* // @match https://www.youtube-nocookie.com/* // @icon https://icons.iconarchive.com/icons/designbolts/cute-social-media/256/Youtube-icon.png // @grant GM_addStyle // @grant GM_getValue // @grant GM_setValue // @license MIT // @run-at document-start // @compatible chrome // @compatible firefox // @compatible opera // @compatible edge // @compatible safari // @compatible berrybrowser // @downloadURL none // ==/UserScript== (function() { 'use strict'; let sessao = 1; let videoId = getVideoIdFromUrl(); // Lista de URLs de API conhecidas para capturar o IP const blockedApiUrls = [ 'https://api.ipify.org', 'https://api.ipify.org?format=json', 'https://ipinfo.io', 'https://ipinfo.io/ip', 'https://ipinfo.io/api', 'https://api.ipapi.com', 'https://www.iplocation.net', 'https://api.iplocation.net', 'https://website-cdn.ipinfo.io', 'https://p.typekit.net', 'https://use.typekit.net', 'https://pagead2.googlesyndication.com', 'https://www.gstatic.com', '/ip', '/ajax', '/ads', '/static', '/js', '/script', '/scripts', '/event', '/events', 'https://accounts.youtube.com', 'https://www.google.com', 'https://www.google.com.br', '/api/session', 'https://youtube.com', 'https://www.youtube.com', 'https://m.youtube.com', 'https://play.google.com', '//googleads.g.doubleclick.net', 'https://rr', '/youtubei', 'https://yt3.ggpht.com', 'https://i.ytimg.com', 'https://rr5---sn-o097znze.googlevideo.com', 'https://rr4---sn-5ufvuxaxxpgxap-hj1e.googlevideo.com', 'https://rr2---sn-voxuxaxjvh-gxj6.googlevideo.com', 'https://jnn-pa.googleapis.com', 'https://suggestqueries-clients6.youtube.com', '/player', '/a', '/b', '/c', '/d', '/e', '/f', '/g', '/i', '/j', '/k', '/l', '/m', '/n', '/o', '/p', '/q', '/r', '/s', '/t', '/u', '/v', '/w', '/x', '/y', '/z', // Adicione mais URLs de API que deseja bloquear, se necessário ]; // Intercepta as solicitações AJAX feitas pelo website var verifyc1 = false; if(window.location.href.includes("youtube.com")){ const open = XMLHttpRequest.prototype.open; XMLHttpRequest.prototype.open = function(method, url) { // Verifica se a URL da solicitação corresponde a uma URL de API bloqueada //console.log('====>>', url); if (blockedApiUrls.some(apiUrl => url.startsWith(apiUrl))) { verifyc1 = true; //console.log(`Solicitação de API bloqueada: ${url}`); limparCookies(); addLinks(); return; // Interrompe a execução da solicitação } // Continua com a execução normal da solicitação open.apply(this, arguments); }; } let bloquearFetch = true; var verifyc2 = false; function interceptarFetch(url, options) { //console.log('---->>', url); if (bloquearFetch && correspondeAUrlBloqueada(url)) { //console.log('Solicitação fetch bloqueada:', url); limparCookies(); addLinks(); verifyc2 = true; return Promise.resolve({ status: 200, body: 'A solicitação foi bloqueada.' }); } else { return window.originalFetch.call(this, url, options); } } function correspondeAUrlBloqueada(url) { for (const urlBloqueada of blockedApiUrls) { if (url.startsWith(urlBloqueada)) { return true; } } return false; } // Substituir a função fetch globalmente if(window.location.href.includes("youtube.com")){ window.originalFetch = window.fetch; window.fetch = interceptarFetch; } // Aguarde o evento de carregamento total da página window.addEventListener('load', function() { // Após o carregamento total da página, permitir todas as solicitações fetch bloquearFetch = 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('ERROR "v":', error); } return null; } GM_addStyle('@import url("https://cdn.jsdelivr.net/npm/bootstrap-icons@1.8.3/font/bootstrap-icons.css");'); // 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; } // Recupere o texto salvo no armazenamento local var palavrasSalvas = GM_getValue('keyWords', '') function stringParaArray(xpalavrasChave) { const arrayDePalavras = xpalavrasChave.split(','); const palavrasLimparEspacos = arrayDePalavras .map(palavra => palavra.trim()) .filter(palavra => palavra !== ''); return palavrasLimparEspacos; } const palavrasChaveString = palavrasSalvas; const palavrasChave = stringParaArray(palavrasChaveString);; console.log(palavrasChave); 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('ERROR "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(){ 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 todos os elementos desnecessários function removerTagsScript() { if(sessao == 1 && window.location.href.includes("v=") !== true){ addButtons(); sessao = 2; } if(sessao == 2 && window.location.href.includes("v=") == true){ window.location.reload(); } 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 tagthumbnail2s = document.querySelectorAll('ytd-moving-thumbnail-renderer'); tagthumbnail2s.forEach(function(thumbnail2) { thumbnail2.parentNode.removeChild(thumbnail2); }); const tagthumbnail3s = document.querySelectorAll('ytd-thumbnail-overlay-toggle-button-renderer'); tagthumbnail3s.forEach(function(thumbnail3) { thumbnail3.parentNode.removeChild(thumbnail3); }); const tagthumbnail4s = document.querySelectorAll('ytd-thumbnail-overlay-inline-unplayable-renderer'); tagthumbnail4s.forEach(function(thumbnail4) { thumbnail4.parentNode.removeChild(thumbnail4); }); const tagthumbnail5s = document.querySelectorAll('ytd-thumbnail-overlay-resume-playback-renderer'); tagthumbnail5s.forEach(function(thumbnail5) { thumbnail5.parentNode.removeChild(thumbnail5); }); const iconsets = document.querySelectorAll('iron-iconset-svg'); iconsets.forEach(function(iconset) { iconset.parentNode.removeChild(iconset); }); const recomendados = document.querySelectorAll('ytd-watch-next-secondary-results-renderer'); recomendados.forEach(function(recomendado) { recomendado.parentNode.removeChild(recomendado); }); const recomendado2s = document.querySelectorAll('ytd-statement-banner-renderer'); recomendado2s.forEach(function(recomendado2) { recomendado2.parentNode.removeChild(recomendado2); }); const ychats = document.querySelectorAll('ytd-live-chat-frame'); ychats.forEach(function(ychat) { ychat.parentNode.removeChild(ychat); }); 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 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 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 ytdAd6s = document.querySelectorAll('ytm-video-with-context-renderer'); ytdAd6s.forEach(function(ytdAd6) { ytdAd6.parentNode.removeChild(ytdAd6); }); const ytdAd7s = document.querySelectorAll('ytm-continuation-item-renderer'); ytdAd7s.forEach(function(ytdAd7) { ytdAd7.parentNode.removeChild(ytdAd7); }); const videosAds = document.querySelectorAll('.video-ads'); if(videosAds){ if (videosAds.length > 0) { videosAds.forEach(function(videosAd) { videosAd.parentNode.removeChild(videosAd); }); } } if(GM_getValue('imgShow') !== undefined && GM_getValue('imgShow') == "no"){ const thumbnails = document.querySelectorAll('#thumbnail'); if (thumbnails) { thumbnails.forEach(function(xthumbnail) { if(xthumbnail.href == undefined){ xthumbnail.parentNode.removeChild(xthumbnail); }else if(xthumbnail.href.includes("/shorts/") == true){ console.log(xthumbnail.href) }else{ xthumbnail.parentNode.removeChild(xthumbnail); } }); } } if(GM_getValue('shortsShow') == undefined || GM_getValue('shortsShow') == "no"){ const shortsOpt = document.querySelectorAll('#endpoint'); if(shortsOpt){ if (shortsOpt.length > 0) { shortsOpt.forEach(function(shots) { if(shots.title == "Shorts"){ shots.parentNode.removeChild(shots); } }); } } let mediaElements = document.querySelectorAll('video, audio'); if(mediaElements){ mediaElements.forEach(function (media) { if (typeof media.play === 'function') { media.play = function () {}; } }); } const xplayers = document.querySelectorAll('ytd-player'); xplayers.forEach(function(player) { player.parentNode.removeChild(player); }); const interactions = document.querySelectorAll('yt-interaction'); interactions.forEach(function(interaction) { interaction.parentNode.removeChild(interaction); }); const renderers = document.querySelectorAll('ytd-rich-shelf-renderer'); renderers.forEach(function(renderer) { renderer.parentNode.removeChild(renderer); }); const ytdAd2s = document.querySelectorAll('ytd-rich-section-renderer'); ytdAd2s.forEach(function(ytdAd2) { ytdAd2.parentNode.removeChild(ytdAd2); }); const recomendado3s = document.querySelectorAll('ytd-reel-shelf-renderer'); recomendado3s.forEach(function(recomendado3) { recomendado3.parentNode.removeChild(recomendado3); }); const ytshots = document.querySelectorAll('ytd-shorts'); ytshots.forEach(function(shotsPage) { shotsPage.parentNode.removeChild(shotsPage); }); } 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); }); } } const previews2 = document.querySelectorAll('#hover-overlays'); if(previews2){ if (previews2.length > 0) { previews2.forEach(function(preview) { preview.style.display = 'none'; preview.parentNode.removeChild(preview); }); } } const previews3 = document.querySelectorAll('#mouseover-overlay'); if(previews3){ if (previews3.length > 0) { previews3.forEach(function(preview) { preview.style.display = 'none'; preview.parentNode.removeChild(preview); }); } } if(window.location.href.includes("youtube.com")){ 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 = ""; element.keydown = ""; element.mousedown = ""; element.down = ""; element.attached = ""; //element.onclick = ""; element.auxclick = ""; element.dblclick = ""; element.copy = ""; element.change = ""; element.keypress = ""; element.mouseover = ""; }); // Obtém todos os elementos pelo ID e os remove let currentURL = window.location.href; if (currentURL.includes("v=")) { const playerPrincipal = document.querySelectorAll('#player-container-outer'); for (const element of playerPrincipal) { element.remove(); }; const allSecundary = document.querySelectorAll('#secondary'); for (const element of allSecundary) { element.remove(); }; const primaryx = document.querySelector('#primary'); if (primaryx) { primaryx.style.maxWidth = "720px"; primaryx.style.margin = "auto"; primaryx.style.padding = "2px 10px"; } }; const playerAds = document.querySelectorAll('#player-ads'); for (const element of playerAds) { element.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 adsInfo = document.querySelectorAll('#ads-info-button'); for (const element of adsInfo) { element.remove(); }; }, 500); } let errorPlay = false; function tagsNonePlay(){ const vernoYt = document.querySelector('.ytp-impression-link'); if (vernoYt) { vernoYt.style.display = "none"; } const pausenokoo = document.querySelector('.ytp-pause-overlay'); if (pausenokoo) { pausenokoo.style.display = "none"; } const notificKoo1 = document.querySelector('.ytp-info-panel-preview'); if (notificKoo1) { notificKoo1.style.display = "none"; } const notificKoo2 = document.querySelector('.html5-endscreen.ytp-player-content.videowall-endscreen.ytp-endscreen-paginate.ytp-show-tiles'); if (notificKoo2) { notificKoo2.style.display = "none"; } const errorx1 = document.querySelector('.ytp-error-content'); if (errorx1 && errorPlay == false) { errorPlay = true; let notError= document.querySelector('.ytp-error-content-wrap'); let videoId = ""; let currentURL = window.location.href; var urlxx = currentURL; var videoCode = urlxx.match(/embed\/([A-Za-z0-9_-]+)/); if (videoCode && videoCode.length > 1) { var codigoDoVideo = videoCode[1]; videoId = codigoDoVideo; } notError.innerHTML = `