// ==UserScript== // @name Youtube Tools All in one local download mp3 mp4 HIGT QUALITY return dislikes and more // @name:zh-TW Youtube 工具 多合一本地下載 MP4、MP3 // @name:zh-HK Youtube 工具 多合一本地下載 MP4、MP3 // @name:zh-CN Youtube 工具 多合一本地下載 MP4、MP3 // @name:ja Youtube ツール オールインワンのローカル ダウンロード MP4、MP3 // @name:kr Youtube 도구 올인원 로컬 다운로드 외부 서비스 없이 MP4, MP3 // @name:ar Youtube Tools All in one local download mp3 mp4 HIGT QUALITY return dislikes and more // @name:bg Youtube-Tools Alles in einem lokalen Download von MP4, MP3. // @name:cs Nástroje YouTube Vše v jednom místní Stahujte MP4, MP3 // @name:da Youtube-værktøjer Alt i én lokal Download MP4, MP3 // @name:de Youtube-Tools Alles in einem lokalen Download von MP4, MP3 // @name:tel Youtube టూల్స్ అన్నీ ఒకే లోకల్ డౌన్లోడ్ MP4, Mp3 // @name:es Youtube Custom Todo en uno Descarga local MP4, MP3. // @name:en Youtube Tools All in one local download mp3 mp4. // @name:fr Outils Youtube Tout-en-un local Téléchargez MP4, MP3. // @name:fr-CA Outils Youtube Tout-en-un local Téléchargez MP4, MP3. // @name:he כלים של YouTube הכל במקום אחד מקומי הורדה MP4, MP3 באיכות גבוהה ללא שירות חיצוני ועוד. // @name:hu Youtube Eszközök Minden egy helyen Letöltés MP4, MP3. // @name:id Alat Youtube Semua dalam satu lokal Unduh MP4, MP3. // @name:it Strumenti Youtube Tutto in uno Scarica locale MP4, MP3. // @name:ko Youtube 도구 올인원 로컬 외부 서비스 없이 MP4, MP3 // @name:nb Youtube-verktøy Alt i ett lokalt Last ned MP4, MP3 // @name:nl Youtube Tools Alles in één lokaal Download MP4, MP3 // @name:pl Narzędzia YouTube Wszystko w jednym lokalnym. Pobierz MP4, MP3 // @name:pt-BR Ferramentas do Youtube Tudo em um local Baixe MP4, MP3 DE ALTA QUALIDAD. // @name:ro YInstrumente Youtube Toate într-un singur local Descărcați MP4, MP3. // @name:ru Инструменты Youtube Все в одном локальном формате. Загрузите MP4, MP3. // @name:sk Nástroje YouTube Všetko v jednom miestne Stiahnite si MP4, MP3 // @name:sr Иоутубе алати Све у једном локалном Преузми МП4, МП3 // @name:sv Youtube-verktyg Allt i ett lokalt Ladda ner MP4, MP3 // @name:th เครื่องมือ Youtube ทั้งหมดในที่เดียว ดาวน์โหลด MP4, MP3 // @name:tr Youtube Araçları Hepsi bir arada yerel Harici hizmet olmadan MP4, MP3 // @name:uk Інструменти Youtube Все в одному локальному завантаженні MP4, MP3 // @name:ug Youtube قوراللىرى ھەممىسى بىر يەرلىك چۈشۈرۈش MP4,mp3 // @name:vi Công cụ Youtube Tất cả trong một cục bộ Tải xuống MP4, MP3 // @description:zh-TW Youtube 工具 多合一本地下載 mp4、MP3 // @description:zh-HK Youtube 工具 多合一本地下載 mp4、MP3 // @description:zh-CN Youtube 工具 多合一本地下載 mp4、MP3 // @description:ja Youtube ツール オールインワン ローカル ダウンロード mp4、MP3 、 // @description:kr Youtube 도구 올인원 로컬 다운로드 mp4, MP3 // @description:ar Herramientas de YouTube Todo en uno Descarga local mp4, MP3 // @description:bg Инструменти за Youtube Всичко в едно локално изтегляне mp4, // @description:cs Nástroje YouTube Vše v jednom místní Stahování mp4, MP3 // @description:da Youtube-værktøjer Alt i ét lokalt Download mp4, MP3 // @description:de YouTube-Tools Alles in einem lokalen Laden Sie MP4, MP3 // @description:tel Youtube Tools All in one local Download mp4, MP3 HIGT QUALITY, // @description:es Youtube tools todo en uno personlizada youtube a tu estilo y descarga MP4 y MP3 // @description:fr Outils Youtube Tout-en-un local Téléchargez des mp4, des MP3 // @description:fr-CA Outils Youtube Tout-en-un local Téléchargez des mp4, des MP3 // @description:he כלים של YouTube הכל במקום אחד מקומי הורד mp4, MP3 // @description:hu Youtube Eszközök Minden egyben helyi Letöltés mp4, MP3 // @description:id Alat Youtube Semua dalam satu lokal Unduh mp4, MP3 // @description:it Strumenti Youtube Tutto in uno locale Scarica mp4, MP3 // @description:ko Youtube 도구 올인원 로컬 다운로드 mp4, MP3 // @description:nb YoYoutube-verktøy Alt i ett lokalt Last ned mp4, MP3 // @description:nl YouTube-tools Alles in één lokaal Download mp4, MP3 // @description:pl Narzędzia Youtube Wszystko w jednym miejscu Pobierz mp4, MP3 // @description:pt-BR Ferramentas do YouTube Tudo em um só local Baixe mp4, MP3 // @description:ro Instrumente Youtube Toate într-un singur local Descărcați mp4, MP3 // @description:ru Инструменты Youtube Все в одном, локально. Загрузите mp4, MP3 // @description:sk Nástroje YouTube Všetko v jednom miestnom Sťahujte mp4, MP3 // @description:sr Иоутубе алати Све у једном локалном Преузми мп4, МП3 // @description:sv Youtube-verktyg Allt i ett lokalt Ladda ner mp4, MP3 // @description:th เครื่องมือ Youtube ทั้งหมดในที่เดียว ดาวน์โหลด mp4, MP3 // @description:tr Youtube Araçları Hepsi bir arada yerel Harici hizmet olmadan mp4, MP3 // @description:uk Інструменти Youtube Все в одному локальному завантаженні mp4, MP3 // @description:ug Youtube قورالىنىڭ ھەممىسى بىر يەرلىك چۈشۈرۈشتە mp4, MP3 HIGH QUAقنى قا // @description:vi Công cụ Youtube Tất cả trong một cục bộ Tải xuống mp4, MP3 // @description:en Youtube Tools All in one local Download mp4, MP3 HIGT QUALITY // @description Youtube Tools All in one local Download mp4, MP3 HIGT QUALITY // @homepage https://github.com/DeveloperMDCM/ // @version 2.3.4.3 // @author DeveloperMDCM // @match *://www.youtube.com/* // @exclude *://music.youtube.com/* // @exclude *://*.music.youtube.com/* // @icon https://www.google.com/s2/favicons?sz=64&domain=youtube.com // @grant GM_info // @grant GM_addStyle // @grant GM_setValue // @grant GM_getValue // @grant unsafeWindow // @run-at document-end // @require https://cdn.jsdelivr.net/npm/izitoast@1.4.0/dist/js/iziToast.min.js // @compatible chrome // @compatible firefox // @compatible opera // @compatible safari // @compatible edge // @license MIT // @namespace https://github.com/DeveloperMDCM/ // @downloadURL none // ==/UserScript== (function () { 'use strict'; let validoUrl = document.location.href; const $e = (el) => document.querySelector(el); // any element const $id = (el) => document.getElementById(el); // element by id const $m = (el) => document.querySelectorAll(el); // multiple all elements const $cl = (el) => document.createElement(el); // create element const $sp = (el, pty) => document.documentElement.style.setProperty(el, pty); // set property variable css const $ap = (el) => document.body.appendChild(el); // append element const apiDislikes = "https://returnyoutubedislikeapi.com/Votes?videoId="; // Api dislikes const apiGoogleTranslate = "https://translate.googleapis.com/translate_a/t"; // Api google translate let selectedBgColor = "#252525"; // Background color menu default let selectedTextColor = "#ffffff"; // Text color menu default let selectedBgAccentColor = "#ff0000"; // Accent color menu default const urlSharedCode = "https://greasyfork.org/es/scripts/460680-youtube-tools-all-in-one-local-download-mp3-mp4-higt-quality-return-dislikes-and-more"; function isFullscreen() { return document.fullscreenElement !== null; } // for translate comments video const languagesTranslate = { "af": "Afrikaans", "sq": "Albanian", "am": "Amharic", "ar": "Arabic", "hy": "Armenian", "az": "Azerbaijani", "eu": "Basque", "be": "Belarusian", "bn": "Bengali", "bs": "Bosnian", "bg": "Bulgarian", "ca": "Catalan", "ceb": "Cebuano", "zh-CN": "Chinese (Simplified)", "zh-TW": "Chinese (Traditional)", "co": "Corsican", "hr": "Croatian", "cs": "Czech", "da": "Danish", "nl": "Dutch", "en": "English", "eo": "Esperanto", "et": "Estonian", "fi": "Finnish", "fr": "French", "fy": "Frisian", "gl": "Galician", "ka": "Georgian", "de": "German", "el": "Greek", "gu": "Gujarati", "ht": "Haitian Creole", "ha": "Hausa", "haw": "Hawaiian", "iw": "Hebrew", "hi": "Hindi", "hmn": "Hmong", "hu": "Hungarian", "is": "Icelandic", "ig": "Igbo", "id": "Indonesian", "ga": "Irish", "it": "Italian", "ja": "Japanese", "jw": "Javanese", "kn": "Kannada", "kk": "Kazakh", "km": "Khmer", "ko": "Korean", "ku": "Kurdish", "ky": "Kyrgyz", "lo": "Lao", "la": "Latin", "lv": "Latvian", "lt": "Lithuanian", "lb": "Luxembourgish", "mk": "Macedonian", "mg": "Malagasy", "ms": "Malay", "ml": "Malayalam", "mt": "Maltese", "mi": "Maori", "mr": "Marathi", "mn": "Mongolian", "my": "Myanmar (Burmese)", "ne": "Nepali", "no": "Norwegian", "ny": "Nyanja (Chichewa)", "ps": "Pashto", "fa": "Persian", "pl": "Polish", "pt": "Portuguese", "pa": "Punjabi", "ro": "Romanian", "ru": "Russian", "sm": "Samoan", "gd": "Scots Gaelic", "sr": "Serbian", "st": "Sesotho", "sn": "Shona", "sd": "Sindhi", "si": "Sinhala", "sk": "Slovak", "sl": "Slovenian", "so": "Somali", "es": "Spanish", "su": "Sundanese", "sw": "Swahili", "sv": "Swedish", "tl": "Tagalog (Filipino)", "tg": "Tajik", "ta": "Tamil", "te": "Telugu", "th": "Thai", "tr": "Turkish", "uk": "Ukrainian", "ur": "Urdu", "uz": "Uzbek", "vi": "Vietnamese", "cy": "Welsh", "xh": "Xhosa", "yi": "Yiddish", "yo": "Yoruba", "zu": "Zulu" } function hideCanvas() { const canvas = $id('wave-visualizer-canvas'); if (canvas) { canvas.style.opacity = '0'; if (controlPanel) { controlPanel.style.opacity = '0'; } } } function Notify(type = 'info', message = '', title = '') { const defaultTitles = { success: 'Success', error: 'Error', info: 'Information', warning: 'Warning', }; iziToast[type]({ title: title || defaultTitles[type] || 'Notification', message: message, position: 'bottomLeft', }); } const UPDATE_INTERVAL = 1000; const STORAGE = { USAGE: 'YT_TOTAL_USAGE', VIDEO: 'YT_VIDEO_TIME', SHORTS: 'YT_SHORTS_TIME' }; let usageTime = GM_getValue(STORAGE.USAGE, 0); let videoTime = GM_getValue(STORAGE.VIDEO, 0); let shortsTime = GM_getValue(STORAGE.SHORTS, 0); let lastUpdate = Date.now(); let activeVideo = null; let activeType = null; // Inicializar almacenamiento GM_setValue(STORAGE.USAGE, usageTime); GM_setValue(STORAGE.VIDEO, videoTime); GM_setValue(STORAGE.SHORTS, shortsTime); function FormatterNumber(num, digits) { const lookup = [ { value: 1, symbol: '', }, { value: 1e3, symbol: ' K', }, { value: 1e6, symbol: ' M', }, ]; const rx = /\.0+$|(\.[0-9]*[1-9])0+$/; const item = lookup .slice() .reverse() .find((item) => { return num >= item.value; }); return item ? (num / item.value).toFixed(digits).replace(rx, '$1') + item.symbol : '0'; } function paramsVideoURL() { const parametrosURL = new URLSearchParams(window.location.search); // Url parametros return parametrosURL.get('v'); } // Dislikes video async function videoDislike() { validoUrl = document.location.href; const validoVentana = $e('#below > ytd-watch-metadata > div'); if (validoVentana != undefined && document.location.href.split('?v=')[0].includes('youtube.com/watch')) { validoUrl = paramsVideoURL(); const urlShorts = `${apiDislikes}${validoUrl}`; try { const respuesta = await fetch(urlShorts); const datosShort = await respuesta.json(); const { dislikes } = datosShort; const dislikes_content = $e('#top-level-buttons-computed > segmented-like-dislike-button-view-model > yt-smartimation > div > div > dislike-button-view-model > toggle-button-view-model > button-view-model > button'); if (dislikes_content !== undefined) { dislikes_content.style = 'width: 90px'; dislikes_content.innerHTML = ` ${FormatterNumber(dislikes, 0)}`; } } catch (error) { console.log(error); } } } // dislikes shorts async function shortDislike() { validoUrl = document.location.href; const validoVentanaShort = $m( '#dislike-button > yt-button-shape > label > div > span' ); if (validoVentanaShort != undefined && document.location.href.split('/')[3] === 'shorts') { validoUrl = document.location.href.split('/')[4]; const urlShorts = `${apiDislikes}${validoUrl}`; try { const respuesta = await fetch(urlShorts); const datosShort = await respuesta.json(); const { dislikes } = datosShort; for (let i = 0; i < validoVentanaShort.length; i++) { validoVentanaShort[i].textContent = `${FormatterNumber( dislikes, 0 )}`; } } catch (error) { console.log(error); } } } // Url change in second load let prevUrl; let showDislikes = false; setInterval(() => { const svgDislike = $e('.svg-dislike-ico'); // Check svg in dom const currUrl = window.location.href; if (prevUrl !== undefined && currUrl !== prevUrl && !svgDislike && showDislikes) { setTimeout(async() => { await videoDislike(); await shortDislike(); },2000) } prevUrl = currUrl; }, 1000); // Create a Trusted Types policy const policy = window.trustedTypes?.createPolicy('default', { createHTML: (input) => input, }); // Styles for our enhancement panel GM_addStyle(` @import url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"); @import url("https://cdn.jsdelivr.net/npm/izitoast@1.4.0/dist/css/iziToast.min.css"); :root { --primary-custom: #ff0000 !important; --bg-dark-custom: #1a1a1a !important; --bg-card-custom: #252525 !important; --text-custom: #ffffff !important; --text-custom-secondary: #9e9e9e !important; --accent-custom: #ff4444 !important; } body .container-mdcm { font-family: "Inter", -apple-system, sans-serif; color: var(--yt-enhance-menu-text, --text-custom); } #toggle-button:hover { background-color: rgba(255,255,255,0.1); border-radius: 50%; opacity: 1 !important; } .container-mdcm { width: 420px; max-width: 420px; background-color: var(--yt-enhance-menu-bg, #252525); border-radius: 16px 16px 0 0; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); backdrop-filter: blur(15px); border: 1px solid rgba(255, 255, 255, 0.1); display: flex; flex-direction: column; max-height: 80vh; overflow-y: auto; overflow-x: hidden; height: auto; } #shareDropdown { display: none; position: absolute; top: 50px; right: 100px; background-color: var(--yt-enhance-menu-bg, #252525); border-radius: 6px; padding: 10px; box-shadow: rgba(0, 0, 0, 0.2) 0px 4px 12px; z-index: 11; } #shareDropdown a { color: var(--text-custom); text-decoration: none; line-height: 2; font-size: 14px; } #shareDropdown a:hover { color: var(--primary-custom); } .header-mdcm { padding: 12px 16px; border-bottom: 1px solid rgba(255,255,255,0.1); position: sticky; top: 0; background-color: var(--yt-enhance-menu-bg, #252525); border-radius: 16px 16px 0 0; z-index: 10; display: flex; justify-content: space-between; align-items: center; } .header-mdcm h1 { font-size: 16px; margin: 0; font-weight: 600; display: flex; align-items: center; gap: 8px; } .header-mdcm i { color: var(--primary-custom) } .icons-mdcm { display: flex; gap: 4px; } .icons-mdcm i { color: var(--yh-enhance-menu-accent, var(--text-custom)); } .icon-btn-mdcm { background: rgba(255,255,255,0.1); border: none; color: var(--text-custom); width: 28px; height: 28px; border-radius: 6px; cursor: pointer; transition: all 0.3s; } .icon-btn-mdcm:hover { background: rgba(255,255,255,0.2); transform: translateY(-2px); } .icon-btn-mdcm i { color: var(--text-custom); outline: none; text-decoration: none; } .tabs-mdcm { padding: 10px 12px; margin: 10px 0; position: sticky; top: 50px; background-color: var(--yt-enhance-menu-bg, #252525); z-index: 10; display: flex; gap: 8px; -ms-overflow-style: none; padding-bottom: 8px; } .tabs-mdcm::-webkit-scrollbar { height: 0px; background-color: transparent; } .tabs-mdcm:hover::-webkit-scrollbar { height: 6px; } .tabs-mdcm::-webkit-scrollbar-thumb { background-color: rgba(255, 0, 0, 0.5); border-radius: 3px; } .tabs-mdcm::-webkit-scrollbar-track { background-color: transparent; } .tab-mdcm { padding: 6px 10px; border: none; background: rgba(255,255,255,0.05); cursor: pointer; font-size: 12px; color: var(--text-custom-secondary); border-radius: 6px; transition: all 0.3s; flex: 1; display: flex; align-items: center; gap: 6px; flex-shrink: 0; justify-content: center; white-space: nowrap; } .tab-mdcm svg { width: 14px; height: 14px; fill: currentColor; } .tab-mdcm.active { background: var(--yt-enhance-menu-accent, --primary-custom) !important; color: var(--text-custom); font-weight: 500; box-shadow: 0 4px 12px rgba(255,0,0,0.2); } .tab-mdcm:hover:not(.active) { background: rgba(255,255,255,0.1); transform: translateY(-1px); } .options-mdcm { flex: 1; overflow-y: auto; padding: 0 16px 0; scrollbar-width: thin; scrollbar-color: var(--primary-custom) var(--bg-dark-custom); max-height: 300px; display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 8px; } .options-settings-mdcm { flex: 1; overflow-y: auto; padding: 0 16px 0; scrollbar-width: thin; scrollbar-color: var(--primary-custom) var(--bg-dark-custom); max-height: 300px; display: grid; gap: 8px; } .card-items-end { display: flex; justify-content: space-between; align-items: center; width: 175px; } .radio-mdcm { width: 14px; height: 14px; accent-color: var(--primary-custom); } .color-picker-mdcm { width: 50px; height: 24px; border: 1px solid rgba(255, 255, 255, 0.2); background: rgba(255, 255, 255, 0.1); border-radius: 4px; cursor: pointer; transition: all 0.3s; } .color-picker-mdcm:hover { background: rgba(255, 255, 255, 0.2); } .options-mdcm::-webkit-scrollbar, .options-settings-mdcm::-webkit-scrollbar { width: 6px; } .options-mdcm::-webkit-scrollbar-track, .options-settings-mdcm::-webkit-scrollbar-track { background: var(--bg-dark-custom); border-radius: 3px; } .options-mdcm::-webkit-scrollbar-thumb, .options-settings-mdcm::-webkit-scrollbar-thumb { background: var(--primary-custom); border-radius: 3px; } .options-mdcm::-webkit-scrollbar-thumb:hover, .options-settings-mdcm::-webkit-scrollbar-thumb:hover { background: var(--accent-custom); } .options-mdcm::after, .options-settings-mdcm::after { content: ''; display: block; } .option-mdcm { display: grid; grid-template-columns: auto 1fr; align-items: center; margin-bottom: 0; padding: 5px; background: rgba(255,255,255,0.05); border-radius: 6px; transition: all 0.3s; border: 1px solid rgba(255,255,255,0.05); color: var(--yt-) gap: 6px; } .option-mdcm:hover { background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.1); } .option-settings-mdcm { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0; padding: 6px; background: rgba(255, 255, 255, 0.05); border-radius: 6px; transition: all 0.3s; border: 1px solid rgba(255, 255, 255, 0.05); gap: 6px; } .option-settings-mdcm:hover { background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.1); } .tab-content { display: none; } .tab-content.active { display: block; margin-bottom: 10px; } .checkbox-mdcm { width: 14px; height: 14px; accent-color: var(--yt-enhance-menu-accent, --primary-custom) !important; } label { font-size: 12px; color: var(--text-custom); } .slider-container-mdcm { background: rgba(255,255,255,0.05); padding: 10px; border-radius: 6px; } .slider-mdcm { width: 100%; height: 3px; accent-color: var(--yt-enhance-menu-accent, --primary-custom) !important; margin: 10px 0; } .reset-btn-mdcm { padding: 5px 10px; border: 1px solid rgba(255,255,255,0.2); background: rgba(255,255,255,0.1); color: var(--text-custom); border-radius: 4px; cursor: pointer; font-size: 11px; transition: all 0.3s; } .reset-btn-mdcm:hover { background: rgba(255,255,255,0.2); } .quality-selector-mdcm select { position: relative; padding: 3px; outline: none; border-radius: 4px; border: 1px solid rgba(255,255,255,0.2); background: var(--yt-enhance-menu-accent, --primary-custom) !important; color: var(--text-custom); width: fit-content; appearance: none; cursor: pointer; font-size: 11px; } .quality-selector-mdcm { background: rgba(255,255,255,0.05); padding: 10px; border-radius: 6px; } .select-wrapper-mdcm { position: relative; display: inline-block; } .select-wrapper-mdcm select { -webkit-appearance: auto; -moz-appearance: auto; } .actions-mdcm { position: sticky; top: 0; padding: 12px 16px; backdrop-filter: blur(15px); background-color: var(--yt-enhance-menu-bg, #252525); display: flex; gap: 6px; width: 390px; border-radius: 0 0 16px 16px; justify-content: space-between; align-items: center; } .action-buttons-mdcm { display: flex; gap: 6px; } .action-btn-mdcm { flex: 1; padding: 8px; border: none; border-radius: 6px; background: var(--primary-custom); color: var(--text-custom); cursor: pointer; font-size: 12px; font-weight: 500; transition: all 0.3s; display: flex; align-items: center; justify-content: center; gap: 4px; box-shadow: 0 4px 12px rgba(255,0,0,0.2); } .action-btn:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(255,0,0,0.3); } textarea.textarea-mdcm { width: 100%; height: 50px; margin-top: 10px; margin-bottom: 12px; padding: 8px; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); border-radius: 6px; color: var(--text-custom); font-size: 11px; resize: none; transition: all 0.3s; } textarea.textarea-mdcm:focus { outline: none; border-color: var(--primary-custom); background: rgba(255,255,255,0.08); } @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } .container-mdcm { animation: fadeIn 0.3s ease-out; } .developer-mdcm { font-size: 10px; color: var(--text-custom-secondary); } .developer-mdcm a { color: var(--primary-custom); text-decoration: none; } /* Styles for the import/export area */ #importExportArea { display: none; padding: 16px; margin: 0px; background-color: var(--yt-enhance-menu-bg, #252525); border-radius: 16px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2); } #importExportArea.active { display: block; margin-top: 10px; } /* Style the textarea */ #importExportArea textarea { width: 370px; height: 20px; margin-bottom: 10px; padding: 8px; border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 6px; background-color: rgba(255, 255, 255, 0.05); color: var(--text-custom); font-size: 12px; resize: vertical; } /* Style the buttons */ #importExportArea .action-buttons-mdcm { display: flex; justify-content: space-between; gap: 10px; } #importExportArea .action-btn-mdcm { flex: 1; padding: 10px 16px; border: none; border-radius: 6px; background-color: var(--primary-custom); color: var(--text-custom); font-size: 14px; font-weight: 500; cursor: pointer; transition: background-color 0.3s ease; } #importExportArea .action-btn-mdcm:hover { background-color: var(--accent-custom); } #yt-stats { position: fixed; top: 60px; right: 20px; background: #1a1a1a; color: white; padding: 15px; border-radius: 10px; width: 320px; box-shadow: 0 4px 12px rgba(0,0,0,0.4); font-family: Arial, sans-serif; display: none; } #yt-stats-toggle { font-size: 12px; color: #fff; padding: 12px 20px; border-radius: 5px; cursor: pointer; } .stat-row { margin: 15px 0; } .progress { height: 6px; background: #333; border-radius: 3px; margin: 8px 0; } .progress-bar { height: 100%; transition: width 0.3s; } .total-bar { background: #44aaff; } .video-bar { background: #00ff88; } .shorts-bar { background: #ff4444; } #cinematics { position: absolute !important; width: 90vw !important; height: 100vh ; } #cinematics div { position: fixed; inset: 0px; pointer-events: none; transform: scale(1.5, 2); } #cinematics > div > div > canvas:nth-child(1), #cinematics > div > div > canvas:nth-child(2) { position: absolute !important; width: 90vw !important; height: 100vh ; } // .html5-video-player.unstarted-mode { // background-image: url('https://avatars.githubusercontent.com/u/54366580?v=4'); // background-repeat: no-repeat; // background-position: 50% 50%; // display: flex; // justify-content: center; // align-items: center; // } #yt-enhancement-panel { position: fixed; top: 60px; right: 20px; z-index: 9999; } .color-picker { width: 100%; margin: 0; padding: 0; border: none; background: none; } .slider { width: 100%; } #toggle-panel { z-index: 10000; color: white; padding: 5px; border: none; cursor: pointer; display: flex; justify-content: center; transition: all 0.5s ease; width: 43px; border-radius: 100px; } #icon-menu-settings { display: flex; align-items: center; justify-content: center; width: 24px; height: 24px; padding: 7px; font-size: 20px; color: var(--yt-spec-icon-inactive); cursor: pointer; user-select: none; filter: drop-shadow(2px 4px 6px black); } .theme-option { margin-bottom: 15px; } .theme-option label { display: flex; align-items: center; } .theme-option { position: relative; width: auto; margin-bottom: 10px; padding: 10px; border-radius: 4px; cursor: pointer; } .theme-preview { position: absolute; top: 0; left: 0; right: 0; bottom: 0; border-radius: 10px; border: 1px solid #000; z-index: 1; } .theme-option input[type="radio"] { position: relative; z-index: 2; margin-right: 10px; cursor: pointer; } .theme-name { position: relative; z-index: 2; font-size: 15px; color: #fff; } .theme-option label { display: flex; align-items: center; width: 100%; position: relative; z-index: 2; } .buttons-tranlate, .select-traductor { background: #000; font-size: 10px; border: none; color: #fbf4f4 !important; padding: 3px 0; margin-left: 10px; width: 70px; border-radius: 10px; } .buttons-tranlate:hover { cursor: pointer; background-color: #6b6b6b; } button.botones_div { margin: 0; padding: 0; } .tab-button:hover { background-color: #ec3203 !important; color: #ffffff !important; cursor: pointer; } .traductor-container { display: inline-block; align-items: center; gap: 8px; margin-top: 4px; } #eyes { opacity: 0; position: absolute; height: 24px; left: 0; width: 24px; } /* width */ ::-webkit-scrollbar { width: 4px; height: 10px; } /* Track */ ::-webkit-scrollbar-track { background: ##d5d5d5; } /* Handle */ ::-webkit-scrollbar-thumb { background: #000; } .color-boxes { display: flex; gap: 8px; } .color-box { width: 20px; height: 20px; border: 1px solid rgb(221 221 221 / 60%); border-radius: 4px; cursor: pointer; } .color-box.selected { border: 2px solid var(--primary-custom); filter: drop-shadow(0px 1px 6px red); } .containerButtons { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 10px; } .containerButtons > button:hover { cursor: pointer; } body { padding: 0; margin: 0; overflow-y: scroll; overflow-x: hidden; } .style-scope.ytd-comments { overflow-y: auto; overflow-x: hidden; height: auto; } ytd-comment-view-model[is-reply] #author-thumbnail.ytd-comment-view-model yt-img-shadow.ytd-comment-view-model, ytd-comment-view-model[is-creator-reply] #author-thumbnail.ytd-comment-view-model yt-img-shadow.ytd-comment-view-model { width: 40px; height: 40px; border-radius: 50%; } img.yt-img-shadow { border-radius: 50% !important; } #author-thumbnail.ytd-comment-view-model yt-img-shadow.ytd-comment-view-model { width: 40px; height: 40px; border-radius: 50%; overflow: visible; } ytd-item-section-renderer.ytd-watch-next-secondary-results-renderer { --ytd-item-section-item-margin: 8px; overflow-y: auto; overflow-x: hidden; height: auto; } .right-section.ytcp-header { display: flex; flex: 1; align-items: center; gap: 45px; justify-content: end; } #meta.ytd-playlist-panel-video-renderer { min-width: 0; padding: 0 8px; display: flexbox; display: flex; flex-direction: column-reverse; flex: 1; flex-basis: 0.000000001px; } .containerall { display: flex; align-items: center; justify-content: center; width: 50%; margin: auto; } } .container .botoncalidades { margin: 3px 2px; width: 24.6%; } .botoncalidades:first-child { background-color: #0af; } .botoncalidades:last-child { background-color: red; width: 100px; } .selectcalidades, .botoncalidades, .selectcalidadesaudio { width: 50%; height: 27.8px; background-color: #fff; color: #000; font-size: 25px; text-align: center; border: 1px solid black; border-radius: 10px; border: none; font-size: 20px; margin: 2px 2px; } .botoncalidades { width: 70px; height: 30px; background-color: rgb(4, 156, 22); border: 0px solid #000; color: #fff; font-size: 20px; border-radius: 10px; margin: 2px 2px; } .botoncalidades:hover, .bntcontainer:hover { cursor: pointer; } .ocultarframe, .ocultarframeaudio { display: none; } .checked_updates { cursor: pointer; } #export-config, #import-config { width: 100%; display: flex; align-items: center; justify-content: center; gap: 10px; background-color: var(--yt-enhance-menu-accent, --primary-custom) !important;; color: #ffffff; border: none; padding: 5px; } #export-config:hover, #import-config:hover { background-color: #ff0000; color: #ffffff; cursor: pointer; } .yt-image-avatar-download { position: absolute; bottom: -10px; right: -14px; border: none; z-index: 1000; background: transparent; filter: drop-shadow(1px 0 6px red); color: var(--ytcp-text-primary); cursor: pointer; } .custom-classic-btn { display: flex; align-items: center; justify-content: center; background-color: rgba(255,255,255,0.1); border-radius: 50%; border: none; width: 48px; height: 48px; color: var(--yt-spec-icon-inactive); font-size: 24px; margin: 0px 8px; cursor: pointer; } .custom-classic-btn:hover { background-color: rgba(255,255,255,0.2); } `); // botons bottom video player const thumbnailVideo = ` `; const filterEyes = `