Anti - Adblocker Removal, Download Video, Auto Like & More!
// ==UserScript== // @name Cqmbo Client for YT! // @namespace http://tampermonkey.net/ // @version 1.1 // @description Anti - Adblocker Removal, Download Video, Auto Like & More! // @author Cqmbo__ // @match https://www.youtube.com/* // @icon https://yt3.googleusercontent.com/ofXbHpiwGc4bYnwwljjZJo53E7JRODr-SG32NPV1W6QiUnGUtVAYDwTP2NMz2pUPGnt99Juh5w=s160-c-k-c0x00ffffff-no-rj // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; var removalInterval; var isRemoving = false; var removeAdsInterval var isRemovingAds = false; var autoLikeInterval; var isAutoLiking = false; var autoDislikeInterval; var isAutoDisliking = false; var repeatVideoInterval; var isRepeating = false; var autoSubscribeInterval; var isAutoSubscribing = false; var ishidden = false; function toggleelements(){ const elements = [ 'download-button', 'screenshot-button', 'thumbnail-button', 'repeat-button', 'youtubelabel', 'youtubeinput', 'auto-subscribe-button', 'colored-ui-button', 'auto-dislike-button', 'auto-like-button', 'removeads-button', 'removal-button', ]; elements.forEach(id => { const toggleableelement = document.getElementById(id); if (toggleableelement) { toggleableelement.style.display = toggleableelement.style.display === 'none' ? 'block' : 'none'; } }); } var toggleelementbutton = document.createElement('button'); toggleelementbutton.id = 'toggle-element-button'; toggleelementbutton.textContent = 'Hide Menu'; toggleelementbutton.style.position = 'fixed'; toggleelementbutton.style.top = '520px'; toggleelementbutton.style.right = '10px'; toggleelementbutton.style.zIndex = '10000'; toggleelementbutton.title = 'Toggle Menu/Functions'; toggleelementbutton.addEventListener('click', function() { if (!ishidden) { toggleelementbutton.textContent = 'Show Menu'; toggleelements(); ishidden = true; } else { toggleelementbutton.textContent = 'Hide Menu'; toggleelements(); ishidden = false; } }); document.body.appendChild(toggleelementbutton); function startRemovingElement() { removalInterval = setInterval(function() { var element1 = document.querySelector('.style-scope.yt-playability-error-supported-renderers'); if (element1) { element1.remove(); } }, 100); isRemoving = true; } function stopRemovingElement() { clearInterval(removalInterval); isRemoving = false; } var removalButton = document.createElement('button'); removalButton.id = 'removal-button'; removalButton.textContent = 'Remove Anti-Adblocker (Disabled)'; removalButton.style.position = 'fixed'; removalButton.style.top = '160px'; removalButton.style.right = '10px'; removalButton.style.zIndex = '10000'; removalButton.title = 'Remove Anti-Adblocker'; removalButton.addEventListener('click', function() { if (!isRemoving) { removalButton.textContent = 'Remove Anti-Adblocker (Enabled)'; startRemovingElement(); } else { removalButton.textContent = 'Remove Anti-Adblocker (Disabled)'; stopRemovingElement(); } }); document.body.appendChild(removalButton); var autoLikeButton = document.createElement('button'); autoLikeButton.id = 'auto-like-button'; autoLikeButton.textContent = 'Auto Like (Disabled)'; autoLikeButton.style.position = 'fixed'; autoLikeButton.style.top = '410px'; autoLikeButton.style.right = '10px'; autoLikeButton.style.zIndex = '10000'; autoLikeButton.title = 'Automatically like video every 10 seconds'; autoLikeButton.addEventListener('click', function() { if (!isAutoLiking) { autoLikeButton.textContent = 'Auto Like (Enabled)'; startAutoLiking(); } else { autoLikeButton.textContent = 'Auto Like (Disabled)'; stopAutoLiking(); } }); document.body.appendChild(autoLikeButton); function startAutoLiking() { clickLikeButton(); // Click immediately when enabled autoLikeInterval = setInterval(clickLikeButton, 10000); isAutoLiking = true; } function stopAutoLiking() { clearInterval(autoLikeInterval); isAutoLiking = false; } function clickLikeButton() { var dislikeButton = document.querySelector('.yt-spec-button-shape-next.yt-spec-button-shape-next--tonal.yt-spec-button-shape-next--mono.yt-spec-button-shape-next--size-m.yt-spec-button-shape-next--icon-button.yt-spec-button-shape-next--segmented-end'); var likeButton = document.querySelector('.yt-spec-button-shape-next.yt-spec-button-shape-next--tonal.yt-spec-button-shape-next--mono.yt-spec-button-shape-next--size-m.yt-spec-button-shape-next--icon-leading.yt-spec-button-shape-next--segmented-start'); if (likeButton && likeButton.getAttribute('aria-pressed') === 'false' && !isAutoDisliking && dislikeButton && dislikeButton.getAttribute('aria-pressed') === 'false') { likeButton.click(); } var ShortsdislikeButton = document.querySelector('[aria-label="Dislike this video"]'); var ShortslikeButton = document.querySelector('.yt-spec-button-shape-next.yt-spec-button-shape-next--tonal.yt-spec-button-shape-next--mono.yt-spec-button-shape-next--size-l.yt-spec-button-shape-next--icon-button'); var DislikeButtonConfirmer = document.querySelector('.yt-spec-button-shape-next.yt-spec-button-shape-next--filled.yt-spec-button-shape-next--mono.yt-spec-button-shape-next--size-l.yt-spec-button-shape-next--icon-button'); if (ShortslikeButton && ShortslikeButton.getAttribute('aria-pressed') === 'false' && !isAutoDisliking && ShortsdislikeButton && !DislikeButtonConfirmer) { ShortslikeButton.click(); } } var autoDislikeButton = document.createElement('button'); autoDislikeButton.id = 'auto-dislike-button'; autoDislikeButton.textContent = 'Auto Dislike (Disabled)'; autoDislikeButton.style.position = 'fixed'; autoDislikeButton.style.top = '500px'; autoDislikeButton.style.right = '10px'; autoDislikeButton.style.zIndex = '10000'; autoDislikeButton.title = 'Automatically dislike video every 10 seconds'; autoDislikeButton.addEventListener('click', function() { if (!isAutoDisliking) { autoDislikeButton.textContent = 'Auto Dislike (Enabled)'; startAutoDisliking(); } else { autoDislikeButton.textContent = 'Auto Dislike (Disabled)'; stopAutoDisliking(); } }); document.body.appendChild(autoDislikeButton); function startAutoDisliking() { clickDislikeButton(); // Click immediately when enabled autoDislikeInterval = setInterval(clickDislikeButton, 10000); isAutoDisliking = true; } function stopAutoDisliking() { clearInterval(autoDislikeInterval); isAutoDisliking = false; } function clickDislikeButton() { var dislikeButton = document.querySelector('.yt-spec-button-shape-next.yt-spec-button-shape-next--tonal.yt-spec-button-shape-next--mono.yt-spec-button-shape-next--size-m.yt-spec-button-shape-next--icon-button.yt-spec-button-shape-next--segmented-end'); var likeButton = document.querySelector('.yt-spec-button-shape-next.yt-spec-button-shape-next--tonal.yt-spec-button-shape-next--mono.yt-spec-button-shape-next--size-m.yt-spec-button-shape-next--icon-leading.yt-spec-button-shape-next--segmented-start'); if (dislikeButton && dislikeButton.getAttribute('aria-pressed') === 'false' && !isAutoLiking && likeButton && likeButton.getAttribute('aria-pressed') === 'false') { dislikeButton.click(); } var ShortsdislikeButton = document.querySelector('[aria-label="Dislike this video"]'); var ShortslikeButton = document.querySelector('.yt-spec-button-shape-next.yt-spec-button-shape-next--tonal.yt-spec-button-shape-next--mono.yt-spec-button-shape-next--size-l.yt-spec-button-shape-next--icon-button'); var DislikeButtonConfirmer = document.querySelector('.yt-spec-button-shape-next.yt-spec-button-shape-next--filled.yt-spec-button-shape-next--mono.yt-spec-button-shape-next--size-l.yt-spec-button-shape-next--icon-button'); if (ShortsdislikeButton && !isAutoLiking && ShortslikeButton && ShortslikeButton.getAttribute('aria-pressed') === 'false' && !DislikeButtonConfirmer) { ShortsdislikeButton.click(); } } var validButtons = true; // Create the screenshot button const screenshotButton = document.createElement('button'); screenshotButton.id = 'screenshot-button'; screenshotButton.title = 'Screenshot Video at Current Timestamp'; screenshotButton.style.position = 'fixed'; screenshotButton.style.top = '210px'; screenshotButton.style.right = '10px'; screenshotButton.style.zIndex = '10000'; screenshotButton.style.backgroundColor = '#4caf50'; screenshotButton.style.color = 'white'; // Create and append the screenshot icon const screenshotIcon = document.createElement('img'); screenshotIcon.src = 'https://static-00.iconduck.com/assets.00/screenshot-icon-512x512-hmhvvh50.png'; screenshotIcon.alt = 'Screenshot'; screenshotIcon.style.width = '24px'; screenshotIcon.style.height = '24px'; screenshotButton.appendChild(screenshotIcon); // Create the thumbnail button const thumbnailButton = document.createElement('button'); thumbnailButton.id = 'thumbnail-button'; thumbnailButton.title = 'Download Video Thumbnail'; thumbnailButton.style.position = 'fixed'; thumbnailButton.style.top = '255px'; thumbnailButton.style.right = '10px'; thumbnailButton.style.zIndex = '10000'; thumbnailButton.style.backgroundColor = '#ff5722'; thumbnailButton.style.color = 'white'; // Create and append the thumbnail icon const thumbnailIcon = document.createElement('img'); thumbnailIcon.src = 'https://th.bing.com/th/id/R.5d0756cfcc115698fa5571019979269b?rik=CyyaHNz7YvDWyQ&pid=ImgRaw&r=0'; thumbnailIcon.alt = 'Thumbnail'; thumbnailIcon.style.width = '24px'; thumbnailIcon.style.height = '24px'; thumbnailButton.appendChild(thumbnailIcon); // Create the download button const downloadButton = document.createElement('button'); downloadButton.id = 'download-button'; downloadButton.title = 'Download Video'; downloadButton.style.position = 'fixed'; downloadButton.style.top = '300px'; downloadButton.style.right = '10px'; downloadButton.style.zIndex = '10000'; downloadButton.style.backgroundColor = '#2196F3'; downloadButton.style.color = 'white'; // Create and append the download icon const downloadIcon = document.createElement('img'); downloadIcon.src = 'https://th.bing.com/th/id/OIP.tdSxNLAn5NVt39tvjk9tIAHaHa?w=159&h=180&c=7&r=0&o=5&pid=1.7'; downloadIcon.alt = 'Download'; downloadIcon.style.width = '24px'; downloadIcon.style.height = '24px'; downloadButton.appendChild(downloadIcon); // Create the speed button const speedButton = document.createElement('button'); speedButton.id = 'speed-button'; speedButton.title = 'Modify Speed of Video'; speedButton.style.position = 'fixed'; speedButton.style.top = '345px'; speedButton.style.right = '10px'; speedButton.style.zIndex = '10000'; speedButton.style.backgroundColor = '#ffff00'; speedButton.style.color = 'white'; // Create and append the speed icon const speedIcon = document.createElement('img'); speedIcon.src = 'https://th.bing.com/th/id/OIP.FqXL96sm01sDe4pfJAl0cwHaHa?w=180&h=180&c=7&r=0&o=5&pid=1.7'; speedIcon.alt = 'Speed'; speedIcon.style.width = '24px'; speedIcon.style.height = '24px'; speedButton.appendChild(speedIcon); function renderizarContenido() { if (validButtons) { validButtons = false; // Append the buttons to the body document.body.appendChild(screenshotButton); document.body.appendChild(thumbnailButton); document.body.appendChild(speedButton); document.body.appendChild(downloadButton); // Attach event listeners for buttons attachButtonListeners(); } } function attachButtonListeners() { const screenShotButton = document.getElementById('screenshot-button'); if (screenShotButton) { screenShotButton.onclick = () => { const video = document.querySelector('video'); const canvas = document.createElement('canvas'); canvas.width = video.videoWidth; canvas.height = video.videoHeight; const context = canvas.getContext('2d'); context.drawImage(video, 0, 0, canvas.width, canvas.height); const imagenURL = canvas.toDataURL('image/png'); const linkDownload = document.createElement('a'); linkDownload.href = imagenURL; const titleVideo = document.querySelector('h1.style-scope.ytd-watch-metadata').innerText; linkDownload.download = `${video.currentTime.toFixed(0)}s_${titleVideo}.png`; linkDownload.click(); }; } const downloadButton = document.getElementById('download-button'); if (downloadButton) { downloadButton.onclick = () => { let currentUrl = window.location.href; // Check if the URL contains 'shorts/' and replace it with 'watch?v=' if (currentUrl.includes('/shorts/')) { currentUrl = currentUrl.replace('/shorts/', '/watch?v='); } const CutURL = new URLSearchParams(new URL(currentUrl).search); let enlace = CutURL.get('v'); if (enlace) { window.open( `https://www.y2mate.com/en/convert-youtube/${enlace}`, 'popUpWindow', 'height=800,width=1000,left=50%,top=100,resizable=no,scrollbars=yes,toolbar=no,menubar=yes,location=no,directories=yes,status=no' ); } else { alert('No video ID found in the URL.'); } }; } const thumbnailButton = document.getElementById('thumbnail-button'); if (thumbnailButton) { thumbnailButton.onclick = () => { let currentUrl = window.location.href; // Check if the URL contains 'shorts/' and replace it with 'watch?v=' if (currentUrl.includes('/shorts/')) { currentUrl = currentUrl.replace('/shorts/', '/watch?v='); } const CutURL = new URLSearchParams(new URL(currentUrl).search); let enlace = CutURL.get('v'); if (enlace) { const maxResImageUrl = `https://i1.ytimg.com/vi/${enlace}/maxresdefault.jpg`; const highQualityImageUrl = `https://i1.ytimg.com/vi/${enlace}/hqdefault.jpg`; fetchImage(maxResImageUrl) .catch(() => fetchImage(highQualityImageUrl)) .catch((error) => { alert('No image found'); console.error('Error getting image:', error); }); } }; } var ans = ''; const speedbutton = document.getElementById('speed-button'); speedbutton.onclick = () => { ans = prompt('How much do you want to in/decrease the speed of your video? 1 is default.'); document.getElementsByTagName('video')[0].playbackRate = Number(ans); } } function fetchImage(imageUrl) { return fetch(imageUrl) .then((response) => { if (!response.ok) { throw new Error(`HTTP error! Status: ${response.status}`); } return response.blob(); }) .then((blob) => { const imageSizeKB = blob.size / 1024; if (imageSizeKB >= 20) { window.open( imageUrl, 'popUpWindow', 'height=500,width=400,left=100,top=100,resizable=yes,scrollbars=yes,toolbar=yes,menubar=no,location=no,directories=no,status=yes' ); const imageUrlObject = URL.createObjectURL(blob); const linkDownload = document.createElement('a'); linkDownload.href = imageUrlObject; const titleVideo = document.querySelector('h1.style-scope.ytd-watch-metadata').innerText; linkDownload.download = `thumbnail_${titleVideo}.jpg`; linkDownload.click(); } else { alert('No image found'); throw new Error('No image found'); } }); } function observeDOM() { const observer = new MutationObserver(mutations => { mutations.forEach(mutation => { if (mutation.type === 'childList' && mutation.addedNodes.length) { renderizarContenido(); } }); }); observer.observe(document.body, { childList: true, subtree: true }); } observeDOM(); var coloredElements = ['video-title', 'style-scope ytd-watch-metadata']; var whiteElements = ['primary']; const rainbowColors = ['#ff0000', '#ff7f00', '#ffff00', '#00ff00', '#0000ff', '#4b0082', '#9400d3']; let currentColor = 'black'; // Default color let savedCustomColor = 'black'; // Save custom color to restore it later let isCustomColorEnabled = false; let isRainbowEnabled = false; let isColoredUIEnabled = false; let rainbowFlashInterval; function toggleColoredUI() { const button = document.getElementById('colored-ui-button'); if (!isColoredUIEnabled) { isColoredUIEnabled = true; button.textContent = 'Colored UI (Enabled)'; createColoredUIDropdown(); if (isCustomColorEnabled) { applyCustomColor(savedCustomColor); } else if (isRainbowEnabled) { startRainbowFlash(); } else { applyCustomColor(currentColor); } } else { isColoredUIEnabled = false; button.textContent = 'Colored UI (Disabled)'; removeColoredUIDropdown(); applyCustomColor('black'); stopRainbowFlash(); } } function createColoredUIDropdown() { const dropdown = document.createElement('div'); dropdown.id = 'colored-ui-dropdown'; dropdown.style.position = 'fixed'; dropdown.style.top = '360px'; dropdown.style.right = '10px'; dropdown.style.zIndex = '10000'; const label = document.createElement('div'); label.textContent = 'Select Color:'; dropdown.appendChild(label); const defaultOption = createOptionElement('Black (Default)', 'black'); const customOption = createOptionElement('Custom Color', 'custom'); const rainbowOption = createOptionElement('Rainbow Flash', 'rainbow'); const dropdownMenu = document.createElement('select'); dropdownMenu.id = 'colored-ui-dropdown-menu'; dropdownMenu.appendChild(defaultOption); dropdownMenu.appendChild(customOption); dropdownMenu.appendChild(rainbowOption); dropdown.appendChild(dropdownMenu); if (isCustomColorEnabled) { dropdownMenu.value = 'custom'; } else if (isRainbowEnabled) { dropdownMenu.value = 'rainbow'; } else { dropdownMenu.value = currentColor; } dropdownMenu.addEventListener('change', function() { const selectedColor = this.value; if (selectedColor === 'custom') { isCustomColorEnabled = true; stopRainbowFlash(); openCustomColorPicker(); } else if (selectedColor === 'rainbow') { isRainbowEnabled = true; isCustomColorEnabled = false; startRainbowFlash(); } else { isCustomColorEnabled = false; stopRainbowFlash(); applyCustomColor(selectedColor); } }); document.body.appendChild(dropdown); } function removeColoredUIDropdown() { const dropdown = document.getElementById('colored-ui-dropdown'); if (dropdown) { dropdown.remove(); } } function createOptionElement(text, value) { const option = document.createElement('option'); option.text = text; option.value = value; return option; } function openCustomColorPicker() { if (document.getElementById('custom-color-picker')) { return; } const customColorPicker = document.createElement('input'); customColorPicker.type = 'color'; customColorPicker.id = 'custom-color-picker'; customColorPicker.style.position = 'fixed'; customColorPicker.style.top = '395px'; customColorPicker.style.right = '10px'; customColorPicker.style.zIndex = '10000'; customColorPicker.addEventListener('input', function() { const selectedColor = this.value; currentColor = selectedColor; savedCustomColor = selectedColor; applyCustomColor(selectedColor); }); document.body.appendChild(customColorPicker); } function applyCustomColor(color) { coloredElements.forEach(elementId => { const elements = document.getElementsByClassName(elementId); for (let element of elements) { element.style.color = color; } }); whiteElements.forEach(elementId => { const elements = document.getElementsByClassName(elementId); for (let element of elements) { element.style.color = (isColoredUIEnabled && (isCustomColorEnabled || isRainbowEnabled)) ? color : 'white'; } }); currentColor = color; } function startRainbowFlash() { if (rainbowFlashInterval) { clearInterval(rainbowFlashInterval); } let currentIndex = 0; rainbowFlashInterval = setInterval(() => { const currentColor = rainbowColors[currentIndex]; applyCustomColor(currentColor); currentIndex = (currentIndex + 1) % rainbowColors.length; }, 500); } function stopRainbowFlash() { clearInterval(rainbowFlashInterval); isRainbowEnabled = false; if (!isColoredUIEnabled) { applyCustomColor('black'); } else if (isCustomColorEnabled) { applyCustomColor(savedCustomColor); } else { applyCustomColor(currentColor); } } function toggleElement() { const elementToToggle = [ 'custom-color-picker' ]; elementToToggle.forEach(id => { const element = document.getElementById(id); if (element) { element.style.display = element.style.display === 'none' ? 'block' : 'none'; } }); } function createColoredUIButton() { if (document.getElementById('colored-ui-button')) { return; } const button = document.createElement('button'); button.id = 'colored-ui-button'; button.textContent = 'Colored UI (Disabled)'; button.style.position = 'fixed'; button.style.top = '480px'; button.style.right = '10px'; button.title = 'Color Selected Elements'; button.style.zIndex = '10000'; button.addEventListener('click', toggleElement); button.addEventListener('click', toggleColoredUI); document.body.appendChild(button); } createColoredUIButton(); // New background function function createBackgroundFunctionality() { const youtubeLabel = document.createElement('label'); youtubeLabel.textContent = 'Background Image:'; youtubeLabel.style.position = 'fixed'; youtubeLabel.style.top = '430px'; youtubeLabel.style.right = '10px'; youtubeLabel.style.zIndex = '10000'; youtubeLabel.id = 'youtubelabel'; youtubeLabel.style.color = 'red'; const youtubeInput = document.createElement('input'); youtubeInput.type = 'text'; youtubeInput.placeholder = 'Paste image URL here...'; youtubeInput.style.position = 'fixed'; youtubeInput.style.top = '460px'; youtubeInput.style.right = '10px'; youtubeInput.style.zIndex = '10000'; youtubeInput.id = 'youtubeinput'; youtubeInput.addEventListener('keydown', function(event) { if (event.key === 'Enter') { const url = youtubeInput.value; console.log('URL Entered:', url); // Debugging line if (url) { setBackground(url); } else { clearBackground(); } } }); document.body.appendChild(youtubeLabel); document.body.appendChild(youtubeInput); } function setBackground(url) { const primaryInner = document.getElementById('primary-inner'); console.log('Setting background for primary-inner with URL:', url); // Debugging line if (primaryInner) { primaryInner.style.backgroundImage = `url(${url})`; primaryInner.style.backgroundSize = 'cover'; primaryInner.style.backgroundPosition = 'center'; } } function clearBackground() { const primaryInner = document.getElementById('primary-inner'); console.log('Clearing background for primary-inner'); // Debugging line if (primaryInner) { primaryInner.style.backgroundImage = ''; } } createBackgroundFunctionality(); var autoSubscribeButton = document.createElement('button'); autoSubscribeButton.id = 'auto-subscribe-button'; autoSubscribeButton.textContent = 'Auto Subscribe (Disabled)'; autoSubscribeButton.style.position = 'fixed'; autoSubscribeButton.style.top = '120px'; autoSubscribeButton.style.right = '10px'; autoSubscribeButton.style.zIndex = '10000'; autoSubscribeButton.title = 'Automatically subscribe to channels'; autoSubscribeButton.addEventListener('click', function() { if (!isAutoSubscribing) { autoSubscribeButton.textContent = 'Auto Subscribe (Enabled)'; startAutoSubscribing(); } else { autoSubscribeButton.textContent = 'Auto Subscribe (Disabled)'; stopAutoSubscribing(); } }); document.body.appendChild(autoSubscribeButton); function startAutoSubscribing() { clickSubscribeButton(); // Click immediately when enabled autoSubscribeInterval = setInterval(clickSubscribeButton, 10000); isAutoSubscribing = true; } function stopAutoSubscribing() { clearInterval(autoSubscribeInterval); isAutoSubscribing = false; } function clickSubscribeButton() { var subscribeButton = document.querySelector('[aria-label^="Subscribe to"]'); if (subscribeButton && subscribeButton.textContent.includes('Subscribe')) { subscribeButton.click(); } } })();